Создание своего дополнения MODx и вывод его в верхнее меню административной панели

Будем создавать компонент сначала для обычного вывода таблицы из базы на экран в виде таблицы MODx (эти таблицы написаны на ExtJS), которой можно управлять, сортировать и т.п. Для начала без редактирования и удаления, только для просмотра

1. Создаем таблицу в базе данных для нового модуля, например, modx_orders_listo c нужными полями (в названии таблицы orders – название модуля, listo – название объекта в modx — важно не дать название объекта так, как называются стандартные типы php, например, list, array и т.п.)

2. В папке /core/components/ создаем папку с названием нового модуля, т.е. в нашем случае папку orders и загружаем туда болванку для модуля
В болванке написано, что и куда нужно будет загрузить, например, содержимое папки core_components — в /core/components/
Все упоминания «your_module» заменяем на название модуля (в нашем случае orders), а your_object – название объекта (в нашем случае listo), очень важно соблюдать регистр. Также меняем соответственно и названия папок.

3. В папке /model/your_module/mysql/ в файле your_object.map.inc.php необходимо указать все поля, которые есть в таблице и их типы. Тоже самое в папке schema в файле your_module.mysql.schema.xml. В нашем случае введены три поля — id, name и count, а значит, что в дальнейшем доступ через объект будет только к ним.

4. Далее в папку /assets/components также загружаем болванку assets_components и заменяем все названия папок и текст внутри файлов по аналогии с core_components.

5. Теперь займемся выводом компонента в верхнее меню админки. В системных настройках в разделе «Пространства имён» создаем новое пространство имен.

пространства имен

Соответственно orders — your_module. Если не сработает с такими путями, то стоит указать абсолютный путь вместо {core_path}

6. В базе данных в таблице modx_actions создаем новое действие.
namespace — your_module
controller – index
haslayout — 1

Запоминаем id, созданной строки, он еще будет нужен.

7. В системных настройках заходим в пункт «Меню», добавляем новый пункт.
Родитель: Верхнее меню
В поле «Действие» вводим id таблицы modx_actions, тот, который запоминали.
Пространство имён: core
Сохраняем.

Можно перетащить пункт в любое удобное место верхнего меню.
Теперь у нас есть свой пункт в меню, который выводит таблицу из базы:

свой пункт меню modx

В следующих статьях добавим удаление и редактирование строк.

И еще раз ссылка на болванку для создания своего компонента: скачать.

И ссылка на продолжение: Редактирование и удаление строк в таблице на ExtJS в своем компоненте MODx

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *