Все для CMS » DataLife Engine » Хаки и модули » Исправление авто размера удалённых изображений dle 12.1

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

  • 0
Данный материал предоставлен сайтом All4Cms.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Исправление авто размера удалённых изображений 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 "";
			else return "Исправление авто размера удалённых изображений dle 12.1";

		}

		$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. Теперь проблема исчезла, картинки спокойно уменьшаются до заданного размера.


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


    админ ни какой проблемы упорно не видит и говорит чтобы в шаблонах стили сами настраивали, и в версии 13.1 эта проблема тоже не решена.
    я поставил твой код, картинки вроде уменьшаются сейчас до указанного в админке размера, но тень и кнопки слайдера по прежнему не работают.
    Ты наверное видил этот мой пост на форук, вроде даже скрин мой взял из админки.
    • Нравится
    • 1
  1. 2
    Аватар
    Привет, скрин я не вставлял, да и смотрю пост мой отредактировали и твою пост на форуме не видел, хотя тоже искал решение этой проблемы, но нашел путем старого кода, чуть конечно подправленного, чтобы связку не нарушить, а брал вроде еще с dle 10.x версии.
    По поводу еще этой проблемы, тут скорее всего еще связанно из-за протокола https
    Если картинка содержит его, то начинаются танцы с бубнами, когда по http все отлично работает и тень и слайдер все отлично пашет.
    • Нравится
    • 1
    • Ник: ruffer
    • 11 января 2019 03:58
    3
    Аватар
    KachalkinGeorg, Можешь написать код? и в каком файле менял что заменить надо.
    Я пробовал менять все файлы highlight от версии 11.3, на которой не было проблемы, но это не решило проблемы на 12.1
    • Нравится
    • 1
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.