Читаем Разрботка расширений для CMS Joomla полностью

function _DEFAULT() { JToolBarHelper::title(JText::_('COM_MYQUESTIONS_TOOLBAR_TITLE'), 'generic.png'); JToolBarHelper::editList('reply','COM_MYQUESTIONS_REPLY'); JToolBarHelper::deleteList(JText::_('COM_MYQUESTIONS_TOOLBAR_REMOVE_QUESTIONS_CONFIRMATION')); JToolBarHelper::preferences('com_myquestions'); }

Теперь на панели инструментов над списком вопросов появилась кнопка " Настройки", при нажатии на которую выводится окно, в котором можно задавать значения настроек компонента (рис. 8.2).

(есть увеличенное изображение)


Рис. 8.2.  Кнопка "Настройки" в панели инструментов

Внесем изменения в код компонента, чтобы использовать значения настроек. Измените код функции QuestionController::send() в файле /administrator/components/com_myquestions/controller.phpследующим образом:

$mailer =& JFactory::getMailer(); $params = JComponentHelper::getParams($option); $mailer->setSender($params->get('email_admin','admin@mysite.ru')); if ($task == 'sendToExpert') { $mailer->addRecipient($params->get('email_expert','expert@mysite.ru')); $mailer->setSubject(JText::_('COM_MYQUESTIONS_NEW_QUESTION')); $mailer->setBody(JText::sprintf('COM_MYQUESTIONS_EMAIL_EXPERT_BODY',$q)); }

С помощью метода JComponentHelper::getParams() мы получаем объект JParameter, а затем используем его метод get() для получения параметров, задавая значения по умолчанию.

Изменим также код фронтенда. Откройте файл /components/com_myquestions/controller.phpи измените функцию QuestionController::addQuestion() следующим образом:

… $mailer =& JFactory::getMailer(); $option = JRequest::getVar('option','com_myquestions'); $params = JComponentHelper::getParams($option); $mailer->setSender($params->get('email_admin','admin@mysite.ru')); $mailer->addRecipient($params->get('email_admin','admin@mysite.ru')); …

Задайте с помощью кнопки " Настройки" собственные значения адресов электронной почты администратора сайта и эксперта. Добавьте на сайт вопрос, отправьте уведомление о нем эксперту, об ответе - автору вопроса и убедитесь, что в папке <путь к Денверу>/tmp/!sendmailпоявилось три письма с заданными вами значениями адресов электронной почты в соответствующих полях.


Упаковка компонента

Создайте в любом месте на диске новую папку, а в ней - папки adminи site, а также файл myquestions.xml:

com_myquestions Me 2012 Copyright (C) 2012 Me

GNU General Public License version 2 or later admin@mysite.ru www.mysite.ru 1.7.0 COM_MYQUESTIONS_XML_DESCRIPTION sql/install.sql sql/uninstall.sql controller.php myquestions.html.php myquestions.php router.php
models views language/ru-RU/ru-RU.com_myquestions.ini COM_MYQUESTIONS_MENU COM_MYQUESTIONS_MENU_QUESTIONS COM_MYQUESTIONS_MENU_CATEGORIES admin.myquestions.html.php admin.myquestions.php config.xml controller.php toolbar.myquestions.html.php
toolbar.myquestions.php tables sql language/ru-RU/ru-RU.com_myquestions.ini language/ru-RU/ru-RU.com_myquestions.sys.ini Листинг .


Теги, задающие метаданные, такие как author, creationDate и другие, скопированы из файла /modules/mod_myquestions/mod_myquestions.xml.

Тег задает SQL-файл, который будет выполнен при установке компонента. Обратите внимание, что явно указана его кодировка - utf-8 и, следовательно, этот файл нужно будет сохранить в указанной кодировке. Заметьте также, что тег имеет атрибут folder со значением admin, что означает, что инсталлятор будет искать SQL-файл в папке adminустановочного пакета. Кроме того, файл задан как sql/install.sql, то есть он находится в папке sqlвнутри папки admin. Тег имеет аналогичное содержимое.

Перейти на страницу:

Похожие книги

Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT