Новости 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 Ответов
  • 3592 Просмотров
*

Зверушь

  • Новичок
  • 5
  • 0 / 0
  • Учусь
Здравствуйте. Подскажите пожалуйста с пагинацией в Joomla 2.5
Пишу компонент, где в публичной части идет загрузка элементов из БД и их вывод. Конкретно - это гостевая книга. Вывод панели пагинации я осуществил, но вот задача... Я хочу, чтобы пользователь не мог выбирать сколько элементов выводить на одну страницу. Я хочу это количество жестко прописать в коде. Но куда его писать?
Объект пагинации получаю в классе представления при помощи $this->getPagination(); Куда вписать количество элементов на страницу? Смотрел родительский класс, этот метод не принимает параметров....
Пробовал переопределять этот метод, игрался с строкой $page = new JPagination($this->getTotal(), $this->getStart(), $limit); но какие значения я бы ни вписывал в параметры, получается в итоге черти что...
Я в растерянности, подскажите куда копать и что я делал не так.

Заранее большое спасибо!
« Последнее редактирование: 10.01.2014, 16:15:37 от b2z »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Не совсем понял что вы не хотите что бы пользователь выбирал? Вы что то не закончили фразу!
Вы имеете ввиду что не хотите что бы юзер мог выбирать количество записей на странице через select?
*

Зверушь

  • Новичок
  • 5
  • 0 / 0
  • Учусь
Да, правильно.
Извините, если не совсем понятно описал проблему.
Я хочу, чтобы этот select с выбором количества сообщений на одну страницу не был доступен в пользовательской части. Но, в любом случае, какое-то максимально допустимое количество элементов на одной странице должно быть задано.

Пока что методом тыка добился следующего: в модели переопределяю метод getPagination() :
Код: php
public function getPagination() {
$this->setState('list.limit', 10); //10 - это максимальное количество элементов на одну страницу
return parent::getPagination();
}
В итоге в шаблоне метод $this->pagination->getPagesLinks(); правильно выводит количество страниц, но все они ведут на 1ю страницу, на которой не 10 элементов, а все 20 - как задано по умолчанию...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Так просто не выводите этот селект!
он же выводится отдельно $this->pagination->getPagesLinks(); - эти вывод самой пагинации
$this->pagination->getPagesLinks(); - просто вывод только пагинации
$this->paginaion->getLimitBox(); - вывод этого лимит бокса!

Вообще вы неправильно делаете модель в модели у вас должно быть так:
Код: php
class ИмяКомпонентаModelИмяВида extends JModelList
{
private $input;
public function __construct( $config = array() )
{
parent::__construct( $config );
$this->input = JFactory::getApplication()->input;
}

protected function getListQuery()
{
$this->setState( 'list.start', $this->input->get( 'start' ) );
$this->setState( 'list.limit', 10 );
$query = $this->getDbo()->getQuery( true );
$query->select( '*' )->from( '#__table' )->where( 'published=1' );
return $query;
}
}
все! в методе getListQuery() просто запрос для того что бы вывести записи! Возврат только запроса!
в виде:
Код: php
class ИмяКомпонентаViewИмяВидаextends JViewLegacy
{
protected $items;
protected $pagination;
public function display( $tpl = null )
{
$this->items = $this->get( 'Items' ); //получаем список записей
$this->pagination = $this->get( 'Pagination' ); //получаем пагинацию
parent::display( $tpl );
}
}

в шаблоне вида перебираем записи
Код: php
<?php foreach ( $this->items as $item ): ?>
<?php endforeach; ?>
//выводим пагинацию
<?php echo $this->pagination->getPagesLinks(); ?>
*

Зверушь

  • Новичок
  • 5
  • 0 / 0
  • Учусь
Спасибо большое!
Благодаря вам у меня получилось сделать то, что я хочу!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как и чем можно обращаться с запросами из Joomla к GraphQL?

Автор bmf1982

Ответов: 0
Просмотров: 1217
Последний ответ 03.10.2019, 15:46:00
от bmf1982
Joomla как система авторизации

Автор kav

Ответов: 23
Просмотров: 3121
Последний ответ 29.04.2018, 11:10:30
от Aleks.Denezh
Нужна помощь в доработке модуля под Joomla 3

Автор kik84

Ответов: 5
Просмотров: 3149
Последний ответ 30.01.2018, 22:40:30
от Елeна
Как в модели ограничить количество выводимых материалов для каждой категории?

Автор fbr

Ответов: 12
Просмотров: 1969
Последний ответ 05.09.2015, 23:43:47
от robert
Как отучить Joomla стартовать session для гостей?

Автор commeta

Ответов: 8
Просмотров: 3755
Последний ответ 20.08.2015, 14:06:38
от acyp