Новости Joomla

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

_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

  • Легенда
  • 10132
  • 1118 / 13
  • 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

  • Живу я здесь
  • 3370
  • 168 / 4
А я вот не согласен насчет плагина или базы. Плагин и база вещь глобальная и сервеная, а обрамление картинок все же вещь фронтальная. Можно и 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 »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой 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

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

Модуль последние материалы начиная с определенного

Автор marksetter

Ответов: 3
Просмотров: 378
Последний ответ 21.06.2022, 11:25:25
от fsv
Вопрос по роутеру: вложенность статей друг в друга

Автор effrit

Ответов: 6
Просмотров: 508
Последний ответ 30.09.2021, 10:17:15
от sivers
Вопрос по метатэгам и адресам в блоге

Автор ALEXRAW

Ответов: 1
Просмотров: 368
Последний ответ 22.02.2021, 11:24:12
от ALEXRAW
Вопрос по меню и Seo

Автор virtual-3

Ответов: 11
Просмотров: 486
Последний ответ 28.12.2020, 04:58:58
от rsn
Позиция fixed до определенного места, как сделать / css?

Автор kiev

Ответов: 22
Просмотров: 374
Последний ответ 26.11.2020, 15:34:16
от kiev