Примечание: Это применимо при использовании структуры 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');

Примером создания пользовательской кнопки в списке записей администратора вашего компонента Joomla 3.x может быть: 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