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

djfactory

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Парни подскажите
сайт vseakcii.ru
В категориях нормально листает страницы а вот в брендах ничего не происходит тупо первую страницу загружает и все
Шаблон стоит- OT Car Accessories

Версия Joomla 2.5.14
VirtueMart 2.0.24a

Мой код pagination.php
<?php
/**
 * @version      $Id: pagination.php 14401 2010-01-26 14:10:00Z louis $
 * @package      Joomla
 * @copyright   Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license      GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

/**
 * This is a file to add template specific chrome to pagination rendering.
 *
 * pagination_list_footer
 *    Input variable $list is an array with offsets:
 *       $list[limit]      : int
 *       $list[limitstart]   : int
 *       $list[total]      : int
 *       $list[limitfield]   : string
 *       $list[pagescounter]   : string
 *       $list[pageslinks]   : string
 *
 * pagination_list_render
 *    Input variable $list is an array with offsets:
 *       $list[all]
 *          [data]      : string
 *          [active]   : boolean
 *       $list[start]
 *          [data]      : string
 *          [active]   : boolean
 *       $list[previous]
 *          [data]      : string
 *          [active]   : boolean
 *       $list[next]
 *          [data]      : string
 *          [active]   : boolean
 *       $list[end]
 *          [data]      : string
 *          [active]   : boolean
 *       $list[pages]
 *          [{PAGE}][data]      : string
 *          [{PAGE}][active]   : boolean
 *
 * pagination_item_active
 *    Input variable $item is an object with fields:
 *       $item->base   : integer
 *       $item->link   : string
 *       $item->text   : string
 *
 * pagination_item_inactive
 *    Input variable $item is an object with fields:
 *       $item->base   : integer
 *       $item->link   : string
 *       $item->text   : string
 *
 * This gives template designers ultimate control over how pagination is rendered.
 *
 * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both
 */

function pagination_list_footer($list)
{
   $html = "<div class=\"list-footer\">\n";

   $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
   $html = "<span class=\"pagination\">";
   //$html .= '<span>&laquo;</span>'.$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 .= '<span>&raquo;</span>';

   $html .= "</span>";
   return $html;
}

function pagination_item_active(&$item) {
   return "<a class=\"link-text\" href=\"".$item->link."\" title=\"".$item->text."\"><span class=\"link-page\">".$item->text."</span></a>";
}

function pagination_item_inactive(&$item) {
   return "<span class=\"inactive\"><span class=\"text\">".$item->text."</span></span>";
}
?>

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 8152
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Ошибка при установке шаблона - Fatal error: Call to a member function setDebug() on a non-object in

Автор Mirotvoretz

Ответов: 33
Просмотров: 70389
Последний ответ 11.11.2018, 13:22:26
от vik38
Как настроить шаблон?

Автор tromba

Ответов: 2
Просмотров: 5152
Последний ответ 15.08.2018, 15:29:56
от tromba
Ошибка в админке шаблоны

Автор ValeryL

Ответов: 6
Просмотров: 3418
Последний ответ 04.07.2017, 17:31:13
от 55677@
При установки шаблона ошибка <<HTTP 500 (Internal Server Error)>>

Автор nekitko

Ответов: 16
Просмотров: 17560
Последний ответ 21.06.2017, 20:39:11
от bonny