Суть вопроса в создании настраиваемого шаблона отправки уведомлений.
Облазил весь форум и документацию по ZOO, спрашивал у Яндекса и Google - результат нулевой.
Но вот что удалось выяснить опытным путем.
Тело письма отправки уведомления о новой подаче содержится в шаблоне mail.submission.new.php [файл:
media/zoo/applications/{ваше_приложение}/templates/{ваш_шаблон}/mail.submission.new.php]. Рассмотрим последовательность отправки уведомления:
1. SubmissionEvent::saved($event) [файл:
administrator/components/com_zoo/events/submission.php]
2. SubmissionHelper::sendNotificationMail($item, $recipients, $layout) [файл:
administrator/components/com_zoo/helpers/submission.php]
3. AppMail::setBodyFromTemplate($template, $args = array()) [файл:
administrator/components/com_zoo/framework/classes/mail.php]
По умолчанию тема письма уведомления формируется следующим образом (в пункте 2):
// формируем тему письма
$subject[] = $website_name;
$subject[] = JText::_('Размещена новая');
$subject[] = JText::_('подача №'). $item->id;
$subject = implode(' ', $subject);
// Переопределяем тему письма по умолчанию
$this->setSubject($subject);
Таким же образом можно переопределить любой метод класса JMail. Если подключить шаблон renderer - это все можно будет вынести в настройки полей.
В шаблон mail.submission.new.php передается объект $item, т.е. в шаблоне мы имеем все данные подачи (элементов), в этом легко убедиться, выведя в вышеупомянутом шаблоне значения поля elements БД:
<?php echo $item->elements; ?>
Если так, то почему бы не сделать отдельный настраиваемый renderer-шаблон для отправки почтового уведомления, где мы сможем выбирать поля, значения которых нам хотелось бы получать на почту [файл:
media/zoo/applications/{ваше_приложение}/templates/{ваш_шаблон}/renderer/item/mail.submission.php]
Осталось дело за малым - подключить renderer в шаблоне mail.submission.new.php, создать сам шаблон renderer'а (mail.submission.php) и внести соответствующие изменения в positions.xml. Обычно подключается так:
<?php echo $this->renderer->render('item.full', array('view' => $this, 'item' => $this->item)); ?>
Но в шаблоне mail.submission.new.php $this - это класс AppMail (пункт 3).
А теперь, собственно основной вопрос к знатокам ZOO API: как подключить шаблон renderer?