Создание панели инструментов для вашего компонента
Примечание: Это применимо при использовании структуры 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