amsterdam 04 августа 2016 0 9
Здравствуйте, уважаемый клуб

Может быть кто то сможет подсказать.

Стоит следующая задача: если авторизованный пользователь (login) отправил сообщение при помощи обратной связи (formIt) и прикрепил к сообщению файл (это обязательное условие), то он единоразово получает на свой емайл письмо.

Как это сделать, я, честно говоря, теряюсь…

Есть ли событие в modx на отправку файла? Если да, то как заставить ее срабатывать единоразово?

Идея: либо, отправлять письмо сразу после указанного события, либо, в паре с sendex, отправлять подписанному пользователю заготовленное письмо из рассылки.

Но в любом из случаев, без этапа идентификации события, похоже, не обойтись
9 комментариев
Fi1osof1
Fi1osof 04 августа 2016г в 09:55 #
Почитайте внимательно про хуки. В формите они на сколько помню имеются. Один хук должен отрабатывать на валидацию формы, другой на после обработки формы.
Fi1osof1
Fi1osof 04 августа 2016г в 09:56 #
Только там с хуками важный момент (просто перепроверьте, может память подвести): хуки для него — это сниппеты, и эти сниппеты должны возвращать строковое 'true'. Если нет, то хук будет считаться проваленным и форма не будет отрабатываться.
a
amsterdam 04 августа 2016г в 10:05 #
Спасибо, Николай, сейчас почитаю об этом, попробую. Отпишусь по факту
a
amsterdam 04 августа 2016г в 10:16 #
Хм, тогда получается, что если письмо будут отправлять без прикрепленного файла, хук будет falshe, и письмо вообще не уйдет, однако, уходить оно должно, т.к. пользователь может отправить сообщение и без вложения…
Fi1osof1
Fi1osof 04 августа 2016г в 10:28 #
Это уже на ваше усмотрение. Возвращайте true всегда и будет вам счастье. А отправлять или не отправлять письмо — это уже вы по своей логике смотрите.
a
amsterdam 04 августа 2016г в 15:04 #
Кто нибудь может написать хук для FormIt, за деньги, который будет отправлять единожды письмо пользователю, который отправил из формы письмо и прикрепил к нему файл? Там наверняка две-три строчки, просто нет времени разбираться, срочно нужно решить вопрос.
a
amsterdam 04 августа 2016г в 17:41 #
Или задача непомерно сложная, или у всех деньги некуда уже складывать :)
Fi1osof1
Fi1osof 04 августа 2016г в 22:39 #
Алексей, напишите на sales@modxclub.ru, завтра сделаем. Цена вопроса 1000 рублей. Там не совсем две строчки, надо же еще отслеживать была ранее отправка или нет.
a
amsterdam 08 августа 2016г в 22:53 #
Немного отвлекся от задачи, но было время подумать. Знал что задачу можно решить проще, а главное, изящнее. В паре с sendex. В хуке должно быть следующее:

— проверка, прикреплен ли файл к письму.
— если да, то отправляем подписанному пользователю письмо и уже заготовленной рассылки.

Такой хук работает, и отправляет письма из очереди в рассылке, только все. которые заготовлены для всех подписчиков

<?php
$modx->addPackage('sendex', MODX_CORE_PATH . 'components/sendex/model/');

$q = $modx->newQuery('sxQueue');
$queue = $modx->getCollection('sxQueue');
/** @var sxQueue $email */
foreach ($queue as $email) {
	$email->send();
}
return true;


но нужно отправлять именно тому пользователю, который отправил письмо. + нет проверки на вложенный файл.

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