Перейти к содержимому


Функция "отправлять на e-mail" в представлении.


Сообщений в теме: 21

#1 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 10:31

Друзья, хотелось бы подробнее узнать про функцию "отправлять на e-mail" в представлении. Интересуют подробности на простом примере.

Как обычно, попытаюсь сам разобраться на простом примере.

#2 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 10:45

Итак, начнем.

Настроим стандартное представление:

В подготовке данных:
// Здесь подготовливаем данные для вывода в отчете
// Заполняем переменные данными
$data1 = "Пример";
$data2 = "123.45";
// Переносим переменные в отображение
$smarty->assign("data1", $data1);
$smarty->assign("data2", $data2);

В отображении:
<style type="text/css">
.title {
    margin: 20px 0px;
    font-size: 23px;
    font-weight: bold;
}
.right_links {
    float: right;
    font-size: 12px;
    margin-top: 5px;
}
.img_print {
    vertical-align: bottom;
    border: none;
    margin-right: 3px;
}
</style>
<div class="title">
Мой отчет
<span class="right_links no_print">
<a href="javascript:window.print()"><img src="images/print.gif" class="img_print">Печать отчёта</a>
</span>
</div>
<b>Переменная 1:</b> {$data1}
<br><br>
<b>Переменная 2:</b> {$data2}

Все отлично работает, результат выполнения:

					
					<br />
					
				</div>
				
<script type= ipb.global.registerReputation( 'rep_post_22413', { domLikeStripId: 'like_post_22413', app: 'forums', type: 'pid', typeid: '22413' }, parseInt('0') );

#3 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 10:51

Теперь, судя по функции, мы должны настроить это представление таким образом, что оно автоматически должно отправить результат выполнения на почту...

Идем в настройки:

					
					<br />
					<p class= Сообщение отредактировал dolphin: 07 Март 2014 - 10:52


#4 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 10:53

Неужели все на столько просто, что достаточно создать свой шаблон с:
<div class="title">
Мой отчет
<span class="right_links no_print">
<a href="javascript:window.print()"><img src="images/print.gif" class="img_print">Печать отчёта</a>
</span>
</div>
<b>Переменная 1:</b> {$data1}
<br><br>
<b>Переменная 2:</b> {$data2}


#5 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 10:56

Но и в этом случае не сработало, то что мы хотели. Из логов:

Цитата

2014-03-07 13:34:03 - Task terminated


#6 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 07 Март 2014 - 11:32

Уважаемые разработчики, подскажите это баг, или я чего не так делаю?

#7 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 10 Март 2014 - 11:05

Вопрос в силе!

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Март 2014 - 14:31

1. Шаблон письма служит для оформления отчетов, посылаемых на почту. Все переменные там системные, в данном случае их две: {текст отчета} - это собственно то что выводится отчетом на вкладке, т.е. результат его выполнения в программе, и {ссылка на отчет} - это ссылка в письме для перехода на вкладку с отчетом. Как правило, данный системный шаблон менять не требуется, только если вы не хотите добавить, к примеру, фирменную шапку своей компании или какие-то комментарии исключительно для письма. Все остальное, что собственно составляет тело отчета, должно готовится как обычно - в самом отчете, в "подготовке данных" и "отображении". Очевидно, вы перепутали эти разные вещи.
2. Еще раз повторюсь, на всякий случай: в системных шаблонах все переменные - системные, и как правило они уже все присутствуют в шаблоне по умолчанию, вы можете менять только их расположение и оформление окружающего их текста. Добавлять свои переменные там бессмысленно - программа их просто не поймет. Это касается не только отчетов, но и напоминаний к примеру - там тоже основной текст готовится в самом напоминании, а не в шаблоне письма. Шаблоны письма служат исключительно для дополнительного оформления писем.

#9 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 11 Март 2014 - 06:04

Настроил как Вы сказали. В итоге все равно не отправляются на почту. Я так понимаю это баг.

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Март 2014 - 09:05

Если не отправляется на почту - возможно у вас не настроен SMTP, или настроен некорректно. В очереди рассылок письмо есть?

#11 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 11 Март 2014 - 11:38

Так не ставится письмо в очередь, о чем и речь!!!

СМТП сервер настроен успешно.

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Март 2014 - 11:44

А остальные письма как? Рассылки работают?

Если не работает исключительно отправка отчетов - тогда возможно что баг, в этом случае отправьте заявку в ТП.

#13 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 11 Март 2014 - 11:48

Да, остальные рассылки работают. И тестовое письмо отправил - работает. И если "разослать" сделать - работает. Всё в порядке.

Кстати, заявку в ТП я отправлял уже. Присвоенный номер: 5 607. Но так никто и не ответил.

#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Март 2014 - 11:56

У заявки статус "в работе". Техподдержку я попросил проверить отправку отчетов, ждем результата.

#15 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 11 Март 2014 - 11:57

Благодарю Вас. Ждём.

#16 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 19 Март 2014 - 18:43

Вопрос решен с обновлением ревизии. Благодарю.

Вопрос следующий, можно ли в шаблоне прописывать динамический заголовок? Так, например, мне необходимо в отчет(в тему письма) вставить дату(текущую).

#17 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Март 2014 - 10:32

В теме письма можно использовать все те же самые переменные шаблона, что и в его теле.

#18 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 20 Март 2014 - 11:39

Не выходит. Добавил используемую в теле письма переменную {$date1} - и письмо пришло:

Цитата

{$date1}
Хотя в теле письма это {$date1} превратилось в

Цитата

19.03.2014


#19 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Март 2014 - 11:57

А откуда у вас взялась эта $date1? У вас есть поле в таблице с таким именем?

#20 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 20 Март 2014 - 12:11

Хм... Интересно... А причем тут поле в таблице с этим именем?

$date1 взялось из представления. Это переменная, в которой содержится дата.

Уточните пожалуйста, каким образом тогда можно вставить в тему письма вчерашнюю дату? Полей ведь в таблице может быть миллион, и у каждого из них отдельное значение. А представление работает не с одной строкой таблицы ведь, оно ведь работает с множеством строк...





Количество пользователей, читающих эту тему: 8

0 пользователей, 8 гостей, 0 анонимных