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

juvileor

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Нужна помощь! Нужно подровнять стандартный плагин, который разделяет на сраницы, к примеру когда в категории 11 элементов, а на 1 странице вмещается только 10. Думаю, кто то уже сталкивался с нуждой ручками исправлять код, поэтому очень прошу помощь с php, ибо в этом я не шарю(((
Сейчас pagination выглядит так:
http://clip2net.com/s/1Jsrx - когда страниц мало (так и должно быть)
http://clip2net.com/s/1JssW - так, когда страниц много

Нужно сделать так, чтобы было константное число страниц в данном навигаторе, к примеру 5 (чтобы не было переноса строки навигатора)
Т.е. если к примеру 10 страниц и включена 6ая страниц, чтобы отображалась 6ая страница, 2 предыдущие страницы + 2 следующие страницы..

Ну а если меньше 5 страниц существует, то тогда чтобы показывало столько, сколько есть...

Надо лезить в код, а я в php не варю, очень прошу помощи! Если нужно, то вот код 2ух файлов (плагин + шаблон)
Плагин:

// split the text around the plugin
   $text = preg_split( $regex, $row->text );

   // count the number of pages
   $n = count( $text );
   
   $row->pagebreaktitle = $row->title;
   
   // we have found at least one plugin, therefore at least 2 pages
   if ($n > 1)

А также код из файла Шаблона:

if ($lang->isRTL())
{
$html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";
$html .= $list['pageslinks'];
$html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>";
}
else
{
$html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>";
$html .= $list['pageslinks'];
$html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";
}
$html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />";
$html .= "\n</div>";
return $html;
}
function pagination_list_render($list)
{
// Initialize variables
$lang =& JFactory::getLanguage();
$html = "<ul class=\"pagination\">";
$html .= '<li><span>&laquo;</span></li>';

// Reverse output rendering for right-to-left display

if($lang->isRTL())
{
$html .= $list['start']['data'];
$html .= $list['previous']['data'];
$list['pages'] = array_reverse( $list['pages'] );
foreach( $list['pages'] as $page ) {
if($page['data']['active']) {
//  $html .= '<strong>';
}
$html .= $page['data'];
if($page['data']['active']) {

// $html .= '</strong>';
}
}

$html .= $list['next']['data'];
$html .= $list['end']['data'];

// $html .= '&#171;';

}
else
{
$html .= $list['start']['data'];
$html .= $list['previous']['data'];
foreach( $list['pages'] as $page )
{
if($page['data']['active']) {
// $html .= '<strong>';
}
$html .= $page['data'];
if($page['data']['active']) {
//  $html .= '</strong>';
}
}

$html .= $list['next']['data'];
$html .= $list['end']['data'];
// $html .= '&#171;';
}
$html .= '<li><span>&raquo;</span></li>';
$html .= "</ul>";
return $html;
}
function pagination_item_active(&$item) {
return "<li>&nbsp;<strong><a href=\"".$item->link."\" title=\"".$item->text."\">".$item->text."</a></strong>&nbsp;</li>";
}
function pagination_item_inactive(&$item) {
return "<li>&nbsp;<span>".$item->text."</span>&nbsp;</li>";
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин "Русская типографика"

Автор Physicist

Ответов: 261
Просмотров: 160365
Последний ответ 13.03.2025, 20:06:50
от Olg
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 2394
Последний ответ 27.08.2024, 15:39:37
от kkmspb
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 106209
Последний ответ 20.04.2024, 21:10:33
от Beer
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 24893
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 132372
Последний ответ 13.03.2023, 00:25:14
от ecolora