Достаем thumb и medium из доп. полей

Достаем thumb и medium из доп. полей

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


Установка:
1. В engine/modules/ открыть show.short.php, show.full.php, show.custom.php и найти:
$preg_safe_name = preg_quote( $value[0], "'" );

Добавить ниже:
### IDteam.info Миниатюры фото ###
$tpl->copy_template = strpos($tpl->copy_template, "{thumb_".$value[0]."}") !== 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_".$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 ? 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_".$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 ? strpos($xfieldsdata[$value[0]], "/thumbs/") === false && strpos($xfieldsdata[$value[0]], "/medium/") === false ? str_replace( "{full_".$value[0]."}", preg_replace("#(.*?)?([0-9]{4}-[0-9]{2}/)(.*?)#is", "/uploads/posts/$2$3", $xfieldsdata[$value[0]]), $tpl->copy_template ) : 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 будет 2 таких вхождения. При первом вхождении следует заменить в коде, что выше, все переменные $tpl на $tpl2. Это нужно для работы тегов в relatednews.tpl.

Готово!

Теперь можно использовать 3 новых тега:
{thumb_"имя"}
{medium_"имя"}
{full_"имя"}

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

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