Не показывать изображение в определенной записи

#1 28 июля 2022 в 09:15

Всех приветствую.

Шаблон статьи таков, что первое изображение шириной 300px обтекает текстом, бываются статьи, где картинки идут сразу в начале текста и во всю ширину, следовательно, превью не требуется, но как сделать одним полем, чтобы его можно было отключить только в одной записи показ в записи, но в списке чтобы показывалось.

Спасибо

#2 28 июля 2022 в 10:12

Вижу два решения. 

Правки в шаблоне

Сделать свой шаблон записи типа контента. И при выводе фото делать проверку на наличие тега img, скажем, в первых 500 символах текста записи. И если таковой есть, то превью не выводить.

Небольшой компонент

Который добавит галочку в форму добавления типа контента, которая будет отключать показ фото при просмотре записи. По аналогии с отключением комментариев.

Первый проще.

Добавлено спустя 43 минуты

По первому варианту. На примере типа контента Новости с системным именем news.

Создаем копию файла templates\modern\content\default_item.tpl.php и называем его news_item.tpl.php

Редактируем файл, и после 

  1. foreach ($fieldset['fields'] as $field) {

ставим пару энтеров и вставляем

  1. //правки для скрытия изображения
  2. if($field['name'] == 'photo'){//photo - имя поля с фотографией
  3. if(strpos(mb_substr($item['content'],0,500), '<img') !== false){//500 - длина кусочка для поиска картинки
  4. continue;
  5. }
  6. }
  7. //правки для скрытия изображения

Чтобы получилось так

Изображение

Правки в коде прокомментированы, вроде все понятно. После и до правок.

Изображение

#3 28 июля 2022 в 10:44

Вижу два решения. 

Правки в шаблоне

Сделать свой шаблон записи типа контента. И при выводе фото делать проверку на наличие тега img, скажем, в первых 500 символах текста записи. И если таковой есть, то превью не выводить.

Небольшой компонент

Который добавит галочку в форму добавления типа контента, которая будет отключать показ фото при просмотре записи. По аналогии с отключением комментариев.

Первый проще.

По первому варианту. На примере типа контента Новости с системным именем news.

Создаем копию файла templates\modern\content\default_item.tpl.php и называем его news_item.tpl.php

спасибо

я так еще думал, создаю второе поле, его отображать только в списке, при нужде первое оставляем пустое, второе загружаем. Но возникает проблема с виджетами контента, там придется вбирать отображать два поля, насколько это будет работать корректно

#4 28 июля 2022 в 11:33

Менять структуру хранения данных ради внешнего вида не стоит. Внешний вид потом может понадобиться другой, и встанет вопрос, как обратно перенести все данные фотографий в одно поле.

Лучше решать вопрос по внешности отдельно, правками в шаблоне, стилями, отдельными компонентами.

#5 28 июля 2022 в 11:38

Менять структуру хранения данных ради внешнего вида не стоит. Внешний вид потом может понадобиться другой, и встанет вопрос, как обратно перенести все данные фотографий в одно поле.

Лучше решать вопрос по внешности отдельно, правками в шаблоне, стилями, отдельными компонентами.

Zau4man

согласен, я вообще подумал, что нехрен голову морочить из-за единичных статей, проще переверстать статью:)

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.