Всего 125 670 комментариев

Fi1osof
Fi1osof
13 апреля 2021, 20:24
0
Если ставится и есть возможность, то да, надо осваивать.

Вот на заметку проект интересный: shellops.io/
Ребята из Ирана делают GUI для управления серверами с докерами. Контейнеры создавать, мониторить и т.п. Скорее всего взлетят (сейчас они в Эстонию релокейнулись).

Но вообще, они юзают вот эту либу: github.com/apocas/docker-modem
Старая, но развивающаяся. На JS написана, управление контейнерами и т.п. Мы там еще просили за docker-compose, и чел написал совсем новую либу: github.com/apocas/dockerode-compose

Это очень перспективное направление. Можно будет не только свой codesandbox запустить, но и небольшой хостинг :)
Fi1osof
Fi1osof
13 апреля 2021, 20:19
0
Вот привет нормальной реакции на PR: github.com/graphql-nexus/nexus/pull/887#pullrequestreview-633574197

ty!
Все. Достаточно! Мерж и ОК. И проект развивается дальше. А тут болтовни тонна, а толку мало. Так и будете топтаться на месте.
Сергей Шлоков
13 апреля 2021, 20:00
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 название своего сниппета.
Fi1osof
Fi1osof
13 апреля 2021, 19:11
0
Я утверждать не могу, но вроде же на windows professional ставится докер. Не?
Anton
13 апреля 2021, 18:59
0
Можешь пример набросать, пожалуйста?
Не могу представить в какую сторону копать. Циклы могу, но не понимаю, как сделать именно персональную рассылку.
Сергей Шлоков
13 апреля 2021, 18:43
0
Но docker — маст хэв. Это ведь не просто самостоятельная технология для какой-то конкретной задачи, это сейчас как фундамент.
Это да. Особенно для пользователей винды (таких как я). Даже Redis не поставишь.
Артур Шевченко
13 апреля 2021, 18:43
0
Кроме того проблема в том, что я не знаю как отправить письма через FormIt персонально, а не в таком виде «mail1@mail.com,mail3@mail.com,mail3@mail.com,». Чтобы бы другие получатели не видели кому еще отправлено письмо.
Учитывая это, пиши свой хук, который будет в цикле рассылку делать.
Anton
13 апреля 2021, 18:32
0
Всего 1 форма, в ней в списке (select) выбираем город (например, Москва), заполняем поля Имя, Ваш email, Запрос, ждем Отправить.
После этого надо отправить по всем email'ам, кто находится внутри коллекции Москва (всем дочерним ресурсам — филиалам), у которых в ТВ хранятся разные email'ы.

Вызов:
{$_modx->runSnippet('!AjaxForm', [
    'snippet' => 'FormIt',
    'form' => '@FILE chunks/forms/emailForm.tpl',
    'preHooks' => '',
    'hooks' => 'setEmails,email',
    'emailTo' => '[[+parsedEmails]]',
    'emailTpl' => '@FILE chunks/forms/emailFormReport.tpl',
    'emailSubject' => 'Test Message',
    'validate' => '',
])}
Простейшая форма для тестов:
<form action="{$_modx->resource.id | url}" method="post" id="callbackform" class="ajax_form">

    <div class="form-group">
        <label for="callbackform_location">location:</label>
        <input type="text" class="form-control" id="callbackform_location" name="location"
               placeholder="location">
    </div>

    <div class="form-group">
        <label for="callbackform_name">name:</label>
        <input type="text" class="form-control" id="callbackform_name" name="name"
               placeholder="name">
    </div>

    <div class="form-group">
        <label for="callbackform_email">email:</label>
        <input type="email" class="form-control" id="callbackform_email" name="email"
               placeholder="email">
    </div>

    <div class="form-group">
        <label for="callbackform_text">message:</label>
        <textarea class="form-control" name="message" id="callbackform_text"
                  placeholder="message"
                  required></textarea>
    </div>

    <button type="submit" class="btn btn-blue">Send</button>

</form>

Сам сниппет setEmails:
<?php

$array_ids = $modx->getChildIds(2, 1, array('context' => 'web',));

$docs = $modx->getCollection('modResource', array(
    'id:IN' => $array_ids,
    'template' => 2,
));

foreach ($docs as $doc) {
    if ($doc->getTVValue('email_req')) {
        $parsedEmails = $doc->getTVValue('email_req') . ',';
        $hook->setValue('parsedEmails', $parsedEmails);
    }
}

return true;
Кроме того проблема в том, что я не знаю как отправить письма через 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:33
0
Пробовал. После чего Tickets просто отказывался отправлять данные. Просто ничего не происходило при нажатие на кнопку.
Артур Шевченко
13 апреля 2021, 15:31
0
Я тут ещё подумал, у меня сейчас рейтинг выше чем у @Алексей Смирнов и это не правильно, он занимается поддержкой компонентов и в целом его скилл выше моего, поэтому я думаю надо авторам и тем кто поддерживает компоненты единовременно к рейтингу накидывать сколько-то баллов или за сам факт авторства/поддержки или за каждый компонент отдельно. Или за публикации в раздел «Новые дополнения и их Версии» повышать рейтинг баллов на 30-50. В общем надо более справедливую систему рейтинга.
Николай Савин
13 апреля 2021, 15:23
+1
Это уже есть в планах развития сайта. Сделаем.
Алексей Смирнов
13 апреля 2021, 15:00
0
Для ms2Gallery добавил вставку тегов и произвольный шаблон (Чанк) из списка сразу в окошке.
Список шаблонов формируется в папке.
Тег вставить можно только один.
Сергей
13 апреля 2021, 14:07
0
Подскажите, а можно ли как-нибудь ограничить поиск не по всему миру, а по конкретной области скажем в России или городу?
Евгений Шеронов
13 апреля 2021, 13:35
+1
Авторы могут и не заметить здесь и не знать о запрашиваемых интеграциях)
И в поддержке ни разу про такое никто не спрашивал.

Ну такая интеграция скорее всего потребует дополнительных расходов)

Вообще не помешала бы возможность подключать уведомления об интересующих компонентах, которые всё равно привязываются к топику при их упоминании.
SYAN
13 апреля 2021, 11:08
0
ну и не забываем включить jquery на сайте