» » » Исправление авто размера удалённых изображений dle 12.1

Исправление авто размера удалённых изображений dle 12.1

0
Исправление авто размера удалённых изображений dle 12.1

Заметил такую проблему на dle 12.1 в пункте "Автоматическое изменение размера для внешних изображений" если задать размер к примеру 279, то удаленные картинки имеющие большую ширину должны сжиматься до указанного размера. Они уменьшались только в том случая, если картинки находились не в спойлере. Думал проблема заключалась в хостинге или в версии php, но они тут оказались не причем. Может где я ошибаюсь, но тестировал в приложении OpenServer (играя с настройками и меняя протокол https на http удаленных картинок) результат был таким. Что в спойлере картинка выводилась оригинального размера.
В общем решение нашел такое:

Идем по пути:
engine\classes\parse.class.php
Ищем:

	function build_image( $matches=array() ) {

Меняем весь код до:

		return "<!--dle_image_begin:{$info}--><img src=\"{$url}\" {$style} {$alt}><!--dle_image_end-->";

	}

на:

	function build_image( $matches=array() ) {
		global $config;

		if(count($matches) == 2 ) {

			$align = "";
			$url = $matches[1];

		} else {
			$align = $matches[1];
			$url = $matches[2];
		}

		$url = trim( $url );
		$url = urldecode( $url );
		$option = explode( "|", trim( $align ) );
		$align = $option[0];

		if( $align != "left" and $align != "right" ) $align = '';

		if( preg_match( "/[?&;%<\[\]]/", $url ) ) {

			if( $align != "" ) return "[img=" . $align . "]" . $url . "[/img]";
			else return "[img]" . $url . "[/img]";

		}

		$url = $this->clear_url( urldecode( $url ) );

		$info = $url;

		$info = $info."|".$align;

		if( $url == "" ) return;

		if( $option[1] != "" ) {

			$alt = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES, $config['charset'] );
			$info = $info."|".$alt;
			$caption = "<span class=\"highslide-caption\">" . $alt . "</span>";
			$alt = "alt=\"" . $alt . "\" title=\"" . $alt . "\" ";

		} else {

			$alt = htmlspecialchars( strip_tags( stripslashes( $_POST['title'] ) ), ENT_QUOTES, $config['charset'] );
			$caption = "";
			$alt = "alt=\"" . $alt . "\" title=\"" . $alt . "\" ";

		}

		if( intval( $config['tag_img_width'] ) ) {

			if (clean_url( $config['http_home_url'] ) != clean_url ( $url ) ) {

				$img_info = @getimagesize( $url );

				if( $img_info[0] > $config['tag_img_width'] ) {

					$out_heigh = ($img_info[1] / 100) * ($config['tag_img_width'] / ($img_info[0] / 100));
					$out_heigh = floor( $out_heigh );

					if( $align == '' ) return "<!--dle_image_begin:{$info}--><a href=\"{$url}\" onclick=\"return hs.expand(this)\" ><img src=\"$url\" width=\"{$config['tag_img_width']}\" height=\"{$out_heigh}\" {$alt} /></a>{$caption}<!--dle_image_end-->";
					else return "<!--dle_image_begin:{$info}--><a href=\"{$url}\" onclick=\"return hs.expand(this)\" ><img src=\"$url\" width=\"{$config['tag_img_width']}\" height=\"{$out_heigh}\" style=\"float:{$align};\" {$alt} /></a>{$caption}<!--dle_image_end-->";


				}
			}
		}


		if( $align == '' ) return "<!--dle_image_begin:{$info}--><img src=\"{$url}\" {$alt} /><!--dle_image_end-->";
		else return "<!--dle_image_begin:{$info}--><img src=\"{$url}\" style=\"float:{$align};\" {$alt} /><!--dle_image_end-->";

	}


P.S. Теперь проблема исчезла, картинки спокойно уменьшаются до заданного размера.

Внимание!
Для просмотра скрытого текста, Вам необходимо Войти или Зарегистрироваться.
  • DLE хаки
  • 18-07-2018, 21:27
  • 254
Вернуться назад
Аватар
  • Ник: ruffer
  • Сегодня, 03:16
1
Привет, тоже давно ищу как решить эту проблему. тут не только в размере картинок косяк, они через раз уменьшаются даже вне спойлера, весь модуль изображений с ошибками работает, там если тень включена то она не работает при открытии картинки, кнопки слайдера тоже пропали, я писал на форуме ДЛЕ,


админ ни какой проблемы упорно не видит и говорит чтобы в шаблонах стили сами настраивали, и в версии 13.1 эта проблема тоже не решена.
я поставил твой код, картинки вроде уменьшаются сейчас до указанного в админке размера, но тень и кнопки слайдера по прежнему не работают.
Ты наверное видил этот мой пост на форук, вроде даже скрин мой взял из админки.
0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.