Евгений

Евгений

С нами с 18 апреля 2017; Место в рейтинге пользователей: #1563

mFilter2 - фильтрация категорий по дочерним товарам

Публикую решение довольно распространённой задачи. Нужно фильтровать товары, но выводить не их, а их категории. Таким образом получается фильтр категорий, но по свойствам их дочерних товаров.

Первым делом нужно разобраться в логике работы mFilter2:
  1. Фильтр использует для поиска и вывода ресурсов один сниппет, указанный в &elements. В случае работы с товарами там обычно указывается msProducts.
  2. К этому сниппету будет 2 обращения: предварительная выборка и возврат подходящих id товаров, а затем их вывод пользователю.
  3. Различить эти два запроса можно по присылаемому параметру returnIds.
В получение id товаров нам вмешиваться не нужно, потому что фильтр должен построить из них фильтры. Нам нужно изменить только вывод этих товаров, заменив их на категории.
Василий Наумкин
11 октября 2015, 07:25
modx.pro
23
5 164
+4

Создание мультисайта на MODX REVO

Лучше поздно, чем никогда. Как и обещал https://modx.pro/help/5194/ пишу про создание мультисайта на MODX REVO. Выкладываю в блог Готовые решения, т.к. в статье есть чуть-чуть кода.

Смысл всей затеи — упростить поддержку сайтов.

Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации

Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.

В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.

Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.

Иван Чуваев
06 июля 2015, 02:48
modx.pro
41
22 768
+9

easyComm - дополнительное поле Изображение

UPD 22.04.2021. Эта публикация устарела!
С версии 1.11.0-pl компонент сразу поддерживает вложение файлов: modx.pro/components/21775


При использовании компонента easyComm встала задача прикрепления к сообщения файла, а точнее изображения. Да еще и так, что бы им удобно можно было управлять через админку.

По результатам работы — небольшая инструкция, как этого добиться:
Наумов Алексей
05 июня 2015, 06:30
modx.pro
17
7 903
+6

Сниппет Declension для склонения слов

Предлагаю вашему вниманию небольшой сниппет для вывода склонения. Работает как фильтр вывода, использовать нужно примерно так:
[[+balls]] [[+balls:declension=`балл,балла,баллов`]]

Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.

Для экспериментов можно повызывать сниппет с произвольными числами:
15 [[*id:input=`15`:declension=`яблоко,яблока,яблок`]]
Полный код под катом.
Василий Наумкин
22 января 2015, 06:44
modx.pro
28
8 084
+15

Отправка формы авторизации 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;
	});
});
Михаил Чеков
19 июня 2014, 15:10
modx.pro
7
6 156
0

MIGX и вывод одной превьюшки из галереи

Здравствуйте. Столкнулся с неопознанным. У меня есть структура вида
Каталог
-- Товар 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.
Евгений
23 мая 2014, 16:22
modx.pro
2
6 631
0

Сортировка в каталоге minishop2 и вывод товаров.

Добрый день.
Ребята подскажите кто как решал данный вопрос?
Требуется вывести главный каталог всех товаров, подобно их расположению в дереве MODX.
Володя
28 февраля 2014, 08:58
modx.pro
6
8 573
0