Updated to KH 3.3.5
This commit is contained in:
parent
08bd2a2810
commit
453f97324f
@ -56,6 +56,13 @@ spl_autoload_register(array('Kohana', 'auto_load'));
|
||||
*/
|
||||
ini_set('unserialize_callback_func', 'spl_autoload_call');
|
||||
|
||||
/**
|
||||
* Set the mb_substitute_character to "none"
|
||||
*
|
||||
* @link http://www.php.net/manual/function.mb-substitute-character.php
|
||||
*/
|
||||
mb_substitute_character('none');
|
||||
|
||||
// -- Configuration and initialization -----------------------------------------
|
||||
|
||||
/**
|
||||
@ -63,6 +70,12 @@ ini_set('unserialize_callback_func', 'spl_autoload_call');
|
||||
*/
|
||||
I18n::lang('en-us');
|
||||
|
||||
if (isset($_SERVER['SERVER_PROTOCOL']))
|
||||
{
|
||||
// Replace the default protocol.
|
||||
HTTP::$protocol = $_SERVER['SERVER_PROTOCOL'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Kohana::$environment if a 'KOHANA_ENV' environment variable has been supplied.
|
||||
*
|
||||
@ -73,7 +86,7 @@ I18n::lang('en-us');
|
||||
/**
|
||||
* Set the environment status by the domain.
|
||||
*/
|
||||
Kohana::$environment = (! isset($_SERVER['SERVER_NAME']) OR (in_array($_SERVER['SERVER_NAME'],$SERVER_NAMES))) ? Kohana::PRODUCTION : Kohana::DEVELOPMENT;
|
||||
Kohana::$environment = Kohana::PRODUCTION;
|
||||
|
||||
if (isset($_SERVER['KOHANA_ENV']))
|
||||
{
|
||||
@ -97,8 +110,10 @@ if (isset($_SERVER['KOHANA_ENV']))
|
||||
*/
|
||||
Kohana::init(array(
|
||||
'base_url' => '/',
|
||||
'caching' => TRUE,
|
||||
'index_file' => '',
|
||||
'caching' => Kohana::$environment === Kohana::PRODUCTION,
|
||||
'profile' => Kohana::$environment !== Kohana::PRODUCTION,
|
||||
'index_file' => FALSE,
|
||||
'cache_life' => 600,
|
||||
));
|
||||
|
||||
/**
|
||||
@ -130,10 +145,19 @@ Kohana::modules(array(
|
||||
'orm' => SMDPATH.'orm', // Object Relationship Mapping
|
||||
'pagination' => SMDPATH.'pagination', // Kohana Pagination module for Kohana 3 PHP Framework
|
||||
// 'unittest' => SMDPATH.'unittest', // Unit testing
|
||||
// 'userguide' => SMDPATH.'userguide', // User guide and API documentation
|
||||
'userguide' => SMDPATH.'userguide', // User guide and API documentation
|
||||
'xml' => SMDPATH.'xml', // XML module for Kohana 3 PHP Framework
|
||||
));
|
||||
|
||||
/**
|
||||
* Cookie Salt
|
||||
* @see http://kohanaframework.org/3.3/guide/kohana/cookies
|
||||
*
|
||||
* If you have not defined a cookie salt in your Cookie class then
|
||||
* uncomment the line below and define a preferrably long salt.
|
||||
*/
|
||||
// Cookie::$salt = NULL;
|
||||
|
||||
/**
|
||||
* Load our modules defined in the DB
|
||||
*/
|
||||
|
@ -1,21 +1,38 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class overrides Kohana's ORM
|
||||
* This class extends Kohana's [ORM] class to create defaults
|
||||
*
|
||||
* This file contains enhancements for Kohana, that should be considered upstream and maybe havent been yet.
|
||||
* It also contains some functionality for OSB, which cannot be covered in ORM_OSB.
|
||||
*
|
||||
* @package OSB
|
||||
* @category Modifications
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2009-2013 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
abstract class ORM extends lnApp_ORM {
|
||||
/**
|
||||
* @var string Database to connect to
|
||||
*/
|
||||
protected $_db = 'default';
|
||||
|
||||
// Tables that do not have a site_id column
|
||||
public static $no_site_id_tables = array('setup','country','currency','language','tax');
|
||||
|
||||
// Rules to assist with site ID and getting next record ID for inserts.
|
||||
public function rules() {
|
||||
return array(
|
||||
'id'=>array(
|
||||
array('ORM::get_next_id',array(':model',':field')),
|
||||
),
|
||||
'site_id'=>array(
|
||||
array('ORM::set_site_id',array(':model',':field')),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add our OSB site_id to each SELECT query
|
||||
* @see parent::__build()
|
||||
@ -25,42 +42,36 @@ abstract class ORM extends lnApp_ORM {
|
||||
if (! in_array($this->_table_name,ORM::$no_site_id_tables))
|
||||
$this->where($this->_object_name.'.site_id','=',Company::instance()->site());
|
||||
|
||||
// Ensure we Cache our queries
|
||||
// @todo: Disabled as it is not working as expected
|
||||
/*
|
||||
$caching = FALSE;
|
||||
foreach ($this->_db_pending as $method)
|
||||
if ($method['name'] == 'cached') {
|
||||
$caching = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (! $caching)
|
||||
$this->cached(Kohana::$config->load('cache.orm.'.$this->_table_name));
|
||||
*/
|
||||
|
||||
return parent::_build($type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function help to find records that are active
|
||||
*/
|
||||
protected function _where_active() {
|
||||
final protected function _where_active() {
|
||||
return $this->where('status','=',TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the account is authoised by the user
|
||||
*/
|
||||
// @todo This function shouldnt be here.
|
||||
public function authorised(Model $o=NULL,Model_Account $ao=NULL,$aid='account_id') {
|
||||
if (is_null($o))
|
||||
$o = $this;
|
||||
|
||||
if (is_null($ao))
|
||||
$ao = Auth::instance()->get_user();
|
||||
|
||||
return in_array($o->{$aid},$ao->RTM->customers($ao->RTM));
|
||||
}
|
||||
|
||||
public function config($key) {
|
||||
$mc = Config::instance()->module_config($this->_object_name);
|
||||
|
||||
return empty($mc[$key]) ? '' : $mc[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Override KH's ORM count_relations() function, to include our site_id in the query.
|
||||
*
|
||||
@ -99,16 +110,70 @@ abstract class ORM extends lnApp_ORM {
|
||||
}
|
||||
|
||||
/**
|
||||
* Function help to find records that are active
|
||||
* Get Next record id
|
||||
*
|
||||
* @param array Validate object
|
||||
* @param string Primary Key
|
||||
*/
|
||||
public function list_active() {
|
||||
return $this->_where_active()->find_all();
|
||||
final public static function get_next_id($model,$field) {
|
||||
if (! is_null($model->$field))
|
||||
return TRUE;
|
||||
|
||||
$model->_changed[$field] = $field;
|
||||
|
||||
$ido = ORM::factory('Module')
|
||||
->where('name','=',$model->_table_name)
|
||||
->find();
|
||||
|
||||
if (! $ido->loaded())
|
||||
throw new Kohana_Exception('Problem getting record_id for :table',array(':table'=>$model->_table_name));
|
||||
|
||||
$model->$field = $ido->record_id->next_id($ido->id);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function where_active() {
|
||||
public function keyget($column,$key=NULL) {
|
||||
if (is_null($key) OR ! is_array($this->$column))
|
||||
return $this->$column;
|
||||
else
|
||||
return array_key_exists($key,$this->$column) ? $this->{$column}[$key] : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the module record for this ORM object
|
||||
*/
|
||||
final public function mid() {
|
||||
return ORM::factory('Module',array('name'=>$this->_table_name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the site ID attribute for each row update
|
||||
*/
|
||||
final public static function set_site_id($model,$field) {
|
||||
if (! is_null($model->$field))
|
||||
return TRUE;
|
||||
|
||||
$model->_changed[$field] = $field;
|
||||
$model->$field = Company::instance()->site();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function help to find records that are active
|
||||
*/
|
||||
final public function list_active($active=TRUE) {
|
||||
$x=($active ? $this->_where_active() : $this);
|
||||
|
||||
return $x->find_all();
|
||||
}
|
||||
|
||||
final public function where_active() {
|
||||
return $this->_where_active();
|
||||
}
|
||||
|
||||
// @todo This function shouldnt be here.
|
||||
public function where_authorised(Model_Account $ao=NULL,$aid='account_id') {
|
||||
if (is_null($ao))
|
||||
$ao = Auth::instance()->get_user();
|
||||
|
17
application/config/url.php
Normal file
17
application/config/url.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* OSB Configuration - Site URLs
|
||||
*
|
||||
* @package OSB
|
||||
* @category Configuration
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010-2016 Open Source Billing
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
|
||||
return array(
|
||||
'trusted_hosts' => array(
|
||||
),
|
||||
);
|
||||
?>
|
@ -1 +1 @@
|
||||
Subproject commit 5ffa395307a3b26f901dde5f3064c48a15979f0d
|
||||
Subproject commit 53873600c1b517628ed3a108c2d9316cf3be89b2
|
Reference in New Issue
Block a user