I have a config table like:
CREATE TABLE `wfbp_config` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `type` VARCHAR(20) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', `slug` VARCHAR(20) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', `title` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', `description` VARCHAR(120) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', `value` VARCHAR(120) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', `values` VARCHAR(120) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci', PRIMARY KEY (`id`), UNIQUE INDEX `slug` (`slug`) ) COLLATE='utf8_unicode_ci' ENGINE=InnoDB;
I store config values at this table but...
I need to change value's field_type by type's column value, like:
if ($type=='image') $this->crud->set_field_upload('value', $this->config->item('upload_path')); elseif ($type=='text') $this->crud->field_type('value','text'); elseif ($type=='date') $this->crud->field_type('value','date'); elseif ($type=='dropdown') $this->crud->field_type('value','date', explode(',', $values)); /* etc... */
But i have to change this after rendering the crud. And it's impossible (i guess). And i cannot achieve this with callbacks!
Is there any way to solve this with this table structure or is there any suggestion for a new table structure (but not all config values in one row).
For now i'm using multiple crud pages with unique config. like: sitename/panel/config-string/tr/system/ or sitename/panel/config-images/tr/system/ etc... i want to merge this values.
Thanks in advance.
P.S. I try to get config values like this:
Model:
function get_config($config_slug) { $this->db->where('slug', $config_slug) ->where('lang', LANG_STR); $qr = $this->db->get('config'); if ($qr->num_rows() == 1) { return $qr->row()->config_value; } else { return false; } }
Helper:
function config($config_slug) { $wf=& get_instance(); $wf->load->model('site_model'); return $wf->site_model->get_config($config_slug); }
Thanks again...