Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Рекомендуемые сообщения

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

  • Upvote 9
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

инструкция не понятная и что надо поправить? А так красавчик что выложил, хоть и не ставил еще)

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

Спасибо за мод, всё работает. Пытался в im.php присобачить вроде работает, но только один раз отправил, открыл, закрыл, потом выводит как документ... А не на момент становится гифкой, потом файлом.

 

В целом код выглядит так

					if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
									
								} else
								
									$attach_result .= '';
							}
							if($attach_result)
								$msg = '<div style="width:442px;overflow:hidden">'.preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result.'</div><div class="clear"></div>';
						} else
							$msg = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result;
					
						$tpl->set('{text}', stripslashes($msg));
						
						$tpl->set('{msg-id}', $dbid);
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{date}', langdate('H:i:s', $server_time));
						$tpl->compile('content');
Ссылка на комментарий
Поделиться на другие сайты

 

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

Спасибо за мод, всё работает. Пытался в im.php присобачить вроде работает, но только один раз отправил, открыл, закрыл, потом выводит как документ... А не на момент становится гифкой, потом файлом.

 

В целом код выглядит так

					if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
									
								} else
								
									$attach_result .= '';
							}
							if($attach_result)
								$msg = '<div style="width:442px;overflow:hidden">'.preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result.'</div><div class="clear"></div>';
						} else
							$msg = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result;
					
						$tpl->set('{text}', stripslashes($msg));
						
						$tpl->set('{msg-id}', $dbid);
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{date}', langdate('H:i:s', $server_time));
						$tpl->compile('content');

Я во всем движке заменил, и у меня выводит везде нормально.

Ссылка на комментарий
Поделиться на другие сайты

 

 

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

Спасибо за мод, всё работает. Пытался в im.php присобачить вроде работает, но только один раз отправил, открыл, закрыл, потом выводит как документ... А не на момент становится гифкой, потом файлом.

 

В целом код выглядит так

					if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
									
								} else
								
									$attach_result .= '';
							}
							if($attach_result)
								$msg = '<div style="width:442px;overflow:hidden">'.preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result.'</div><div class="clear"></div>';
						} else
							$msg = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result;
					
						$tpl->set('{text}', stripslashes($msg));
						
						$tpl->set('{msg-id}', $dbid);
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{date}', langdate('H:i:s', $server_time));
						$tpl->compile('content');

Я во всем движке заменил, и у меня выводит везде нормально.

 

Ну так подскажи, что не так.

Ссылка на комментарий
Поделиться на другие сайты

 

 

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

Спасибо за мод, всё работает. Пытался в im.php присобачить вроде работает, но только один раз отправил, открыл, закрыл, потом выводит как документ... А не на момент становится гифкой, потом файлом.

 

В целом код выглядит так

					if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://site/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
									
								} else
								
									$attach_result .= '';
							}
							if($attach_result)
								$msg = '<div style="width:442px;overflow:hidden">'.preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result.'</div><div class="clear"></div>';
						} else
							$msg = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result;
					
						$tpl->set('{text}', stripslashes($msg));
						
						$tpl->set('{msg-id}', $dbid);
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{date}', langdate('H:i:s', $server_time));
						$tpl->compile('content');

Я во всем движке заменил, и у меня выводит везде нормально.

 

Ну может подскажешь?

Ссылка на комментарий
Поделиться на другие сайты

AdVest нет тебе не буду помогать, и ты знаешь почему!

Почему же? Что не сдавал человека?) Извини, не выгодно было, обидка заиграла? Ну ладно, сам соображу. Лооол спасибо ненадо, сам сделал)

Ссылка на комментарий
Поделиться на другие сайты

Sloopy, а ты делал функцию добавления гифки к себе в доки?

Угушечки. А так же и просмотр документа как у вк, поиск по документам (только те, которые разрешены), редактирование документа как у вк.

Ссылка на комментарий
Поделиться на другие сайты

 

Sloopy, а ты делал функцию добавления гифки к себе в доки?

Угушечки. А так же и просмотр документа как у вк, поиск по документам (только те, которые разрешены), редактирование документа как у вк.

 

Я так понял платная версия, сколько стоит?

Ссылка на комментарий
Поделиться на другие сайты

 

 

Sloopy, а ты делал функцию добавления гифки к себе в доки?

Угушечки. А так же и просмотр документа как у вк, поиск по документам (только те, которые разрешены), редактирование документа как у вк.

 

Я так понял платная версия, сколько стоит?

 

Правильно понял, что платная. Я разве говорил, что продаю?)

Ссылка на комментарий
Поделиться на другие сайты

 

 

 

Sloopy, а ты делал функцию добавления гифки к себе в доки?

Угушечки. А так же и просмотр документа как у вк, поиск по документам (только те, которые разрешены), редактирование документа как у вк.

 

Я так понял платная версия, сколько стоит?

 

Правильно понял, что платная. Я разве говорил, что продаю?)

 

Думаю будешь через какое то время продавать.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

у этава модуля адна толька проблема кагда прекрепляеш тока дакумент gif то гифки работают а если делаеш прекрепление фото то гифка настене не робит

Изменено пользователем api
  • Upvote 2
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

У меня ошибки выдает после этого типо Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u385515885/public_html/system/classes/wall.php on line 278 или Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u385515885/public_html/system/modules/doc.php on line 278

Ссылка на комментарий
Поделиться на другие сайты

 

Тема легкая, поэтому бесплатно выложу.

 

Итак, создаем в таблице документов 2 новых поля - file_type и jpgif оба text

 

Далее, открываем wall.php, который в папке classes и меняем код от

} elseif($attach_type[0] == 'doc'){

До

} elseif($attach_type[0] == 'vote'){

На мой

} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize, file_type, ddownload_name, duser_id, jpgif, did FROM `doc` WHERE did = '{$doc_id}'");
						
						if($row_doc){
							if($row_doc['file_type'] == 'gif'){
							$attach_result .= '<div class="post_media clear_fix">
<div class="media_desc media_desc_soft">
<a class="page_gif_preview page_gif_loaded" onclick="gif.hide('.$row_doc['did'].');" id="full_gif_'.$row_doc['did'].'" style="display: none">
<div class="page_gif_loading progress_inv" style="display: none;"></div>
<img src="http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['ddownload_name'].'" class="pages_gif_img page_gif_big"></a>
<a onclick="gif.show('.$row_doc['did'].');" class="photo page_doc_photo_href" id="gif_'.$row_doc['did'].'">
<div class="page_doc_photo" style="background-image: url(http://ivinete.ru/uploads/doc/'.$row_doc['duser_id'].'/'.$row_doc['jpgif'].');"></div>
<div class="page_doc_photo_hint"><span class="fl_l" style="width:5em">'.$row_doc['dname'].'</span> <span class="fl_r">'.$row_doc['dsize'].'</span></div>
</a>
</div>
</div>';
							} else {
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$row_wall['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$row_wall['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								}
							$cnt_attach++;
						}
						
					//Если опрос
					} elseif($attach_type[0] == 'vote'){

Теперь JS код

var gif = {
	hide: function(did){
		$('#full_gif_'+did).hide();
		$('#gif_'+did).show();
	},
	show: function(did){
		$('#full_gif_'+did).show();
		$('#gif_'+did).hide();
	}
}

Обновляем стили

.media_desc {
  line-height: 140%;
}
.media_desc b {
  background: url(/images/icons/mono_iconset.png?1) no-repeat left -237px;
  width: 15px;
  height: 11px;
  margin-top: 2px;
}
.media_preview b.postpone {
  background-position: 0 -334px;
  margin-top: 2px;
}
.media_desc b.topic {
  background-position: 0 -192px;
}
.media_desc b.group {
  background-position: 0 -45px;
  height: 12px;
}
 .media_desc b.doc {
  background-position: 0 -280px;
  height: 11px;
}
.media_desc b.note,
.media_preview .note b {
  background-position: 0 -134px;
}
 .media_desc_soft {
  padding: 0px;
  float: left;
  margin-bottom: 2px;
  margin-right: 8px;
  margin-top: 8px;
  clear: none;
}
.page_doc_photo_href {
  position: relative;
}
.page_doc_photo_href:hover {
  text-decoration: none;
}
.page_doc_photo {
  width: 130px;
  height: 98px;
  background: #000000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-align: center;
}
.page_doc_photo_hint {
  width: 110px;
  *width: 130px;
  text-align: center;
  color: #FFFFFF;
  background: #000000;
  margin-bottom: 5px;
  *background: #000000;
  background: rgba(0, 0, 0, 0.5);
  position: absolute;
  margin-top: -18px;
  height: 14px;
  *height: 18px;
  padding: 2px 10px;
  font-size: 0.81em;
}

Собственно doc.php

Заменяем аплоад на мой

case "upload":
			NoAjaxQuery();
			
			//Получаем данные о фотографии
			$file_tmp = $_FILES['uploadfile']['tmp_name'];
			$file_name = $_FILES['uploadfile']['name']; // оригинальное название для оприделения формата
			$file_size = $_FILES['uploadfile']['size']; // размер файла
			$type = end(explode(".", $file_name)); // формат файла
			
			//Разришенные форматы
			$allowed_files = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'pdf', 'png', 'jpg', 'gif', 'psd', 'mp3', 'djvu', 'fb2', 'ps', 'jpeg', 'txt');
			
			//Проверям если, формат верный то пропускаем
			if(in_array(strtolower($type), $allowed_files)){
				
				if($file_size < 10000000){
				
					$res_type = strtolower('.'.$type);
					
					//Директория загрузки
					$upload_dir = ROOT_DIR."/uploads/doc/{$user_id}/";
						
					//Если нет папки юзера, то создаём её
					if(!is_dir($upload_dir)){ 
						@mkdir($upload_dir, 0777);
						@chmod($upload_dir, 0777);
					}
					
					$downl_file_name = substr(md5($file_name.rand(0, 1000).$server_time), 0, 25);
					
					//Загружаем сам файл
					if(move_uploaded_file($file_tmp, $upload_dir.$downl_file_name.$res_type)){
						
						function formatsize($file_size){
							if($file_size >= 1073741824){
								$file_size = round($file_size / 1073741824 * 100 ) / 100 ." Gb";
							} elseif($file_size >= 1048576){
								$file_size = round($file_size / 1048576 * 100 ) / 100 ." Mb";
							} elseif($file_size >= 1024){
								$file_size = round($file_size / 1024 * 100 ) / 100 ." Kb";
							} else {
								$file_size = $file_size." b";
							}
							return $file_size;
						}
						
						$dsize = formatsize($file_size);
						$file_name = textFilter($file_name, false, true);
						
						if($type == 'gif'){
						$img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
						imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
						$jpgif .= $downl_file_name.'.jpg';
						}
						
						//Обновляем кол-во док. у юзера
						$db->query("UPDATE `users` SET user_doc_num = user_doc_num+1 WHERE user_id = '{$user_id}'");
						
						if(!$file_name) $file_name = 'Без названия.'.$res_type;
						
						$strLn = strlen($file_name);
						if($strLn > 50){
							$file_name = str_replace('.'.$res_type, '', $file_name);
							$file_name = substr($file_name, 0, 50).'...'.$res_type;
						}
						
						//Вставляем файл в БД
						$db->query("INSERT INTO `doc` SET duser_id = '{$user_id}', dname = '{$file_name}', dsize = '{$dsize}', ddate = '{$server_time}', ddownload_name = '{$downl_file_name}{$res_type}', file_type = '{$type}', jpgif = '{$jpgif}'");
						
						echo $file_name.'"'.$db->insert_id().'"'.$dsize.'"'.strtolower($type).'"'.langdate('сегодня в H:i', $server_time);
						
						mozg_mass_clear_cache_file("user_{$user_id}/profile_{$user_id}|user_{$user_id}/docs");
						
					}
					
				} else
					echo 1;
			
			}
	
			exit;
			
		break;

Вроде бы ничего не забыл. В итоге получите такую тему

post-2343-0-23977500-1435066972.jpgpost-2343-0-05967900-1435066973.pngpost-2343-0-02063600-1435066975.png

 

Не забываем плюсовать.

 

P.S. В коде для 100% работоспособности кое-что нужно поправить, там сами увидите, он и так нормально пашет.

Если что-то не так - отпишитесь, может забыл что-то.

у этава модуля адна толька проблема кагда прекрепляеш тока дакумент gif то гифки работают а если делаеш прекрепление фото то гифка настене не робит

 

Не понял.

Ссылка на комментарий
Поделиться на другие сайты

У меня ошибки выдает после этого типо Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u385515885/public_html/system/classes/wall.php on line 278 или Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u385515885/public_html/system/modules/doc.php on line 278

На какую сборку пытаешься поставить?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 5 месяцев спустя...
  • 2 месяца спустя...

Теперь JS код

 

 

 var gif = {
    hide: function(did){
        $('#full_gif_'+did).hide();
        $('#gif_'+did).show();
    },
    show: function(did){
        $('#full_gif_'+did).show();
        $('#gif_'+did).hide();
    }
}

 

 

 

 

 

А  это  куда  ??

Ссылка на комментарий
Поделиться на другие сайты

 

Теперь JS код

 

 

 var gif = {

    hide: function(did){

        $('#full_gif_'+did).hide();

        $('#gif_'+did).show();

    },

    show: function(did){

        $('#full_gif_'+did).show();

        $('#gif_'+did).hide();

    }

}

 

 

 

 

 

А  это  куда  ??

 

в profil.js

Ссылка на комментарий
Поделиться на другие сайты

 

 

Теперь JS код

 

 

 var gif = {

    hide: function(did){

        $('#full_gif_'+did).hide();

        $('#gif_'+did).show();

    },

    show: function(did){

        $('#full_gif_'+did).show();

        $('#gif_'+did).hide();

    }

}

 

 

 

 

 

А  это  куда  ??

 

в profil.js

 

Спасибо  ..  а в  базе  нужно  прописывать    Длина/значения ??  просто в  инструкции не  указанно  

Ссылка на комментарий
Поделиться на другие сайты

  • 3 года спустя...

У меня проблемный кусок кода в doc.php (именно из за него когда заменил произшла ошибка 500), код:
if($type == 'gif'){
                        $img = imagecreatefromgif($upload_dir.$downl_file_name.$res_type); 
                        imagejpeg ($img, $upload_dir.$downl_file_name.'.jpg', 100); 
                        $jpgif .= $downl_file_name.'.jpg';
                        }

Может кто знает в чем проблема тут?

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...