Jump to main content Jump to doc navigation

BxrExtra. базовый шаблон для создания нового Extra в MODX Revolution. Основан на modExtra от Shaun McCormick.

Настройка

Инструкция по созданию компонента с именем 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/

URL assets должен быть доступен из веб.

Следующий шаг. создание namespace с именем 'YourComponent', core path 'путь к /yourcomponent/core/components/yourcomponent/' и assets path 'путь к /yourcomponent/assets/components/yourcomponent/'.

После создания namespace добавьте action в namespace YourComponent с index controller и без parent controller.

Разместите созданный action в меню Component (или где нужно) с lexicon key 'yourcomponent' и description 'yourcomponent.menu_desc'. Очистите кэш и обновите страницу менеджера.

Чтобы создать таблицу по умолчанию из BxrExtra, добавьте сниппет createDBTable в менеджере и сделайте его static. Для Static files укажите '(None)', Static file. '[[++yourcomponent.core_path]]/elements/snippets/snippet.yourcomponentCreateDB.php'. Вызовите сниппет createDBTable на любом ресурсе. Должно появиться сообщение 'Table created.'

Теперь у вас должен быть рабочий extra с функциями ниже.

Функциональность

  • Пользовательская таблица «Items»
  • Сниппет со списком Items, сортировка по имени, шаблон. чанк
  • Страница менеджера для управления Items
  • Процессоры на классах
  • Grid с inline-редактированием, контекстным меню, окнами create/update/delete и поиском
  • Drag and drop сортировка в grid

Если не нужна вся функциональность, удалите лишнее и измените код.

Удаление 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
    • удалите listeners render и beforeDestroy
    • удалите функцию getDragDropText

Удаление position из базы (position используется для сортировки)

  • в core/components/yourcomponent/model/schema/yourcomponent.mysql.schema.xml
    • удалите поле с ключом "position"
  • удалите все php-файлы в core/component/yourcomponent/model/yourcomponent/mysql
  • в _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 из базы
  • запустите сниппет создания таблицы (см. Setup)

Прочее

Pull requests и issues приветствуются.

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more