Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
25 июня 2018, 09:52
0
Примерно так думаю
if (!$EmailQueue = $modx->getService('emailqueue', 'EmailQueue', $modx->getOption('emailqueue_core_path', null,
	$modx->getOption('core_path') . 'components/emailqueue/') . 'model/emailqueue/', array())) {
	return;
}
users()
    ->members('en')
    ->profile()
    ->where('modUser.active = 1 AND DAYOFMONTH(FROM_UNIXTIME(Profile.dob)) = DAYOFMONTH(now()) AND MONTH(FROM_UNIXTIME(Profile.dob)) = MONTH(now())')
    ->joinGroup('group2')
    ->each(function($user, $idx) {
        if (is_email($user['email'])) {
            $data1 = array(
			'sender_package'=>'UsersSend', //дополнение отправитель письма
			'to'=>$user['email'], //емаил
			'subject'=>'Поздравляем с Днём рождения!', // тема письма
			'body'=>$modx->getChunk('chunkName', $user), // тело письма
			'date'=>date("Y-m-d H:i:s"), // дата в очереди. Нужно чтоб письма удалялись по истечении срока хранения.
		);
		$queue_email->fromArray($data1);
		if(!$queue_email->save())
			$modx->log(1,"Письмо для ".$user['email']." не удалось добавить в очередь писем!");
        }
    });
sender_package Нужно только чтоб видеть откуда письмо в очереди. Если вдруг несколько компонентов сразу отправляют. Можно написать что угодно или даже оставить пустым.
Александр Туниеков
18 июня 2018, 19:50
0
Ну тут идея компонента не совсем такая :). В очереди хранятся уже готовые письма. А письма в очередь добавляются кодом, в котором как раз письмо красиво и оформляется.
'body'=>$modx->getChunk('tpl.UserTest.InviteEmail',array('test_name' => $test->name,'link'=>$invite->url)),
Создание и редактирование писем в компоненте это просто на всякий случай. Чтоб протестировать компонент или просто отправку писем. Посмотреть что вообше в очереди лежит.
Александр Туниеков
18 июня 2018, 19:32
0
Кнопки Ошибки и Все — это не кнопки вообще. Это подписи что следующие кнопки к Ошибкам относяться и к всем письмам. Мда… замученный у меня дизайн получился. Буду выпадающим списком делать, но не пока занят через неделю думаю сделаю.
Александр Туниеков
18 июня 2018, 19:26
0
Хорошая идея. Только выпадающие списки я такие еще не делал. посмотрю как там в этом компоненте сделано.
Развития компонента пока не планируется :). В смысле, а есть куда его развивать? Рассылки все равно лучше делать через специализированные сервисы. Хостеры, если блокируют письма, то ничего не сообщают и не понятно ушло письмо или нет. Этот компонент на случай если сервис еще не имеет смысла подключать.
Александр Туниеков
18 июня 2018, 19:15
0
В новой версии еще и 2 значка удаления. 1 удаляет письма с ошибками. Другой очищает всю очередь.
Александр Туниеков
18 июня 2018, 19:10
0
Хм… плохо у меня с дизайном :(. Воображения на картинки не хватает. Если есть идеи какие значки повешать на эти действия, напишите плиз :). Если писать словами, то в 1 слово не обойдешься и ширины экрана в итоге не хватит.
Александр Туниеков
18 июня 2018, 18:53
+1
Это такая дата по умолчанию была. Так 0000-00-00 00:00:00 mysql записывает. Модераторы модсторе тоже сказали это поменять. В новой версии по умолчанию дата отправки null и в поле пусто. Сейчас обновил компонент на демо, чтоб вас это не смущало.
Александр Туниеков
18 июня 2018, 16:21
0
Спасибо. Как-то из головы вылетело.
Александр Туниеков
13 июня 2018, 17:49
+2
Еще дополнение на модерации и его еще в глаза никто не видел, а уже 3 спасибо :). Всем пожалуйста. Сейчас думаю на всякий случай в гитхаб выложу. Вдруг кому-то уже надо.
Александр Туниеков
10 июня 2018, 16:22
+1
Надеюсь скоро опубликуют. Рад что вам пригодиться. Забыл только очистку всей очереди добавить :(, но попозже добавлю. Если вам быстрее компонент надо будет могу выслать по почте.
Александр Туниеков
11 мая 2018, 21:33
0
В админке я еще не умею строить диаграммы. Могу сделать во фронте. за 2-3т.р. Вообще можно выгрузить результаты теста в эксель и там построить диаграммы какие вам нужно :)
Александр Туниеков
27 апреля 2018, 09:34
0
Добрый день! Пока такой возможности нет. Никто не заказывал.
И еще вопрос — можно ли в статистике по тесту выводить в процентах количество ответов?
Например в виде диаграммы?
Вы в админке такое хотите выводить? Или во фронте?
Александр Туниеков
10 апреля 2018, 00:46
0
Очень в этом сомневаюсь, иначе как например пользователю у которого прервался интернет/выключили свет продолжить оплату? Если действительно так, то печально и стоило бы написать в ТП paykeeper
Возобновить оплату можно. Минишоп при оплате и при возобновлении отправляет на страницу со снипетом который POST форму подгружает.
Александр Туниеков
09 апреля 2018, 21:30
0
Не поверите читал :). Заснуть $miniShop2->addService в ресолвер https://github.com/touol/mspPayKeeper/blob/master/_build/resolvers/resolve.tables.php
после case xPDOTransport::ACTION_INSTALL:?
Александр Туниеков
09 апреля 2018, 21:15
0
Как зарегистрировать сервис при установке компонента? Чтоб потом не сломалось.
Александр Туниеков
09 апреля 2018, 21:13
0
Убрал кучу кода из заметки :). Потратил час, поставил гит и и залил код на гитхаб. Так лучше выглядит :).
Александр Туниеков
28 января 2018, 16:45
+1
Еще раскоментируйте строку //DEBUG INFO: $modx->log(modX::LOG_LEVEL_ERROR, print_r($resp, true)); и посмотрите что там пишет. Может ключи апи рекапчи не прописали.
Александр Туниеков
28 января 2018, 16:33
0
У меня все работает :). В плагине раскоментируйте строчку //$modx->log(1,print_r($_POST,1)); и посмотрите в журнале ошибок что в форма регистрации у вас отправляет. Должно быть так.
[2018-01-26 00:41:24] (ERROR @ /public_html/core/cache/includes/elements/modplugin/23.include.cache.php : 5) Array
(
    [email] => dshfmnhjgmuhgn@gmail.com
    [phone_code] => 
    [password] => ****
    [g-recaptcha-response] => 03AA7ASh3jmOfveg0-FkbQWDXQMbi5Z2XcCp5AB6bIez-Ab1cO-4ybE2y_YtM7j_Z58UKRDto8RDV7GQpesDOH5HujWMIzjqWnTDq2Gji0VAuA8PXGsU6Q2U2ktv8IgRL0NT2myXvpEq7BBUjgOwPr0_IRNGy1HOgQRiqdgjk6o1EUayBABFpwrsI25rUA3UR_ljAR1nJ8YocZE1FJ1BWCUiorDBVLR1zT1j7xqcT6R-TdLQFcFD4vJPDoajLhSk8uQxPypJh-m4XxkE5VfjnvUD63NHURvRCdG_Jwrps_M9VoUrS_Rm68WKtLOx0ch5Hy_aiki9Odbsoq
    [action] => auth/formRegister
    [pageId] => 1
    [csrf] => 1efcf9f36d297fe01c5b3de55861c3ad
)