Для начала создайте файл /administrator/components/com_myquestions/toolbar.myquestions.html.php:
Каждая функция класса TOOLBAR_myquestions соответствует отдельной панели инструментов. Как видите, мы задали две такие панели - первая из них будет отображаться над формой для ответа на вопрос, а вторая - над списком вопросов.
В коде, приведенном выше для ряда кнопок вместо стандартных подписей задаются собственные, которые необходимо перевести в языковом файле вместе с другими надписями. Поэтому создадим языковой файл /administrator/language/ru-RU/ru-RU.com_myquestions.ini:
COM_MYQUESTIONS_TOOLBAR_SEND_TO_EXPERT="Отправить эксперту" COM_MYQUESTIONS_TOOLBAR_SEND_ANSWER="Отправить ответ" COM_MYQUESTIONS_TOOLBAR_TITLE="Моя система «вопрос – ответ»" COM_MYQUESTIONS_REPLY="Ответить / Редактировать" COM_MYQUESTIONS_TOOLBAR_REMOVE_QUESTIONS_CONFIRMATION="Вы действительно хотите удалить эти вопросы?"
Добавим код, который будет выбирать, какую из определенных нами панелей инструментов отображать. Создайте файл /administrator/components/com_myquestions/toolbar.myquestions.php:
Вызов функции getPath() класса JApplicationHelper позволяет обратиться к файлу toolbar.myquestions.html.phpбез указания имени компонента, что удобно, если впоследствии понадобится изменить это имя.
Выражение switch используется для выбора одной из панелей инструментов в зависимости от значений переменной $task.
Обратите внимание, что код распределен по двум файлам - toolbar.myquestions.phpи toolbar.myquestions.html.php, чтобы отделить логику обработки от непосредственного вывода информации.
Обновите страницу в бэкенде и выберите в меню " Компоненты" пункт " Моя система "вопрос - ответ"". Результат должен быть таким же, как на рис. 1.9.
(есть увеличенное изображение)
Рис. 1.9. Первая панель инструментов
Чтобы увидеть другую панель инструментов, добавьте строку &task=reply в конец URL: ссылка: http://localhost/joomla/administrator/index.php?option=com_myquestions&task=reply(рис. 1.10).
(есть увеличенное изображение)
Рис. 1.10. Вторая панель инструментов
Каждая кнопка панели инструментов соответствует некоторой задаче. Когда пользователь нажимает на какую-либо кнопку, соответствующая задача добавляется к форме, и эта форма автоматически отправляется. Поскольку самих форм мы еще не создали, кнопки не работают.
Чтобы использовать для кнопки свою картинку, необходимо создать файл CSS, содержащий подобное выражение:
.icon-32-myiconname { background-image: url(icon-32-myiconfile.png); }
Класс JToolBarHelper будет искать для заданного значения iconname класс .icon-32- iconname. Название файла должно начинаться с "icon-32-".
В таком случае вызов функции JToolBarHelper::custom() будет выглядеть так:
JToolBarHelper::custom('someFunction', 'myiconname.png', '', 'Альтернативный текст', false, false);
Ваш файл CSS необходимо подключить в файле admin.myquestions.phpследующим образом:
JHTML::stylesheet('delete.css', 'administrator/components/com_myquestions/');
Предполагается, что файлы delete.cssи icon-32-myiconfile.pngнаходятся в папке /administrator/components/com_myquestions/.
Ключевые термины