Вытаскиваем thumb и medium из доп. полей DLE

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Вытаскиваем thumb и medium из доп. полей DLE
Представляем хак для DLE Вытаскиваем thumb и medium из доп. полей, чтобы получить картинки маленького и увеличенного размеры из дополнительных полей.

Описание:
Пользователь создавал и настраивал свою площадку, и столкнулся с одним не удобным моментом, а именно, при добавлении новостей картинки в дополнительных полях имели все размеры одного размера, пример тега: [xfvalue_"имя поля"]. Чтобы получить картинку разного размера, был придуман хак для DLE достаем thumb и medium из доп. полей.

Код проверен на DLE 11 и возможно на DLE 11.2

Как известно в DLE, уменьшенные картинки создаются в двух размерах (thumb и medium), в результате появилось решение сделать удобное решение для решения данной проблемы. Итак:

Установка.
Потребует отредактировать 3 файла движка: show.short.php, show.full.php (2 раза) и show.custom.php, которые лежат в /engine/modules. В каждом из этих файлов находим совпадение такого кода:

$preg_safe_name = preg_quote( $value[0], "'" );


И на следующей строке вставляем:

### IDteam.info Миниатюры фото ###
$tpl->copy_template = strpos($tpl->copy_template, "{thumb_".$preg_safe_name."}") !== false ? strpos($xfieldsdata[$value[0]], "/thumbs/") === false && is_file(ROOT_DIR . preg_replace("#.*?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$1thumbs/$3", $xfieldsdata[$value[0]])) ? str_replace( "{thumb_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2thumbs/$4", $xfieldsdata[$value[0]]), $tpl->copy_template ) : str_replace( "{thumb_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2$4", $xfieldsdata[$value[0]]), $tpl->copy_template) : $tpl->copy_template;
$tpl->copy_template = strpos($tpl->copy_template, "{medium_".$preg_safe_name."}") !== false ? strpos($xfieldsdata[$value[0]], "/medium/") === false && is_file(ROOT_DIR . preg_replace("#.*?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$1medium/$3", $xfieldsdata[$value[0]])) ? str_replace( "{medium_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2medium/$4", $xfieldsdata[$value[0]]), $tpl->copy_template ) : str_replace( "{medium_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2$4", $xfieldsdata[$value[0]]), $tpl->copy_template) : $tpl->copy_template;
$tpl->copy_template = strpos($tpl->copy_template, "{full_".$preg_safe_name."}") !== false ? strpos($xfieldsdata[$value[0]], "/thumbs/") === false && strpos($xfieldsdata[$value[0]], "/medium/") === false ? str_replace( "{full_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(.*?)#is", "/uploads/posts/$2$3", $xfieldsdata[$value[0]]), $tpl->copy_template ) : str_replace( "{full_".$preg_safe_name."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2$4", $xfieldsdata[$value[0]]), $tpl->copy_template ) : $tpl->copy_template;


ВНИМАНИЕ! Для show.full.php в первом совпадении заменить в коде выше все переменные $tpl на $tpl2. Это нужно для работы тегов в relatednews.tpl
<a href="http://www.dle9.com/">www.dle9.com</a>


Что же дальше? После проделанных замен вы можете использовать 3 новых тега:
{thumb_"имя"}, {medium_"имя"}, {full_"имя"}


Где "имя" является названием вашего доп. поля с фото. Как вы уже догадались может быть масса полей с разными фото и вы сможете в нужном месте шаблона доставать фото необходимого размера!

Также хочу обратить внимание, что не важно, какая картинка была добавлена в доп. поле (ссылка на миниатюру или на большое фото), вы всё равно получите нужный размер. Все возвращаемые ссылки будут вида:
 "/uploads/posts/2016-01/фото.формат"


Предлагаем хаки для DLE, как хак dle скачать Вытаскиваем thumb и medium из доп. полей DLE по следующей ссылке
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак DLE Вывод данных количество скаченного в профиле« Далее Форма добавления новостей для разных групп юзеров
Добавление комментарияОставить комментарий