Featured image of post Диапазон дат в MODX с помощью MIGX

Диапазон дат в MODX с помощью MIGX

Потребовалось мне как-то добавить к ресурсу MODX неограниченное количество диапазонов дат

Диапазон дат в MODX с помощью MIGX

Потребовалось мне как-то добавить к ресурсу MODX неограниченное количество диапазонов дат. Так бывает нужно, например, если ресурс - это учебный курс, который проводится несколько раз в год с такой-то дату по такую-то, и надо это как-то выводить.

Что надо делать:

  1. Установить MIGX
  2. Переходим в Управление → MIGX → Добавить элемент
  3. В поле Name вводем имя “datePicker”
  4. Открываем вкладку Formtabs → Добавить элемент
  5. В поле “Caption” вводим “Диапазон дат”
  6. Тамже рядом с “Fields” находим Добавить элемент и жамкаем
  7. В появившемся окне вводим:
  • Fieldname - “start_date”
  • Caption - “Начальная дата“
  • Input TV - “dateStart”
  • Input TV type - “date”
  • Жмем “Сохранить и закрыть”
  1. Снова жмем на “Добавить элемент” и добавляем такие параметры:
  • Fieldname - “end_date”
  • Caption - “Конечная дата“
  • Input TV - “dateEnd”
  • Input TV type - “date”
  • Жмем “Сохранить и закрыть”
  1. Множество раз жмем “Сохранить и закрыть” пока не закроется всё
  2. Создаем TV-поле dateStart, где в параметрах ввода выбираем:
  • Тип ввода: Дата
  • Выбираем другие параметры, которые по-душе)
  1. Создаем другое поле dateEnd с такими же параметрами.
  2. Создаем третье ТВ-поле datePickTv и в нем в Параметрах ввода делаем следующее:
  • Тип ввода: migx

  • Конфигурации: datePicker

  • Вкладки формы:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    
    [
    {
      "caption":"Date Ranges",
      "fields": [
          {
              "field":"start_date",
              "caption":"Start Date",
              "inputTVtype":"date"
          },
          {
              "field":"end_date",
              "caption":"End Date",
              "inputTVtype":"date"
          }
    ]
    }
    ]
    

Разметка колонок:

1
2
3
4
[
{"header": "Начало", "width": "160", "sortable": "true", "dataIndex": "start_date"},
{"header": "Конец", "width": "160", "sortable": "true", "dataIndex": "end_date"}
]
  1. Не забываем добавить это поле к шаблону в “Доступно для шаблонов”, сохраняем, крестимся и проверяем…

такой результат

В шаблоне пишем типа такого:

1
 [[!getImageList? &tvname=`datePickTv` &tpl=`date_range_tpl`]]

В чанке:

1
<p>[[+start_date:date=`%d-%m-%Y`]] — [[+end_date:date=`%d-%m-%Y`]]</p>
Создано при помощи Hugo
Тема Stack, дизайн Jimmy