| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как сделать модули-конструкторы? |
| Автор: shurup_312 17.4.2013, 20:08 |
| Приветствую, винградовцы. Постараюсь максимально кратко. Идея сделать систему модулей-конструкторов. Все модули состоят так или иначе из записей, будь то новости в модуле новостей или картинки в фотогалерее. У каждой записи есть элементики, из которых состоит запись - у новости это краткое и полное описание, название и дата выпуска допустим. У фотогалереи это сама фотка, ее название и допустим автор. Элеменентики опять же в плане верстки имеют конечно число отображений. В админке допустим в формах они могут быть выведены инпутами или селектами, которые один раз можно задать и все. То есть вот мы создали 5 полей в таблице и указали что первое будет инпутом, второе текстарией. третье селектом с такими-то полями. И тогда можно просто создать поля в таблице и сразу построятся формы добавления, редактирования. В общем-то примерно это сделано в yii в расширении gii, но хотелось бы чтобы было не в виде генератора кода, а в виде динамического движка, который один раз написан и какую ты ему таблицы не подсунь, он построит админскую часть зная только для какого кполя какой элементик. Вот где грамотно написать как именно должно строиться то или иное поле? |
| Автор: Sanchezzz 17.4.2013, 21:19 |
| Я похожею задачу делал, в отдельную таблицу. Структура проста table_name | config_json первое поле имя таблицы из БД второе поле это массив в JSON для таблицы ключ это названия колонки в таблице вложенные ключи type - тип что это? text texeditor image sort позиция если вы планируете вывод списком полей. Ваша идея не новая и я думаю если поискать в готовых решениях то можно найти полную реализацию. |
| Автор: shurup_312 17.4.2013, 21:40 | ||
Если подскажете в какую сторону копать или хоть какой поисковый запрос сделать, то буду очень благодарен. |
| Автор: Sanchezzz 18.4.2013, 09:27 | ||
| Из моего опыта работы разработчика и слушания жалоб от клиентов, это будет худшие решение в плане удобства даже если по клику в гриде по нужной строки и всплывающем окне будет открыватеся форма. Причем если используется задуманное для фремворка Yii то нужно использовать встроенный инструмент CGridView (yiiGidView). ТС Не знаю как поможет готовое если тут и так задача ясна как это сделать, уже подсказал. Получаем информацию о таблице в Yii через CDBShema или еврейский вариант
Дальше у вас есть должна быть таблица где вы для каждого поля сделаете конфиг что вы хотите увидеть когда человек будет тыкать заполнять форму, видеть для этого столбца инпут,список итд. |
| Автор: shurup_312 18.4.2013, 10:28 |
| Sanchezzz, спасибо за подсказку. Мне идея нравится, я больше того думаю, можно этот конфиг брать первый раз из таблицы конфигов и продублировать запись для данного поля в комментарии для поля самой таблицы с данными модуля. И тогда даже не придется доп. запрос делать на вытаскивание конфига. Но я не закрываю тему, может кто еще идеи предложит. Да и потом, вот еще вопрос, как по умному сделать, чтобы поле (допустим дата публикации новости, если новость отложенная) влияло на выборки товаров. Ну в смысле понятно, что оно никак не будет влиять если его в запрос не включишь, н как по уму сделать схему движка, чтобы перез запросом в БД добавлялись условия тех или иных полей? То есть мы вставили поле для указания даты отложенно публикации и все, на часть запросов это стало влиять. Может тут еще мысли есть? |