Перейти к публикации

Хак прямая загрузка картинок из addnews работает на dle до 9.0. Требуется корректировка на dle 9.0


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

Хак позволяет грузить изображения с помощью 1 кнопки загрузить без использования загрузщика.

Суть хака в том что бы добавлять постер с окна добавление новости а не с бб кодов.

тоесть в шаблоне добавления новости добавляется поле, добавление постера.

1. В addnews.tpl (в шаблоне) добавить

Код


					  <tr>

					  <td width="118.5" height="25" nowrap="nowrap">Загрузить постер:</td>

						<td><input type="file" name="post_add" maxlength="250" class="f_input" /></td>

					  </tr>

2. Добавить в addnews.php (modules) после if( trim( $short_story ) == "" or ! $short_story ) $stop .= $lang['add_err_5']; Код

		$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );

		if ((isset($_FILES['post_add']) && $_FILES['post_add']!='')) {


			$file_prefix = time() + rand( 1, 100 );

			$file_prefix .= "_";

			define( 'FOLDER_PREFIX', date( "Y-m" ) );

		if( ! is_dir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX ) ) {

			@mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );

			@chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );

			@mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/thumbs", 0777 );

			@chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/thumbs", 0777 );

		}		  

			$config_path_image_upload = ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/";


			$current_image = 'post_add';

			$image = $_FILES[$current_image]['tmp_name'];

			$image_name = $_FILES[$current_image]['name'];

			$image_size = $_FILES[$current_image]['size'];

			$error_code = $_FILES[$current_image]['error'];


			$img_name_arr = explode( ".", $image_name );

			$type = totranslit( end( $img_name_arr ) );

			if( $image_name != "" ) {

				$curr_key = key( $img_name_arr );

				unset( $img_name_arr[$curr_key] );

				$image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;

			}


			if ( in_array( strtolower( $type ), $allowed_extensions) ) {


			@move_uploaded_file( $image, $config_path_image_upload . $file_prefix . $image_name );


			if( @file_exists( $config_path_image_upload . $file_prefix . $image_name ) ) {

				@chmod( $config_path_image_upload . $file_prefix . $image_name, 0666 );

					$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );

					if( ! $row['count'] ) {

						$added_time = time() + ($config['date_adjust'] * 60);

						$inserts = FOLDER_PREFIX . "/" . $file_prefix . $image_name;

						$db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );

					} else {

						$row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );

						if( $row['images'] == "" ) $listimages = array ();

						else $listimages = explode( "|||", $row['images'] );

						foreach ( $listimages as $dataimages ) {

							if( $dataimages == FOLDER_PREFIX . "/" . $file_prefix . $image_name ) $error_image = "stop";

						}

						if( $error_image != "stop" ) {

							$listimages[] = FOLDER_PREFIX . "/" . $file_prefix . $image_name;

							$row['images'] = implode( "|||", $listimages );

							$db->query( "UPDATE " . PREFIX . "_images set images='{$row['images']}' where author = '{$member_id[name]}' AND news_id = '$idpost'" );

						}

					}

				include_once ENGINE_DIR . '/inc/makethumb.php';

				$tumb_ok = false;

				$_POST['make_thumb'] = true;

				$_POST['make_watermark'] = $config['allow_watermark'];

				if( isset( $_POST['make_thumb'] ) ) {

					$thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );

					if( $thumb->size_auto( $config['max_image'], $_POST['t_seite'] ) ) {

						$thumb->jpeg_quality( $config['jpeg_quality'] );

						if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );

						$thumb->save( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name );

					}

					if( @file_exists( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name ) ) $tumb_ok = true;

					@chmod( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name, 0666 );

				}

				$config['max_up_side'] = intval( $config['max_up_side'] );

				if( ($config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes") or $config['max_up_side'] ) {

					$thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );

					$thumb->jpeg_quality( $config['jpeg_quality'] );

					if( $config['max_up_side'] ) $thumb->size_auto( $config['max_up_side'] );

					if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );

					$thumb->save( $config_path_image_upload . $file_prefix . $image_name );

				}


				$short_story = preg_replace('/^<br \/>(.*?)(<br \/>)*?$/is', '$1', $short_story);

				if ( $tumb_ok ) $short_story = "<!--TBegin--><a href=\"{$config['http_home_url']}uploads/posts/".FOLDER_PREFIX."/{$file_prefix}{$image_name}\" onclick=\"return hs.expand(this)\" ><img align=\"left\" src=\"{$config['http_home_url']}uploads/posts/".FOLDER_PREFIX."/thumbs/{$file_prefix}{$image_name}\" alt='$title' title='$title'  /></a><!--TEnd-->".$short_story;

				else $short_story = "<img src=\"{$config['http_home_url']}uploads/posts/".FOLDER_PREFIX."/{$file_prefix}{$image_name}\" align=\"left\" alt='$title' title='$title' />".$short_story;

				$full_story = "<img src=\"{$config['http_home_url']}uploads/posts/".FOLDER_PREFIX."/{$file_prefix}{$image_name}\" align=\"center\" alt='$title' title='$title' />".$full_story;

				$short_story = addslashes($short_story);

				$full_story = addslashes($full_story);

				$db->query( "UPDATE " . PREFIX . "_post SET short_story='$short_story', full_story='$full_story' where id = '$idpost'" );


			}

			}


		}
Так же: Нужно добавить в строке Код

else $script .= "<form method=post name=\"entryform\" id=\"entryform\" onsubmit=\"if(document.entryform.title.value == '' || document.entryform.short_story.value == ''){alert('$lang[add_err_7]');return false}\" action=\"\">";
Вот это. Код

enctype=\"multipart/form-data\"
получится примерно так Код

else $script .= "<form method=post name=\"entryform\" id=\"entryform\" onsubmit=\"if(document.entryform.title.value == '' || document.entryform.short_story.value == ''){alert('$lang[add_err_7]');return false}\" action=\"\" enctype=\"multipart/form-data\">";
Для последней версии Dle нужно заменить в addnews.php Код

include_once ENGINE_DIR . '/inc/makethumb.php';
на Код

include_once ENGINE_DIR . '/classes/thumb.class.php';
Радуемся работает =))) http://forum.4dle.ru/topic11499s0.html Помогите доработать под dle 9.4 В частности кода
if( trim( $short_story ) == "" or ! $short_story ) $stop .= $lang['add_err_5']; [/code]

уже нет

Изменено пользователем balser
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

что то оно не срабатывает

пишет ошибку скюель как только хочу добавить новость

MySQL Error!

------------------------

The Error returned was:

Column count doesn't match value count at row 1

Error Number:

1136

подскажите как на 9.5 это прикрутить

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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