Creating a toolbar for your component

From Joomla! Documentation

Revision as of 15:15, 18 December 2012 by Garkell (Talk | contribs)

Note: This applies when using the MVC structure.

By default the Joomla Toolbar uses a Delete, Edit, New, Publish, Unpublish and Parameters buttons. To use them in your component you must write the following code in the view.html.php of your view file (below your display function).

      JToolBarHelper::title( 'your_component_view_page_title', 'generic.png' );
      JToolBarHelper::deleteList(); // Will call the task/function "remove" in your controller
      JToolBarHelper::editListX(); // Will call the task/function "edit" in your controller
      JToolBarHelper::addNewX(); // Will call the task/function "add" in your controller
      JToolBarHelper::publishList(); // Will call the task/function "publish" in your controller
      JToolBarHelper::unpublishList(); // Will call the task/function "unpublish" in your controller
      JToolBarHelper::preferences('your_component_xml_file', 'height');

So (i.e.) your code would look like this:

 class HelloViewHellos extends JView
   function display($tpl = null) {
      global $mainframe, $option;
      JToolBarHelper::title( 'Hello Component', 'generic.png' );
      JToolBarHelper::preferences('com_hello', '500');

An example of creating a custom button in the admin list of records of your component Joomla 3.0 could be:


	public function display($tpl = null)
		$this->state		= $this->get('State');
		$this->items		= $this->get('Items');
		$this->pagination	= $this->get('Pagination');
		// Check for errors.
		if (count($errors = $this->get('Errors'))) {
			JError::raiseError(500, implode("\n", $errors));
			return false;
        	$this->sidebar = JHtmlSidebar::render();
	protected function addToolbar()
		// assuming you have other toolbar buttons ...
		JToolBarHelper::custom('hellos.extrahello', 'extrahello.png', 'extrahello_f2.png', 'Extra Hello', true);


    public function extrahello()
		// Get the input
		$input = JFactory::getApplication()->input;
		$pks = $input->post->get('cid', array(), 'array');
		// Sanitize the input
		// Get the model
		$model = $this->getModel();
		$return = $model->extrahello($pks);
		// Redirect to the list screen.
		$this->setRedirect(JRoute::_('index.php?option=com_hello&view=hellos', false));

administrator/models/hello.php (note: the singular model)

    public function extrahello($pks)
		// perform whatever you want on each item checked in the list
		return true;

Helpful explanation of JToolBarHelper/custom here -