Александр Христич 11 Posted April 16, 2022 Report Share Posted April 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 не знаю. Обратиться Quote Link to comment Share on other sites More sharing options...
Кирилл 175 Posted April 16, 2022 Report Share Posted April 16, 2022 Здравствуйте. Такие furl можно доставить с помощью \IPS\Request::i() 1 1 Обратиться Quote Link to comment Share on other sites More sharing options...
Павел 139 Posted April 16, 2022 Report Share Posted April 16, 2022 Или более простой способ: $category->full_path 1 Обратиться Quote Link to comment Share on other sites More sharing options...
Александр Христич 11 Posted April 16, 2022 Author Report Share Posted April 16, 2022 Павел а поподробнее можно как использовать это,я в рнр практически никак... Обратиться Quote Link to comment Share on other sites More sharing options...
Павел 139 Posted April 16, 2022 Report Share Posted April 16, 2022 В шаблоне категорий работает переменная $category, вот к ней и обращайтесь. Свойство full_path этой переменной (по сути объекта) и содержит название категории. Обратиться Quote Link to comment Share on other sites More sharing options...
Александр Христич 11 Posted April 16, 2022 Author Report Share Posted April 16, 2022 (edited) Павел Название категории (которое выводится в списке категорий и т.д,типа Общество,В мире) у меня получается получить,а вот как получить из урл адреса https://site.ru/articles/Category_Name ? Edited April 16, 2022 by Александр Христич Обратиться Quote Link to comment Share on other sites More sharing options...
Павел 139 Posted April 16, 2022 Report Share Posted April 16, 2022 Где именно вы хотите вывести furl? 1 Обратиться Quote Link to comment Share on other sites More sharing options...
Александр Христич 11 Posted April 16, 2022 Author Report Share Posted April 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 Обратиться Quote Link to comment Share on other sites More sharing options...
Кирилл 175 Posted April 16, 2022 Report Share Posted April 16, 2022 $record->container()->full_path Попробуйте так. 1 Обратиться Quote Link to comment Share on other sites More sharing options...
Александр Христич 11 Posted April 16, 2022 Author Report Share Posted April 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 Обратиться Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.