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


Шаблон рассылки


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

#1 TelecomMedia

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

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

Отправлено 31 Июль 2015 - 08:29

Есть задача сформировать шаблон рассылки (в т. Наши сотрудники) с примерно следующим отображением:


Петров Иван 1 0
Иванов Петр 1 0
Сидоров Алексей 1 0

где 1 -это {$Договоров сегодня}, а 0 - {$Оплат сегодня}

Просто сделать шаблон рассылки, подставив переменные не совсем подходит поскольку в режиме отображения в таблице при выборе нескольких сотрудников отчет придет по каждой конкретной записи (по каждому сотруднику) на его почту. Нужна именно сводка по всем сотрудникам.

По опыту создания шаблонов со значениями из подтаблиц имею следующее:


{foreach from="{$Наши сотрудники}" name="Наши сотрудники" item=table}  // поменял значение item на table, ранее было subtable
<tr>
<td align="right">{$smarty.foreach.Наши сотрудники.iteration}</td>
<td class="xl68" width="152">{$Наши сотрудники.ФИО}</td>
<td class="xl68" width="152">{$Наши сотрудники.Договоров за сегодня}</td>
<td class="xl68" width="152">{$Наши сотрудники.Оплат за сегодня}</td>
</tr>
{/foreach}

В итоге получаю: Syntax Error in template "string:" on line 22 "{foreach from="{$Наши сотрудники}" name="Наши сотрудники" item=subtable}" - Unexpected "

#2 CbCoder

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

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

Отправлено 31 Июль 2015 - 10:02

Шаблон рассылки работает только по текущей выделенной строке. Все переменные шаблона, включая как поля, так и подтаблицы, привязаны к ней. Поэтому ваш "фокус" с циклом по таблице как минимум нелогичен, не говоря уж о том, что ничего подобного в шаблонах не предусмотрено, иначе это было бы явно описано в документации.

#3 TelecomMedia

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

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

Отправлено 31 Июль 2015 - 10:09

Понятно. Шаблон печати также не удастся настроить таким образом?

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

#4 CbCoder

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

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

Отправлено 31 Июль 2015 - 10:18

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

#5 TelecomMedia

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

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

Отправлено 31 Июль 2015 - 15:28

Вообщем решили иначе сделать - экспортировать файл каждый час по фильтру.

Однако, есть вопрос: как экспортировать файл на фтп сервер (собственный) или в саму КБ?

export_data("Наши сотрудники", "Сводка за час", "FTP сервер/hour_stats.csv"); // Что должно быть вместо FTP сервер?

Если в саму КБ, то как его потом забрать, если доступ к фтп дается на определенный срок?

#6 TelecomMedia

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

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

Отправлено 31 Июль 2015 - 15:33

И правильно ли я понимаю, что для того, чтобы выполнить вычисления в задании cron необходимо:

$result = data_select(46, "status=0"); // цикл по всем активным записям таблицы Наши сотрудники
while ($line = sql_fetch_assoc($result)) // помещаем в $line текущую запись на очередном проходе цикла
{
   // ваш код из вычисления. В самом коде нужно заменить русские имена полей в $line на внутренние
}

Замена русских имен на внутренние - имеется ввиду,например, замена $line['Договор'] на $line['f39445'], верно?

#7 CbCoder

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

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

Отправлено 31 Июль 2015 - 15:39

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

#8 CbCoder

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

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

Отправлено 31 Июль 2015 - 15:42

Цитата

Что должно быть вместо FTP сервер?

Стандартный ftp путь, я так понимаю.

#9 TelecomMedia

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

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

Отправлено 31 Июль 2015 - 16:26

export_data("Наши сотрудники", "Сводка за час", "ftp://click5.ru/hour_stats.csv");

Incorrect file path.

По поводу вычисления: да, я имею ввиду готовое вычисление из таблицы, расположенное в доп. действии.

#10 CbCoder

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

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

Отправлено 31 Июль 2015 - 17:34

Цитата

Incorrect file path.

Вообще, я первый раз слышу про возможность экспорта по ftp. В документации об этом ни слова вроде нет. Даже если такая возможность теоретически и есть, не надо забывать что ftp как правило требует авторизации по логину и паролю, плюс должна быть поддержка со стороны сервера таких путей, насколько я понимаю. Сам никогда так не делал, поэтому ничего конкретного сказать не могу.

Цитата

По поводу вычисления: да, я имею ввиду готовое вычисление из таблицы, расположенное в доп. действии.

Тогда все верно.

#11 Александр Пономарев

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

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 17 Август 2015 - 17:36

А чего бы вам в php не сформировать в переменную фрагмент кода HTML и уже его не рассылать?





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

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