Updated OSB to work with KH 3.1
This commit is contained in:
76
application/classes/orm.php
Normal file
76
application/classes/orm.php
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class overrides Kohana's ORM
|
||||
*
|
||||
* @package OSB/Modifications
|
||||
* @category Classes
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class ORM extends Kohana_ORM {
|
||||
protected $_table_names_plural = false;
|
||||
private $_object_formated = array();
|
||||
private $_formated = FALSE;
|
||||
// Our filters used to display values in a friendly format
|
||||
protected $_display_filters = array();
|
||||
|
||||
// Override check() so that it doesnt throw an exception.
|
||||
// @todo Need to figure out how to show the items that fail validation
|
||||
final public function check(Validation $extra_validation = NULL) {
|
||||
// Determine if any external validation failed
|
||||
$extra_errors = ($extra_validation AND ! $extra_validation->check());
|
||||
|
||||
// Always build a new validation object
|
||||
$this->_validation();
|
||||
|
||||
$array = $this->_validation;
|
||||
|
||||
if (($this->_valid = $array->check()) === FALSE OR $extra_errors)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
// Add our OSB site_id to each SELECT query
|
||||
final protected function _build($type) {
|
||||
$this->where($this->_table_name.'.site_id','=',Config::siteid());
|
||||
|
||||
return parent::_build($type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format fields for display purposes
|
||||
*
|
||||
* @param string column name
|
||||
* @return mixed
|
||||
*/
|
||||
private function _format() {
|
||||
foreach ($this->_display_filters as $column => $formats)
|
||||
$this->_object_formated[$column] = $this->run_filter($column,$this->__get($column),array($column=>$formats));
|
||||
|
||||
$this->_formated = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a formated columns, as per the model definition
|
||||
*/
|
||||
public function display($column) {
|
||||
// Trigger a load of the record.
|
||||
$value = $this->__get($column);
|
||||
|
||||
// If some of our fields need to be formated for display purposes.
|
||||
if ($this->_loaded AND ! $this->_formated AND $this->_display_filters)
|
||||
$this->_format();
|
||||
|
||||
if (isset($this->_object_formated[$column]))
|
||||
return $this->_object_formated[$column];
|
||||
else
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user