Свой x-type с данными из json

Приветствую!
ExtJs для меня главная трудность в modx, поэтому прошу подсказок

Есть поле в БД, тип TEXT, в нем хранится JSON

При вызове окна если указать x-type = textarea, то получаю такого вида:
["assets\/uploads\/user_files\/file_0_2021-03-11_20-24-30.jpg",
"assets\/uploads\/user_files\/file_1_2021-03-11_20-24-30.jpg",
"assets\/uploads\/user_files\/file_2_2021-03-11_20-24-31.jpg"]
prnt.sc/10jwg5j

Из строки можно заметить, что это массив с ссылками изображений.
Собственно хочу вывести их в виде плитки «с крестиком», т.е. когда нажимаешь на креститик, он обращается к процессору, который в свою очередь удаляет его из этого массива и сам файл.
Константин Ильин
12 марта 2021, 22:52
modx.pro
1 093
0

Плагин для пересчета стоимости доставки в админке

Всем привет!
Так как в miniShop2, к сожалению по прежнему нет пересчета доставки в админке, приходится из раза в раз что-то придумывать.
Какие решения я пока нашел:
  1. Полностью создать новый заказ через фронт — самый легкий способ, который всё пересчитает как надо, проблема только в том, что нужно заново набрать корзину с теми же параметрами, что у клиента, выбрать способ доставки с теми же параметрами, что у клиента и наконец выбрать способ оплаты
    Плюсы: охватываем даже сложные способы доставки с динамическим расчетом через всякие API
    Минусы: повторять весь процесс формирования заказа
  2. Сделать плагин на событие обновления заказа, чтобы он пересчитывал стоимость доставки, тут проблема в том, что в плагине уже нет объекта корзины, но, что мешает его создать на основании заказа. Я нашел среди issues минишопа одно решение (Код ниже), которое по идее должно решить этот вопрос хотя бы для простых способов доставки, у которых фиксированы доп. стоимость и стоимость при которой доставка бесплатная. Но проблема в том, что плагин почему-то считает не корректно, возможно из-за того, что он написан в 2015, а минишоп недавно прилично так обновился и с этим могут быть связаны проблемы. Собственно нужна помощь сообщества, чтобы его поправить.
  3. Ну и третий способ, правим исходники минишопа и делаем все поля заказа редактируемыми, таким образом решая все возможные проблемы с пост-обработкой заказа в админке. Да в таком случае менеджер может насчитать что и как угодно, но это уже проблема магазина и ответственности менеджера. Единственное, что при таком способе хорошо бы делать — это вносить все изменения в историю заказа, так можно будет произвести разбор полетов в случае чего.
Семён Кудрявцев
12 марта 2021, 12:09
modx.pro
1 057
0

Хорошие сервисы для отправки email ?

Добрый день.
Кто из личного опыта может подсказать платные и качественные сервисы по отправке email с простым api без ограничения на количество?

Один из наших магазинов на modx отправляет очень много писем, каждый заказ сопровождается минимум 2 мя, плюс есть подписка на рассылки новостей и так далее. Заказы происходят каждые 30 секунд, а подписка на новости (после того как заказчик попросил дарить каждому подписавшемуся промокод) происходит каждые 10 секунд.
И нас банят всюду — хостинг ник ру так почти сразу, если мы отправляем письма через mail()
Есть платный гугл аккаунт, отправляли через smtp, но в какой то момент и гугл прислал письмо — вы нарушили правила (без пояснения какие именно) и тоже отключил smtp

Есть ли вообще такие сервисы, которые могут граммотно и без ограничений отправлять письма?
ps и особое спасибо тому кто ткнет пальцем в строчку кода minishop где идет вызов сервиса mail при отправке писем при заказе товара и смене статусов заказа.
Спасибо.
Александр Мельник
12 марта 2021, 09:26
modx.pro
923
0

Автоустановщик шаблонов BELISSIMO

Доброго времени суток.
Начну с того что это просто концепт который в идеале можно доработать до нормального состояния а не как я: сделал, работает и хорошо.
Тестировал на чистом модексе работало сносно.
Это с позволения назвать «модуль», который установит в пару кликов html шаблон на modx с возможностью предварительно посмотреть превью шаблона в лайв режиме фрейма. Для того чтобы парсер каждый раз с целевого сайта не грузил картинки реализован кеш.
Поскольку все шаблоны разные, самописный недопарсер в каких то случаях работает хорошо, а в других нет, для обхода этого момента существуют настройки.

  • Можно отключить генерацию чанков (корректность работы зависит от вёрстки выложенного шаблона).
  • Можно отключить генерацию ссылок (корректность работы зависит от вёрстки выложенного шаблона).
  • При выводе каталога шаблонов можно выбрать тип сайта (многостраничный\одностраничный\Bootstrap\Все шаблоны)
  • И одна из самых важных функций это режим песочницы (поскольку превью выводиться в формате песочницы IFRAME, то некоторые демо версии шаблонов просто не открываться нормально (лечиться это отключением режима песочницы или просмотром в новом окне).
  • В низу под фреймом предпросмотра указаны теги, по которым быстро можно понять какие технологии применены, тип сайта и прочего.

  • По мимо этого в табе "Настройки установки и форма поиска" с низу есть категории шаблонов по которым будет осуществляться поиск.

Илья
11 марта 2021, 16:45
modx.pro
1 715
+11

Инициализация формы при обращении formit + ajaxform + google capcha

Всем примет, как на странно но роботы отправляют спам и при google capcha.
Как мне кажется, роботы отправляют спам из-за того, что они видят форму в исходном коде сайта.
Если его скрыть, возможно спама не станет.

Может у кого есть какие-то мысли или решения.

Хотелось бы максимально не править код компонентов и решить следующие задачи.

1. Скрыть форму из исходного кода, я так полагаю это можно сделать по средствам php, но на сколько сильно придется менять компоненты.
2. Сделать так, что бы google capcha срабатывала только при открытой форме, так-как чем больше форм, тем сильнее она грузит сайт и вес у скриптом не мал.
3. Что бы, функционировал ajaxform

Если форму мы можем скрыть как то при использовании всплывающих окон, то как быть без их использования.
Сергей
11 марта 2021, 13:36
modx.pro
711
0

Как сделать дополнительное поле в Register?

Здравствуйте, нужно сделать регистрацию на сайте. Установил дополнение Login.
Как сделать дополнительно поле при регистрации и отобразить его в профиле? Уже весь гугл изрыл
Вызываю сниппет Register
Чанк: lgnRegisterFormTpl
Как видим, только базовые поля заполнения.
<div class="register">
    Чанк: <strong>lgnRegisterFormTpl</strong>
    <div class="registerMessage">[[+error.message]]</div>
    
    <form class="form" action="[[~[[*id]]]]" method="post">
        <input type="hidden" name="nospam:blank" value="" />
        
        <label for="username">[[%register.username? &namespace=`login` &topic=`register`]]
            <span class="error">[[+error.username]]</span>
        </label>
        <input type="text" name="username:required:minLength=6" id="username" value="[[+username]]" />
        
        <label for="password">[[%register.password]]
            <span class="error">[[+error.password]]</span>
        </label>
        <input type="password" name="password:required:minLength=6" id="password" value="[[+password]]" />
        
        <label for="password_confirm">[[%register.password_confirm]]
            <span class="error">[[+error.password_confirm]]</span>
        </label>
        <input type="password" name="password_confirm:password_confirm=`password`" id="password_confirm" value="[[+password_confirm]]" />
        
        <label for="fullname">[[%register.fullname]]
            <span class="error">[[+error.fullname]]</span>
        </label>
        <input type="text" name="fullname:required" id="fullname" value="[[+fullname]]" />
        
        <label for="email">[[%register.email]]
            <span class="error">[[+error.email]]</span>
        </label>
        <input type="text" name="email:email" id="email" value="[[+email]]" />
        
        <br class="clear" />

        [[+register.recaptcha_html]]
        [[+error.recaptcha]]
        
        <div class="form-buttons">
            <input type="submit" name="login-register-btn" value="Register" />
        </div>
    </form>
</div>
Дмитрий
11 марта 2021, 12:49
modx.pro
993
0

PdoPage ЧПУ не переходит при клике на пагинацию, как исправить?

При клике на ссылку допустим следующей странице, не переходит, но если ввести адрес что в этой ссылке оно переходит, а при клике на ссылку ничего не происходит, НЕТ ошибок как в консоли, так и в модиксе. Плагин делал.
Migx обернут в PdoPage

[[!pdoPage?
        &element=`getImageList`
        &limit=`5`
        &ajaxMode=`default`
        &ajaxElemWrapper=`#pdopage`
        &ajaxElemRows=`#pdopage .rows`
        &ajaxElemPagination=`#pdopage .pagination`
        &ajaxElemLink=`#pdopage .pagination a`
        &pageVarKey=`refresher`
        &pageNavVar=`refresher.nav`
        &totalVar=`refresher.total`
        &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`
        &tvname=`refresherCourses`
        &tpl=`refresherCoursesTpl`
        &docid=`[[*id]]`
    ]]
Вот плагин на обработку не найденных страниц. ИВЕНТ СТАВИЛ.

<?php
    if ($modx->event->name == 'OnPageNotFound') {
        $req = $modx->getOption('request_param_alias');
        if (strpos($_REQUEST[$req], 'refresher') !== false) {
            $pageVarKey = 'refresher';
        } else if(strpos($_REQUEST[$req], 'proffesions') !== false){
            $pageVarKey = 'proffesions';
        } else {
            $pageVarKey = 'page';
        }
        
        if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
            $uri = str_replace($matches[1], '', $matches[0]);
            $id = 0;
            if (!$id = $modx->findResource($uri)) {
                $id = $modx->findResource(rtrim($uri, '/'));
            }

            if ($id) {
                $_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
                $modx->sendForward($id);
            }
        }
    }
Alex
10 марта 2021, 15:20
modx.pro
711
0

Не приходят заявки на почту через SMTP

Сайт:
xn--80acbhftsxotj0d8c.xn--p1ai/
Установлен Shopkeeper.
Заказы с сайта падают в админку:

Но на почте ничего нет.

Интересный момент — в октябре 20-го года поменяли пароль от почтового ящика, и именно после этого перестали приходить заявки на почту.
Я ввел новый пароль в поле mail_smtp_pass но безрезультатно. Пробовал еще раз менять пароль, не помогает.
Писал в поддержку хостинга, говорят проблема на стороне mail.ru
Пишу в mail.ru, говорят неверный пароль:(

Может быть где-то еще может храниться старый пароль?
Текущие настройки SMTP:

Лог ошибки:
[2021-03-10 12:44:10] (ERROR @ /var/www/u0129085/data/www/xn--80acbhftsxotj0d8c.xn--p1ai/core/components/formit/src/FormIt/Hook/Email.php: 322) [FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Виноградов Тимур
10 марта 2021, 13:02
modx.pro
2 246
0

Верстка лендинга на МОДх

7 5 000
Друзья, нужен специалист по верстке страницы на существующий сайт.
Сайт www.experttepla.ru вкладка «установить»
Дизайн новой страницы уже готов.
Кому интересно взяться — макет отправлю в ЛС
Почта для связи со мной yg@experttepla.ru
Ярослав
10 марта 2021, 12:43
modx.pro
530
0

Специалист по MODX для множественных доработок

99 99 999
Всем привет.
Ищу специалиста по MODX Revolution для реализации множества доработок по сайту. Объёмы первоначального ТЗ и оплаты обговорим с кандидатом. От вас требуются знания MODX API, Fenom и опыт работы с компонентами: minishop2, seofilter, msearch2 и другими.
dmi3mart@ya.ru
tg: @hamerium
Дмитрий
09 марта 2021, 16:48
modx.pro
721
0