Отображение кастомных объектов в админке MODX (таблица ExtJS)
17 февраля 2014, 14:42
Сегодня я покажу как с использование костыля на быструю руку соорудить табличку в админке для нашего компонента. Кошерный метод разработки описал Василий Наумкин, за что ему большое спасибо.
Для тех, кому на этих курсах пока слишком много информации и он хочет просто пощупать — как оно и где, подойдет мой метод.
У нас уже есть компонент, он работает, из форнтенда данные добавляются, теперь мы хотим видеть их в админке.
Скачиваем zip-архив из репозитория modExtra, заливаем его в корень сайта и распаковываем. В браузере открываем http://site-url.ru/modExtra-master/_build/build.transport.php. После этого идем в управление пакетами, нажимаем "Искать локально" и устанавливаем пакет modextra.
Теперь в папках /assets/components/ и /core/components/ появилась папка modextra. Находим и редактируем файл items.grid.js и все файлы в папке /core/components/modextra/processors/mgr/item/. Чтобы подогнать под себя смотрите комментарии в коде — там написано, что и где менять.
После этих действий можно открыть страничку нашего компонента (Компоненты -> modExtra). Список можно сортировать по любому столбцу, можно добавлять/редактировать/удалять записи. Только надписи не катят: "Создать предмет", "Удалить предмет" и прочее. Чтобы написать что-то свое, заходим в Система -> Управление словарями, выбираем пространство имен modextra и язык ru. Здесь меняем наименования, очищаем кеш сайта и любуемся.
Источник: http://modx.im/blog/docs/1956.html
http://revo.modx.ru/manager/index.php?a=55&context_key=web в MODX 2.2.x или на
http://revo.modx.ru/manager/?a=resource/create&context_key=web в MODX 2.3.x
PS Прошу прощения. Все работает. Видать чистка кеша не сразу помогает.
А можно еще маленький вопросик. Как повесить свою CMP на этот вызов?
Спасибо за уроки!
А можно ли создать несколько таблиц с переключением между ними по табам?
Но эти статьи я писал для того, чтобы можно было понять, что и как устроено в MODX. Этот способ пойдет, если нужно быстренько расширить функционал для какого-то конкретного проекта — мало ли какие у заказчиков задачи.
Как правильно разрабатывать именно компоненты рассказал Василий.
Если задача под конкретный проект, можно, в принципе, не заморачиваться на моментах чисто разработки, которым Василий в своем курсе уделяет много внимания (установка в отдельную директорию, пути и т п.)?
С другой стороны, путь, скорее всего, тупиковый — если модель нужно будет перегенерировать в процессе доработки, то при таком раскладе, скорее всего, будут проблемы.
Видимо, это оптимально — бэкэнд в одном компоненте, а фронтэнд — в другом…
Или я ошибаюсь?
А вот по поводу разного кода могу ответить. Дело в том, что когда писали Sendex, modExtra уже существовал. Для того, чтобы Sendex работал, естественно, в код вносились правки, поэтому в заготовке и в компоненте код различается. Для того заготовка и нужна.
А различия между старой версией и новой объясняются тем, что мир не стоит на месте. Тем более Open Source. Люди находят лучшие решения для какой-то задачи, и предлагают дополнить или изменить код. Если автор согласен, он вносит эти изменения. Вот, кстати, тема, где недавно обсуждались изменения в modExtra: Update таблиц своего компонента
Я нашел решение этого вопроса, мне помог даунгрейд системы а именно до PHP 5.4 был 5.5.9 и Apache 2.2 был 2.4., mySQL и т.д.
Так как же помимо того что modExtra не создавала таблицы, CMP генератор так же отказывался создавать файлы связанные с моделью. Так же были замечены некоторые проблемы связанные со старым кодом и для меня подобное решение оказалось оптимальным выходом.
Попробовал переделать modExtra под свою таблицу, правда modExtra уже сильно изменился, но вроде всё изменил аналогично твоим рекомендациям.
Результат — белый экран при вызове modExtra.
Не посоветуешь, как отлаживать дополнения?
Попробуйте в файле /manager/index.php на первой строчке написать
Я только начал изучать создание собственных компонентов. В изучении api modx очень помог Ваш сайт, спасибо.
Вопрос вот в чем — если Вы не практикуете данный способ, подскажите если не секрет, какой способ используете сейчас?.. Может создаете через migx свои таблицы и с ними уже работаете? Или может еще какой нибудь способ появился?