Перейти к содержанию

FURL slug категорий страниц


 Поделиться

Рекомендуемые сообщения

Как "выдернуть" из ссылки на категорию страниц FURL slug чтобы можно было использовать в шаблонах страниц?

1511115037_2022-04-1616-40-55.png.0a18c91db2d3ed79a0af80d78da175b0.png

 

Например,я использую свой вывод загруженных в статье картинок и при отсутствии такой картинки выводится картинка-заглушка

<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 не знаю.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте. Такие furl можно доставить с помощью \IPS\Request::i()

Ссылка на комментарий
Поделиться на другие сайты

Или более простой способ: $category->full_path

Ссылка на комментарий
Поделиться на другие сайты

Павел 

а поподробнее можно как использовать это,я в рнр практически никак...

Ссылка на комментарий
Поделиться на другие сайты

В шаблоне категорий работает переменная $category, вот к ней и обращайтесь. Свойство full_path этой переменной (по сути объекта) и содержит название категории. 

Ссылка на комментарий
Поделиться на другие сайты

Павел Название категории (которое выводится в списке категорий и т.д,типа Общество,В мире)  у меня получается получить,а вот как получить из урл адреса https://site.ru/articles/Category_Name ?

Изменено пользователем Александр Христич
Ссылка на комментарий
Поделиться на другие сайты

Где именно вы хотите вывести furl?

Ссылка на комментарий
Поделиться на другие сайты

использую свой вывод загруженных в статье картинок 

               {{$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

Ссылка на комментарий
Поделиться на другие сайты

$record->container()->full_path

Попробуйте так.

Ссылка на комментарий
Поделиться на другие сайты

Павел Кирилл  Парни,огромнейшее спасибо за то что направили на истинный путь !!!

В итоге решил вопрос таким образом

в 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"}'>

Выводится все как и требовалось !
 

Кирилл  Ой,пардон,не сразу увидел ваш совет.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
 Поделиться

×
×
  • Создать...

Важная информация

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности