Примеры использования 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 ресурса, все как всегда.

Пример условия where

[[!getImageList?
&tvname=`pricetable`
&where=`{"personnumber:=":12}`
]]

Вариант реализации 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. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

Похожие статьи

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

Генератор настроек MIGX

Документация на русском по MODX MIGX

Подсказки по работе и заготовки для MiniShop2

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

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

Генерация YML для выгрузки в маркет

Примеры работы с API MODX

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

Примеры выборки where, optionFilters, innerJoin

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

Добавить в письмо контактную информацию

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

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

Вывести getImageList только если он не пустой

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

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

Подсчет и вывод количества потомков ресурса в MODX

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

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

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

Вывод tv-параметров в формате -

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

Quip для MODX. Более рабочий вариант

Сниппет для вывода размера и расширения файла

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

Простой аудио-плеер HTML5

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

Слайдер Slick slider в контенте ресурса

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

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

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

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

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

Простейшая авторизация

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

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

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

Изменить формат номера заказа

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

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

Симпатичный список файлов, загружаемых к ресурсу через MIGX

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

Отредактировать шаблон письма

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

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

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

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

Создать раздел с паролем на сайте MODX

Что делать если ее приходит почта администратору

Фильтрация по TV параметрам в msProducts

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

Дата на русском

getResources заготовки

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

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

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

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

Обработка остатков заказа в miniShop2

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

Обновить alias (псевдоним) у всех ресурсов

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

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

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

Бесплатная доставка от 5000 рублей в MiniShop2

CSS для постраничной навигации pdoPage

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

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

Вырезать кавычки — фильтр-сниппет MODX

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

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

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

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

Cортировать по списку id в pdoResources и pdoTools

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

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

Ответ для сервиса moneta.ru

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

Email сделать не обязательным полем

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

Сделать все элементы статичными для Git и IDE

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

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

Сделать поле размер обязательным

Подключить текстовой редактор к доп. полям ресурса

Настройка стилей для комментариев Tickets

Динамическая замена шаблона ресурса - плагин

Приветственный экран / заглушка на сайт

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

Плагин для формирования замороженных URL с редиректом

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

xPDO Выборка из одной таблицы с зацепкой значения из другой

Вложенные условия в xPDO MODX

Вывести список всех родителей в ТВ поле ресурса

Кэширование в MODX: использование $modx->cacheManager

Как получить данные пользователя сразу после авторизации через API

Если getParentIds не работает в плагине

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

Контролировать кэширование файлов CSS и JS MiniShop2

Не приходят / не отправляются письма - в чем причина?

Наш сайт использует куки, нажмите «ОК» если вы не против
OK