- Как поставить дополнительную кнопку в панели инструментов админки Joomla 4
- Файл
HtmlView.php
- Вызов и использование хелпера
ButtonsHelper
- Дополнительная кнопка в панели инструментов админки Joomla 4 поставлена!
Как поставить дополнительную кнопку в панели инструментов админки Joomla 4
Страницы списка в админке Joomla 4, возвращающие много результатов, обычно имеют виджет разбиения на страницы в нижней части страницы, но не очевидно, сколько именно записей доступно при текущем выборе фильтра выдачи результата. Решение, описанное ниже, построено из компонента, который имеет более десятка представлений списка и включает в себя размещение пользовательской информационной кнопки на панели инструментов.
Файл HtmlView.php
Конец файла HtmlView.php
является подходящим местом для пользовательской информационной кнопки об общем количестве записей в выдаваемой таблице, непосредственно перед кодом кнопки справки. Сразу после того, как будет подключена пагинация. Таким образом, код выглядит примерно так:
public function display($tpl = null)
{
....
$this->pagination = $this->get('Pagination');
....
$this->addToolbar();
....
}
protected function addToolbar()
{
....
$nRecords = $this->pagination->total;
$toolbar->standardButton('nrecords')
->icon('fa fa-info-circle')
->text($nRecords . ' Records')
->task('')
->onclick('return false')
->listCheck(false);
....
}
Где $toolbar->
выполняет вставку кнопки с необходимой информацией. Для модификации кнопки просто укажите другие параметры, которые сможете найти в этом файле. Есть загвоздка: значок информации имеет основные цвета кнопок. И поскольку этот код будет использоваться много раз, лучше всего поместить его в хэлпер, используя класс ButtonsHelper
.
Вызов и использование хелпера ButtonsHelper
Этот код нужно добавить на каждую страницу, для которой требуется количество записей на месте стандартного кода кнопки, показанного выше:
$nRecords = $this->pagination->total;
$toolbar->customHtml(ButtonsHelper::getRecordCount($nRecords));
И в файле ButtonsHelper
есть много кнопок. Это тот участок кода, который используется в этом примере:
class ButtonsHelper {
...
public static function getRecordCount($nRecords) {
$html = '
<joomla-toolbar-button id="toolbar-record-count" task="">
<button class="btn btn-info">
<span class="fa fa-info-circle" aria-hidden="true"></span>
' . $nRecords . ' Records</button>
</joomla-toolbar-button>
';
return $html;
}
...
}
И, конечно, слово Records
должно быть заменено строковой константой для поддержки мультиязычности сайта.
Дополнительная кнопка в панели инструментов админки Joomla 4 поставлена!
Теперь в верхней части таблицы имеется вывод необходимой для работы с сайтом на CMS Joomla 4 информация об общем количестве записей в таблице:
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/Joomla_4_Tips_and_Tricks:_Number_of_Records
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)