modExtra для MODX 2.3
Многие разработчики знают заготовку для написания расширений modExtra, которую я в своё время форкнул, а теперь иногда обновляю.
Вот, сегодня приключилось внеочередное обновление:
Список изменений под катом.
Во-первых, всё заточено под MODX 2.3. Думаю, что новые вещи нужно разрабатывать под него, в первую очередь, а уж потом адаптировать под 2.2.
Весь интерфейс прилизан. Указаны верные layout, инлайновые отступы сведены к минимому — везде используются CSS классы MODX. Таблица нормально меняет размер.
Весь код приведён в порядок и оформлен в одном стиле. Запятые в PHP и Javascript ставятся одинаково.
Отключен ненужный плагин и системная настройка. Их можно легко раскомментировать, если понадобятся.
Добавлено отключение \ включение предметов.
Групповые действия с предметами сделаны более явно и аккуратно — для них нет отдельных методов или процессоров.
Хорошая практика — генерация действий для позиций таблицы с getlist процессоре. А javascript уже делает из них меню и кнопки. Очень удобно, учитывая повсеместное распространение планшетов и телефонов.
Поиск и сортировка в таблице.
Исправлена работа с правами пользователя в процессорах. Раньше её, по сути, не было, потому что сторонние объекты не являются наследниками modAccessibleObject.
Очень надеюсь, что новые дополнения теперь будут выглядеть примерно на таком уровне. Мои, во всяком случае, точно будут.
Как пользоваться этой заготовкой смотрите в старых заметках:
bezumkin.ru/sections/components/40/
bezumkin.ru/sections/components/252/
Вот, сегодня приключилось внеочередное обновление:
Список изменений под катом.
Во-первых, всё заточено под MODX 2.3. Думаю, что новые вещи нужно разрабатывать под него, в первую очередь, а уж потом адаптировать под 2.2.
Весь интерфейс прилизан. Указаны верные layout, инлайновые отступы сведены к минимому — везде используются CSS классы MODX. Таблица нормально меняет размер.
Весь код приведён в порядок и оформлен в одном стиле. Запятые в PHP и Javascript ставятся одинаково.
Отключен ненужный плагин и системная настройка. Их можно легко раскомментировать, если понадобятся.
Добавлено отключение \ включение предметов.
Групповые действия с предметами сделаны более явно и аккуратно — для них нет отдельных методов или процессоров.
Хорошая практика — генерация действий для позиций таблицы с getlist процессоре. А javascript уже делает из них меню и кнопки. Очень удобно, учитывая повсеместное распространение планшетов и телефонов.
Поиск и сортировка в таблице.
Исправлена работа с правами пользователя в процессорах. Раньше её, по сути, не было, потому что сторонние объекты не являются наследниками modAccessibleObject.
Заключение
Очень надеюсь, что новые дополнения теперь будут выглядеть примерно на таком уровне. Мои, во всяком случае, точно будут.
Как пользоваться этой заготовкой смотрите в старых заметках:
bezumkin.ru/sections/components/40/
bezumkin.ru/sections/components/252/
Комментарии: 21
Хорошая новость! Спасибо
Василий, спасибо.
Отлично!!!
PS Кстати, пока не нажмешь на стрелочку с + не видно сколько поставили +
PS Кстати, пока не нажмешь на стрелочку с + не видно сколько поставили +
Так и задумано. Это для непредвзятого голосования.
А я чет не подумал. Понял.
Ну когда не залогинен видно сколько плюсов.
Чего то вас прям на открытия пробило. bezumkin.ru/sections/components/2553/
Василий, я попробывал установить modExtra но возник вопрос, сменил имя с помощью вашего файла. загрузил папки в корень своего сайта а в менеджере приложений пусто когда выбираю найти пакет локально.
В чем может быть проблема? (modx-2.3.2-pl-sdk — версия моего modx)
В чем может быть проблема? (modx-2.3.2-pl-sdk — версия моего modx)
После распаковки архива в корне сайта у тебя должна появиться папка modExtra-master. Дальше в браузере открываешь адрес /modExtra-master/rename_it.php?name=newname и радуешься жизни в виде переименованной заготовки.
После этого, когда поменяешь файл схемы, открой в браузере /newname/_build/build.transport.php
При стандартном конфиге компонент соберется и сразу установится.
После этого, когда поменяешь файл схемы, открой в браузере /newname/_build/build.transport.php
При стандартном конфиге компонент соберется и сразу установится.
Блин точно пакет же собрать) прошу прощения (
А у modExtra есть фронт часть?
хм. прошу опять же таки прощения я в документ вызывал чанк )
Да там есть и фронт в виде снипета и чанка. Плагин закомментирован, если нужен можно расскоментировать.
Вася, привет!
Подскажи как настроить правильный uninstall, чтобы удалялась таблица, чанки, сниппеты, пункт меню? Спасибо
Подскажи как настроить правильный uninstall, чтобы удалялась таблица, чанки, сниппеты, пункт меню? Спасибо
Заготовка — просто бомба, весь день офигеваю, фантазия разбегается!
Василий, добрый день!
У меня вопрос, если я в схеме изменил структуру таблицы, например добавил новое поле. Есть ли способ при вызове build.transport.php или при установке (апдейте) пакета сделать так, чтобы структура уже созданной и непустой таблицы MySql перегенерировалась в соответствии с новой моделью?
У меня вопрос, если я в схеме изменил структуру таблицы, например добавил новое поле. Есть ли способ при вызове build.transport.php или при установке (апдейте) пакета сделать так, чтобы структура уже созданной и непустой таблицы MySql перегенерировалась в соответствии с новой моделью?
Конечно, например вот добавление и изменение кучи полей при установке Tickets.
Спасибо!
Нашёл такую функцию в xPDOManager_mysql
Нашёл такую функцию в xPDOManager_mysql
public function alterObjectContainer($className, array $options = array()) {
if ($this->xpdo->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) {
// TODO: Implement alterObjectContainer() method.
} else {
$this->xpdo->log(xPDO::LOG_LEVEL_ERROR, "Could not get writable connection", '', __METHOD__, __FILE__, __LINE__);
}
}
По идее она как раз должна заниматься этим, а не вручную делать это с помощью addField? Я имею в виду следующие релизы modx
Ну тогда нужно не вопросы задавать, а копать самостоятельно. А потом писать всем познавательные заметки, мол смотрите как надо!
А так непонятно, зачем спрашиваешь?
А так непонятно, зачем спрашиваешь?
Ну я только после вашего последнего комментария понял куда копать. Спасибо.
А никто не задумывался, как построить такой компонент для мультиязычных сайтов? Представте что у пользователя сайт на трех языках, получается что введенная инфа в таблице на русском будет выводиться и на всех трех языках на русском. Печалька :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.