new

getTables

Компонент редактируемых таблиц на основе bootstrap и pdoTools
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
touol
Пакетов
7
Закачек
428
Автор дополнения
Пакетов
7
Закачек
428
Версия 1.5.10-alpha
Дата выпуска 22.10.2020
Загрузки 38
Просмотры 361
Внимание, этот компонент требует версию PHP 7.0 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.6 !
При написании компонентов для MODX много времени уходит на программирование редактируемых таблиц через extJs. У меня на это уходит каждый раз до 4 часов. Причем на совершенно однотипные таблицы. В конце концов мне это надоело и я решился написать свой компонент редактируемых таблиц на основе bootstrap и pdoTools— getTables! Сложность задачи я сильно недооценил и компонент сейчас выглядит и исполнен ужастно, но время на программирование таблиц с ним сократилось до 5 минут на простую и до часа на более сложную. Это сильно помогает и getTables я постоянно использую и потихоньку допиливаю. Сейчас на его основе сделано несколько компонентов, которые я хочу выложить в общий доступ. Ну и приходиться выкладывать и getTables, несмотря на не самую лучшую его реализацию.

Есть, конечно, замечательный компонент MIGX, но чтобы его использовать на фронте нужно вытаскивать на фронт extJs ради пары табличек. А bootstrap у меня везде используется.

Для примера вот реализация админки компонента вопросов-ответов gtsReview на getTables.

<cut/>
Код вызова [ [!getTabs? &config=`gtsreview_admin`]]. Инструкция config загружает gts-код табов и таблиц из системной настройки gtsreview_admin в JSON формате. Посмотреть код можно на GitHub

Основы gts-синтаксиса
Код самой простой таблицы выглядит так:
{'getTable' | snippet : [
    'loadModels'=>'raschets',
    'table'=>[
        'class'=>'raschetsMatClass',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                
            ],
        ],
        'pdoTools'=>[
            'class'=>'raschetsMatClass',
            'limit'=>0,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                'label'=>[
                    'label'=>'Имя',
                    'filter'=>1
                    ],
            ],
    ],
]}

Инструкция loadModels говорит какую модель (базы) MODX загрузить. (Модель пока удобнее создавать через MIGX.)

В table задаются все параметры таблицы:

  • class — класс таблицы.
  • actions — что можно сделать с таблицей. Для того, чтобы в таблице можно было удалять строки достаточно добавить в action инструкцию ‘remove’=>[],.
  • pdoTools — данные в таблицу из базы подготавливает pdoTools. И здесь можно использовать все его параметры.
  • checkbox — включить выбор строк чекбоксами.
  • autosave — инлайн редактирование данных таблицы. (Для autosave нужно чтоб action update было включено.)
  • row — здесь задаются колонки таблицы, которые показываются и редактируются.

Таких простых простых таблиц за полгода я уже насоздавал штук 40. Делать их все через extJs было бы очень долго.

Более подробная справка Основы gts-синтаксиса

Ссылка на GitHub

1.5.10-alpha

  • Исправлено сохранение в кеш подтаблицы.
  • Исправлено сохранение в кеш autosave.
  • Добавлены стили для админки.

1.5.9-alpha

  • Исправлено page limit.

1.5.8-alpha

  • Добавлен action copy.

1.5.7-alpha

  • Добавлена инструкция table.export для экспорта таблицы в массив. Помещается в лог pdoTools.
  • Исправлено отображение в админке.

1.5.6-alpha

  • Восстановил фильтры в GET запросах (При санации запросов была сделана ошибка).

1.5.5-alpha

  • Сделаны default и force значения полей.
  • Обработка IN в фильтрах.

1.5.4-alpha

  • Добавлены редакторы для textarea: ace и ckeditor.

1.5.3-alpha

  • Чанк для action.
  • Попровлена ошибка проверки существования строки в таблице перед записью.
  • Добавлены описания для системных параметров.

1.5.2-alpha

  • pdoTools добавлен в зависимости (Автоматически устанавливается при установки пакета.).

1.5.1-alpha

  • Исправлен запуск сторонних action.

Последние обсуждения в сообществе MODX.pro