Примеры использования MIGX в MODX

Документация MIGx на русском

Стандартные плесхолдеры в MIGX

  • [[+ИмяПоля]] Все поля, которые вы создали во «вкладки формы»
  • [[+idx]] Номер элмемента (начинается с 1)
  • [[+_first]] Если элемент первый, в этом плесхолреде будет единица
    Пример использования: [[+_first:isnot=``:then=`это первая строка`:else=`это не первая строка`]]
  • [[+_last]] Если элемент последний, в этом плесхолреде будет единица
  • [[+_alt]] В этом плесхолреде будет единица у каждого второго элемента
  • [[+total]] Общее кол-во элементов, можно заменить название плейсхолдера в настроке totalVar
  • [[+property.name]] Можно вызвать любую настройку вывода сниппета. К примеру, если вы указали &tpl=`why_choose_us_tpl`, то вызвав [[+property.tpl]] вы получите why_choose_us_tpl

Слайдер MIGX — Пример вызова с картинкой из специального источника файлов.

1. Специальный источник файлов

Специальный источник файлов делаем для того чтобы убереч пользователя и себя от случайного удаления критично важный файлов. Не редки случаи, когда неопытне пользователи могут нечайно или по незнанию удалить «ненужные» файлы вроде config.core.php из файлового менеджера. Для того чтобы этого не случалось лучше всего выделить для загрузки картинок отдельную папку и дать доступ только к ней. Речь не идет о полной защите файловой системы. Это лишь защита «от дурака» при загрузки изображений через TV.

Создать источник файлов крайне просто:

  1. Зайдите Медиа / Источники файлов / Создать новый источник файлов;
  2. Введите имя и укажите «Тип источника файлов» Файловая система;
  3. Создайте папку, которую вы бы хотели отдать на расрехание пользователю, к примеру userimg;
  4. Отредактируйте новый источник файлов, укажите basePath и baseUrl/userimg/;
  5. Можно еще отредактировать allowedFileTypes, указав там jpg,jpeg,png, чтобы можно было загрузить только эти типы файлов.

2. Создаем TV MIGx

  1. Название — migx_slider
  2. Тип ввода — migx
  3. Источник файлов (опционально) — userimg
Вкладки формы
[{
"caption": "Слайдер на главной",
"fields": [
{"field": "sliderimg","caption": "Изображение","inputTVtype": "image","sourceFrom":"migx"},
{"field": "slidertitle","caption": "Заголовок"},
{"field": "slidertitlelink","caption": "Ссылка","inputTVtype": "text"}]
}]
Разметка колонок
[{"header": "Изображение","dataIndex": "sliderimg","renderer": "this.renderImage"},
{"header": "Заголовок","dataIndex": "slidertitle"}]

Стиппет вывода (снипппет идет в комплекте пакета MIGx)

[[!getImageList?
    &tvname=`migx_slider`
    &tpl=`migx_slider_tpl`
]]

Чанк шаблона migx_slider со слайдером и примеров использования стандартных плесхолдеров в условиях

[[+_first:isnot=``:then=`
    <link href="//cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.min.css" rel="stylesheet">
    <script src="//cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.min.js"></script>
    <ul class="bxSlider_wr">
`]]
<li><img src="[[+sliderimg]]" alt="Слайд номер [[+idx]]"></li>
[[+_last:isnot=``:then=`
    </ul>
    <script>$(".bxSlider_wr").bxSlider();</script>
`]]

Пример вызова с сортировкой и лимитом

В данном примере у нас есть таблица с двумя колонками — кол-вом человек (personnumber) и ценой (rubprice). Задача — вывести в чанк, используемый в getResources строку типа От 500 руб при группе в 12 человек.

[[!getImageList?
&tvname=`pricetable`
&tpl=`@CODE:<span>От <em>[[+rubprice]]</em> руб при группе в <em>[[+personnumber]]</em> человек</span>`
&limit=`1`
&sort=`[{"sortby":"rubprice","sortdir":"ASC","sortmode":"numeric"}]` [[-можно передать несколько массивов]]
&docid=`[[+id]]`]]
  • tvname — Имя TV-параметра
  • tpl — Шаблон вывода можено указать так
  • limit — Выводим только один элемент
  • sort — Сортируем по rubprice, порядок сортировки ASC(ASC - по возростанию, DESC - по убыванию), "sortmode":"numeric" означает, что значение поля будет восприниматься как число, и в соотвествии с этим сортироваться. (возможные значения (вероятно те же, что и у getResources) — string, integer, decimal, datetime)
  • docid — Так как этот сниппет используется в выводе getResources, то нужно указать id ресурса, все как всегда.

Вариант реализации MIGx (выпадающий список из системной настройки)

Задача — получить форму, со списоком (селектом). Значения должны быть редактируемы.

Для решения этой задачи создаем системную настройку, называем ее room_types_hotel. Значение настройки для начала пусть будет Одноместный||Двухместный||Семейный.

Можно использовать биндинги типа @SELECT, @EVAL, @CHUNK как в обычных TV.

В настройках TV MIGx во "Вкладки формы":

[{
"caption": "Тариф",
"fields": [
{"field": "tarifname","caption": "Название","inputTVtype": "listbox","inputOptionValues": "@EVAL return $modx->getOption('room_types_hotel');"},
{"field": "tarifmetr","caption": "Площадь (кв.м.)"},
{"field": "tarifdatefrom","caption": "Дата ОТ","inputTVtype": "date"},
{"field": "tarifdateto","caption": "Дата ДО","inputTVtype": "date"},
{"field": "tarifprice","caption": "Цена"}]
}]

В "Разметку колонок":

[
{"header": "Название","dataIndex": "tarifname"},
{"header": "Площадь","dataIndex": "tarifmetr"},
{"header": "Дата ОТ","dataIndex": "tarifdatefrom"},
{"header": "Дата ДО","dataIndex": "tarifdateto"},
{"header": "Цена","dataIndex": "tarifprice"}
]
Способ поблагодарить автора сайта:

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODx] Подсказки по API

[MODx] minishop2 tips

[Code helper] Заготовки для работы

Преобразовать кодировку в utf8 для базы MySQL

Преобразовать JSON в HTML

[MODX] Загрузка сниппета после загрузки страницы через AjaxSnippet

[MODX, MiniShop2] Отредактировать письмо о заказе - добавить ТВ поле, или что-то еще

[MODX, pdoCrumbs] Вывести список всех родителей в ТВ поле ресурса

[JS] Связать значения инпутов через jQuery (биндинг)

[MODX] Массово обновить ТВ, или другое поле через базу

[miniShop2] Разместить корзину внутри блока с оформлением заказа

[OpenCart 1.5.1] Массово изменить адреса картинок у товаров

Вывести список всех файлов на сервере (и размер файла)

[PHP] Фиксированная сортировка массива на основе хэша

Курсы валют с cbr.ru на PHP, с запасным вариантом и кэшированием

[MODX] pThumb - ресайз изображений. Примеры использования.

Изменить цену на товар, если в корзине лежит товар из особой категории minishop2

Скрыть информацию о том, что сайт работает на MODX

[MODX] Сообщение о том, что сайт использует Cookie

Не работает подгрузка товаров ajax mfilter2 на мобильном

Постраничная навигация — набор параметров и CSS PdoPage

Разбить вывод pdoResources на несколько колонок (блоков)

[MODX] Добавить скрипт перед тегом body

[PHP] Узнать скорость выполнения кода. Простой таймер PHP

Вывести список всех емэйлов miniShop2

[MODX] Создать редирект через autoRedirector API

[MODX, MiniShop2] Отредактировать шаблон письма

[MODX] Кастомный чанк для AdminPanel

[MODX] Оформление и настройка easyComm. Комментарии и отзывы на сайте.

[MODX, MiniShop2] Обязательный чекбокс при оформлении заказа

[JS] Маска для ввода телефона +7(___)___-__-__

[MODX, MiniShop2] Добавить в письмо контактную информацию

[MODX, MiniShop2] Email сделать не обязательным полем

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

[MODX, MiniShop2] Изменить формат номера заказа

Изменить цену на товар в зависимости от количества при добавлении в корзину minishop2

Общая сумма по каждому товару в корзине Minishop2

reCaptcha не через форму (без тега <form>)

Расширение свойств товаров minishop2

pdoPage и getImageList - Постраничная навигация MIGX

[MODX] Соответствие названия классов с названиями таблиц в MySQL

Вывести 404 ошибку по настройки TV MODX

Расширить таблицу site_content (объект modResource) за 5 минут

Передать файл с одного на другой сервер

Создать ресурс процессором $modx->runProcessor('resource/create', $props)

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODX, MIGX] Простейшая авторизация

[MIGX] Простая и симпатичная галерея fancybox

[MODX] Узнать размер файла

Красивое адаптивное меню под pdoMenu

pdoResources Заготовки для работы

FontAwesome - часто используемые иконки для шаблонов MODX

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

[MODX, MIGX] Вывести getImageList только если он не пустой

Bxslider отображение картинок после полной загрузки слайдера

[MODX] Вывести список всех опций MiniShop2

[MODX] Курсы валют с cbr.ru на PHP

[MODX, MIGX] Простой аудио-плеер HTML5

Как контролировать кэш CSS и скриптов

[OpenCart] Вывести на главную все категории с картинками

[PHP] Получить древовидный массив за один запрос к базе

Вырезать кавычки - фильтр MODx

Регулярное выражение

[MODx] Генератор настроек MIGX

[MODx, MIGx] Документация на русском по MIGx

[MODx] Динамическое поле emailSubject в FormIt

[MODx] Установить шаблон по-умолчанию для новых, создаваемых ресурсов

[MODx,MiniShop2] Не приходит почта администратору

[MODx] Баннеры с использованием BannerY

[Opencart] Вернуть английский язык, если вы его удалили

Универсальная форма обратной связи — feedBackForm

[MODx, miniShop2] Генерация YML для выгрузки в маркет

Редиректы

[MODx] pdoPage pagination css

[MODx] Вывести время загрузки (формирования) страницы

[MODx] Создать источник файлов

[MODx, minishop] Фильтрация по TV параметрам в msProducts

Регулярные выражения notepad++ примеры

[MODx] Создать свою страницу в админке

[JS] Заготовочки

[MODx] Поиск на сайте с пакетом SimpleSearch

[MODx, XML] Ответ для сервиса moneta.ru

[MODx] Подключить MODx в стороннем PHP файле

[MODx] Создать пакет с пользовательской таблицей

[PHP] Простое логирование

[OpenCart] Вывести модуль напрямую через контроллер

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

[MODx, MIGX] Примеры использования

[MODx] Сайт на обслуживании (выключить сайт)

[Opencart, FilterPro] Не работает пагинация

[OpenCart] Заготовки для автоматического заполнения товарами магазина 1.5.5.1.2

[PHP] Разные фишки, заготовки

[PHP, JSON] Пример перевода с помощью Yandex Translate API

[MySQL] Примеры запросов

[MODx] Вывод tv-параметров в формате [название TV] - [значение TV]

[MODx] Дата на русском

[MODx] Ускорить установку MODx revo до пары кликов

[Opencart] API tips

[MODx, Quip] Отсортировать ресурсы по количеству комментариев Quip MODx

[PHP] Загрузить файл для постобработки

[Opencart 2] Показывать в категориях

[MODx, Quip] Более рабочий вариант.

[MODx] Получить grandparent. Вывести родитель родителя

[MODx] Вывести все доступные плейсхолдеры.

[MODx] getResources заготовки

[MODx] Счетчик посещений и скачиваний для сортировки ресурсов

[MODx] Как разместить исходный код сниппета на сайте, в документации

Удалить HTML-теги span, и стили из тега br

Полезные ссылки

Все записи