Евгений
С нами с 18 апреля 2017; Место в рейтинге пользователей: #1566mFilter2 - фильтрация категорий по дочерним товарам
            Публикую решение довольно распространённой задачи. Нужно фильтровать товары, но выводить не их, а их категории. Таким образом получается фильтр категорий, но по свойствам их дочерних товаров.
Первым делом нужно разобраться в логике работы mFilter2:
        
        
        
    Первым делом нужно разобраться в логике работы mFilter2:
- Фильтр использует для поиска и вывода ресурсов один сниппет, указанный в &elements. В случае работы с товарами там обычно указывается msProducts.
 - К этому сниппету будет 2 обращения: предварительная выборка и возврат подходящих id товаров, а затем их вывод пользователю.
 - Различить эти два запроса можно по присылаемому параметру returnIds.
 
Создание мультисайта на MODX REVO
            Лучше поздно, чем никогда. Как и обещал https://modx.pro/help/5194/ пишу про создание мультисайта на MODX REVO. Выкладываю в блог Готовые решения, т.к. в статье есть чуть-чуть кода.
Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
        
        
        
        
    Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
easyComm - дополнительное поле Изображение
            UPD 22.04.2021. Эта публикация устарела! 
С версии 1.11.0-pl компонент сразу поддерживает вложение файлов: modx.pro/components/21775
При использовании компонента easyComm встала задача прикрепления к сообщения файла, а точнее изображения. Да еще и так, что бы им удобно можно было управлять через админку.
По результатам работы — небольшая инструкция, как этого добиться:
        
        
        
        
    С версии 1.11.0-pl компонент сразу поддерживает вложение файлов: modx.pro/components/21775
При использовании компонента easyComm встала задача прикрепления к сообщения файла, а точнее изображения. Да еще и так, что бы им удобно можно было управлять через админку.
По результатам работы — небольшая инструкция, как этого добиться:
        Сниппет Declension для склонения слов
            Предлагаю вашему вниманию небольшой сниппет для вывода склонения. Работает как фильтр вывода, использовать нужно примерно так:

Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.
Для экспериментов можно повызывать сниппет с произвольными числами:
        
        
        
    [[+balls]] [[+balls:declension=`балл,балла,баллов`]]
Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.
Для экспериментов можно повызывать сниппет с произвольными числами:
15 [[*id:input=`15`:declension=`яблоко,яблока,яблок`]]Полный код под катом.        Отправка формы авторизации Login через ajax
            Доброго времени суток!
Помогите пожалуйста разобраться, пытаюсь настроить отправку данных формы авторизации сниппета login с помощью ajax. Хотел сделать такой вариант — если пользователь ввел данные некорректно, сниппет выдавал бы ошибку без перезагрузки страницы.
Нашел вот такой вариант реализации:
        
        
        
    Помогите пожалуйста разобраться, пытаюсь настроить отправку данных формы авторизации сниппета login с помощью ajax. Хотел сделать такой вариант — если пользователь ввел данные некорректно, сниппет выдавал бы ошибку без перезагрузки страницы.
Нашел вот такой вариант реализации:
$(document).ready(function(){
//ajax Login
$("#login_form").bind("submit", function() {
        //clear
        $(".auth_error").text("");
        
        if ($("#login").val().length < 1 || $("#password").val().length < 1) {
          $(".auth_error").text("Для авторизации введите логин и пароль");
          return false;
        }
        
        //show preloader
        $.ajax({
                type    : "POST",
                cache   : false,
                url             : "[[~[[*id]]]]",
                data    : $(this).serializeArray(),
                success: function(data) {
                        var errMessage = $(data).find(".auth_error").text();
                        if(errMessage == ""){
                                window.location = "[[~[[*id]]]]";
                        }else{
                                $(".auth_error").text(errMessage);
                        }
                }
        });
        return false;
	});
});        MIGX и вывод одной превьюшки из галереи
            Здравствуйте. Столкнулся с неопознанным. У меня есть структура вида 
В чём проблема: он действительно выводит, но при этом он пишет мне вот такие URL'ы:
Но 22 — это НЕ id дочернего документа, откуда берётся галерея, это id документа из которого вызывается getImageList.
        
        
        
    Каталог
-- Товар 1
-- Товар 2В каждом товаре есть галерея MIGX со всевозможными фотками оного. Я пытаюсь одну из этих фоток вывести на страницу каталога. Делаю это таким запросом:[[!pdoMenu? 
&includeTVs=`vendorImage,catImage` 
&parents=`[[~id]]`
&sortBy=`pagetitle`
&levelClass=`level` 
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`categoryItem`
&tplCategoryFolder=`categoryItem`
]]В categoryItem, соответственно, есть вот такой код: [[getImageList? &docid=`[[+id]]` &tvname=`resourcealbum` &tpl=`CategoryItemImage` &limit=`1`]]И в чанке CategoryItemImage выводится всего лишь одна строчка: [[+image]].В чём проблема: он действительно выводит, но при этом он пишет мне вот такие URL'ы:
/assets/resourceimages/22/lenovo-desktop-thinkcentre-edge-72z-front-view.png Но 22 — это НЕ id дочернего документа, откуда берётся галерея, это id документа из которого вызывается getImageList.
Сортировка в каталоге minishop2 и вывод товаров.
            Добрый день. 
Ребята подскажите кто как решал данный вопрос?
Требуется вывести главный каталог всех товаров, подобно их расположению в дереве MODX.
        
        
        
        
    Ребята подскажите кто как решал данный вопрос?
Требуется вывести главный каталог всех товаров, подобно их расположению в дереве MODX.