Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать модули-конструкторы? 
:(
    Опции темы
shurup_312
Дата 17.4.2013, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



Приветствую, винградовцы. Постараюсь максимально кратко.
Идея сделать систему модулей-конструкторов. Все модули состоят так или иначе из записей, будь то новости в модуле новостей или картинки в фотогалерее. У каждой записи есть элементики, из которых состоит запись - у новости это краткое и полное описание, название и дата выпуска допустим. У фотогалереи это сама фотка, ее название и допустим автор. 
Элеменентики опять же в плане верстки имеют конечно число отображений. В админке допустим в формах они могут быть выведены инпутами или селектами, которые один раз можно задать и все. То есть вот мы создали 5 полей в таблице и указали что первое будет инпутом, второе текстарией. третье селектом с такими-то полями. 
И тогда можно просто создать поля в таблице и сразу построятся формы добавления, редактирования. В общем-то примерно это сделано в yii в расширении gii, но хотелось бы чтобы было не в виде генератора кода, а в виде динамического движка, который один раз написан и какую ты ему таблицы не подсунь, он построит админскую часть зная только для какого кполя какой элементик. 
Вот где грамотно написать как именно должно строиться то или иное поле?
PM MAIL   Вверх
Sanchezzz
Дата 17.4.2013, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Я похожею задачу делал, в отдельную таблицу.

Структура проста
table_name | config_json

первое поле имя таблицы из БД
второе поле это массив в JSON для таблицы

ключ это названия колонки в таблице
 вложенные ключи 
 type - тип что это? text texeditor image
 sort позиция если вы планируете вывод списком полей.

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


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
shurup_312
Дата 17.4.2013, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



Цитата(Sanchezzz @ 17.4.2013,  21:19)
Я похожею задачу делал, в отдельную таблицу.

Структура проста
table_name | config_json

первое поле имя таблицы из БД
второе поле это массив в JSON для таблицы

ключ это названия колонки в таблице
 вложенные ключи 
 type - тип что это? text texeditor image
 sort позиция если вы планируете вывод списком полей.

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

Если подскажете в какую сторону копать или хоть какой поисковый запрос сделать, то буду очень благодарен.
PM MAIL   Вверх
Fortop
Дата 17.4.2013, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(shurup_312 @  17.4.2013,  20:08 Найти цитируемый пост)
Вот где грамотно написать как именно должно строиться то или иное поле? 

где угодно.
json, yaml, xml, да и просто php конфиги.

Можно даже просто реализовать в виде набора классов.

Вообще можно посмотреть в сторону гридов jqGrid например.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Sanchezzz
Дата 18.4.2013, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



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

Причем если используется задуманное  для фремворка Yii то нужно использовать встроенный инструмент CGridView (yiiGidView).

ТС Не знаю как поможет готовое если тут и так задача ясна как это сделать, уже подсказал.
Получаем информацию о таблице в Yii через CDBShema или еврейский вариант
Код

$db = Yii::app()->db;
$arr = $db->createCommand("SHOW COLUMNS FROM `".$table."`")->queryAll();


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


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
shurup_312
Дата 18.4.2013, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



Sanchezzz, спасибо за подсказку. Мне идея нравится, я больше того думаю, можно этот конфиг брать первый раз из таблицы конфигов и продублировать запись для данного поля в комментарии для поля самой таблицы с данными модуля. И тогда даже не придется доп. запрос делать на вытаскивание конфига. Но я не закрываю тему, может кто еще идеи предложит.
Да и потом, вот еще вопрос, как по умному сделать, чтобы поле (допустим дата публикации новости, если новость отложенная) влияло на выборки товаров. Ну в смысле понятно, что оно никак не будет влиять если его в запрос не включишь, н как по уму сделать схему движка, чтобы перез запросом в БД добавлялись условия тех или иных полей? То есть мы вставили поле для указания даты отложенно публикации и все, на часть запросов это стало влиять. Может тут еще мысли есть?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.