Новости Joomla

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

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

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

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

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

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 0 Ответов
  • 3199 Просмотров
*

Hronos

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Id материала в URL ZOO
« : 05.04.2013, 21:29:03 »
Здравствуйте, есть код(расположен ниже) который выводит id в url site.ru/category/id/name, а надо так site.ru/category/name-id.
Подскажите что подправить, чтобы так было.
Стоит Zoo 3.0.11
Joomla 3.0
php 5.4.12

Код
case 'item':
if (!isset($item_id))
$item_id = intval($menuparams->get('item_id', 0));
$item = $zooapp->table->item->get($item_id);

if (!isset($item)) {
$dosef = false;
$title = null;
break;
}

if (ZOO_SEF_SHOW_APP) {
$app_alias = $alias->application->translateIDToAlias($item->application_id);
$title[] = $app_alias;
}
if (ZOO_SEF_SHOW_TYPE) {
$title[] = $item->getType()->identifier;
}
$title[] = ZOO_SEF_ITEM;
if (in_array($item->getType()->identifier,explode (",", ZOO_SEF_DATE))) {
$language = & JFactory::getLanguage();
$oldLang = $language->setLanguage(JComponentHelper::getParams('com_languages')->get('site', 'en-GB'));
// $language->load();
$config =& JFactory::getConfig();
            $tzoffset = $data['config.offset'] = $config->get('config.offset');  
$date = $zooapp->date->create($item->created, $tzoffset);
foreach (explode ("-",ZOO_SEF_DATE_FORMAT) as $format) {
if(strpos($format, '%i')!== false) {
$format = str_replace('%i', sprintf("%03d",$item_id), $format);
}
$title[] = $zooapp->string->sluggify($date->Format($format));
}
$language->setLanguage($oldLang);
// $language->load();
} else {

if (ZOO_SEF_SHOW_PRIMARY && $item->getPrimaryCategoryId()) {
if (ZOO_SEF_CATEGORY_ALIAS) {
$title[] = $alias->category->translateIDToAlias((int)$item->getPrimaryCategoryId());
} else {
$category = $zooapp->table->category->get($item->getPrimaryCategoryId());
$title[] = $zooapp->string->sluggify($category->name);
}
}
if (isset($category_id)&&ZOO_SEF_SHOW_CATEGORY) {
if (ZOO_SEF_CATEGORY_ALIAS) {
$title[] = $alias->category->translateIDToAlias((int)$category_id);
} else {
$category = $zooapp->table->category->get($category_id);
$title[] = $zooapp->string->sluggify($category->name);
}
}
}


if (ZOO_SEF_ITEM_ALIAS) {
$title[] = $alias->item->translateIDToAlias((int)$item_id);
} else {
$title[] = $zooapp->string->sluggify($item->name);
}

shRemoveFromGETVarsList('category_id');
shRemoveFromGETVarsList('layout');
break;
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться