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
Link to comment
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
Link to comment
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');
Link to comment
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');

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

Link to comment
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');

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

 

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

Link to comment
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');

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

 

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

 

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

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

 

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

Link to comment
Share on other sites

 

 

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

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

 

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

 

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

Link to comment
Share on other sites

 

 

 

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

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

 

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

 

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

 

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

Link to comment
Share on other sites

  • 4 weeks later...

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

 

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

Link to comment
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 то гифки работают а если делаеш прекрепление фото то гифка настене не робит

 

Не понял.

Link to comment
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

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

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...
  • 2 months later...

Теперь JS код

 

 

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

 

 

 

 

 

А  это  куда  ??

Link to comment
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

Link to comment
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

 

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

Link to comment
Share on other sites

  • 3 years later...

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...