Создание панели инструментов для вашего компонента
Примечание: Это применимо при использовании структуры MVC.
По умолчанию на панели инструментов Joomla используются кнопки "Удалить", "Редактировать", "Создать", "Опубликовать", "Отменить публикацию" и "Параметры". Чтобы использовать их в вашем компоненте, вы должны написать следующий код в view.html.php вашего файла просмотра (под вашей функцией отображения).
JToolBarHelper::title(string $title, string $icon); // Вызовет задачу/функцию $task в вашем контроллере JToolBarHelper::deleteList(string $msg, string $task, string $alt); // Вызовет задачу/функцию $task в вашем контроллере JToolBarHelper::editList(string $task, string $alt); // Вызовет задачу/функцию $task в вашем контроллере JToolBarHelper::addNew(string $task, string $alt, boolean $check); // Вызовет задачу/функцию $task в вашем контроллере JToolBarHelper::publish(string $task, string $alt, boolean $check); // Вызовет задачу/функцию $task в вашем контроллере JToolBarHelper::unpublish(string $task, string $alt, boolean $check); JToolBarHelper::preferences(string $component, integer $height, integer $width, string $alt, string $path);
- string $title → Название.
- string $msg → Постскриптум к сообщению "вы уверены".
- string $task → Переопределение для задачи: 'controller.function'.
- string $alt → Переопределение для альтернативного текста.
- boolean $check → Значение True, если требуется проверить, установлен ли флажок для элемента стандартного списка.
- string $component → Имя компонента, например, com_content.
Таким образом (т.е.) ваш код будет выглядеть следующим образом:
class HelloViewHellos extends JView { function display($tpl = null) { JToolBarHelper::title( 'Hello Component', 'generic.png' ); JToolBarHelper::deleteList('hellos.delete'); JToolBarHelper::editList('hellos.edit'); JToolBarHelper::addNew('hellos.add'); JToolBarHelper::publish(); JToolBarHelper::unpublish(); JToolBarHelper::preferences('com_hello', '500');
Примером создания пользовательской кнопки в списке записей администратора вашего компонента может быть: administrator/views/hellos/view.html.php
public function display($tpl = null) { $this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); // Проверить, нет ли ошибок. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $this->addToolbar(); $this->sidebar = JHtmlSidebar::render(); parent::display($tpl); } protected function addToolbar() { // предполагая, что у вас есть другие кнопки на панели инструментов... JToolBarHelper::custom('hellos.extrahello', 'extrahello.png', 'extrahello_f2.png', 'Extra Hello', true); }
administrator/controllers/hellos.php
public function extrahello() { // Получить входные данные $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Очистить входные данные JArrayHelper::toInteger($pks); // Получить модель $model = $this->getModel(); $return = $model->extrahello($pks); // Перенаправление на экран списка. $this->setRedirect(JRoute::_('index.php?option=com_hello&view=hellos', false)); }
administrator/models/hello.php (примечание: единичная модель)
public function extrahello($pks) { // выполнить все, что вы хотите на каждом элементе, отмеченном в списке return true; }
Оригинал: https://docs.joomla.org/Creating_a_toolbar_for_your_component