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

motley

  • Захожу иногда
  • 82
  • 5 / 0
Может где уже говорилось, но я пока не нашел. Как ограничить количество НОМЕРОВ страниц? Поясню вопрос. Внизу каждой страницы показывается ее номер, общее количество страниц и есть ссылки - первая, предыдущая, следующая и последняя. Как сделать так, чтобы показывались номера 1,2,3,4,5, а далее не номера а троеточие (...)? Есть такая возможность?
*

xaIRus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
  • Волков бояться - в лес не ходить!
*

motley

  • Захожу иногда
  • 82
  • 5 / 0
http://joomlaforum.ru/index.php/topic,10812.0.html - этот топик почитайте.
Топик правильный, но для старой версии Joomla. У меня в этом файле нет таких строк, которые надо исправить. Именно это я и ищу, но для Joomla 1.5.x
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
править файлик pagination.php
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

motley

  • Захожу иногда
  • 82
  • 5 / 0
править файлик pagination.php
Спасибо, помогло. Точный путь - libraries/joomla/html/pagination.php
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Спасибо, помогло. Точный путь - libraries/joomla/html/pagination.php
либо его можно положить в templates/шаблон/html и не бояться потерять при обновлении движка
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

xaIRus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
  • Волков бояться - в лес не ходить!
Парни, может кто знает, где в 1.5х убрать еще навигацию "Следущая Предыдущая..." ?

*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Парни, может кто знает, где в 1.5х убрать еще навигацию "Следущая Предыдущая..." ?
так в указанном файле и убирайте
Код: php
$html .= $list['start']['data'];
$html .= $list['end']['data'];
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

xaIRus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
  • Волков бояться - в лес не ходить!
так в указанном файле и убирайте
Код: php
$html .= $list['start']['data'];
$html .= $list['end']['data'];
Вот спасибо то а! Щас попробую, а еще незнаете как сделать, чтобы нумирация страниц формировалась в несколько строк, чтобы автоматически переносились на след. строку? Потомучто мне кажется что если щас появится еще одна страница, начнется раздвигаться шаблон.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
а еще незнаете как сделать, чтобы нумирация страниц формировалась в несколько строк, чтобы автоматически переносились на след. строку?
а это в CSS ограничить ширину блока с навигацией
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

xaIRus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
  • Волков бояться - в лес не ходить!
Цитировать
а это в CSS ограничить ширину блока с навигацией
попробую

А насчет навигации, не помогает, никаких изменений.
Делал даже так:

Код
function _list_render($list)
    {
        // Initialize variables
        $html = null;

        // Reverse output rendering for right-to-left display
        $html .= '<< ';
        //  $html .= $list['start']['data'];
        $html .= ' < ';
        //  $html .= $list['previous']['data'];
        foreach( $list['pages'] as $page ) {
            $html .= ' '.$page['data'];
        }
       //  $html .= ' '. $list['next']['data'];
       //  $html .= ' >';
       //  $html .= ' '. $list['end']['data'];
 
        $html .= ' >>';

        return $html;
    }

*

xaIRus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
  • Волков бояться - в лес не ходить!
Код
// Set the start and previous data objects
$data->start = new JPaginationObject(JText::_('Start'));
$data->previous = new JPaginationObject(JText::_('Prev'));

if ($this->get('pages.current') > 1)
{
$page = ($this->get('pages.current') -2) * $this->limit;

$page = $page == 0 ? '' : $page; //set the empty for removal from route

$data->start->base = '0';
$data->start->link = JRoute::_("&limitstart=");
$data->previous->base = $page;
$data->previous->link = JRoute::_("&limitstart=".$page);
}

// Set the next and end data objects
$data->next = new JPaginationObject(JText::_('Next'));
$data->end = new JPaginationObject(JText::_('End'));

if ($this->get('pages.current') < $this->get('pages.total'))
{
$next = $this->get('pages.current') * $this->limit;
$end  = ($this->get('pages.total') -1) * $this->limit;

$data->next->base = $next;
$data->next->link = JRoute::_("&limitstart=".$next);
$data->end->base = $end;
$data->end->link = JRoute::_("&limitstart=".$end);
}

Закоментировал этот кусок кода, помогло.

ЗЫ Возможно я извращенец, может есть какието другие способы?
« Последнее редактирование: 03.10.2009, 17:52:11 от xaIRus »
*

motley

  • Захожу иногда
  • 82
  • 5 / 0
либо его можно положить в templates/шаблон/html и не бояться потерять при обновлении движка
Положил, после чего вся главная страница лишилась форматирования. Пришлось вернуть на место из бекапа.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться