Jump to content

Featured Replies

Posted
comment_178697

Итак, в продолжение ЭТОЙ темы.

Задача для Страниц:

1. Если в статье есть загруженная в редакторе картинка

1674315875_2022-03-1216-51-01.png.da9d565dd7af29279bb2a81f91664d7c.png

 

вывести ее в качестве миниатюры на странице категории

 

134187238_2022-03-1216-52-01.png.945fc61d4d9fcc913df97b236451fffd.png

 

2. Если статья без изображений,то вывести картинку-заглушку

 

844733705__.png.d9e65b9bcfe500f605f96f31dfbdaffc.png

 

Решение для Страниц:

код

            {{try{}}
                {{$attachId = \IPS\Db::i()->select( 'attachment_id', 'core_attachments_map', array( 'location_key=? AND id1=?', 'cms_Records2', $row->primary_id_field ) )->first();}}
                {{$location = \IPS\Db::i()->select( 'attach_location', 'core_attachments', array( 'attach_id=?', $attachId ) )->first();}}
                <img src="{file="$location" extension="core_Attachment"}" class="ipsImage" />
                {{} catch( \Exception $ex ){}}
                <img class="ipsImage" src="путь к картинке-заглушке">
            {{ } }}	

вставляем в нужное для вас место в файлах entry.php и recordRow.php.

Внимание !!!

для entry.php меняем $row->primary_id_field на $record->primary_id_field

параметр 'cms_Records2' нужно смотреть в БД форума в таблице _core_attachments_map

 

Таже самая задача для Форума

1. Вывод загруженной картинки из топика в качестве миниатюры

94295093__.thumb.png.7ee25bc01d3d71af51462d0c494b2c95.png

 2. Так же и вывод картинки-заглушки.

Решение для форума

код

{{try{}}
	{{$attachId = \IPS\Db::i()->select( 'attachment_id', 'core_attachments_map', array( 'location_key=? AND id2=?', 'forums_Forums', $row->topic_firstpost ) )->first();}}
	{{$location = \IPS\Db::i()->select( 'attach_location', 'core_attachments', array( 'attach_id=?', $attachId ) )->first();}}
	<img src="{file="$location" extension="core_Attachment"}" class="ipsImage" />
{{} catch( \Exception $ex ){}}
	<img class="ipsImage" src="путь к картинке-заглушке">
{{ } }}

вставляем в нужное для вас место в файлах шаблонов forums/front/forums/    topicRow и topicRowSnnipet.

Оформление и т.п уже на ваше усмотрение и т.д.

Решение ,т.е сам код, признаюсь не мое, но работает безотказно.

comment_178727

С кодом выше вроде как количество запросов к БД на странице может вырасти до ~100. Зачем обращаться к БД, когда можно получить данные о местоположении картинок из уже полученного массива, мне не понятно.
Как вариант тогда дополню своим кодом с ленивой загрузкой изображений, код работает в любом из шаблонов (пусть код сам определит где он находится 😄 )
Страницы: entry и recordRow / Форумы: topicRow и topicRowSnnipet

{{$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}}
  <img class='ipsImage' src='{expression="\IPS\Text\Parser::blankImage()"}' data-src='{file="$image_url" extension="core_Attachment"}'>
  {{else}}
  <img class='ipsImage' src='{file="$image_url" extension="core_Attachment"}'>
  {{endif}}
{{else}}
  <img class='ipsImage' src='ССЫЛКА_НА_ЗАГЛУШКУ'>
{{endif}}

 

  • Author
comment_178749

ZIKURIK 

22 часа назад, ZIKURIK сказал:

С кодом выше вроде как количество запросов к БД на странице может вырасти до ~100. Зачем обращаться к БД, когда можно получить данные о местоположении картинок из уже полученного массива..

Я же сказал что код не мой,к тому же у меня с рнр очень тяжко,от слова совсем...😬

  • 10 месяцев спустя...
  • Author
comment_189992
В 13.03.2022 в 20:58, Exception сказал:

С кодом выше вроде как количество запросов к БД на странице может вырасти до ~100. Зачем обращаться к БД, когда можно получить данные о местоположении картинок из уже полученного массива, мне не понятно.
Как вариант тогда дополню своим кодом с ленивой загрузкой изображений, код работает в любом из шаблонов (пусть код сам определит где он находится 😄 )
Страницы: entry и recordRow / Форумы: topicRow и topicRowSnnipet

{{$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}}
  <img class='ipsImage' src='{expression="\IPS\Text\Parser::blankImage()"}' data-src='{file="$image_url" extension="core_Attachment"}'>
  {{else}}
  <img class='ipsImage' src='{file="$image_url" extension="core_Attachment"}'>
  {{endif}}
{{else}}
  <img class='ipsImage' src='ССЫЛКА_НА_ЗАГЛУШКУ'>
{{endif}}

 

Подскажите,как этот код подогнать для файла forums/front/global/row.html.

Ошибку вызывают имено строки (после замены $row на $topic)

{{$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;}}
  • 9 месяцев спустя...
  • Author
comment_197913
35 минут назад, Zero108 сказал:

Приложение FX Pages успешно справляется с этой задачей (вевысти картинку).

 

Немного не то.

Этот код выводит картинку загруженную в сам текст поста/новости,а не ввиде загруженной миниатюры для поста/картинки.

comment_197915

1.thumb.jpg.19ea6031e6f804da2d3e845dfe0c597d.jpg

2.thumb.jpg.e5e7a5dd7bbeaaf049667493c210523d.jpg

Насколько я понял, выводится первая по списку картинка из загруженных в редактор.

Edited by Zero108

comment_197920
2 часа назад, Zero108 сказал:

1.thumb.jpg.19ea6031e6f804da2d3e845dfe0c597d.jpg

2.thumb.jpg.e5e7a5dd7bbeaaf049667493c210523d.jpg

Насколько я понял, выводится первая по списку картинка из загруженных в редактор.

Нету там подобного вывода

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.