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','[email protected]')); if ($task == 'sendToExpert') { $mailer->addRecipient($params->get('email_expert','[email protected]')); $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','[email protected]')); $mailer->addRecipient($params->get('email_admin','[email protected]')); …
Задайте с помощью кнопки " Настройки" собственные значения адресов электронной почты администратора сайта и эксперта. Добавьте на сайт вопрос, отправьте уведомление о нем эксперту, об ответе - автору вопроса и убедитесь, что в папке <путь к Денверу>/tmp/!sendmailпоявилось три письма с заданными вами значениями адресов электронной почты в соответствующих полях.
Упаковка компонента
Создайте в любом месте на диске новую папку, а в ней - папки adminи site, а также файл myquestions.xml:
Теги, задающие метаданные, такие как author, creationDate и другие, скопированы из файла /modules/mod_myquestions/mod_myquestions.xml.
Тег