Site setup fixes

This commit is contained in:
Deon George
2011-12-30 18:10:02 +11:00
parent 125407656d
commit acd1bf116c
16 changed files with 231 additions and 29 deletions

View File

@@ -14,8 +14,78 @@
* @license http://dev.leenooks.net/license.html
*/
class Model_Setup extends ORMOSB {
// Setup doesnt use the update column
protected $_updated_column = FALSE;
protected $_has_one = array(
'country'=>array('foreign_key'=>'id','far_key'=>'country_id'),
);
public function rules() {
$r = parent::rules();
// This module doesnt use site_id.
unset($r['site_id']);
return $r;
}
/**
* Get/Set Module Configuration
*
* @param $key Module name.
* @param $value Values to store. If NULL, retrieves the value stored, otherwise stores value.
*/
public function module_config($key,array $value=NULL) {
// If we are not loaded, we dont have any config.
if (! $this->loaded() OR (is_null($value) AND ! $this->module_config))
return array();
$mo = ORM::factory('module')->where('name','=',$key)->find();
if (! $mo->loaded())
throw new Kohana_Exception('Unknown module :name',array(':name'=>$key));
static $mc = array();
if (! $mc)
$mc = $this->blob($this->module_config);
// If $value is NULL, we are a getter
if ($value === NULL)
return empty($mc[$mo->id]) ? array() : $mc[$mo->id];
// Store new value
$mc[$mo->id] = $value;
$this->module_config = $this->blob($mc,TRUE);
$this->save();
return $this->saved();
}
/**
* Get/Set our Site Configuration from the DB
*
* @param $key Key
* @param $value Values to store. If NULL, retrieves the value stored, otherwise stores value.
*/
public function site_details($key,array $value=NULL) {
static $sc = array();
if (! $sc AND $this->site_details)
$sc = $this->blob($this->site_details);
if (! in_array($key,array('name','address1','address2','city','state','pcode','phone','fax','email')))
throw new Kohana_Exception('Unknown Site Configuration Key :key',array(':key'=>$key));
// If $value is NULL, we are a getter
if ($value === NULL)
return empty($sc[$key]) ? '' : $sc[$key];
// Store new value
$sc[$key] = $value;
return $value;
}
}
?>