Создание админок путем конфигурирования

kkn1960

Новичок
Добрый день всем!

Создание админок достаточно простой, но утомительный процесс. Для того чтобы быстро создавать админки и был создан веб инструмент FGS Tools, состоящий из фреймворка и специального веб приложения (конфигуратор).

Технология создания админок с FGS Tools такая:
Для начала получаем информацию о таблицах и полях таблиц и записываем её в специальные таблицы. При этом информацию о полях автоматически дополняется информацией о типе ввода, вывода или поиска.

Затем в конфигураторе меняем информацию о полях по своему усмотрению. Например, можно поменять ярлыки ввода, заголовки колонок вывода, тип ввода или указать список, используемый для ввода.

Далее создаем конфигурации форм ввода, таблиц вывода или гридов и форм для поиска. Например, для формы ввода указываем набор кнопок, список полей ввода, порядок следования полей. Для полей ввода вводятся атрибуты ввода, правила валидации и фильтрации и т.д.

Для гридов указываем возможные действия над отдельными записями или группами записей, список выводимых полей, начальная сортировка, количество записей на страницу и т.п.

Для форм поиска указываем кнопки форм, список полей и атрибуты поиска- ярлык ввода аргумента, список условий сравнения, тип ввода аргумента для условия сравнения.

FGS Tools содержит шаблоны форм ввода, гридов и форм поиска. Поэтому для создания соответсвующих конфигураций просто копируется шаблон, вбивается код конфигурации, а поля добавляются просто путем отметки чекбоксов. Если программист правильно настроил соответствующие атрибуты полей, то создание конфигураций на этом и заканчивается.

Созданные конфигурации запоминаются в специальных таблицах.

Из созданных конфигураций создаем конфигурации контроллеров. Например, для контроллера админки для отдельной таблицы указываем конфигурации формы ввода, грида и формы поиска.
Для контроллера админки для двух таблиц типа мастер - деталь указываем конфигурации для форм ввода, грида и формы поиска для обеих таблиц.
Для контроллера админки для нескольких таблиц, одна из которых мастер таблица, а остальные либо деталь либо не деталь таблица указываем конфигурации для форм ввода, грида и формы поиска для всех таблиц.

Далее экспортируем созданные конфигурации в специальные файлы спецификаций, которые и используются фреймворком для создания экземпляров контроллеров, форм ввода, гридов и форм поиска.
В FGS Tools можно также создавать меню админок путем конфигурирования и последующего их экспорта. Есть классы двух типов меню - ниспадающего и обычного вертикального.

Созданием меню и завершается создание админки.

Таким образом, кодирование админки заменяется созданием конфигураций в конфигураторе. При таком подходе кодирование потребуется только для нестандартных вещей.

По своему CRUD функционалу FGS Tools похож на phpMyAdmin. Однако в отличие от последнего, программист может менять атрибуты ввода, вывода и поиска и наборы полей.

На данный момент создана третья версия. Это Open Source проект и лицензирован под MIT лицензию.

Скачать инструмент можно как с сайта проекта: http://www.fgstools.net/download.php так и на github: https://github.com/kkn1960/fgstools.git

На сайте можно почитать документацию и "пощупать" демо-версию конфигуратора.

Всем желающим освоить инструмент обещаю посильную помощь. Буду благодарен за критику и найденные баги. Пожелания по расширению функционала или по улучшению инструмента приветствуются!
 

AmdY

Пью пиво
Команда форума
kkn1960
Хоть пару скриншотов приложи, чтобы посмотреть на это чудо, а то сайт с демо лежит целый день, а на живой машине этот стрёмный код запускать не хочется.
 

thunder-spb

Новичок
штука может быть и интересная... только не работает.

зыж офф сайт тоже не работает)
 

WMix

герр M:)ller
Партнер клуба
поверь на слово, скрины не помогут ) поставил себе глянуть на что это похоже, и понимаю что мне нужно пройти для начала курс молодого бойца, с первого взгляда слишком абстрактно выглядит...
есть кучка интересных штучек, но как этим пользоваться остается загадкой fgstools.net не отвечает...
читаю доку
kkn1960
хочу понять о чем речь!

если по критике, меню оч неудобное выбрать правильный пункт получается с 10го раза
почемут UTF-8 твоих же полей не понимает...

а так в принципе оч интересно, события, запросы, права пользователя....
 

kkn1960

Новичок
Это форма ввода атрибутов для форм ввода
form_attibutes.PNG

Это список форм ввода.

form.PNG
 

kkn1960

Новичок
На рисунке атрибуты контроллера для отдельной таблицы. Здесь Unit - это контроллер для отдельной таблицы

unit_edit.PNG
 

thunder-spb

Новичок
заработало, на гите с ошибкой выложен конфиг... ничего не понятно)))
 

damner2

Новичок
Ну, для начинающего неплохо :)
Главное не обманывать себя, думая, что это скоро станет удобной production-ready системой для быстрого создания качественных управляемых сайтов.

по коду:
1. несоблюдение единого стандарта кодирования.
2. неэффективные (устаревшие решения): бесполезные index.php всюду, незнание microtime(true)
3. куча синглтонов
4. нафига расширение inc?
5. видимо, незнание что такое csrf
6. использование устаревших сторонних решений (jquery 1.4.2)
7. подстановка переменных в sql-запрос без экранирования
....
 

AmdY

Пью пиво
Команда форума
Вспомнилось гониво на twitter bootstrap, вот где он не помешал бы.
А так выглядит интересно, для ознакомления обфзательно покопаюсь, мот чего позаимствую из идей.
 
  • Like
Реакции: craz

флоппик

promotor fidei
Команда форума
Партнер клуба
Конфигуратор конфигураторов конфигураторов конфигураций...
 

kkn1960

Новичок
damner2
1) Не совсем понял по "несоблюдение единого стандарта кодирования"
2) "подстановка переменных в sql-запрос без экранирования" - везде где данные поступают от пользователей данные экранируются. Просто это делается в драйвере MySql при вызове метода "code"
 

damner2

Новичок
damner2
1) Не совсем понял по "несоблюдение единого стандарта кодирования"
1. Строки рандомно заключены то в одинарные, то в двойные кавычки.
2. В некоторых местах есть отступы рядом с операторами. (в большинстве случаев - нет)
 

Beavis

Banned
Пока в этом разберешься, проще самому всё написать, тем более что с помощью фреймворка, ORM и bootstrap'а простая админка делается очень быстро :)
 
Сверху