0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 988 Просмотров
*

mosgaz

  • Захожу иногда
  • 65
  • 12 / 0
Суть вопроса в создании настраиваемого шаблона отправки уведомлений.

Облазил весь форум и документацию по 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):
Код: php
// формируем тему письма
$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
<?php echo $this->renderer->render('item.full', array('view' => $this, 'item' => $this->item)); ?>
Но в шаблоне mail.submission.new.php $this - это класс AppMail (пункт 3).

А теперь, собственно основной вопрос к знатокам ZOO API: как подключить шаблон renderer?
« Последнее редактирование: 20.12.2013, 12:07:04 от mosgaz »
ACER == мусор.
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
А теперь, собственно основной вопрос к знатокам ZOO API: как подключить шаблон renderer?

Знатоки отвечают:
Код: php
// get renderer
$renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $item->getApplication()->getTemplate()->getPath()));
// get view
$view = new AppView(array_merge(array('name' => $item->getApplication()->getGroup(), 'template_path' => $item->getApplication()->getTemplate()->getPath())));
// assign vars
$view->assign('app', $this->app);
$view->assign('item', $item);
echo $renderer->render('item.full', array('view' => $view, 'item' => $item));
Примерно так.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

mosgaz

  • Захожу иногда
  • 65
  • 12 / 0
[...]Примерно так.
Большое спасибо за помощь, сработало.
ACER == мусор.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заголовки на странице подачи

Автор Mick_20

Ответов: 1
Просмотров: 849
Последний ответ 13.06.2016, 16:02:38
от Mick_20
Добавление итемов непосредственно через базу данных

Автор tarkasha

Ответов: 0
Просмотров: 891
Последний ответ 01.12.2014, 13:37:43
от tarkasha
ZOO - мои подачи из нескольких приложений

Автор nastjushka

Ответов: 2
Просмотров: 990
Последний ответ 31.03.2014, 16:50:22
от aniangeless
Шаблон печати в ZOO

Автор rk3dnp

Ответов: 0
Просмотров: 762
Последний ответ 27.03.2014, 21:59:55
от rk3dnp
Нужна помощь с Widgetkit, шаблон Revista Nuevo

Автор salem.sakarov

Ответов: 1
Просмотров: 888
Последний ответ 18.03.2014, 09:04:59
от salem.sakarov