Совет по Joomla: использовать выключенное состояние для кнопок в списках элементов админки - listCheck().
Мы добавляем в тулбар панели администратора Joomla некую кнопку, которая что-то делает со списком id выделенных элементов и ajax-запросом отсылаем их в свой плагин. Но нам надо предупредить нажатия на кнопку в тех случаях, когда ни один элемент не был выбран. Для этого можно написать свою проверку на js. А можно воспользоваться встроенной в Joomla.
Добавить кнопку в тулбар Joomla 6.
use Joomla\CMS\Toolbar\Button\BasicButton; use Joomla\CMS\Language\Text; // ниже по коду, где-нибудь в плагине на onAfterDispatch() // Предварительно проверяем в каком компоненте мы находимся по option из $app->getInput() // пример из плагина, поэтому $this->getApplication() $app = $this->getApplication(); // Берём текущий тулбар $toolbar = $app->getDocument()->getToolbar('toolbar'); // Создаём кнопку $button = (new BasicButton('send-to-indexnow')) ->text(Text::_('PLG_WTINDEXNOWSWJPROJECTS_BUTTON_LABEL')) ->icon('fa-solid fa-arrow-up-right-dots') ->onclick("window.wtindexnowswjprojects()"); // Добавляем кнопку в тулбар $toolbar->appendButton($button);
Заблокировать кнопку тулбара Joomla, если не выбраны элементы списка.
Теперь нам надо проверить находимся ли мы в списке. Делаем это по view из $app->getInput().
if(in_array($app->getApplication()->getInput()->get('view'), ['categories','documentation','projects','versions']) ) { $button->listCheck(true); }
И если мы в списке - используем метод $button->listCheck(true), который сделает проверку за нас. Если ни один элемент не выбран - кнопка в тулбаре Joomla будет заблокирована и JS-обработчик не будет вызван. Этот метод есть у всех классов кнопок, наследующих класс \Joomla\CMS\Toolbar\ToolbarButton.
