Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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

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

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}}

 

  • Author

ZIKURIK 

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

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

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

  • 10 месяцев спустя...
  • Author
В 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
35 минут назад, Zero108 сказал:

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

 

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

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.