При разработке модулей и компонентов Joomla! часто требуется добавить кнопки в административной панели (бэкэнде), ниже мы рассмотрим как это сделать.
Использование JToolBarHelper
Когда Вы добавляете метод JToolBarHelper в административной части Joomla!, он выводит соответствующий значок и формирует функцию-обработчик.
Вы можете изменить функцию по умолчанию так:
$this->registerTask('add', 'edit');
Первый параметр JController::registerTask определяет задачу, а второй - метод выполнения. В примере мы изменили функцию по умолчанию для кнопки "Добавить".
Кнопки по умолчанию / функции, встроенные в 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();
Ниже представлен синтаксис пользовательской кнопки Joomla!:
JToolBarHelper::custom('task','icon','icon over','alt', boolean, boolean );
Значки, связанные с этими функциями должны хранится в директории: www/administrator/templates/khepri/images
CSS-файл, используемый для вывода кнопок Joomla!, хранится в: www/administrator/templates/khepri/css/icon.css
Этот CSS-файл подключен через административный шаблон Joomla! Если Вы желаете включить свой собственный значек в панель упраления Joomla!, то Вам
необходимо будет домавить соответствующие строки в файл CSS, например:
icon-32-iconname {
background-image: url(../../images/menu/icon-32-iconfile.png);
}
Как Вы видите, название значка и название файла значка могут не совпадать. Вы можете поместить файл значкаи и собственный CSS-файл в любую папку вашего компонента.
Чтобы подключить собственный CSS-файл к шаблону административной части Joomla, используйте
JHTML::_('stylesheet','THISCOMPONENTNAME.css','components/THISCOMPONENT/assets/css/');
При нажатии на кнопку Joomla! используется JavaScript, расположенный в includes/js/joomla.javascript.js
function submitbutton(pressbutton) {
submitform(pressbutton);
}
Вы можете переопределить эту функцию под собственные нужды.Чтобы сохранить кнопки на панели инструментов в рабочем состоянии,Вы должны заменить document.adminForm.task.value значением нажимной кнопки:
function submitbutton(pressbutton) { // Some conditions document.adminForm.task.value=pressbutton;
// More conditions
submitform(pressbutton);
}
Кнопка загрузки (Upload button) Joomla!
Метод 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 );
Метод 2
// You view button for popup media manager tools
JToolBarHelper::media_manager('/' );