Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
13 апреля 2021, 21:45
0
Печаль. Я бы сказал, что либо давай на фронте, либо сорян, я не могу потому как я на самом деле не знаю как это делать, это же стандартный интерфейс, если в исходниках что-то править, то при обновлении затрется, а ради такой мелочи городить свой нанокомпонент ну не знаю… Хотя может быть есть простой способ, но мне он неизвестен.
13 апреля 2021, 20:48
0
Ну тогда, я бы сделал редактирование в самой новости)))
13 апреля 2021, 20:30
0
Если кому-нибудь интересно, я бы через фронт сделал)))
13 апреля 2021, 19:58
+1
Отправку можно делать так
<?php
if(!isset($chunk)){
    $modx->log(1, 'Письмо не отправлено. Не передеан чанк');
    return false;
}

if(!isset($to)){
    $modx->log(1, 'Письмо не отправлено. Не передеан email получателя');
    return false;
}else{
    $to = explode (',',$to);
}

if(!isset($subject)){$subject = 'noreply@'.$_SERVER['HTTP_HOST'];}
if(!isset($from)){$from = 'noreply@'.$_SERVER['HTTP_HOST'];}
if(!isset($reply)){$reply = $from;}
if(!isset($fromName)){$fromName = $modx->getOption('site_name');}
if(!isset($params)){
    $params = array();
}elseif(!is_array($params)){
    $params = json_decode($params, 1);
}
$modx->getService('mail', 'mail.modPHPMailer');
$pdoTools = $modx->getService('pdoTools');
$modx->getService('mail', 'mail.modPHPMailer');

$message = $pdoTools->getChunk($chunk, $params);
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM, $from);
$modx->mail->set(modMail::MAIL_FROM_NAME, $fromName);
$modx->mail->set(modMail::MAIL_SUBJECT, $subject);
foreach($to as $t){
    $modx->mail->address('to',$t);
}
$modx->mail->address('reply-to', $reply);
if(isset($attachment)){
    $modx->mail->attach($attachment);
}

$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(1,'При отправке письма произошла ошибка: '.$modx->mail->mailer->ErrorInfo);
}

$modx->mail->reset();
НО всё что я написал это лишь моё предположение, возможно в цикле отправлять и не получится.
13 апреля 2021, 19:47
+1
Пишешь обычный сниппет, в котором из глобального массива $_POST получаешь поле в котором у тебя выбранный город, это если он указан в отправляемой форме, если нет, то бери из массива get, в общем тебе нужен город. Учитывая, что Город это ресурс-коллекция, то лучше чтобы ты получал не название, а id. Потом через getIterator получаешь доверие ресурсы и по ним запускаешь цикл, в котором делаешь отправку писем, в modx есть для этого встроенные средства. Когда закончишь верни из сниппета true. И потом в вызов поставь вместо стандартного хука email название своего сниппета.
13 апреля 2021, 18:43
0
Кроме того проблема в том, что я не знаю как отправить письма через FormIt персонально, а не в таком виде «mail1@mail.com,mail3@mail.com,mail3@mail.com,». Чтобы бы другие получатели не видели кому еще отправлено письмо.
Учитывая это, пиши свой хук, который будет в цикле рассылку делать.
13 апреля 2021, 17:49
+1
Код формы? Как выглядит вывод AjaxForm? Форма для поиска и форма, данные из которой нужно рассылать, это разные формы?
13 апреля 2021, 16:56
0
Если ничего не происходит, значит скрипты не подключены, в противном случае обязательно что-то происходит и по тому, что конкретно происходит можно понять что ты не так делаешь. Нужно в системных настройках отключить стандартный редактор tickets.enable_editor
13 апреля 2021, 15:31
0
Я тут ещё подумал, у меня сейчас рейтинг выше чем у @Алексей Смирнов и это не правильно, он занимается поддержкой компонентов и в целом его скилл выше моего, поэтому я думаю надо авторам и тем кто поддерживает компоненты единовременно к рейтингу накидывать сколько-то баллов или за сам факт авторства/поддержки или за каждый компонент отдельно. Или за публикации в раздел «Новые дополнения и их Версии» повышать рейтинг баллов на 30-50. В общем надо более справедливую систему рейтинга.
13 апреля 2021, 15:24
0
Вот так как тут написано www.tiny.cloud/docs/quick-start/
12 апреля 2021, 15:40
0
Можешь проверить
{'!AjaxForm' | snippet: ['snippet' => 'FormIt', 'successMessage' => 'OK']}
12 апреля 2021, 15:18
0
Во-первых есть два компонента AjaxForm и FormIt. Первый обертка для второго, и если ты выводишь через AjaxForm, то там нет плейсхолдера [[+fi.successMessage]], а в уведомлениях выводится текст указанный в параметре &successMessage. А вывести уведомление внутри формы можно используя событие af_comlete
$(document).on('af_complete', function(event, response) {
   console.log(response.message);
    response.form.reset();
    return false;  
});
12 апреля 2021, 14:57
0
Можно конечно, в документации есть примеры расширения классов minishop2. Но лучше написать плагин на событие msOnBeforeGetOrderCost
10 апреля 2021, 11:15
0
Как по мне задача странная, по-моему настройки как раз для этого и нужны, но если уж очень надо, то создай TV где удобно, напиши плагин на OnDocFormSave который будет брать значение из этого TV и записывать в настройки minishop2 запросов в бд к таблице modx_ms2_deliveries.
10 апреля 2021, 09:58
0
Я эту мысль и пытался донести. Извините если не в полной мере отразил ваш вклад, я не специально, просто не хотел усложнять.
10 апреля 2021, 01:29
0
Как я и говорил в самом первом сообщении, разницы в скорости почти нет. Поэтому включай логику, зачем создавать чанк в бд, делать его статичным и создавать файл, если можно создать сразу файл и его использовать? Феном был внедрён чтобы работать с файлами, это удобнее, поэтому лучше всё что можно запихивать в файлы.
10 апреля 2021, 00:59
0
Если у тебя элемент (чанк, сниппет, шаблон) в файле как ты собираешься его из базы получить?
10 апреля 2021, 00:42
0
Конечно в файлах))) Шаблоны так точно.
09 апреля 2021, 23:04
0
Если коротко, то разницы нет. Поэтому юзай fenom.
07 апреля 2021, 23:35
0
Вот это убери $modx->toJSON($where);