Creating a toolbar for your component: Difference between revisions

From Joomla! Documentation

No edit summary
No edit summary
Line 7: Line 7:
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). Note that each functions will create a different type of button, but what they do must be in the first argument, the second is to declare the title of the button Ex:"addNew('controller.function','Title')".</translate>
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). Note that each functions will create a different type of button, but what they do must be in the first argument, the second is to declare the title of the button Ex:"addNew('controller.function','Title')".</translate>
<source lang="php">
<source lang="php">
       JToolBarHelper::title( 'your_component_view_page_title', 'generic.png' );
       JToolBarHelper::title(string $title, string $icon);
       JToolBarHelper::deleteList(); // Will call the task/function "remove" in your controller
       JToolBarHelper::deleteList(string  $msg, string  $task, string  $alt); // Will call the task/function "remove" in your controller
       JToolBarHelper::editList(); // Will call the task/function "edit" in your controller
       JToolBarHelper::editList(string  $task, string  $alt); // Will call the task/function "edit" in your controller
       JToolBarHelper::addNew(string $task, string $alt, boolean  $check); // Will call the task/function "add" in your controller
       JToolBarHelper::addNew(string $task, string $alt, boolean  $check); // Will call the task/function "add" in your controller
       JToolBarHelper::publish(); // Will call the task/function "publish" in your controller
       JToolBarHelper::publish(string $task, string $alt, boolean $check); // Will call the task/function "publish" in your controller
       JToolBarHelper::unpublish(); // Will call the task/function "unpublish" in your controller
       JToolBarHelper::unpublish(string $task, string $alt, boolean $check); // Will call the task/function "unpublish" in your controller
       JToolBarHelper::preferences('your_component_xml_file', 'height');
       JToolBarHelper::preferences(string $component, integer $height, integer $width, string $alt, string $path);
</source>
</source>


string  $task  An override for the task.
string  $title  The title.</br>
string  $alt    An override for the alt text.
string  $msg    Postscript for the 'are you sure' message.</br>
boolean  $check  True if required to check that a standard list item is checked.
string  $task  An override for the task.</br>
string  $alt    An override for the alt text.</br>
boolean  $check  True if required to check that a standard list item is checked.</br>
string  $component  The name of the component, eg, com_content.</br>


<translate><!--T:3-->
<translate><!--T:3-->
Line 31: Line 34:
       JToolBarHelper::editList('hellos.edit');
       JToolBarHelper::editList('hellos.edit');
       JToolBarHelper::addNew('hellos.add');
       JToolBarHelper::addNew('hellos.add');
       JToolBarHelper::publish(');
       JToolBarHelper::publish();
       JToolBarHelper::unpublish();
       JToolBarHelper::unpublish();
       JToolBarHelper::preferences('com_hello', '500');
       JToolBarHelper::preferences('com_hello', '500');

Revision as of 21:56, 9 April 2017

Joomla! 
3.x

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). Note that each functions will create a different type of button, but what they do must be in the first argument, the second is to declare the title of the button Ex:"addNew('controller.function','Title')".

      JToolBarHelper::title(string $title, string $icon);
      JToolBarHelper::deleteList(string  $msg, string  $task, string  $alt); // Will call the task/function "remove" in your controller
      JToolBarHelper::editList(string  $task, string  $alt); // Will call the task/function "edit" in your controller
      JToolBarHelper::addNew(string $task, string $alt, boolean  $check); // Will call the task/function "add" in your controller
      JToolBarHelper::publish(string $task, string $alt, boolean $check); // Will call the task/function "publish" in your controller
      JToolBarHelper::unpublish(string $task, string $alt, boolean $check); // Will call the task/function "unpublish" in your controller
      JToolBarHelper::preferences(string $component, integer $height, integer $width, string $alt, string $path);

string $title The title.
string $msg Postscript for the 'are you sure' message.
string $task An override for the task.
string $alt An override for the alt text.
boolean $check True if required to check that a standard list item is checked.
string $component The name of the component, eg, com_content.

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

 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');

An example of creating a custom button in the admin list of records of your component Joomla 3.x could be: 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');

		// Check for errors.
		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()
	{
		// assuming you have other toolbar buttons ...

		JToolBarHelper::custom('hellos.extrahello', 'extrahello.png', 'extrahello_f2.png', 'Extra Hello', true);

	}

administrator/controllers/hellos.php

    public function extrahello()
	{

		// Get the input
		$input = JFactory::getApplication()->input;
		$pks = $input->post->get('cid', array(), 'array');

		// Sanitize the input
		JArrayHelper::toInteger($pks);

		// 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 - http://docs.joomla.org/JToolBarHelper/custom