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

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

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
25 июня 2018, 11:32
0
Fatal error: Call to a member function getChunk() on a non-object
У вас в начале скрипта сам $modx подключен?
что то вроде такого
require_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/config.core.php';
require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php';
require_once MODX_CONNECTORS_PATH . 'index.php';
Александр Туниеков
25 июня 2018, 11:26
0
Блин поторопился. Конечно
$queue_email=$modx->newObject('EmailQueueItem');
Александр Туниеков
25 июня 2018, 10:42
0
Ну это известная проблема. Позже переделаю на выпадающий список
Александр Туниеков
25 июня 2018, 10:06
+1
ошибку заметил
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'])) {
            	$queue_email->newObject('EmailQueueItem'); //забыл создать объект :(
		$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']." не удалось добавить в очередь писем!");
        }
    });
Александр Туниеков
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:?