Установка
Указания, как создать компонент с именем YourComponent, используя BxrExtra.
Создайте директорию 'yourcomponent'. Клонируйте BxrExtra в yourcomponent директорию, запустив 'git clone git://github.com/TheBoxer/BxrExtra.git .' из папки yourcomponent.
Теперь можно удалить папку '.git'.
В файле 'config.core.php' измените 'MODX_CORE_PATH' , указав путь к ВАШЕМУ размещению ядра MODx.
Теперь нужно переименовать BxrExtra в YourComponent, для этого откройте 'rename_it.sh' и измените 'repl1' на 'YourComponent', 'repl2' на 'yourcomponent' и 'path' на './yourcomponent'.
Запустите 'rename_it.sh'.
Откройте 'yourcomponent/core/components/yourcomponent/templates/home.tpl' и измените id div с 'bxrextra-panel-home-div' на 'yourcomponent-panel-home-div'.
После данных изменений добавьте два параметра вваши System Settings (Системные Установки) с помощью менеджера:
- 'yourcomponent.core_path' – Ведет к /yourcomponent/core/components/yourcomponent/
- 'yourcomponent.assets_url' - /yourcomponent/assets/components/yourcomponent/
Assets url должен быть виден из web.
Далее создадим namespace (именованные области) с именем 'YourComponent',
core path (путь к ядру) 'ведущий к /yourcomponent/core/components/yourcomponent/' и
assets path (путь к активам ) 'ведущий к /yourcomponent/assets/components/yourcomponent/'.
После создания namespace, добавьте новое действие (аdd new action) под YourComponent namespace с (индекс-контроллером) indexcontroller и без parent controller (контроллера-источника).
Разместите только что созданное действие под Component menu (или там, где хотите) с ключевым словом 'yourcomponent' и описанием 'yourcomponent.menu_desc'.
Очистите кэш и обновите страницу менеджера.
Если хотите создать “табличную базу данных для использования по умолчанию” (default database table) подключенную к BxrExtra, то добавьте с помощью менеджера новый сниппет, сделайте вызов createDBTable и задайте ее как static. Определите Set media sources для Static files как '(None)' , а Static file как '/elements/snippets/snippet.yourcomponentCreateDB.php'. Внедрите сниппет 'createDBTable' во все ресурсы и запустите его. Должно появиться сообщение 'Table created'.
Теперь вы обладаете полностью рабочим дополнением, его функции описаны ниже.
Функциональность
- Интеграция пользовательских таблиц объектов
- Составление списков объектов сниппета с сортировкой по имени и шаблонными чанками
- Менеджер пользовательских страниц
- Процессор на базе классов
- Координатная сетка с встроенным редактированием, с функционалом в правостороннем меню, окна для создания нового / обновления / удаления объекта, функция поиска.
- Сортировка в координатной сетке методом “Drag and drop”
Если подобная функциональность не требуется, то достаточно просто удалить ее, изменив соответствующий код.
Удаление возможности Drag&Drop
- удалите assets/components/yourcomponent/js/mgr/extra/griddraganddrop.js
- в core/components/yourcomponent/controllers/home.class.php
- удалите $this->addJavascript($this->yourcomponent->config['jsUrl'].'mgr/extra/griddraganddrop.js');
- в assets/components/yourcomponent/js/mgr/widgets/items.grid.js
- удалите ddGroup параметр конфигурации
- удалите enableDragDrop параметр конфигурации, или определите его как false
- удалите render и beforeDestroy listeners
- удалите getDragDropText функцию
Удаление позиции из базы данных (позиция, используемая при сортировке)
- в core/components/yourcomponent/model/schema/yourcomponent.mysql.schema.xml
- удалите поле с ключом "position"
- удалите все php файлы в папке core/component/yourcomponent/model/yourcomponent/mysql folder
- в _build
- переименуйте build.config.sample.php в build.config.php
- измените build.config.php и задайте путь MODX_BASE_PATH к вашему месту размещения modx
- запустите _build/build.schema.php
- в результате должны создаться новые файлы в папке core/component/yourcomponent/model/yourcomponent/mysql
- удалите таблицу yourcomponent_items из базы данных
- запустите сниппет, создающий таблицу базы данных (описано в пункте Установка)