0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 245 Просмотров
*

_92

  • Новичок
  • 11
  • 0 / 0
здравствуйте

задача такая
- сейчас в материалах загружено большое количество изображений (т.е. в каждом материале прямо в редакторе имеем множество img)
- мне нужно настроить автоматизацию (обрамить img тегами div, span, ..), но только чтоб на страницах определенного раздела (/section_name/element_name_1/, /section_name/element_name_2/, ..) выводилось, например, div.. span.. /span.. div.. img.. img.. img.. img.. /div.. /div..

сейчас самым простым для себя нашел в /templates/*название шаблона*/html/com_content/.. делать проверку на uri, т.е. если мы находимся в section_name и и еще есть element_name_хх, то вызываем наше обрамление и вставляем внутрь наши img

вопрос - как правильно нужно сделать в данном случае?
*

effrit

  • Легенда
  • 9451
  • 1034 / 11
  • effrit.com
здра.
как работает - так и правильно :)
можно в плагин вынести эти же самые операции, а можно экспортировать дамп базы с нужными материалами и пройтись по ним регулярками с помощью Notepad++, чтобы не тратить ресурсы сервера на оборачивание каждый раз
*

_92

  • Новичок
  • 11
  • 0 / 0
можно в плагин вынести эти же самые операции
тоже про это думал
начал было изучать https://docs.joomla.org/Creating_a_Plugin_for_Joomla и сделал уже простой плагин
но до конца не могу сообразить логику работы будущего плагина - сможете описать кратко принцип работы для моей задачи

а можно экспортировать дамп базы с нужными материалами и пройтись по ним регулярками с помощью Notepad++, чтобы не тратить ресурсы сервера на оборачивание каждый раз
просто в дальнейшем материалы будут наполняться новыми img

а если, например, потратить время (или в других проектах с нуля) и перенести все img в медиа-менеджер по разделам
то как потом можно сделать, чтоб можно было в редакторе в нужном месте просто прописать, к примеру, [show_imgs_block folder="section_name"], наподобие шорткодов в wordpress
и на нужной странице вызывалась, к примеру, function show_imgs_block($folder ='')
« Последнее редактирование: 14.12.2016, 15:40:18 от _92 »
*

Septdir

  • Живу я здесь
  • 2987
  • 148 / 3
А я вот не согласен насчет плагина или базы. Плагин и база вещь глобальная и сервеная, а обрамление картинок все же вещь фронтальная. Можно и js написать и скинуть все на браузер.

Ну а если все же делать серверно то первое что нужно сделать это определить когда.
1. В момент сохранения - только плагин (content/onContentBeforeSave). Но с уже имеющимся материалами не прокатит, придется либо функцию написать, либо как писалось взять дамп и сделать замену.
2. В момент вывода - Два варианта либо плагин (content/onContentPrepare) либо переопределить шаблон com_content(делать нечно подобное в index не очень хорошая затея).

Второе где?
Тут все зависит от вас. На мой взгляд наиболее удобным было бы цепляться к категории. Но тут многое зависит от самой задачи. Так что просто напишите себе список где вам это нужно и ответ не заставит себя ждать.

Третье реализация.
Ну тут все просто используем регулярку
Код: php
$text = 'Image reular <img alt="Joomla! Documentation" src="https://docs.joomla.org/skins/foreground/joomla_logo_small.png" style="max-width: 64px;height:auto; max-height:36px; display: inline-block; vertical-align:middle;">';
$text = preg_replace('/(<img[^>]+>)/', '<div><span>$text = 'Image reular <img alt="Joomla! Documentation" src="https://docs.joomla.org/skins/foreground/joomla_logo_small.png" style="max-width: 64px;height:auto; max-height:36px; display: inline-block; vertical-align:middle;">';
$text = preg_replace('/(<img[^>]+>)/', '<div><span>$1</span></div>', $text);
echo $text;
</span></div>', $text);
echo $text;
« Последнее редактирование: 14.12.2016, 15:47:35 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
Мои Контакты | Мой GitHub | Workshop
*

_92

  • Новичок
  • 11
  • 0 / 0
либо плагин (content/onContentPrepare)
1 скажите, в чем разница если делать через плагин и function onContentPrepare() или через /templates/*название шаблона*/html/com_content/article/default.php с условием <?php if ($this->item->catid == '*id-категории*'): ?>
2 имеет ли значение в этом случае, если включено кэширование в настройках админки
*

Septdir

  • Живу я здесь
  • 2987
  • 148 / 3
1 скажите, в чем разница если делать через плагин и function onContentPrepare() или через /templates/*название шаблона*/html/com_content/article/default.php с условием <?php if ($this->item->catid == '*id-категории*'): ?>
2 имеет ли значение в этом случае, если включено кэширование в настройках админки
1. Разница в том когда и где это происходит. onContentPrepare() выполняется еще до самого вывода и меняет сам текст ну или что вы там меняете и работает не только в материале но и в категории, архиве израбнных, может даже в некоторых модулях. Ну и соответственно по умолчанию не зависит от шаблона.
Переопределение делается для каждой вьюхи отдельно (отдельно категория отдельно материал) и привязано к определенному шаблону.
2. По идеи нет.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
Мои Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос по компоненту добавления отзывов JoomTestimonials

Автор manexat

Ответов: 0
Просмотров: 49
Последний ответ 17.04.2019, 19:11:54
от manexat
Вопрос по выводу материалов (Блог категории)

Автор Igoritaly

Ответов: 13
Просмотров: 1744
Последний ответ 15.04.2019, 21:27:22
от sivers
Вопрос по лицензии

Автор elenaburd

Ответов: 4
Просмотров: 142
Последний ответ 12.03.2019, 17:07:49
от elenaburd
Вопрос по к2

Автор Pizzadox

Ответов: 4
Просмотров: 109
Последний ответ 05.03.2019, 13:35:22
от sivers
Вопрос по шаблону

Автор Macrurus

Ответов: 5
Просмотров: 157
Последний ответ 03.03.2019, 10:58:43
от Macrurus