Новости 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 Гость просматривают эту тему.
  • 1 Ответов
  • 1371 Просмотров
*

designcenter

  • Новичок
  • 1
  • 0 / 0
Доброе время суток!
Учусь писать компоненты и столкнулся с таким вот Invlid token, причем вроде он совпадает с тем что посылаю в урл-е ссылки.
Что я мог напартачить?)

Компонент:
Код
jimport('joomla.application.component.controller');
$jinput = JFactory::getApplication()->input;
$jview = $jinput->getVar('view', 'cpanel' );
$jtask = $jinput->getVar('task', 'display');

require_once( JPATH_COMPONENT.DS.'controllers'.DS.$jview.'.php' );
$controllerClass = 'CsvsynchController'.ucfirst($jview);
$controller = new $controllerClass;
$controller->execute($jtask);
$controller->redirect();
Контроллер:
Код
class КомпонентControllerProduct extends КомпонентController {
public function display($cachable = false, $urlparams = false) {
$jinput = JFactory::getApplication()->input;
$_layout = $jinput->getCmd('layout', 'default');
$model = &$this->getModel('product');
$view = &$this->getView('product','html');
$view->setModel( $model, true );
$view->setLayout($_layout);
$view->display();
}
public function edit() {
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$model = &$this->getModel('product');
$view = &$this->getView('product', 'html');

$view->setModel( $model, true );
$view->setLayout('edit');
$view->display();
} ...

В темплейте product формируеться ссылка <a href="index.php?option=com_компонент&view=product&task=edit&<?php echo JSession::getFormToken()?>=1"...

Ну а уж в темлейте edit собственно и аукивается Invlid token

Заранее спасибо.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
ну и код..
зачем вы делаете в контроллере
Код: php
public function display($cachable = false, $urlparams = false) { 
$jinput = JFactory::getApplication()->input;
$_layout = $jinput->getCmd('layout', 'default');
$model = &$this->getModel('product');
$view = &$this->getView('product','html');
$view->setModel( $model, true );
$view->setLayout($_layout);
$view->display();
}
у класса контроллера от которого вы наследуетесь уже есть метод display который сам без вас это сделает..
По поводу токена. Зачем вы формируете токен в ссылке? Токен служит для защиты форм от CSRF атак!
Во всех остальных случаях, особенно при переходе по ссылке никто токен не использует!
Опишите подробно что вы хотите сделать, скорее всего ваша задача решается по другому!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Оптимизация вложености в компоненте

Автор kaksdelat

Ответов: 11
Просмотров: 2512
Последний ответ 16.07.2015, 23:55:15
от z3l
[Решено] Не сохраняются HTML тэги в самописном компоненте

Автор evgen777

Ответов: 5
Просмотров: 1408
Последний ответ 04.03.2014, 15:40:47
от evgen777
[Решено] Удаление ID из материалов в своём компоненте

Автор n_drey

Ответов: 9
Просмотров: 1650
Последний ответ 25.12.2013, 16:46:54
от n_drey
Кнопка "Я ИДУ" в компоненте EventList

Автор kichik

Ответов: 5
Просмотров: 2707
Последний ответ 30.05.2013, 12:53:24
от dagolovach
Дерево категорий в компоненте

Автор slav

Ответов: 7
Просмотров: 2740
Последний ответ 15.05.2013, 23:20:59
от slav