How to create a custom button: Difference between revisions
From Joomla! Documentation
m adding archive page |
|||
| (12 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{version/tutor|1.5}} | ||
The code below is used for adding buttons to the back-end toolbar when developing components and modules. | The code below is used for adding buttons to the back-end toolbar when developing components and modules. | ||
==Explanation of JToolBarHelper button functionality== | ==Explanation of JToolBarHelper button functionality== | ||
| Line 8: | Line 5: | ||
* You can modify the default function that is run by using the $this->registerTask('add', 'edit'); to redirect logic, in this example a call from the default button add is directed to the edit function. | * You can modify the default function that is run by using the $this->registerTask('add', 'edit'); to redirect logic, in this example a call from the default button add is directed to the edit function. | ||
==Default Buttons Included with Joomla 1.5== | ==Default Buttons / Functions Included with Joomla 1.5== | ||
<source lang="php"> | <source lang="php"> | ||
JToolBarHelper:: | JToolBarHelper::title(); | ||
JToolBarHelper:: | JToolBarHelper::spacer(); | ||
JToolBarHelper::divider(); | |||
JToolBarHelper::custom(); | |||
JToolBarHelper::customX(); | |||
JToolBarHelper::preview(); | |||
JToolBarHelper::help(); | JToolBarHelper::help(); | ||
JToolBarHelper:: | JToolBarHelper::back(); | ||
JToolBarHelper:: | JToolBarHelper::media_manager(); | ||
JToolBarHelper::addNew(); | |||
JToolBarHelper::addNewX(); | |||
JToolBarHelper::publish(); | |||
JToolBarHelper::publishList(); | |||
JToolBarHelper::makeDefault(); | |||
JToolBarHelper::assign(); | |||
JToolBarHelper::unpublish(); | |||
JToolBarHelper::unpublishList(); | |||
JToolBarHelper::archiveList(); | |||
JToolBarHelper::unarchiveList(); | |||
JToolBarHelper::editList(); | |||
JToolBarHelper::editListX(); | |||
JToolBarHelper::editHtml(); | |||
JToolBarHelper::editHtmlX(); | |||
JToolBarHelper::editCss(); | |||
JToolBarHelper::editCssX(); | |||
JToolBarHelper::deleteList(); | |||
JToolBarHelper::deleteListX(); | |||
JToolBarHelper::trash(); | |||
JToolBarHelper::apply(); | JToolBarHelper::apply(); | ||
JToolBarHelper::save(); | JToolBarHelper::save(); | ||
JToolBarHelper:: | JToolBarHelper::cancel(); | ||
JToolBarHelper:: | JToolBarHelper::preferences(); | ||
JToolBarHelper:: | JToolBarHelper::addEntry(); | ||
</source> | </source> | ||
| Line 46: | Line 50: | ||
* The syntax for a custom button that can be added into a view | * The syntax for a custom button that can be added into a view | ||
<source lang="php"> | <source lang="php"> | ||
/** | |||
* Writes a custom option and task button for the button bar | |||
* @param string The task to perform (picked up by the switch($task) blocks | |||
* @param string The image to display | |||
* @param string The image to display when moused over | |||
* @param string The alt text for the icon image | |||
* @param boolean True if required to check that a standard list item is checked | |||
* @param boolean True if required to include callinh hideMainMenu() | |||
*/ | |||
JToolBarHelper::custom( 'task', 'icon', 'icon over', 'alt', boolean, boolean ); | JToolBarHelper::custom( 'task', 'icon', 'icon over', 'alt', boolean, boolean ); | ||
</source> | </source> | ||
| Line 64: | Line 78: | ||
<source lang="css"> | <source lang="css"> | ||
.icon-32-iconname { | .icon-32-iconname { | ||
background-image: url(../../images/icon-32-iconfile.png); | background-image: url(../../images/menu/icon-32-iconfile.png); | ||
} | } | ||
</source> | </source> | ||
| Line 74: | Line 88: | ||
<source lang="php"> | <source lang="php"> | ||
JToolBarHelper :: custom( 'someFunction', 'iconname.png', 'iconname.png', 'alt text', | JToolBarHelper :: custom( 'someFunction', 'iconname.png', 'iconname.png', 'alt text', false, false ); | ||
</source> | </source> | ||
| Line 82: | Line 96: | ||
<source lang="php"> | <source lang="php"> | ||
JHTML::_('stylesheet', THISCOMPONENTNAME.css', 'components/THISCOMPONENT/assets/css/'); | JHTML::_('stylesheet', 'THISCOMPONENTNAME.css', 'components/THISCOMPONENT/assets/css/'); | ||
</source> | </source> | ||
* A Custom button relies on javascript from includes/js/joomla.javascript.js to execute the task indicated by the user: | |||
<source lang="javascript"> | |||
function submitbutton(pressbutton) { | |||
submitform(pressbutton); | |||
}</source> | |||
* In more complex cases a user can override this javascript by implementing his own submitbutton function. To keep the toolbar buttons in working order, the user has to replace the document.adminForm.task.value with the pressbutton value: | |||
<source lang="javascript"> | |||
function submitbutton(pressbutton) { | |||
// Some conditions | |||
document.adminForm.task.value=pressbutton; | |||
// More conditions | |||
submitform(pressbutton); | |||
}</source> | |||
==Upload button== | ==Upload button== | ||
| Line 98: | Line 126: | ||
JToolBarHelper::media_manager( '/' ); | JToolBarHelper::media_manager( '/' ); | ||
</source> | </source> | ||
[[Category:Archived version Joomla! 1.5]] | |||
Latest revision as of 13:27, 26 May 2013
The code below is used for adding buttons to the back-end toolbar when developing components and modules.
Explanation of JToolBarHelper button functionality
- When you add a JToolBarHelper function into an admin view it will display the icon and preform the corresponding function listed in the controller when pressed.
- You can modify the default function that is run by using the $this->registerTask('add', 'edit'); to redirect logic, in this example a call from the default button add is directed to the edit function.
Default Buttons / Functions Included with Joomla 1.5
JToolBarHelper::title();
JToolBarHelper::spacer();
JToolBarHelper::divider();
JToolBarHelper::custom();
JToolBarHelper::customX();
JToolBarHelper::preview();
JToolBarHelper::help();
JToolBarHelper::back();
JToolBarHelper::media_manager();
JToolBarHelper::addNew();
JToolBarHelper::addNewX();
JToolBarHelper::publish();
JToolBarHelper::publishList();
JToolBarHelper::makeDefault();
JToolBarHelper::assign();
JToolBarHelper::unpublish();
JToolBarHelper::unpublishList();
JToolBarHelper::archiveList();
JToolBarHelper::unarchiveList();
JToolBarHelper::editList();
JToolBarHelper::editListX();
JToolBarHelper::editHtml();
JToolBarHelper::editHtmlX();
JToolBarHelper::editCss();
JToolBarHelper::editCssX();
JToolBarHelper::deleteList();
JToolBarHelper::deleteListX();
JToolBarHelper::trash();
JToolBarHelper::apply();
JToolBarHelper::save();
JToolBarHelper::cancel();
JToolBarHelper::preferences();
JToolBarHelper::addEntry();
- The icons associated with these functions are stored at:
www/administrator/templates/khepri/images
Custom button
- The syntax for a custom button that can be added into a view
/**
* Writes a custom option and task button for the button bar
* @param string The task to perform (picked up by the switch($task) blocks
* @param string The image to display
* @param string The image to display when moused over
* @param string The alt text for the icon image
* @param boolean True if required to check that a standard list item is checked
* @param boolean True if required to include callinh hideMainMenu()
*/
JToolBarHelper::custom( 'task', 'icon', 'icon over', 'alt', boolean, boolean );
- The Default Admin Toolbar Icons are stored at:
www/administrator/templates/khepri/images
- From here you will notice that the icons are linked to display through the CSS file at:
www/administrator/templates/khepri/css/icon.css
- This icon CSS file is automatically included through the admin template. If we would like to add a custom toolbar icon into an installable component it is useful to follow the same structure. We will have to manually include our new CSS file.
- An example of the icon CSS statement:
.icon-32-iconname {
background-image: url(../../images/menu/icon-32-iconfile.png);
}
- As you can see iconname and iconfile do not necessarily have to be the same.
- JToolBarHelper will look for the iconname at the end of .icon-32- and the filename must be preceded by icon-32-
- The following would create this custom toolbar icon, notice the iconname dose not correspond to the actual file name but the CSS allows the reference.
JToolBarHelper :: custom( 'someFunction', 'iconname.png', 'iconname.png', 'alt text', false, false );
- You can place your icon file and css file at any point in your installable component, which will allow it to be easily transferable.
- To include a new CSS file to your entire admin side it may be useful to include it in the entry point.
JHTML::_('stylesheet', 'THISCOMPONENTNAME.css', 'components/THISCOMPONENT/assets/css/');
- A Custom button relies on javascript from includes/js/joomla.javascript.js to execute the task indicated by the user:
function submitbutton(pressbutton) {
submitform(pressbutton);
}
- In more complex cases a user can override this javascript by implementing his own submitbutton function. To keep the toolbar buttons in working order, the user has to replace the document.adminForm.task.value with the pressbutton value:
function submitbutton(pressbutton) {
// Some conditions
document.adminForm.task.value=pressbutton;
// More conditions
submitform(pressbutton);
}
Upload button
- Method 1:
// Add an upload button and view a popup screen width 550 and height 400
$alt = "Upload";
$bar=& JToolBar::getInstance( 'toolbar' );
$bar->appendButton( 'Popup', 'upload', $alt, 'index.php', 550, 400 );
- Method 2:
// You view button for popup media manager tools
JToolBarHelper::media_manager( '/' );