Вывод документов через pdoResources в заданном порядке

В pdoResources есть хорошая возможность вывести конкретные документы, передав id'шники ресурсов.
По-умолчанию pdoResources выводит документы по убыванию (DESC) поля Дата публикации (publishedon).
Чтобы вывести документы в том порядке, в котором они переданы в &resources=`5,2,7` необходимо задать пустое значение для &sortby=``.
Читать дальше

Страница с настройками для Modx

Раньше я активно использовал компонент ClientConfig. Он удобный, но есть недостаток, который сыграл решающую роль, чтобы от него отказаться — часто в настройках мне нужно использовать Migx. Например, это общий для всех страниц слайдер, или общие рекомендованные товары, или отзывы, под которые не нужно создавать отдельной страницы.
Читать дальше

Меняем нумерацию заказов в minishop2

Необходимо переопределить функцию getNum(), которая отвечает за получение порядкового номера.
Изначально она формирует номер по формату «годмесяц/порядковый номер». Каждый месяц нумерация будет начинаться с 1.
Читать дальше

Кастомный выпадающий список msFieldsManager из элементов дерева

Расскажу как я делал динамически заполняемый кастомный выпадающий список для поля товара. Этот список формируется из элементов дерева (структуры) сайта.
Читать дальше

PWA приложение

Чтобы иметь возможность просматривать сайт в оффлайн режиме, можно создать PWA приложение с расширенным кешированием контента. Это позволит кешировать на стороне устройства ранее просмотренные страницы, а также можно указать предварительный список страниц, которые будут закешированы при установки приложения.
Читать дальше

Облако тегов для Modx

Мое решение задачи по созданию облака тегов для Modx Revo.
Какие были задачи: создать раздел Вопрос-ответ, для каждого ответа можно было задавать любое кол-во тегов. Выводить облако тегов в сайдбаре, при этом размером тегов показывать какие из них больше используются, чем больше размер, тем чаще они встречаются. На самой странице тега, кроме вывода материалов по данному тегу, иметь возможность прописывать вручную мета-теги и выводить текст.
Читать дальше

Yii2 Связанные таблицы


2:20:00 — подтаблица в админке
2:31:00 — добавляем поле в таблицу при extends
3:18:00 — виртуальное поле в виде геттера
3:39:00 — update страница при связанных данных
3:43:00 — сценарий проверки
3:50:00 — транзакция при сохранении связанных данных

Добавить git на готовый проект

Добавляю git к действующему проекту.
Локальные изменения отправляем в удаленный репозиторий.
На сервере, куда требуется добавить GIT и выкатить изменения выполняю команды
git init
git add .
git commit -m "инициализация на сервере"
Далее копируем файл ./git/config на сервер
Выполняем команды
git fetch
git reset --hard origin/master

MIGX примеры

Пример для слайдера. Используются поля:
  • Изображение
  • Заголовок
  • Текст
  • Ссылка
Вкладки формы:
[{"caption":"Элементы","fields": [
{"field":"img","caption":"Картинка","inputTVtype":"image"},
{"field":"caption","caption":"Заголовок"},
{"field":"text","caption":"Текст"},
{"field":"link","caption":"Ссылка"}]
}]
Разметка колонок:
[{"header": "Картинка","dataIndex": "img","renderer":"this.renderImage","width":"100"},
{"header": "Заголовок","dataIndex": "caption","width":"400"},
{"header": "Ссылка","dataIndex": "link","width":"400"}]

[{"caption":"Gallery","fields": [
{"field":"img","caption":"Картинка","inputTV":"image"},
{"field":"caption","caption":"Заголовок"},
{"field":"subcaption","caption":"Подзаголовок"},
{"field":"text","caption":"Текст"},
{"field":"link","caption":"Ссылка"},
{"field":"tmpl","caption":"Шаблон слайда","inputTVtype": "listbox","inputOptionValues": "@SELECT IF(description!='', description, name), name FROM [[+PREFIX]]site_htmlsnippets WHERE `category` = 33;"}
]}]