Алексей Шумаев

Алексей Шумаев

С нами с 30 ноября -0001; Место в рейтинге пользователей: #24
Алексей Шумаев
18 февраля 2020, 20:52
+1
Круто. Ссылку на пакет в Modstore хорошо бы сразу в текст добавить )
Алексей Шумаев
17 февраля 2020, 22:18
0
Вы сначала задайте вопрос. Всему есть причина и всё решаемо.
Алексей Шумаев
17 февраля 2020, 21:50
0
Уже давно есть новая версия: http://prntscr.com/r3ovj9.
Мне не ведомо, почему её нет в modstore.
Обратитесь к разработчику через поддержку.
Алексей Шумаев
17 февраля 2020, 09:03
+1
По моему опыту, подобные задачи в modx не решаются просто «из коробки», как, возможно, в других более специализированных системах. Но у нас cmf, поэтому всё можно настроить максимально удобно для себя.

За основу берите minishop2, т.к. там есть сразу: каталог, мультикатегории, свойства.
Обязательно mSearch2; возможно, seoFilter.

Импорт/экспорт я бы сделал свой (по мне проще правильно настроить и поддерживать свой класс экспорта-импорта, чем любое стороннее не специализированное решение). Тут главное сразу определиться: что и куда должно попадать; вот как раз это требует опыта построения проектов на modx.
В модуле экспорта/импорта закладывается логика распределения объектов по категориям minishop'а в зависимости от свойств объектов.

Для вывода на фронт в различных разрезах можно использовать:
— мультикатегориии minishop2
— mSearch2 — настраивать вывод определённых объектов, исходя из их свойств.
Проще всего, наверное, для ресурса добавить TV-поле c фильтром и применять его на данной странице
— seoFilter (? я его не использовал, но вроде он для того и создан).
Алексей Шумаев
16 февраля 2020, 17:32
0
Это да. Если сайт не на поддержке, то такая директория удаляется после запуска.
Алексей Шумаев
16 февраля 2020, 17:25
+1
Да, я просмотрел.
Но можно и не удалять — вдруг снова навернётся — опять придётся загружать.
У меня часто есть на сайтах такая закрытая директория для всяких нужных обработок.
Алексей Шумаев
16 февраля 2020, 16:54
+1
Наверное стоит чуть дополнить:
1. Скрипт лучше сохранить в закрытую базовой авторизацией директорию. На всякий случай )
2. Добавить необязательный параметр $_GET['id'] для отключения конкретного плагина, т.к. чаще всего виновник известен. А то потом не разобраться, какие были включены, а какие нет. Особенно если сайт чужой или старый с тяжёлым наследством…
Алексей Шумаев
13 февраля 2020, 22:37
1
+2
Согласен.

Кстати, есть нюанс, о котором я забыл, хотя и собирался реализовать.
Он как раз касается и метрик.

Может возникнуть такая ситуация:
1. создали универсальную форму, которую менеджер пихает по статьям где надо
2. нужна эта же форма, но с другим названием/продающим тестом и метрикой
Сейчас, получается, нужно создавать дубль формы.
Чтобы этого избежать, нужно зашить в строку запуска формы дополнительные параметры, например: название формы или иные пользовательские переменные. Тут же можно передать и событие метрики.
Получится одна форма с вариантивностью метрик и с разными названиями, продающим текстом или т.п.
Я подумаю, как это реализовать удобнее. Отпишусь.
Алексей Шумаев
13 февраля 2020, 21:27
+1
Вот ещё немного полезных широким кругам, на мой взгляд:
Модифицируем HTML на лету
Отправка Email о регистрации при оформлении заказа в miniShop2
Изменяем форму заказа minishop2
Безопасность MODX, часть 1 — обход фильтрации MODX тегов
Безопасность MODX, часть 2 — использование @ привязок
Полезные методы xPDOCacheManager
Очень пригодиться для начинающих: Работа с MODX из IDE без админки

Пользуясь случаем — благодарю авторов полезных заметок!

Получившийся список нужно будет, наверное, разбить на разделы (система, minishop2, pdoTools, ...).
Алексей Шумаев
13 февраля 2020, 21:16
+1
Спасибо.
По метрике — попробуйте коллбэк:
$(document).ready(function ($) {
    mvtForms2.callbacks.success = function(response) {
        console.log(response);
    };
    mvtForms2.callbacks.error = function(response) {
        console.log(response);
    }
    mvtForms2.callbacks.fail = function(response) {
        console.log(response);
    }
});
Должно же быть удобнее и универсально вроде. Можно все нужные метрики собрать в одном файле.
И ещё: в отличие просто от поля метрики в прошлой версии, сейчас можно вешать события не только на успешную отправку, но и на ошибки отправки или валидации. Это позволит отловить всякие баги форм или понять, что не так с конверсией.
А то бывает — есть форма, а лидов нет. Потом оказывается там проблема с вводом номера телефона, например…
Алексей Шумаев
10 февраля 2020, 09:46
0
Кстати, да.
Можно такие темы в отдельный раздел помещать, а-ля «Готовые решения / Самое полезное» и выводить в основном меню.
Алексей Шумаев
08 февраля 2020, 19:13
0
Просто исходный шаблон, на котором делали, был на bs3 )
Не думаю, что это имеет хоть какое-то значение для того, кто покупает сборки.
Алексей Шумаев
04 февраля 2020, 09:13
0
Гарантированная доставка до адресата без SMTP невозможна.
Может работать, может нет — зависит от спам-фильтра на сервере адресата.
Иногда (часто на самом деле) сервер-отправитель попадает в спам-листы.
В логе ничего не будет, т.к. никаких ошибок при отправке нет.
Пробуйте на домене через smtp.
Алексей Шумаев
01 февраля 2020, 10:50
+1
Куча сайтов с каталогами 30000+ на ms2 с кучей всего дополнительного и весьма посещаемых.
Ничего не тормозит. Поэтому напишите в раздел «Объявления о работе» — закажите аудит, специалист определит проблему.
Алексей Шумаев
29 января 2020, 14:43
0
Хм. Вам тоже похоже это нужно: https://modx.pro/solutions/10040#comment-117319
Точнее это: https://modx.pro/solutions/7037.
Берите на вооружение.
Алексей Шумаев
29 января 2020, 12:18
1
+2
Расширить модель msOrder: https://modx.pro/solutions/7037.
case 'OnMODXInit':

    # добавим расширение для msOrderAddress
    $modx->loadClass('msOrderAddress');
    #добавить новое поле для адреса 
	$modx->map['msOrderAddress']['fields']['new_field'] = 0;
	$modx->map['msOrderAddress']['fieldMeta']['new_field'] = array(
            'dbtype' => 'varchar',
            'phptype' => 'string',
            'precision' => 100,
            'null' => true,
            'default' => null,
	);

        # добавим расширение для msOrder
        $modx->loadClass('msOrder');
	$modx->map['msOrder']['fields']['new_field'] = 0;
	$modx->map['msOrder']['fieldMeta']['new_field'] = [
            'dbtype' => 'int',
            'precision' => 8,
            'phptype' => 'integer',
            'null' => true,
            'default' => 0
	];
Всё. Работаете со своими полями, как и с любыми другими.
Алексей Шумаев
19 декабря 2019, 15:53
0
Все параметры сниппета, очевидно, в параметрах )
Что в ответе можно посмотреть, распечатав массив на экран. Про объём не помню.
Всё, пробка кончается, быстро больше не отвечу, смотрите сами, там всё очень просто.