Наверх

MIGXdb - управление дочерними ресурсами.

В разделе «Репосты» расположены чужие статьи, которые мне понравились или показались полезными.

MIGX — это обычное дополнительное поле (TV), который позволяет сгруппировать множество TV в один — будь то текст, изображение, файлы, чекбоксы и т.д. В этом топике речь пойдёт о MIGXdb. С помощью MIGXdb можно работать не только с существующими таблицами базы данных, но можно создать пользовательские таблицы базы данных и связать их с ресурсами в дереве документов, при этом отображение самих ресурсов можно опустить. Очень удобно для управления большим количеством документов на сайте. Качаем MIGX с репозитория MODX и поехали дальше.

Создание конфигурации


В этом топике речь пойдёт о создании дочерних ресурсов и работа с существующими таблицами базы данных. Черпал вдохновение отсюда. После установки, MIGX должен появится в основном меню менеджера в разделе Компоненты, заходим в управление MIGX. Первым делом создадим новую конфигурацию для MIGXdb-TV, имя конфигурации должно быть уникальным. Так как в этой статье я рассматриваю дочерние ресурсы к блогу, то имя конфигурации будет: resourcesBlog. В табе MIGX жмём добавить элемент, в открывшемся окне заполняем поля:
  • Name — resourcesBlog
  • Замена «Добавить элемент» — Создать топик. Этот текст будет отображаться на кнопке добавления нового ресурса.
  • Form Caption — Дочерний ресурс
  • unique MIGX ID — resourcesBlog. Уникальный ID.
Переходим в таб MIGXdb-Settings

Настройка MIGXdb


Заполним необходимые поля:
  • Classname — modResource
  • Processors Path — resourcesBlog
  • getlist defaultsort — id
  • getlist defaultsortdir — desc
  • Prefix — default Prefix (префикс таблиц БД, по умолчанию: modx_). Если префикс был изменён, здесь указать — Custom Prefix, а ниже, в поле — свой префикс.
  • Load Grid — by Button
  • Check Resource — yes
  • Has Extra Connection Table — yes
После заполнения полей жмём — Выполнено. Вновь созданная конфигурация появится в таблице управления MIGX. Для редактирования и добавления новых полей, стандартно — правая кнопка мышки и редактировать, также здесь есть Экспорт/Импорт, где можно ввести Json-код для быстрого создания всех необходимых полей. Но мы будем настраивать вручную, для лучшего восприятия процесса. В дальнейшем, на новую установку код можно взять отсюда.
Перед тем как пойдём дальше, проверяем существование папки childstutorial в /core/components/mgix/processors/mgr/. Если существует — переименовываем в resourcesBlog, если нет — качаем здесь и заливаем на сервер в выше указанную директорию. Наша созданная конфигурация будет искать этот процессор. И для лучшей наглядности, предлагаю сразу же создать новое TV с одноимённым названием — resourcesBlog, в параметрах ввода указываем тип ввода — migxdb, в разделе Конфигурации указываем: resourcesBlog. Это TV должно быть доступно для шаблона, который имеет дочерние ресурсы.
Теперь, для создания нового дочернего ресурса нам нужно открыть документ-родитель для редактирования и в табе Дополнительные поля создать новый ресурс. Но сначала нужно добавить дополнительные поля и столбцы.

Таблица дополнительного поля resourcesBlog.


Добавим дополнительные столбцы для TV resourcesBlog. Допустим, это будут: ID, Заголовок, Краткое описание, Опубликован (OK), Удалён. Откроем для редактирования созданную конфигурацию MIGX и в табе Columns жмём Добавить элемент.
  • Header — ID (шапка)
  • Field — id (поле)
  • Column width — 10 (ширина столбца, px)
  • Sortable — yes (сортировать)
  • Show in Grid — yes (показывать в сетке)
Жмём Выполнено и Добавить элемент:
  • Header — Заголовок (шапка)
  • Field — pagetitle (поле)
  • Column width — 100 (ширина столбца, px)
  • Sortable — yes (сортировать)
  • Show in Grid — yes (показывать в сетке)
  • Renderer — this.renderRowActions (это добавит в поле две кнопки, таких как: Редактировать и Опубликовать или Снять с публикации зависит от статуса документа.)
Следующий столбец:
  • Header — Краткое описание (шапка)
  • Field — introtext (поле)
  • Column width — 150 (ширина столбца, px)
  • Sortable — yes (сортировать)
  • Show in Grid — yes (показывать в сетке)
Ещё один:
  • Header — OK (шапка)
  • Field — published (поле)
  • Column width — 20 (ширина столбца, px)
  • Sortable — no (не сортировать)
  • Show in Grid — yes (показывать в сетке)
  • Renderer — this.renderCrossTick (визуализация — галочки или крестик)
Далее:
  • Header — Удалён (шапка)
  • Field — deleted (поле)
  • Column width — 10 (ширина столбца, px)
  • Sortable — no (не сортировать)
  • Show in Grid — no (не показывать в сетке)
Вот что получилось на данный момент.

Добавим к таблице кнопки действий. Перейдём в таб Actionbuttons и отметим следующие чекбоксы: addItem, bulk, toggletrash. После этого наша кнопка Создать топик станет активной, и появятся другие. При нажатии на неё открывается пустое окно, создадим в этом окне две вкладки — это Ресурс, где будут поля для заголовка, расширенного заголовка, описания и т.д. и Содержание, где будем подгружать редактор TinyMCE для основного контента. Вкладка FormtabsДобавить элемент, в открывшемся окне заполнить: CaptionРесурсы, Display above Tabsno, в поле FieldsДобавить элемент.
  • Fieldname — pagetitle
  • Caption — Заголовок
  • Description is Code — no
Вообщем-то здесь всё стандартно, используется API MODX. Для расширенного заголовка Fieldnamelongtitle, для краткого содержания ресурсов — introtext и в поле Input TV typetextarea и т.д. Остановимся на двух моментах — это показа в дереве ресурсов и использование шаблона по умолчанию. Итак, первое:
  • Fieldname — show_in_tree
  • Caption — Показывать в дереве
  • Description is Code — no
  • Input TV type — listbox
  • Input Option Values — Да==0||Нет==1 (зависит от системных настроек, если в настройках по умолчанию задано — не показывать в меню.)
  • Default Value — 0
Шаблон по умолчанию:
  • Fieldname — template
  • Description is Code — no
  • Input TV type — hidden
  • Default Value — (здесь указать id шаблона для дочерних ресурсов)
Сохраняем все открытые окна и вкладка FormtabsДобавить элемент, в открывшемся окне заполнить: CaptionСодержание, Display above Tabsno, в поле FieldsДобавить элемент.
  • Fieldname — content
  • Caption — Содержимое ресурса
  • Description is Code — no
  • Input TV type — richtext (подгружаем редактор, TinyMCE должен быть установлен)
Вкладка Contextmenues, отмечаем чекбокс recall_remove_delete — как я понимаю, это удаление с подтверждением. Смотрим что получилось:

Добавим фильтр поиска к нашему TV. Для этого перейдём на вкладку Db-Filters и добавляем элемент
  • filter Name — search
  • Label — Поиск
  • Empty Text — Поиск по заголовку
  • Filter Type — textbox
  • getlist-where — (смотри в коде)
{"pagetitle:LIKE":"%[[+search]]%"}
Надеюсь понятно разжевал)). Что не понятно, задавайте вопросы — вместе разберём. А пока всё.

Источник: marabar.ru/blogs/instructions/migxdb-upravlenie-dochernimi-resursami/


0 комментариев

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX