Jump to content

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


 Share

Recommended Posts

Как "выдернуть" из ссылки на категорию страниц 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 не знаю.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Edited by Александр Христич
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...

Important Information

By using our site you agree to our Privacy Policy