DLE — Достаем thumb и medium из доп. полей | We get thumb and medium from the additional fields
Распечатать

DLE — Достаем thumb и medium из доп. полей | We get thumb and medium from the additional fields

DLE — Достаем thumb и medium из доп. полей | We get thumb and medium from the additional fields IDteam" />

При добавлении картинки в дополнительное поле, мы её получаем всего в одном размере: [xfvalue_"имя поля"]. Но как получить картинку иного размера?


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


Итак:

Будем редактировать 3 файла движка: show.short.php, show.full.php (2 раза) и show.custom.php, которые лежат в /engine/modules.


В каждом из этих файлов находим совпадение такого кода:

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

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

### Миниатюры фото ###
$tpl->copy_template = strpos($tpl->copy_template, "{thumb_".$value[0]."}") !== 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_".$value[0]."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2thumbs/$4", $xfieldsdata[$value[0]]), $tpl->copy_template) : str_replace("{thumb_".$value[0]."}", 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_".$value[0]."}") !== 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_".$value[0]."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(?:thumbs/|medium/)?(.*?)#is", "/uploads/posts/$2medium/$4", $xfieldsdata[$value[0]]), $tpl->copy_template) : str_replace("{medium_".$value[0]."}", 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_".$value[0]."}") !== false ? str_replace("{full_".$value[0]."}", 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.


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


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


CMS: DLE

Категория: Хаки, плагины, баг-фиксы

Версия движка: 10-13

Язык: Русский

Автор: IDteam

Опубликовал: Дмитрий


Подождите, сейчас файл будет подготовлен, через
секунд Вы получите ссылку на скачивание,
а сейчас может Зарегистрируемся? wink это быстро!

Имя:*
E-Mail:
Кликните на изображение чтобы обновить код, если он неразборчив


Реклама

Copyright © 2023 | Проект GiG-LiFe.ru
Материалы на этом сайте взяты из общедоступных источников и могут быть удалены по просьбе авторов, при наличии доказательства авторства.
Materials on this site are taken from public sources and may be deleted at the request of their authors when there is evidence of authorship.