Сам сниппет:
<?php /** * subscription * * Copyright 2015 by Marat Marabar <marat@marabar.ru> * Site: http://marabar.ru * * subscription snippet, требуется компонент Sendex * * Сниппет подписывет пользователей на рассылку, во впемя их регистрации. * Вызывается через параметр &postHooks сниппета Register, компонента Login. * В параметре &idnewsletter, указывается ID рассылки, по умолчанию 1. * * [[!Register? * &postHooks=`subscription` * &idnewsletter=`1` * .... * .... * .... * ]] * */ $Sendex = $modx->getService('sendex','Sendex',$modx->getOption('sendex_core_path',null,$modx->getOption('core_path').'components/sendex/').'model/sendex/'); if (!($Sendex instanceof Sendex)) return ''; $idnewsletter = $modx->getOption('idnewsletter', $scriptProperties, '1'); $username = $hook->getValue('username'); $userarray = $modx->getObject('modUser', array('username' => $username)); $userid = $userarray->get('id'); $profile = $userarray->getOne('Profile'); $email = $profile->get('email'); $duble = $modx->getObject('sxSubscriber', array('email' => $email)); if ($duble) {return;} if ($userid) { $obj = $modx->newObject('sxSubscriber'); $data = array( 'user_id' => $userid, 'email' => $email, 'newsletter_id' => $idnewsletter, ); $obj->fromArray($data); $obj->save(); } return;
Как, уже, выше сказал, да и в коде, в комментариях, есть инструкция, subscription подключается через параметр &postHooks сниппета Register, работает через компонент Sendex
[[!Register? &postHooks=`subscription` &idnewsletter=`1` .... .... .... ]]
В параметр &idnewsletter, указывается ID рассылки, по умолчанию — 1.
Есть проверка на дубли Email.
Источник: marabar.ru/blog-snippetyi-modx/121/
2 комментария