Posted 12 марта, 20222 yr comment_178697 Итак, в продолжение ЭТОЙ темы. Задача для Страниц: 1. Если в статье есть загруженная в редакторе картинка вывести ее в качестве миниатюры на странице категории 2. Если статья без изображений,то вывести картинку-заглушку Решение для Страниц: код {{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. Вывод загруженной картинки из топика в качестве миниатюры 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. Оформление и т.п уже на ваше усмотрение и т.д. Решение ,т.е сам код, признаюсь не мое, но работает безотказно. Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/ Share on other sites Больше вариантов
13 марта, 20222 yr 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}} Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=178727 Share on other sites Больше вариантов
14 марта, 20222 yr Author comment_178749 ZIKURIK 22 часа назад, ZIKURIK сказал: С кодом выше вроде как количество запросов к БД на странице может вырасти до ~100. Зачем обращаться к БД, когда можно получить данные о местоположении картинок из уже полученного массива.. Я же сказал что код не мой,к тому же у меня с рнр очень тяжко,от слова совсем...😬 Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=178749 Share on other sites Больше вариантов
4 февраля, 20231 yr 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;}} Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=189992 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 comment_197900 Hello,can you make this tutorial in english? Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197900 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 comment_197908 Приложение FX Pages успешно справляется с этой задачей (вевысти картинку). Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197908 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 Author comment_197913 35 минут назад, Zero108 сказал: Приложение FX Pages успешно справляется с этой задачей (вевысти картинку). Немного не то. Этот код выводит картинку загруженную в сам текст поста/новости,а не ввиде загруженной миниатюры для поста/картинки. Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197913 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 comment_197915 Насколько я понял, выводится первая по списку картинка из загруженных в редактор. Edited 3 декабря, 2023Dec 3 by Zero108 Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197915 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 comment_197920 2 часа назад, Zero108 сказал: Насколько я понял, выводится первая по списку картинка из загруженных в редактор. Нету там подобного вывода Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197920 Share on other sites Больше вариантов
3 декабря, 2023Dec 3 comment_197925 5 часов назад, Exception сказал: Нету там подобного вывода Каждый день пользуюсь. Link to comment https://ipbmafia.ru/topic/24189-izobrazheniya/?&do=findComment&comment=197925 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.
Note: Your post will require moderator approval before it will be visible.