Компонент на MODx
-
Скачиваем файл с ModExtra
https://btb-development.ru/casetable.zip
-
Создаем папку в корне, в папку архив и разархивируем
-
Запускаем скрипт rename_it.php с get name=mycomponentname
Пример
https://btb-development.ru/casetable/rename_it.php?name=casetable
Папка и все нужное переименуется
-
Создаем структуру таблицы
Заходим в casetable/core/components/casetable/model/schema/casetable.mysql.schema.xml
Тут в object уже будут правильные названия в атрибутах, спасибо rename
Внутри object создаем нудные поля таблицы
Пример
<object class="casetable" table="casetable" extends="xPDOSimpleObject">
<field key="i_singular" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
<field key="r_singular" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
</object>
-
Запускаем build
https://btb-development.ru/casetable/_build/build.php
В этот момент создается компотнент, в БД появляется наша таблица
-
Правим логику модуля
casestable/assets/components/casestable/js/mgr/widgets/items.grid.js
тут вывыд содержимого (записи из таблицы)
getFields: function () {
return ['id', 'i_singular', 'p_singular', 'i_plural','actions'];
},
getColumns: function () {
return [{
header: _('casetable_item_id'),
dataIndex: 'id',
sortable: true,
width: 70
}, {
header: "Именительный падеж",
dataIndex: 'i_singular',
sortable: true,
width: 200
}, {
header: "Предложный падеж",
dataIndex: 'p_singular',
sortable: false,
width: 200
}, {
header: "Именительный множественный",
dataIndex: 'i_plural',
sortable: true,
width: 150
}, {
header: "Действия",
dataIndex: 'actions',
renderer: casestable.utils.renderActions,
sortable: false,
width: 100,
id: 'actions'
}];
},
Actions надо оставить - это кнопки действия с объектом. casestable заменияем на свой модуль.
-
Добавление и изменение
casestable/core/components/casestable/processors/mgr/item/create.class.php
casestable/core/components/casestable/processors/mgr/item/update.class.php
Есть 2 класса на добавление и изменение.
Тут надо прописать условия при добавление и изменении, иначе работать не будет, т.к тут оставленые примеры.
-
Заходим в лекиконы и правим содержимое.