Александр Христич 11 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 Как "выдернуть" из ссылки на категорию страниц FURL slug чтобы можно было использовать в шаблонах страниц? Например,я использую свой вывод загруженных в статье картинок и при отсутствии такой картинки выводится картинка-заглушка <img class='ipsImage' src='путь к картинке-заглушке'> Но естественно она получается абсолютно одинаковой для всех категорий,что не очень красиво. Загорелся идеей сделать для каждой категории свою заглушку. 1. В корне сайта создал папку images. 2. Сделал картинку-заглушку с именем категории В мире,т.е В мире.webp и загрузил в созданную папку images 3.В шаблоне recordRow прописал <img class='ipsImage' src='/images/{$record->container()->_title}.webp'> 4. Второй пункт повторил и для других заглушек ( Общество.webp,Политика.webp ну и т.д) Все вроде бы работает как надо,но... Мне кажется что правильнее было бы заглушки загрузить в ресурсы темы. Но каким образом должен тогда выглядеть код (в моем случае) <img class='ipsImage' src='{resource="?????" app="cms" location="front"}'> потому что в таком виде <img class='ipsImage' src='{resource="{$record->container()->_title}.webp" app="cms" location="front"}'> вообще ничего не выводится. Или хотя бы в названиях картинок применять все-таки не название категории а ее furl,но как выдернуть этот furl не знаю. Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл 191 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 Здравствуйте. Такие furl можно доставить с помощью \IPS\Request::i() 1 1 Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Павел 148 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 Или более простой способ: $category->full_path 1 Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Александр Христич 11 Опубликовано 16 апреля, 2022 Автор Жалоба Поделиться Опубликовано 16 апреля, 2022 Павел а поподробнее можно как использовать это,я в рнр практически никак... Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Павел 148 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 В шаблоне категорий работает переменная $category, вот к ней и обращайтесь. Свойство full_path этой переменной (по сути объекта) и содержит название категории. Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Александр Христич 11 Опубликовано 16 апреля, 2022 Автор Жалоба Поделиться Опубликовано 16 апреля, 2022 (изменено) Павел Название категории (которое выводится в списке категорий и т.д,типа Общество,В мире) у меня получается получить,а вот как получить из урл адреса https://site.ru/articles/Category_Name ? Изменено 16 апреля, 2022 пользователем Александр Христич Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Павел 148 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 Где именно вы хотите вывести furl? 1 Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Александр Христич 11 Опубликовано 16 апреля, 2022 Автор Жалоба Поделиться Опубликовано 16 апреля, 2022 использую свой вывод загруженных в статье картинок {{$location = $record != NULL ? $record : ($row->post != NULL ? $row->post : $row);}} {{$field_content = $row->post == NULL ? 'field_'.$location->database()->field_content : $row->post; $field_content = $row->post == NULL ? $location->$field_content : $field_content;}} {{if \preg_match( '#<fileStore.core_Attachment>\S+(?:jpg|jpeg|png|webp)#', $field_content, $image_url )}} {{$image_url = \str_replace('<fileStore.core_Attachment>', \IPS\File::getClass('core_Attachment')->baseUrl(), $image_url[0]);}} {{if settings.lazy_load_enabled}} <a href="{$record->url( "getPrefComment" )}" title="{lang="read_more_about" sprintf="$record->_title"}" > <img class='ipsImage' src='{expression="\IPS\Text\Parser::blankImage()"}' alt='{wordbreak="$record->_title"}' data-src='{file="$image_url" extension="core_Attachment"}'> </a> {{else}} <a href="{$record->url( "getPrefComment" )}" title="{lang="read_more_about" sprintf="$record->_title"}" > <img class='ipsImage' alt='{wordbreak="$record->_title"}' src='{file="$image_url" extension="core_Attachment"}'> </a> {{endif}} {{else}} <img class='ipsImage' src='путь к картинке-заглушке'> {{endif}} для того чтобы в каждой категории выводилась своя картинка-заглушка необходмио этой заглушке присвоить либо id категории либо название категории (из url) .То есть для категории В мире урл выглядет нттр://сайт.ру/articles/v-mire и картинка-заглушка должна иметь такое же название v-mire. Павел На Страницах в файлах entry и recordRow Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл 191 Опубликовано 16 апреля, 2022 Жалоба Поделиться Опубликовано 16 апреля, 2022 $record->container()->full_path Попробуйте так. 1 Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Александр Христич 11 Опубликовано 16 апреля, 2022 Автор Жалоба Поделиться Опубликовано 16 апреля, 2022 Павел Кирилл Парни,огромнейшее спасибо за то что направили на истинный путь !!! В итоге решил вопрос таким образом в entry.phtml <img class='ipsImage' src='{resource="loaders/{$record->container()->full_path}.jpg" app="cms" location="front"}'> в recordRow.phtml <img class='ipsImage' src='{resource="loaders/{$row->container()->full_path}.jpg" app="cms" location="front"}'> Выводится все как и требовалось ! Кирилл Ой,пардон,не сразу увидел ваш совет. 1 Обратиться Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.