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/
Василий Наумкин
24 сентября 2014, 11:41
modx.pro
12
5 118
+11

Комментарии: 21

Sergey Leleko
24 сентября 2014, 16:01
0
Хорошая новость! Спасибо
    TempName
    24 сентября 2014, 17:06
    0
    Василий, спасибо.
      Михаил
      25 сентября 2014, 07:18
      0
      Отлично!!!
      PS Кстати, пока не нажмешь на стрелочку с + не видно сколько поставили +
      RyanTedder
      30 октября 2014, 20:25
      0
      Василий, я попробывал установить modExtra но возник вопрос, сменил имя с помощью вашего файла. загрузил папки в корень своего сайта а в менеджере приложений пусто когда выбираю найти пакет локально.

      В чем может быть проблема? (modx-2.3.2-pl-sdk — версия моего modx)
        Воеводский Михаил
        30 октября 2014, 20:31
        +1
        После распаковки архива в корне сайта у тебя должна появиться папка modExtra-master. Дальше в браузере открываешь адрес /modExtra-master/rename_it.php?name=newname и радуешься жизни в виде переименованной заготовки.

        После этого, когда поменяешь файл схемы, открой в браузере /newname/_build/build.transport.php
        При стандартном конфиге компонент соберется и сразу установится.
          RyanTedder
          30 октября 2014, 20:46
          0
          Блин точно пакет же собрать) прошу прощения (
            RyanTedder
            30 октября 2014, 21:25
            0
            А у modExtra есть фронт часть?
              RyanTedder
              30 октября 2014, 21:51
              0
              хм. прошу опять же таки прощения я в документ вызывал чанк )
                Михаил
                31 октября 2014, 06:20
                0
                Да там есть и фронт в виде снипета и чанка. Плагин закомментирован, если нужен можно расскоментировать.
        maslitto
        22 января 2015, 18:44
        0
        Вася, привет!
        Подскажи как настроить правильный uninstall, чтобы удалялась таблица, чанки, сниппеты, пункт меню? Спасибо
          maslitto
          22 января 2015, 18:48
          0
          Заготовка — просто бомба, весь день офигеваю, фантазия разбегается!
            Михаил Малых
            27 августа 2015, 17:08
            0
            Василий, добрый день!
            У меня вопрос, если я в схеме изменил структуру таблицы, например добавил новое поле. Есть ли способ при вызове build.transport.php или при установке (апдейте) пакета сделать так, чтобы структура уже созданной и непустой таблицы MySql перегенерировалась в соответствии с новой моделью?
              Василий Наумкин
              27 августа 2015, 17:13
              0
              Конечно, например вот добавление и изменение кучи полей при установке Tickets.
                Михаил Малых
                27 августа 2015, 17:24
                0
                Спасибо!
                Нашёл такую функцию в 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
                  Василий Наумкин
                  27 августа 2015, 17:25
                  0
                  Ну тогда нужно не вопросы задавать, а копать самостоятельно. А потом писать всем познавательные заметки, мол смотрите как надо!

                  А так непонятно, зачем спрашиваешь?
                    Михаил Малых
                    27 августа 2015, 17:28
                    0
                    Ну я только после вашего последнего комментария понял куда копать. Спасибо.
              А никто не задумывался, как построить такой компонент для мультиязычных сайтов? Представте что у пользователя сайт на трех языках, получается что введенная инфа в таблице на русском будет выводиться и на всех трех языках на русском. Печалька :)
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                21