Автоматическая подписка на рассылку после отправки вебформы — различия между версиями
Материал из Umicms
Sv (обсуждение | вклад) (Новая страница: «== Задача == Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подпис…») |
Mad grant (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 2.9''' | ||
+ | |||
== Задача == | == Задача == | ||
Строка 24: | Строка 26: | ||
− | public function autoSubscribe(umiEventPoint $event) { | + | public function autoSubscribe(umiEventPoint $event) |
− | + | { | |
− | + | if ($event->getMode() === "after"){ | |
− | + | ||
− | + | $email = getRequest('data'); | |
− | + | $email=$email['new']['email']; | |
− | + | ||
− | + | $fio = getRequest('data'); | |
− | + | $fio = $fio['new']['name']; | |
− | return | + | |
+ | list($lname, $fname) = split(" ", $fio); | ||
+ | |||
+ | if(getRequest("autosubscribe")) { | ||
+ | return $subscriber_id = $this->import_subscriber($email, $fname, $lname); | ||
+ | } else { | ||
+ | return false; | ||
+ | } | ||
+ | return true; | ||
} | } | ||
} | } | ||
Строка 47: | Строка 57: | ||
?> | ?> | ||
</source> | </source> | ||
+ | |||
+ | Было проверено на localpack версии 2.8.5.3 | ||
+ | |||
+ | [[Категория:Написание кастомных макросов]][[Категория:Модуль Обратная связь]] |
Текущая версия на 11:01, 5 июня 2013
Актуально для версии 2.9
Задача
Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подписывался на рассылки.
Решение
Добавить в шаблон вебформы ячейку
<div>
<input class="checkbox" type="checkbox" name="autosubscribe" id="autosubscribe" value="Подписаться на рассылки компании" checked="checked" />
<label class="inline" for="autosubscribe">Подписаться на рассылки компании</label>
</div>
Разместить кастомные макросы, перехватывающие событие отправки вебформы, в директорию ~/classes/modules/dispatches/
__custom.php:
<?php
abstract class __custom_dispatches {
//TODO: Write here your own macroses
public function autoSubscribe(umiEventPoint $event)
{
if ($event->getMode() === "after"){
$email = getRequest('data');
$email=$email['new']['email'];
$fio = getRequest('data');
$fio = $fio['new']['name'];
list($lname, $fname) = split(" ", $fio);
if(getRequest("autosubscribe")) {
return $subscriber_id = $this->import_subscriber($email, $fname, $lname);
} else {
return false;
}
return true;
}
}
};
?>
custom_events.php:
<?php
$listener = new umiEventListener("webforms_post", "dispatches", "autoSubscribe");
?>
Было проверено на localpack версии 2.8.5.3