Вообщем все просто идея автоматической генерации табов из базы для редактирования конфига.
Никто не извращался?
имеем таблицу примерно такого вида:
CREATE TABLE IF NOT EXISTS `configuration` (
`configuration_id` int(11) NOT NULL AUTO_INCREMENT,
`group` varchar(128) NOT NULL,
`name` varchar(128) NOT NULL,
`type` enum('string','boolean','file','int') NOT NULL DEFAULT 'string',
`param` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`value` varchar(128) NOT NULL,
PRIMARY KEY (`configuration_id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `configuration` (`configuration_id`, `group`, `name`, `type`, `param`, `description`, `value`) VALUES
(1, '', 'theme', 'string', '64', 'Theme', 'classic'),
(3, 'server', 'cache', 'boolean', '', 'Cache', 'true'),
(4, '', 'news_on_page', 'int', 'min:5;max:30;', '', '10');
Далее во вьюшке $models - это findAll(); имеем массив всех моделей
<?php
$conf = array();
foreach ($models as $model) {
$conf[$model->group?$model->group:'main'][$model->name] = array($model->value,$model->type,$model->param);
}
$tabs = array();
$i=1;
foreach ($conf as $key => $item) {
$tabs['tab'.$i]['title'] = $key;
foreach ($item as $name => $value) {
$tabs['tab'.$i]['content'] .= $name.'<br />'.print_r($value,true).'<hr />';
}
$i++;
}
$this->widget('CTabView', array('tabs'=>$tabs/*, 'viewData'=>$model*/));
var_dump($tabs);
var_dump($conf);
?>
Внимание вопрос
у меня сильно извращенский метод? (или вылечат)
Может у кого идеи есть как правильнее и красивее все сделать?
Или давайте дальше развивать тему в этом направлении может кому пригодится…