/** * Load all options data into protected array */ protected function _loadOptions() { if (empty($this->_allOptions)) { $options = frameCsp::_()->getTable('options'); $htmltype = frameCsp::_()->getTable('htmltype'); $optionsCategories = frameCsp::_()->getTable('options_categories'); $this->_allOptions = $options->innerJoin($htmltype, 'htmltype_id')->leftJoin($optionsCategories, 'cat_id')->orderBy(array('cat_id', 'sort_order'))->getAll($options->alias() . '.*, ' . $htmltype->alias() . '.label AS htmltype, ' . $optionsCategories->alias() . '.label AS cat_label'); foreach ($this->_allOptions as $i => $opt) { if (!empty($this->_allOptions[$i]['params'])) { $this->_allOptions[$i]['params'] = utilsCsp::unserialize($this->_allOptions[$i]['params']); } if ($this->_allOptions[$i]['value_type'] == 'array') { $this->_allOptions[$i]['value'] = utilsCsp::unserialize($this->_allOptions[$i]['value']); if (!is_array($this->_allOptions[$i]['value'])) { $this->_allOptions[$i]['value'] = array(); } } if (empty($this->_allOptions[$i]['cat_id'])) { // Move all options that have no category - to Other $this->_allOptions[$i]['cat_id'] = 6; $this->_allOptions[$i]['cat_label'] = 'Other'; } } } }
protected function _adaptFromDb($d = array()) { switch ($d['type']) { case 'email': $d['data'] = utilsCsp::unserialize($d['data']); break; } return $d; }