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

Изображения.


AHristich

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

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

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

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.

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

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

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

С кодом выше вроде как количество запросов к БД на странице может вырасти до ~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}}

 

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

ZIKURIK 

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

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

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

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

  • 10 месяцев спустя...
В 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 месяцев спустя...

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

 

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

35 минут назад, Zero108 сказал:

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

 

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

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

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

1.thumb.jpg.19ea6031e6f804da2d3e845dfe0c597d.jpg

2.thumb.jpg.e5e7a5dd7bbeaaf049667493c210523d.jpg

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

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

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

1.thumb.jpg.19ea6031e6f804da2d3e845dfe0c597d.jpg

2.thumb.jpg.e5e7a5dd7bbeaaf049667493c210523d.jpg

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

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

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

5 часов назад, Exception сказал:

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

Каждый день пользуюсь.

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

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

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

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

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

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

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...