public function field(Setting $setting) { $category = Setting_Category::getById($setting->setting_category_id); $name = $this->fieldName($category, $setting); $helper = $setting->type . 'Field'; return $this->{$helper}($setting, $name, $this->get($category->name, $setting->name)); }
protected static function loadCache() { $result = array(); $query = sql::select('s.*')->from(array('s' => self::NAME))->innerJoin(array('c' => Setting_Category::NAME), 's.setting_category_id = c.setting_category_id')->order('c.' . self::db()->quoteName('order'))->order('s.' . self::db()->quoteName('order')); $rows = self::fetchThis($query); foreach ($rows as $row) { $category = Setting_Category::getById($row->setting_category_id)->name; if (isset($result[$category])) { $result[$category][$row->name] = $row; } else { $result[$category] = array($row->name => $row); } } return $result; }