Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

Rivvil

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Всем привет.
Уже не первый раз при написании модулей с динамическим содержимым сталкиваюсь с проблемой. При отключенном кэше все работает нормально, при включении в глобальных настройках Стандартного кэша начинаются странные вещи.
Модули просты до безобразия. К примеру, последним делал модуль для отображения результатов гуглевского поиска. То есть все, что делает модуль - вставляет на страницу div, в который уже потом через JS (скрипты я встраиваю через $document->addScriptDeclaration) с Google подгружаются данные. При включении кэша первый поисковый запрос обрабатывается нормально. При следующем же запросе, судя по всему, никакие скрипты не выполняются, из Google ничего не приходит. На странице остается "голый" div.
В настройках модуля присутствуют параметры управления кэшем:
Код
<field
name="cache"
type="list"
default="1"
label="COM_MODULES_FIELD_CACHING_LABEL"
description="COM_MODULES_FIELD_CACHING_DESC">
<option value="1">JGLOBAL_USE_GLOBAL</option>
<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
</field>
<field
name="cache_time"
type="text"
default="900"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
Однако выключение кэша через эти параметры не дает никакого положительного эффекта.
Самое простое, что приходит на ум в данном случае - как-то программно запретить кешировать мой модуль (все равно данные всякий раз будут на лету генерироваться). Но как это сделать?
Сомнения внушает то, что не выполняются клиентские скрипты, которые даже при включенном кэше находятся на странице.
Может, я вообще не понимаю проблемы?
*

co11ter

  • Захожу иногда
  • 151
  • 8 / 0
Re: Проблемы с кэшированием модулей
« Ответ #1 : 03.03.2012, 15:12:41 »
версия Joomla?

Для Joomla 1.5 в XML файл модуля вставляем
Код
<param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
<option value="1">Use global</option>
<option value="0">No caching</option>
</param>
В настройках модуля отключаем кэширование
« Последнее редактирование: 03.03.2012, 15:18:46 от co11ter »
*

Rivvil

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Проблемы с кэшированием модулей
« Ответ #2 : 03.03.2012, 15:39:43 »
версия Joomla?
Извиняюсь, совсем забыл. Joomla 1.7.3
Для Joomla 1.5 в XML файл модуля вставляем
У меня в XML-файле уже прописана подобная конструкция (только для соответствующей версии Joomla).
В настройках модуля отключаем кэширование
Это я уже пробовал, отключение кэша в настройках модуля проблем не решает.
Модули работают нормально только при отключении кэша в глобальных настройках.
*

genetics

  • Захожу иногда
  • 51
  • 5 / 0
  • «GeneticsPro»
Re: Проблемы с кэшированием модулей
« Ответ #3 : 10.05.2013, 15:59:45 »
Rivvil. Вы решили эту проблему?
Если да, то поделитесь как...
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
Re: Проблемы с кэшированием модулей
« Ответ #4 : 12.05.2013, 19:34:59 »
Если входные параметры получаете из jrequest например, то приходится сразу отключать кеш в модуле... Joomla 2.5

я например делаю так
Код
<field name="cache" type="hidden"
default="0"
label="COM_MODULES_FIELD_CACHING_LABEL"
description="COM_MODULES_FIELD_CACHING_DESC"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

далее добавляем параметр кеша свой

Код
<field name="cached" type="list"
default="1"
label="COM_MODULES_FIELD_CACHING_LABEL"
description="COM_MODULES_FIELD_CACHING_DESC"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

далее в модуле формируем нужный нам ключ кеширования после получения параметров и переменных c jrequest

Код
$cached = $params->get( 'cached', 1 );
$key = 'mod_mymodule.'.$var1.'.'.$var2.'.'.$var3.'.'.$var4; //и т.п. - это ключ кеширования
$cache = JFactory::getCache('mod_mymodule', 'output'); //папка для кеша + группа кеша (группу можно не указывать)
if($cached==1){
$cache->setCaching(1);
}

Код
if (!($output = $cache->get($key))) { //если кеша нет
ob_start();
/* грузим шаблон */
require(JModuleHelper::getLayoutPath('mod_mymodule',$layout));
$output = ob_get_clean();
$cache->store($output, $key);
}
echo $output; //вывод если кеш есть


Цитировать
Самое простое, что приходит на ум в данном случае - как-то программно запретить кешировать мой модуль
тут скорее не в модуле проблемы, а в компонентах или плагинах которые вы используете вместе с модулем
либо получаете данные прямо в шалоне а не во входном файле модуля (как предположение JModuleHelper::getLayoutPath - возможно кеширует данные дополнительно, ну это предположение и ничего больше)...

Поделился с тем, чем сталкивался при разработке модулей. Возможно кому-то поможет
« Последнее редактирование: 13.05.2013, 05:37:20 от artlux »
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нумерация модулей

Автор fiter

Ответов: 1
Просмотров: 1375
Последний ответ 15.07.2014, 02:05:53
от fiter
Получить количество активных модулей в определенной позиции

Автор zemelea

Ответов: 2
Просмотров: 2069
Последний ответ 18.02.2014, 11:13:05
от Aleks.Denezh
параметры в XML модулей

Автор ht1515

Ответов: 6
Просмотров: 4916
Последний ответ 11.02.2013, 19:41:00
от v-idea
Где находится php скрипт формирования модулей <jdoc:include type="modules" name="menu" style="xhtml

Автор ladan

Ответов: 6
Просмотров: 4044
Последний ответ 10.12.2012, 12:55:10
от ladan
Предложение разработчикам модулей включать параметр выбора layout'а модуля

Автор danik.html

Ответов: 8
Просмотров: 15695
Последний ответ 01.11.2011, 18:44:19
от smart