Jump to content

Recommended Posts

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

 

Итак, создаем в таблице документов 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

Share this post


Link to post
Share on other sites

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

 

Итак, создаем в таблице документов 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

Share this post


Link to post
Share on other sites

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

 

Итак, создаем в таблице документов 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');

Share this post


Link to post
Share on other sites
Guest

 

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

 

Итак, создаем в таблице документов 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');

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

Share this post


Link to post
Share on other sites

 

 

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

 

Итак, создаем в таблице документов 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');

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

 

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

Share this post


Link to post
Share on other sites

 

 

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

 

Итак, создаем в таблице документов 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');

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

 

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

Share this post


Link to post
Share on other sites
Guest

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

 

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

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

 

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

Share this post


Link to post
Share on other sites

 

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

 

 

 

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

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

Итак, создаем в таблице документов 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 то гифки работают а если делаеш прекрепление фото то гифка настене не робит

Edited by api
  • Upvote 2
  • Downvote 1

Share this post


Link to post
Share on other sites

У меня ошибки выдает после этого типо 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

Share this post


Link to post
Share on other sites

 

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

 

Итак, создаем в таблице документов 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 то гифки работают а если делаеш прекрепление фото то гифка настене не робит

 

Не понял.

Share this post


Link to post
Share on other sites

У меня ошибки выдает после этого типо 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

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

Share this post


Link to post
Share on other sites

Теперь JS код

 

 

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

 

 

 

 

 

А  это  куда  ??

Share this post


Link to post
Share on other sites

 

Теперь 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

Share this post


Link to post
Share on other sites

 

 

Теперь 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

 

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

Share this post


Link to post
Share on other sites

У меня проблемный кусок кода в 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';
                        }

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×