При добавлении картинки в дополнительное поле, мы её получаем всего в одном размере: [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
Опубликовал: Дмитрий
а сейчас может Зарегистрируемся? это быстро!
Навигация
Реклама
ТОП 7 Недели Портала
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.