Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Выбор получателя письма в зависимости от селекта в форме #50

Closed
tcse opened this issue Mar 10, 2017 · 11 comments · Fixed by #51
Assignees

Comments

@tcse
Copy link
Contributor

tcse commented Mar 10, 2017

Возможно ли как-то реализовать тригер для отправки сообщения определенному адресату в зависимости от выбранного селекта?

допустим в файле config.tpl
указаны:

emails = user1@gmail.com, user3@gmail.com,user3@gmail.com

а в файле form.tpl

<div class="uf-field">
				<div class="uf-label">
					Что интересует?
				</div>
				<div class="uf-field-input">
					<select name="calltime" class="uf-input">
						
						<option value="1_avto" [uf_select_calltime_1_avto]selected[/uf_select_calltime_1_avto]>Автомобили</option>
						<option value="2_pars" [uf_select_calltime_2_pars]selected[/uf_select_calltime_2_pars]>Запчасти</option>
						<option value="3_service" [uf_select_calltime_3_service]selected[/uf_select_calltime_3_service]>Сервис</option>
					</select>
				</div>
			</div>

При выборе первого селекта "Автомобили"
письмо будет отправлено на user1@gmail.com

при выборе второго селекта "Запчасти"
письмо будет отправлено на user2@gmail.com

и так далее.

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

альтернатива:

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

вдруг, есть иные варианты?


@pafnuty не забудь посмотреть этот тиккет 🎫

@pafnuty
Copy link
Member

pafnuty commented Mar 10, 2017

Сейчас так сделать нельзя.

@pafnuty pafnuty self-assigned this Mar 10, 2017
@VitArts
Copy link

VitArts commented Mar 10, 2017

А жаль, интересная тема была бы.

@pafnuty
Copy link
Member

pafnuty commented Mar 10, 2017

@tcse @VitArts всё в ваших руках ✋
исх. код модуля то открыт :)

@tcse
Copy link
Contributor Author

tcse commented Mar 10, 2017

я, кстати ошибся :(

в email.tpl

между тегами [header] и [/header]
вывод селектов не работает

другими словами такая запись

[header] Заказ звонка с сайта 
[uf_select_calltime="1_avto"]- про Автомобили[/uf_select_calltime]
[uf_select_calltime="2_pars"]- про Запчасти[/uf_select_calltime]
[uf_select_calltime="3_service"]- про Сервис[/uf_select_calltime]
[/header]

в реальном письме выводит сплошной текст

Заказ звонка с сайта [uf_select_calltime="1_avto"]- про Автомобили[/uf_select_calltime] [uf_select_calltime="2_pars"]- про Запчасти[/uf_select_calltime] [uf_select_calltime="3_service"]- про Сервис[/uf_select_calltime]

Но в теле письма без проблем отображает, что и ожидаемо.

@VitArts
Copy link

VitArts commented Mar 10, 2017

На самом деле да, если сделать, что бы темы письма были из селектов, то фильтрами в почте можно раскидывать письма куда хочешь.

@pafnuty
Copy link
Member

pafnuty commented Mar 10, 2017

@tcse какое это имеет отношение к теме тиккета?

@tcse
Copy link
Contributor Author

tcse commented Mar 10, 2017

@pafnuty как это какое?
прямое - описал альтернативный вариант в первом топике, предположив, что из шаблона email.tpl уж точно работает - но фигу :(
живой тест показал, что не работает из заголовка письма.
Вероятно так даже и не планировалось.
Или это просто баг?

@tcse
Copy link
Contributor Author

tcse commented Mar 10, 2017

@VitArts почтовыми фильтрами и сейчас легко раскидать.

если в тегах тегах сообщения прописать например так

<h2 style="margin: 0; padding: 20px; color: #ffffff; background: #164194;">
Заказ звонка с сайта
[uf_select_calltime="1_avto"]- про Автомобили[/uf_select_calltime]
[uf_select_calltime="2_pars"]- про Запчасти[/uf_select_calltime]
[uf_select_calltime="3_service"]- про Сервис[/uf_select_calltime]
</h2>

дальше уже фильтр по письму: Если сообщение содержит текст Заказ звонка с сайта - про Запчасти переместить письмо в папку....

@pafnuty
Copy link
Member

pafnuty commented Mar 10, 2017

@tcse тема тиккета: "Выбор получателя письма в зависимости от селекта в форме".
То, что ты описал - баг (который ещё следует воспроизвести) и он не имеет вообще никакого отношения к фичам, которых нет в модуле 😄

@tcse
Copy link
Contributor Author

tcse commented Mar 10, 2017

@pafnuty не поверишь... есть такое понятие как контекст.
И все написанное именно в контексте топика.

Но раз считаешь нужным разделять мух от котлет - дели.
Лишь бы результат был.

А про модификации на благо моих интересов сам знаешь - за мной не заржавеет. Расчет в начале месяца за прошедший. :)

@pafnuty
Copy link
Member

pafnuty commented Mar 16, 2017

Думаю этот вопрос можно закрыть реализовав #40

pafnuty added a commit that referenced this issue Mar 16, 2017
- Обновлён [установщик](https://github.com/dle-modules/DLE-StarterKit) доя версии 1.0.2 (fix #47)
- Добавлен новый параметр `parseSendMail`, добавляющий возможность производить манипуляции над данными перед отправкой email. В параметр передаётся путь к php файлу, без расширения, отностительно папки engine/modules. Например можно добавить в шаблон email-сообщения новые теги `[footer]{footer}[/footer]`. Для этого в конфиге прописываем `parseSendMail = addFooter`, создаём файл `engine/modules/addFooter.php` со следующим содержимым:
```php
<?php
if ($arSendMail['select1'] === 'val1') {
	$mailTpl->set('[footer]', '');
	$mailTpl->set('[/footer]', '');
	$mailTpl->set('{footer}', $arSendMail['select1']);
} else {
	$mailTpl->set_block("'\\[footer\\](.*?)\\[\\/footer\\]'si", '');
}
```
- Идея с "колбэками", реализована, дальше будем добавлять по потребностям (fix #40) (fix #50).
@pafnuty pafnuty mentioned this issue Mar 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants