Difference between revisions of "Creating a toolbar for your component"
From Joomla! Documentation
m (Needs to be marked for translation) |
m (Marked for translation) |
||
Line 1: | Line 1: | ||
− | {{version| | + | <noinclude><languages /></noinclude> |
− | + | <noinclude>{{Joomla version|version=3.x}}</noinclude> | |
+ | N<translate>ote: This applies when using the MVC structure.</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). | + | <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).</translate> |
<source lang="php"> | <source lang="php"> | ||
JToolBarHelper::title( 'your_component_view_page_title', 'generic.png' ); | JToolBarHelper::title( 'your_component_view_page_title', 'generic.png' ); | ||
Line 12: | Line 13: | ||
JToolBarHelper::preferences('your_component_xml_file', 'height'); | JToolBarHelper::preferences('your_component_xml_file', 'height'); | ||
</source> | </source> | ||
− | So (i.e.) your code would look like this: | + | |
+ | <translate>So (i.e.) your code would look like this:</translate> | ||
+ | |||
<source lang="php"> | <source lang="php"> | ||
class HelloViewHellos extends JView | class HelloViewHellos extends JView | ||
Line 25: | Line 28: | ||
JToolBarHelper::preferences('com_hello', '500'); | JToolBarHelper::preferences('com_hello', '500'); | ||
</source> | </source> | ||
− | |||
+ | <translate>An example of creating a custom button in the admin list of records of your component {{JVer|3.x}} could be:</translate> | ||
+ | <tt>administrator/views/hellos/view.html.php</tt> | ||
− | |||
<source lang="php"> | <source lang="php"> | ||
public function display($tpl = null) | public function display($tpl = null) | ||
Line 60: | Line 63: | ||
</source> | </source> | ||
− | administrator/controllers/hellos.php | + | <tt>administrator/controllers/hellos.php</tt> |
+ | |||
<source lang="php"> | <source lang="php"> | ||
public function extrahello() | public function extrahello() | ||
Line 84: | Line 88: | ||
</source> | </source> | ||
− | administrator/models/hello.php (note: the singular model) | + | <tt>administrator/models/hello.php</tt> <translate>(note: the singular model)</translate> |
+ | |||
<source lang="php"> | <source lang="php"> | ||
public function extrahello($pks) | public function extrahello($pks) | ||
Line 97: | Line 102: | ||
</source> | </source> | ||
− | Helpful explanation of JToolBarHelper/custom here - http://docs.joomla.org/JToolBarHelper/custom | + | <translate>Helpful explanation of JToolBarHelper/custom here</translate> - http://docs.joomla.org/JToolBarHelper/custom |
<noinclude> | <noinclude> | ||
+ | <translate> | ||
[[Category:Component Development]] | [[Category:Component Development]] | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||
+ | </translate> | ||
</noinclude> | </noinclude> | ||
− |
Revision as of 17:57, 26 June 2015
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).
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) {
JToolBarHelper::title( 'Hello Component', 'generic.png' );
JToolBarHelper::deleteList();
JToolBarHelper::editListX();
JToolBarHelper::addNewX();
JToolBarHelper::publishList();
JToolBarHelper::unpublishList();
JToolBarHelper::preferences('com_hello', '500');
An example of creating a custom button in the admin list of records of your component 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