AHristich Опубликовано 12 марта, 2022 Поделиться Опубликовано 12 марта, 2022 Итак, в продолжение ЭТОЙ темы. Задача для Страниц: 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. Оформление и т.п уже на ваше усмотрение и т.д. Решение ,т.е сам код, признаюсь не мое, но работает безотказно. by_ix 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 13 марта, 2022 Поделиться Опубликовано 13 марта, 2022 С кодом выше вроде как количество запросов к БД на странице может вырасти до ~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}} by_ix, AHristich, Xontero и 1 другой 3 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 14 марта, 2022 Автор Поделиться Опубликовано 14 марта, 2022 ZIKURIK 22 часа назад, ZIKURIK сказал: С кодом выше вроде как количество запросов к БД на странице может вырасти до ~100. Зачем обращаться к БД, когда можно получить данные о местоположении картинок из уже полученного массива.. Я же сказал что код не мой,к тому же у меня с рнр очень тяжко,от слова совсем...😬 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 4 февраля, 2023 Автор Поделиться Опубликовано 4 февраля, 2023 В 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;}} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
fRanta Опубликовано 3 декабря, 2023 Поделиться Опубликовано 3 декабря, 2023 Hello,can you make this tutorial in english? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 3 декабря, 2023 Поделиться Опубликовано 3 декабря, 2023 Приложение FX Pages успешно справляется с этой задачей (вевысти картинку). Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 3 декабря, 2023 Автор Поделиться Опубликовано 3 декабря, 2023 35 минут назад, Zero108 сказал: Приложение FX Pages успешно справляется с этой задачей (вевысти картинку). Немного не то. Этот код выводит картинку загруженную в сам текст поста/новости,а не ввиде загруженной миниатюры для поста/картинки. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 3 декабря, 2023 Поделиться Опубликовано 3 декабря, 2023 (изменено) Насколько я понял, выводится первая по списку картинка из загруженных в редактор. Изменено 3 декабря, 2023 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 3 декабря, 2023 Поделиться Опубликовано 3 декабря, 2023 2 часа назад, Zero108 сказал: Насколько я понял, выводится первая по списку картинка из загруженных в редактор. Нету там подобного вывода Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 3 декабря, 2023 Поделиться Опубликовано 3 декабря, 2023 5 часов назад, Exception сказал: Нету там подобного вывода Каждый день пользуюсь. aLEX49566 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.