Updated for new lnApp
This commit is contained in:
parent
52e94c6e7d
commit
c1b1485c10
@ -115,7 +115,7 @@ Kohana::$config->attach(new Config_File);
|
|||||||
* Enable modules. Modules are referenced by a relative or absolute path.
|
* Enable modules. Modules are referenced by a relative or absolute path.
|
||||||
*/
|
*/
|
||||||
Kohana::modules(array(
|
Kohana::modules(array(
|
||||||
'lnapp' => MODPATH.'lnApp', // lnApp Base Application Tools
|
'lnapp' => MODPATH.'lnapp', // lnApp Base Application Tools
|
||||||
'oauth' => MODPATH.'oauth', // OAuth Module for External Authentication
|
'oauth' => MODPATH.'oauth', // OAuth Module for External Authentication
|
||||||
'auth' => SMDPATH.'auth', // Basic authentication
|
'auth' => SMDPATH.'auth', // Basic authentication
|
||||||
'cache' => SMDPATH.'cache', // Caching with multiple backends
|
'cache' => SMDPATH.'cache', // Caching with multiple backends
|
||||||
|
@ -77,10 +77,6 @@ class Company {
|
|||||||
return $this->so->language;
|
return $this->so->language;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function logo() {
|
|
||||||
return Config::logo();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function logo_file() {
|
public function logo_file() {
|
||||||
list ($path,$suffix) = explode('.',Config::$logo);
|
list ($path,$suffix) = explode('.',Config::$logo);
|
||||||
|
|
||||||
@ -119,10 +115,6 @@ class Company {
|
|||||||
return $this->so->site_details('address2') ? implode($ln,array($this->so->site_details('address1'),$this->so->site_details('address2'))) : $this->so->site_details('address1');
|
return $this->so->site_details('address2') ? implode($ln,array($this->so->site_details('address1'),$this->so->site_details('address2'))) : $this->so->site_details('address1');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sitemode() {
|
|
||||||
return $this->so->status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function taxid() {
|
public function taxid() {
|
||||||
// Tax ID details are stored in invoice config
|
// Tax ID details are stored in invoice config
|
||||||
$mc = $this->so->module_config('invoice');
|
$mc = $this->so->module_config('invoice');
|
||||||
|
@ -49,62 +49,10 @@ class Config extends Kohana_Config {
|
|||||||
return Config::$_instance;
|
return Config::$_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return our caching mechanism
|
|
||||||
*/
|
|
||||||
public static function cachetype() {
|
|
||||||
return is_null(Kohana::$config->load('config')->cache_type) ? 'file' : Kohana::$config->load('config')->cache_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function copywrite() {
|
public static function copywrite() {
|
||||||
return '(c) Open Source Billing Development Team';
|
return '(c) Open Source Billing Development Team';
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function country() {
|
|
||||||
return Company::instance()->country();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a date using a site configured format
|
|
||||||
*/
|
|
||||||
public static function date($date) {
|
|
||||||
return (is_null($date) OR ! $date) ? '' : date(Company::instance()->date_format(),$date);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a date using a site configured format
|
|
||||||
* @note We need this function here, since we call self:: methods, which need to resolve to the child class.
|
|
||||||
*/
|
|
||||||
public static function datetime($date) {
|
|
||||||
return sprintf('%s %s',self::date($date),self::time($date));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function language() {
|
|
||||||
return Company::instance()->language();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The URI to show for the login prompt.
|
|
||||||
* Normally if the user is logged in, we can replace it with something else
|
|
||||||
*/
|
|
||||||
public static function login_uri() {
|
|
||||||
return ($ao = Auth::instance()->get_user() AND is_object($ao)) ? HTML::anchor(URL::link('user','account/edit'),$ao->name()) : HTML::anchor('login',_('Login'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function logout_uri() {
|
|
||||||
return ($ao = Auth::instance()->get_user() AND is_object($ao)) ? HTML::anchor('logout','Logout',array('class'=>'lnk_logout')) : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function logo() {
|
|
||||||
return HTML::image(self::logo_uri(),array('class'=>'headlogo','alt'=>_('Logo')));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function logo_uri($protocol=NULL) {
|
|
||||||
list ($path,$suffix) = explode('.',self::$logo);
|
|
||||||
|
|
||||||
return URL::site(Route::get('default/media')->uri(array('file'=>$path.'.'.$suffix),array('alt'=>self::sitename())),$protocol);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find a list of all database enabled modules
|
* Find a list of all database enabled modules
|
||||||
*
|
*
|
||||||
@ -141,24 +89,6 @@ class Config extends Kohana_Config {
|
|||||||
return array_key_exists(strtolower($module),self::modules()) ? TRUE : FALSE;
|
return array_key_exists(strtolower($module),self::modules()) ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Work out our site ID for multiehosting
|
|
||||||
*/
|
|
||||||
public static function siteid($format=FALSE) {
|
|
||||||
return Company::instance()->site($format);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Work out our site mode (dev,test,prod)
|
|
||||||
*/
|
|
||||||
public static function sitemode() {
|
|
||||||
return Company::instance()->sitemode();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function sitename() {
|
|
||||||
return Company::instance()->name();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See if our emails for the template should be sent to configured admin(s)
|
* See if our emails for the template should be sent to configured admin(s)
|
||||||
*
|
*
|
||||||
@ -173,17 +103,5 @@ class Config extends Kohana_Config {
|
|||||||
else
|
else
|
||||||
return $config[$template];
|
return $config[$template];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function theme() {
|
|
||||||
// If we are using user admin pages (and login), we'll choose the admin theme.
|
|
||||||
return 'theme/'.(URL::admin_url() ? Kohana::$config->load('config')->theme_admin : Kohana::$config->load('config')->theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a date using a site configured format
|
|
||||||
*/
|
|
||||||
public static function time($date) {
|
|
||||||
return date(Company::instance()->time_format(),($date ? $date : time()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @package OSB
|
|
||||||
* @category Controllers
|
|
||||||
* @author Deon George
|
|
||||||
* @copyright (c) 2009-2013 Open Source Billing
|
|
||||||
* @license http://dev.osbill.net/license.html
|
|
||||||
*/
|
|
||||||
class Controller_Debug extends Controller_TemplateDefault {
|
|
||||||
public function before() {
|
|
||||||
if (! in_array(Config::sitemode(),array(Kohana::DEVELOPMENT,Kohana::TESTING)))
|
|
||||||
HTTP::redirect();
|
|
||||||
|
|
||||||
parent::before();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function action_site() {
|
|
||||||
$output = '';
|
|
||||||
|
|
||||||
$output .= debug::vars(array(
|
|
||||||
'm'=>__METHOD__,
|
|
||||||
'site'=>Config::site(),
|
|
||||||
'siteID'=>Company::instance()->site(),
|
|
||||||
'siteMode'=>Config::sitemodeverbose(),
|
|
||||||
'modules'=>Config::appmodules(),
|
|
||||||
));
|
|
||||||
|
|
||||||
Block::add(array(
|
|
||||||
'title'=>_('Site debug'),
|
|
||||||
'body'=>$output,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
@ -37,9 +37,9 @@ abstract class Kohana extends Kohana_Core {
|
|||||||
$prefixes = array('');
|
$prefixes = array('');
|
||||||
|
|
||||||
// Our search order.
|
// Our search order.
|
||||||
array_unshift($prefixes,Config::theme().'/');
|
array_unshift($prefixes,Site::Theme().'/');
|
||||||
array_unshift($prefixes,sprintf('site/%s/',Config::siteid()));
|
array_unshift($prefixes,sprintf('site/%s/',Site::ID()));
|
||||||
array_unshift($prefixes,sprintf('site/%s/%s/',Config::siteid(),Config::theme()));
|
array_unshift($prefixes,sprintf('site/%s/%s/',Site::ID(),Site::Theme()));
|
||||||
|
|
||||||
foreach ($prefixes as $p)
|
foreach ($prefixes as $p)
|
||||||
if ($x = parent::find_file($dir,$p.$file,$ext,$array))
|
if ($x = parent::find_file($dir,$p.$file,$ext,$array))
|
||||||
|
@ -29,10 +29,10 @@ class Model_Account extends Model_Auth_UserDefault {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_last'=>array(
|
'date_last'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'status'=>array(
|
'status'=>array(
|
||||||
array('StaticList_YesNo::get',array(':value',TRUE)),
|
array('StaticList_YesNo::get',array(':value',TRUE)),
|
||||||
|
@ -20,7 +20,7 @@ class Model_Account_Log extends ORM_OSB {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,11 @@ class Model_Setup extends ORM_OSB {
|
|||||||
'language'=>array('foreign_key'=>'id','far_key'=>'language_id'),
|
'language'=>array('foreign_key'=>'id','far_key'=>'language_id'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'module_config',
|
||||||
|
'site_details',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_save_message = TRUE;
|
protected $_save_message = TRUE;
|
||||||
|
|
||||||
// Validation rules
|
// Validation rules
|
||||||
|
@ -15,23 +15,6 @@ abstract class ORM_OSB extends ORM {
|
|||||||
*/
|
*/
|
||||||
protected $_db = 'default';
|
protected $_db = 'default';
|
||||||
|
|
||||||
protected $_created_column = array('column'=>'date_orig','format'=>TRUE);
|
|
||||||
protected $_updated_column = array('column'=>'date_last','format'=>TRUE);
|
|
||||||
|
|
||||||
// Our attributes used in forms.
|
|
||||||
protected $_form = array();
|
|
||||||
|
|
||||||
// Our attributes that should be converted to NULL when empty
|
|
||||||
protected $_nullifempty = array();
|
|
||||||
|
|
||||||
// Our attribute values that need to be stored as serialized
|
|
||||||
protected $_serialize_column = array();
|
|
||||||
|
|
||||||
// If we need to load any sub items on loading this model
|
|
||||||
protected $_sub_items = array();
|
|
||||||
protected $_sub_items_load = array();
|
|
||||||
protected $_sub_items_sorted = FALSE;
|
|
||||||
|
|
||||||
// Rules to assist with site ID and getting next record ID for inserts.
|
// Rules to assist with site ID and getting next record ID for inserts.
|
||||||
public function rules() {
|
public function rules() {
|
||||||
return array(
|
return array(
|
||||||
@ -44,136 +27,12 @@ abstract class ORM_OSB extends ORM {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieve and Store DB BLOB data.
|
|
||||||
*/
|
|
||||||
private function _blob($data,$set=FALSE) {
|
|
||||||
try {
|
|
||||||
return $set ? gzcompress($this->_serialize($data,$set)) : $this->_serialize(gzuncompress($data));
|
|
||||||
|
|
||||||
// Maybe the data isnt compressed?
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return $this->_serialize($data,$set);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Auto process some data as it comes from the database
|
|
||||||
* @see parent::__get()
|
|
||||||
*/
|
|
||||||
public function __get($column) {
|
|
||||||
if (array_key_exists($column,$this->_table_columns)) {
|
|
||||||
// If the column is a blob, we'll decode it automatically
|
|
||||||
if (
|
|
||||||
$this->_table_columns[$column]['data_type'] == 'blob'
|
|
||||||
AND ! is_null($this->_object[$column])
|
|
||||||
AND ! isset($this->_changed[$column])
|
|
||||||
AND (! isset($this->_table_columns[$column]['auto_convert']) OR ! $this->_table_columns[$column]['auto_convert'])
|
|
||||||
) {
|
|
||||||
|
|
||||||
// In case our blob hasnt been saved as one.
|
|
||||||
try {
|
|
||||||
$this->_object[$column] = $this->_blob($this->_object[$column]);
|
|
||||||
}
|
|
||||||
catch(Exception $e) {
|
|
||||||
HTTP_Exception::factory(501,Kohana_Exception::text($e));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->_table_columns[$column]['auto_convert'] = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the column is a serialized object, we'll unserialize it.
|
|
||||||
if (
|
|
||||||
in_array($column,$this->_serialize_column)
|
|
||||||
AND is_string($this->_object[$column])
|
|
||||||
AND ! is_null($this->_object[$column])
|
|
||||||
AND ! isset($this->_changed[$column])
|
|
||||||
AND (! isset($this->_table_columns[$column]['unserialized']) OR ! $this->_table_columns[$column]['unserialized'])
|
|
||||||
) {
|
|
||||||
|
|
||||||
// In case our object hasnt been saved as serialized.
|
|
||||||
try {
|
|
||||||
$this->_object[$column] = unserialize($this->_object[$column]);
|
|
||||||
}
|
|
||||||
catch(Exception $e) {
|
|
||||||
HTTP_Exception::factory(501,Kohana_Exception::text($e));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->_table_columns[$column]['unserialized'] = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::__get($column);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Intercept our object load, so that we can load our subitems
|
|
||||||
*/
|
|
||||||
protected function _load_values(array $values) {
|
|
||||||
parent::_load_values($values);
|
|
||||||
|
|
||||||
$sort = FALSE;
|
|
||||||
if ($this->_loaded AND $this->_sub_items_load AND count($this->_sub_items_load) == 1)
|
|
||||||
foreach ($this->_sub_items_load as $item => $sort)
|
|
||||||
$this->_sub_items = $this->$item->find_all()->as_array();
|
|
||||||
|
|
||||||
if ($sort) {
|
|
||||||
Sort::MAsort($this->_sub_items,$sort);
|
|
||||||
$this->_sub_items_sorted = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If a column is marked to be nullified if it is empty, this is where it is done.
|
|
||||||
*/
|
|
||||||
private function _nullifempty(array $array) {
|
|
||||||
foreach ($array as $k=>$v) {
|
|
||||||
if (is_array($v)) {
|
|
||||||
if (is_null($x=$this->_nullifempty($v)))
|
|
||||||
unset($array[$k]);
|
|
||||||
else
|
|
||||||
$array[$k] = $x;
|
|
||||||
|
|
||||||
} elseif (! $v AND $v !== 0 AND $v !== '0')
|
|
||||||
unset($array[$k]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return count($array) ? $array : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try and (un)serialize our data, and if it fails, just return it.
|
|
||||||
*/
|
|
||||||
private function _serialize($data,$set=FALSE) {
|
|
||||||
try {
|
|
||||||
return $set ? serialize($data) : unserialize($data);
|
|
||||||
|
|
||||||
// Maybe the data serialized?
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function config($key) {
|
public function config($key) {
|
||||||
$mc = Config::instance()->module_config($this->_object_name);
|
$mc = Config::instance()->module_config($this->_object_name);
|
||||||
|
|
||||||
return empty($mc[$key]) ? '' : $mc[$key];
|
return empty($mc[$key]) ? '' : $mc[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dump() {
|
|
||||||
$result = array();
|
|
||||||
|
|
||||||
$result['this'] = $this->object();
|
|
||||||
|
|
||||||
foreach ($this->_sub_items as $o)
|
|
||||||
$result['sub'][] = $o->dump();
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Next record id
|
* Get Next record id
|
||||||
*
|
*
|
||||||
@ -209,31 +68,6 @@ abstract class ORM_OSB extends ORM {
|
|||||||
return ORM::factory('Module',array('name'=>$this->_table_name));
|
return ORM::factory('Module',array('name'=>$this->_table_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function save(Validation $validation=NULL) {
|
|
||||||
// Find any fields that have changed, and process them.
|
|
||||||
if ($this->_changed)
|
|
||||||
foreach ($this->_changed as $c) {
|
|
||||||
// Any fields that are blobs, and encode them.
|
|
||||||
if (! is_null($this->_object[$c]) AND $this->_table_columns[$c]['data_type'] == 'blob') {
|
|
||||||
$this->_object[$c] = $this->_blob($this->_object[$c],TRUE);
|
|
||||||
|
|
||||||
// We need to reset our auto_convert flag
|
|
||||||
if (isset($this->_table_columns[$c]['auto_convert']))
|
|
||||||
$this->_table_columns[$c]['auto_convert'] = FALSE;
|
|
||||||
|
|
||||||
// Any fields that should be seriailzed, we'll do that.
|
|
||||||
} elseif (is_array($this->_object[$c]) AND in_array($c,$this->_serialize_column)) {
|
|
||||||
$this->_object[$c] = serialize($this->_object[$c]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test if the value has still changed
|
|
||||||
if ($this->_original_values AND $this->_object[$c] == $this->_original_values[$c])
|
|
||||||
unset($this->_changed[$c]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::save($validation);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the site ID attribute for each row update
|
* Set the site ID attribute for each row update
|
||||||
*/
|
*/
|
||||||
@ -247,28 +81,6 @@ abstract class ORM_OSB extends ORM {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function subitems() {
|
|
||||||
return $this->_sub_items;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Override the Kohana processing so we can null values if required.
|
|
||||||
*/
|
|
||||||
public function values(array $values,array $expected=NULL) {
|
|
||||||
foreach ($values as $k=>$v) {
|
|
||||||
// Convert to NULL
|
|
||||||
if (in_array($k,$this->_nullifempty)) {
|
|
||||||
if (is_array($v))
|
|
||||||
$values[$k] = $this->_nullifempty($v);
|
|
||||||
|
|
||||||
elseif (! $v AND $v !== 0 AND $v !== '0')
|
|
||||||
$values[$k] = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::values($values,$expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function help to find records that are active
|
* Function help to find records that are active
|
||||||
*/
|
*/
|
||||||
|
@ -118,7 +118,7 @@ class Period {
|
|||||||
|
|
||||||
if ($df)
|
if ($df)
|
||||||
foreach (array('start','date','end') as $key)
|
foreach (array('start','date','end') as $key)
|
||||||
$result[$key] = Config::date($result[$key]);
|
$result[$key] = Site::Date($result[$key]);
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
39
application/classes/Site.php
Normal file
39
application/classes/Site.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is for Site Information
|
||||||
|
*
|
||||||
|
* @package OSB
|
||||||
|
* @category Helpers
|
||||||
|
* @author Deon George
|
||||||
|
* @copyright (c) 2009-2013 Open Source Billing
|
||||||
|
* @license http://dev.osbill.net/license.html
|
||||||
|
*/
|
||||||
|
class Site extends lnApp_Site {
|
||||||
|
/**
|
||||||
|
* Show a date using a site configured format
|
||||||
|
*/
|
||||||
|
public static function Date($date) {
|
||||||
|
return (is_null($date) OR ! $date) ? '' : date(Company::instance()->date_format(),$date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Work out our site ID for multihosting
|
||||||
|
*/
|
||||||
|
public static function ID($format=FALSE) {
|
||||||
|
return Company::instance()->site($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function Theme() {
|
||||||
|
// If we are using user admin pages (and login), we'll choose the admin theme.
|
||||||
|
return 'theme/'.(URL::admin_url() ? Kohana::$config->load('config')->theme_admin : Kohana::$config->load('config')->theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a date using a site configured format
|
||||||
|
*/
|
||||||
|
public static function Time($date) {
|
||||||
|
return date(Company::instance()->time_format(),($date ? $date : time()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -1,66 +0,0 @@
|
|||||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is class renders standard lists and their values
|
|
||||||
*
|
|
||||||
* @package OSB
|
|
||||||
* @category Helpers
|
|
||||||
* @author Deon George
|
|
||||||
* @copyright (c) 2009-2013 Open Source Billing
|
|
||||||
* @license http://dev.osbill.net/license.html
|
|
||||||
*/
|
|
||||||
abstract class StaticList {
|
|
||||||
// Our Static Items List
|
|
||||||
abstract protected function _table();
|
|
||||||
|
|
||||||
// Due to static scope, sometimes we need to call this function from the child class.
|
|
||||||
protected function _get($id) {
|
|
||||||
$table = $this->_table();
|
|
||||||
|
|
||||||
if (! $table)
|
|
||||||
return 'No Table';
|
|
||||||
elseif (! $id AND empty($table[$id]))
|
|
||||||
return '';
|
|
||||||
elseif (empty($table[$id]))
|
|
||||||
return sprintf('No Value (%s)',$id);
|
|
||||||
else
|
|
||||||
return $table[$id];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setup our class instantiation
|
|
||||||
* @note This must be declared in the child class due to static scope
|
|
||||||
*/
|
|
||||||
public static function factory() {
|
|
||||||
$x = get_called_class();
|
|
||||||
|
|
||||||
return new $x;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders form input
|
|
||||||
*
|
|
||||||
* @param string Form name to render
|
|
||||||
* @param string Default value to populate in the Form input.
|
|
||||||
*/
|
|
||||||
public static function form($name,$default='',$addblank=FALSE,array $attributes=NULL) {
|
|
||||||
$table = self::factory()->_table();
|
|
||||||
|
|
||||||
if ($addblank)
|
|
||||||
$table = array_merge(array(''=>' '),$table);
|
|
||||||
|
|
||||||
return Form::Select($name,$table,$default,$attributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lists our available keys
|
|
||||||
*/
|
|
||||||
public static function keys() {
|
|
||||||
return array_keys(self::factory()->_table());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function table() {
|
|
||||||
return self::factory()->_table();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
@ -1,29 +0,0 @@
|
|||||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is class renders Yes/No responses and forms.
|
|
||||||
*
|
|
||||||
* @package OSB
|
|
||||||
* @category Helpers
|
|
||||||
* @author Deon George
|
|
||||||
* @copyright (c) 2009-2013 Open Source Billing
|
|
||||||
* @license http://dev.osbill.net/license.html
|
|
||||||
*/
|
|
||||||
class StaticList_YesNo extends StaticList {
|
|
||||||
protected function _table() {
|
|
||||||
return array(
|
|
||||||
0=>_('No'),
|
|
||||||
1=>_('Yes'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function get($value,$format=FALSE) {
|
|
||||||
if (! $value)
|
|
||||||
$value = 0;
|
|
||||||
|
|
||||||
return $format ? View::factory(Config::theme().'/label/bool')
|
|
||||||
->set('label',$value ? 'label-success' : '')
|
|
||||||
->set('column',self::factory()->_get($value)) : $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
42
application/classes/URL.php
Normal file
42
application/classes/URL.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class adds reseller/affilate support
|
||||||
|
*
|
||||||
|
* @package OSB
|
||||||
|
* @category Modifications
|
||||||
|
* @author Deon George
|
||||||
|
* @copyright (c) 2014 Deon George
|
||||||
|
* @license http://dev.osbill.net/license.html
|
||||||
|
*/
|
||||||
|
class URL extends lnApp_URL {
|
||||||
|
// Our method paths for different functions
|
||||||
|
public static $method_directory = array(
|
||||||
|
'admin'=>'a',
|
||||||
|
'reseller'=>'r',
|
||||||
|
'affiliate'=>'f',
|
||||||
|
'user'=>'u',
|
||||||
|
);
|
||||||
|
|
||||||
|
public static function navbar() {
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
foreach (array_reverse(self::$method_directory) as $k=>$v)
|
||||||
|
switch ($k) {
|
||||||
|
case 'admin': $result[$k] = array('name'=>'Administrator','icon'=>'icon-globe');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'affiliate':
|
||||||
|
case 'reseller': $result[$k] = array('name'=>'Reseller','icon'=>'icon-th-list');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'user': $result[$k] = array('name'=>Auth::instance()->get_user()->name(),'icon'=>'icon-user');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: $result[$k] = array('name'=>$k,'icon'=>'icon-question-sign');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -12,8 +12,6 @@
|
|||||||
|
|
||||||
return array
|
return array
|
||||||
(
|
(
|
||||||
'ajax'=>FALSE, // AJAX actions can only be run by ajax calls if set to FALSE
|
|
||||||
'etag'=>FALSE, // Force generating ETAGS
|
|
||||||
'checkout_notify'=>FALSE, // Test mode to test a particular checkout_notify item
|
'checkout_notify'=>FALSE, // Test mode to test a particular checkout_notify item
|
||||||
'disabled_noaccess_redirect'=>FALSE, // Disable redirect when noaccess
|
'disabled_noaccess_redirect'=>FALSE, // Disable redirect when noaccess
|
||||||
'email_admin_only'=> array( // Override emails and send them to an admin instead
|
'email_admin_only'=> array( // Override emails and send them to an admin instead
|
||||||
@ -23,7 +21,6 @@ return array
|
|||||||
// 'deon@leenooks.net'=>'Deon George',
|
// 'deon@leenooks.net'=>'Deon George',
|
||||||
),
|
),
|
||||||
'invoice'=>0, // Number of invoices to generate in a pass
|
'invoice'=>0, // Number of invoices to generate in a pass
|
||||||
'site'=>FALSE, // Glogal site debug
|
|
||||||
'show_errors'=>FALSE, // Show errors instead of logging in the DB.
|
'show_errors'=>FALSE, // Show errors instead of logging in the DB.
|
||||||
'show_inactive'=>FALSE, // Show Inactive Items
|
'show_inactive'=>FALSE, // Show Inactive Items
|
||||||
'task_sim'=>FALSE, // Simulate running tasks
|
'task_sim'=>FALSE, // Simulate running tasks
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><?php echo $meta->title; ?></title>
|
<title><?php echo Site::Appname(); ?></title>
|
||||||
<link rel="shortcut icon" href="<?php echo $meta->shortcut_icon ? $meta->shortcut_icon : '/favicon.ico' ?>" type="image/vnd.microsoft.icon" />
|
<link rel="shortcut icon" href="<?php echo $meta->shortcut_icon ? $meta->shortcut_icon : '/favicon.ico' ?>" type="image/vnd.microsoft.icon" />
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
<meta http-equiv="Content-Language" content="<?php echo $meta->language; ?>" />
|
<meta http-equiv="Content-Language" content="<?php echo $meta->language; ?>" />
|
||||||
@ -19,12 +19,12 @@
|
|||||||
echo HTML::style('media/theme/bootstrap/css/bootstrap-responsive.min.css');
|
echo HTML::style('media/theme/bootstrap/css/bootstrap-responsive.min.css');
|
||||||
echo HTML::style('media/vendor/font-awesome/css/font-awesome.min.css');
|
echo HTML::style('media/vendor/font-awesome/css/font-awesome.min.css');
|
||||||
} else {
|
} else {
|
||||||
echo HTML::style($meta->secure().'netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap.min.css');
|
echo HTML::style(Site::Protocol('netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap.min.css'));
|
||||||
echo HTML::style($meta->secure().'netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css');
|
echo HTML::style(Site::Protocol('netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css'));
|
||||||
echo HTML::style($meta->secure().'netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css');
|
echo HTML::style(Site::Protocol('netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css'));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo HTML::style($meta->secure().'fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,800italic,400,600,800');
|
echo HTML::style(Site::Protocol('fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,800italic,400,600,800'));
|
||||||
echo HTML::style('media/css/ui-lightness/jquery-ui-1.10.0.custom.min.css');
|
echo HTML::style('media/css/ui-lightness/jquery-ui-1.10.0.custom.min.css');
|
||||||
echo HTML::style('media/theme/baseadmin/css/base-admin-2.css');
|
echo HTML::style('media/theme/baseadmin/css/base-admin-2.css');
|
||||||
echo HTML::style('media/theme/baseadmin/css/base-admin-2-responsive.css');
|
echo HTML::style('media/theme/baseadmin/css/base-admin-2-responsive.css');
|
||||||
@ -39,13 +39,14 @@
|
|||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><i class="icon-cog"></i> </a>
|
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><i class="icon-cog"></i> </a>
|
||||||
<a class="brand" href="<?php echo URL::site(); ?>"><?php echo Config::sitename(); ?><sup></sup></a>
|
<a class="brand" href="<?php echo URL::site(); ?>"><?php echo Site::Appname(); ?><sup></sup></a>
|
||||||
|
|
||||||
<div class="nav-collapse collapse">
|
<div class="nav-collapse collapse">
|
||||||
<ul class="nav pull-right">
|
<ul class="nav pull-right">
|
||||||
<?php echo $navbar; ?>
|
<?php echo $navbar; ?>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<?php if (class_exists('Controller_Search')) : ?>
|
||||||
<div class="navbar-search pull-right">
|
<div class="navbar-search pull-right">
|
||||||
<div class="navbar-search-addon">
|
<div class="navbar-search-addon">
|
||||||
<i class="icon-search"></i>
|
<i class="icon-search"></i>
|
||||||
@ -53,6 +54,7 @@
|
|||||||
<input type="text" name="search-query" class="search-query" placeholder="Search" data-provide="typeahead">
|
<input type="text" name="search-query" class="search-query" placeholder="Search" data-provide="typeahead">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php endif ?>
|
||||||
</div><!--/.nav-collapse -->
|
</div><!--/.nav-collapse -->
|
||||||
|
|
||||||
</div> <!-- /container -->
|
</div> <!-- /container -->
|
||||||
@ -69,15 +71,15 @@
|
|||||||
<div class="subnav-collapse collapse">
|
<div class="subnav-collapse collapse">
|
||||||
<ul class="mainnav">
|
<ul class="mainnav">
|
||||||
<li class="">
|
<li class="">
|
||||||
<a href="<?php echo URL::link('user','welcome',TRUE); ?>"><i class="icon-home"></i> <span>Home</span></a>
|
<a href="<?php echo URL::link('user','welcome',TRUE); ?>"><i class="icon-home"></i><span>Home</span></a>
|
||||||
</li>
|
</li>
|
||||||
<?php if (($ao = Auth::instance()->get_user()) AND $ao->isAdmin()) : ?>
|
<?php if (class_exists('Auth') AND ($ao = Auth::instance()->get_user()) AND $ao->isAdmin()) : ?>
|
||||||
<li class="">
|
<li class="">
|
||||||
<a href="<?php echo URL::link('admin','welcome',TRUE); ?>"><i class="icon-tasks"></i> <span>Admin</span></a>
|
<a href="<?php echo URL::link('admin','welcome',TRUE); ?>"><i class="icon-tasks"></i><span>Admin</span></a>
|
||||||
</li>
|
</li>
|
||||||
<?php elseif ($ao->isReseller()) : ?>
|
<?php elseif ($ao->isReseller()) : ?>
|
||||||
<li class="">
|
<li class="">
|
||||||
<a href="<?php echo URL::link('reseller','welcome',TRUE); ?>"><i class="icon-tasks"></i> <span>Reseller</span></a>
|
<a href="<?php echo URL::link('reseller','welcome',TRUE); ?>"><i class="icon-tasks"></i><span>Reseller</span></a>
|
||||||
</li>
|
</li>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
</ul>
|
</ul>
|
||||||
@ -111,9 +113,9 @@
|
|||||||
echo HTML::script('media/theme/bootstrap/js/bootstrap.min.js');
|
echo HTML::script('media/theme/bootstrap/js/bootstrap.min.js');
|
||||||
echo HTML::script('media/js/lodash/lodash-1.2.1.min.js');
|
echo HTML::script('media/js/lodash/lodash-1.2.1.min.js');
|
||||||
} else {
|
} else {
|
||||||
echo HTML::script($meta->secure().'code.jquery.com/jquery-1.9.1.min.js');
|
echo HTML::script(Site::Protocol('code.jquery.com/jquery-1.9.1.min.js'));
|
||||||
echo HTML::script($meta->secure().'netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js');
|
echo HTML::script(Site::Protocol('netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js'));
|
||||||
echo HTML::script($meta->secure().'cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js');
|
echo HTML::script(Site::Protocol('cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js'));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo HTML::script('media/theme/baseadmin/js/backtotop.js');
|
echo HTML::script('media/theme/baseadmin/js/backtotop.js');
|
||||||
|
@ -25,10 +25,10 @@ class Model_Service_Plugin_Adsl extends Model_Service_Plugin {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'service_connect_date'=>array(
|
'service_connect_date'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'service_contract_date'=>array(
|
'service_contract_date'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -66,14 +66,14 @@ class Model_Service_Plugin_Adsl extends Model_Service_Plugin {
|
|||||||
* Calculate our contract start and end dates
|
* Calculate our contract start and end dates
|
||||||
*/
|
*/
|
||||||
public function contract_date_start($format=FALSE) {
|
public function contract_date_start($format=FALSE) {
|
||||||
return $format ? Config::date($this->service_contract_date) : $this->service_contract_date;
|
return $format ? Site::Date($this->service_contract_date) : $this->service_contract_date;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function contract_date_end($format=FALSE) {
|
public function contract_date_end($format=FALSE) {
|
||||||
// ADSL Contract Terms are held in the ADSL Plan
|
// ADSL Contract Terms are held in the ADSL Plan
|
||||||
$x = strtotime(sprintf('+%s months',$this->service->plugin()->contract_term),$this->service_contract_date);
|
$x = strtotime(sprintf('+%s months',$this->service->plugin()->contract_term),$this->service_contract_date);
|
||||||
|
|
||||||
return $format ? Config::date($x) : $x;
|
return $format ? Site::Date($x) : $x;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -248,7 +248,7 @@ class Model_Service_Plugin_Adsl extends Model_Service_Plugin {
|
|||||||
|
|
||||||
$google = GoogleChart::factory('Legacy')
|
$google = GoogleChart::factory('Legacy')
|
||||||
->type('vertical_bar')
|
->type('vertical_bar')
|
||||||
->title(sprintf('DSL traffic usage as at %s',Config::date($data['last'])));
|
->title(sprintf('DSL traffic usage as at %s',Site::Date($data['last'])));
|
||||||
|
|
||||||
foreach ($traffic_type as $k => $details)
|
foreach ($traffic_type as $k => $details)
|
||||||
$google->sdata(array('yl'=>($x=$this->traffic->friendly($k))),array($x=>$details));
|
$google->sdata(array('yl'=>($x=$this->traffic->friendly($k))),array($x=>$details));
|
||||||
@ -277,7 +277,7 @@ class Model_Service_Plugin_Adsl extends Model_Service_Plugin {
|
|||||||
case 'PEAK_AVERAGE_REMAIN': $value = ((isset($data['used']['base_down_peak']) AND ($data['allow']['base_down_peak'] > $data['used']['base_down_peak']) AND $daysleft) ? round(($data['allow']['base_down_peak']-$data['used']['base_down_peak'])/$daysleft,2).' MB' : '-'); break;
|
case 'PEAK_AVERAGE_REMAIN': $value = ((isset($data['used']['base_down_peak']) AND ($data['allow']['base_down_peak'] > $data['used']['base_down_peak']) AND $daysleft) ? round(($data['allow']['base_down_peak']-$data['used']['base_down_peak'])/$daysleft,2).' MB' : '-'); break;
|
||||||
|
|
||||||
case 'SERVICE_NUMBER': $value = $this->service_number; break;
|
case 'SERVICE_NUMBER': $value = $this->service_number; break;
|
||||||
case 'USAGE_DATE': $value = Config::date($data['last']); break;
|
case 'USAGE_DATE': $value = Site::Date($data['last']); break;
|
||||||
case 'USER_NAME': $value = $this->service->account->name(); break;
|
case 'USER_NAME': $value = $this->service->account->name(); break;
|
||||||
default:
|
default:
|
||||||
$value = '';
|
$value = '';
|
||||||
|
@ -36,10 +36,10 @@ class Model_Charge extends ORM_OSB implements Invoicable {
|
|||||||
array('Currency::display',array(':value')),
|
array('Currency::display',array(':value')),
|
||||||
),
|
),
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_charge'=>array(
|
'date_charge'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'processed'=>array(
|
'processed'=>array(
|
||||||
array('StaticList_YesNo::get',array(':value',TRUE)),
|
array('StaticList_YesNo::get',array(':value',TRUE)),
|
||||||
|
@ -17,10 +17,14 @@ class Model_Checkout_Notify extends ORM_OSB implements Invoicable {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'data',
|
||||||
|
);
|
||||||
|
|
||||||
public function invoice_item($item_type) {
|
public function invoice_item($item_type) {
|
||||||
return sprintf('Payment Fee: %s',$this->checkout->name);
|
return sprintf('Payment Fee: %s',$this->checkout->name);
|
||||||
}
|
}
|
||||||
|
@ -23,13 +23,13 @@ class Model_Service_Plugin_Domain extends Model_Service_Plugin {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'domain_expire'=>array(
|
'domain_expire'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'domain_name'=>array(
|
'domain_name'=>array(
|
||||||
array('strtoupper',array(':value')),
|
array('strtoupper',array(':value')),
|
||||||
),
|
),
|
||||||
'registrar_lastsync'=>array(
|
'registrar_lastsync'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -24,18 +24,18 @@ class Email_Template {
|
|||||||
throw new Kohana_Exception('Email template :template not defined in DB',array(':template'=>$template));
|
throw new Kohana_Exception('Email template :template not defined in DB',array(':template'=>$template));
|
||||||
|
|
||||||
if (is_null($language_id))
|
if (is_null($language_id))
|
||||||
$language_id = Config::language();
|
$language_id = Company::instance()->language();
|
||||||
|
|
||||||
$this->_etto = $eto->translate
|
$this->_etto = $eto->translate
|
||||||
->where_open()
|
->where_open()
|
||||||
->where('language_id','=',$language_id)
|
->where('language_id','=',$language_id)
|
||||||
->or_where('language_id','=',Config::language())
|
->or_where('language_id','=',Company::instance()->language())
|
||||||
->where_close()
|
->where_close()
|
||||||
->find();
|
->find();
|
||||||
|
|
||||||
if (! $this->_etto->loaded())
|
if (! $this->_etto->loaded())
|
||||||
throw new Kohana_Exception('No template (:template) found for user language (:language_id) or default language (:default_lang)',
|
throw new Kohana_Exception('No template (:template) found for user language (:language_id) or default language (:default_lang)',
|
||||||
array(':template'=>$eto->name,':language_id'=>$language_id,':default_lang'=>Config::language()));
|
array(':template'=>$eto->name,':language_id'=>$language_id,':default_lang'=>Company::instance()->language()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __set($key,$value) {
|
public function __set($key,$value) {
|
||||||
|
@ -22,9 +22,13 @@ class Model_Email_Log extends ORM_OSB {
|
|||||||
'id'=>'DESC',
|
'id'=>'DESC',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'data',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ class Controller_Reseller_Export extends Controller_Export {
|
|||||||
->prepend(array(
|
->prepend(array(
|
||||||
'id'=>array('checkbox'=>'id[]'),
|
'id'=>array('checkbox'=>'id[]'),
|
||||||
))->filters(array(
|
))->filters(array(
|
||||||
'exported'=>array(array('Config::date',array(':value'))),
|
'exported'=>array(array('Site::Date',array(':value'))),
|
||||||
));
|
));
|
||||||
|
|
||||||
$output .= '</div>';
|
$output .= '</div>';
|
||||||
|
@ -16,6 +16,10 @@ class Model_Export_DataMap extends ORM_OSB {
|
|||||||
'module' => array(),
|
'module' => array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'map_data',
|
||||||
|
);
|
||||||
|
|
||||||
public function list_itemsnoexport(Model $o,$emoid,$desc='title()') {
|
public function list_itemsnoexport(Model $o,$emoid,$desc='title()') {
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
|
@ -22,6 +22,10 @@ class Model_Export_Module extends ORM_OSB {
|
|||||||
'export_item' => array('far_key'=>'id'),
|
'export_item' => array('far_key'=>'id'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'display',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_nullifempty = array(
|
protected $_nullifempty = array(
|
||||||
'display',
|
'display',
|
||||||
);
|
);
|
||||||
|
@ -31,7 +31,7 @@ class Model_Service_Plugin_Host extends Model_Service_Plugin {
|
|||||||
array('strtoupper',array(':value')),
|
array('strtoupper',array(':value')),
|
||||||
),
|
),
|
||||||
'host_expire'=>array(
|
'host_expire'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@ class Model_Invoice extends ORM_OSB implements Cartable {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'due_date'=>array(
|
'due_date'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'status'=>array(
|
'status'=>array(
|
||||||
array('StaticList_YesNo::get',array(':value',TRUE)),
|
array('StaticList_YesNo::get',array(':value',TRUE)),
|
||||||
@ -46,6 +46,10 @@ class Model_Invoice extends ORM_OSB implements Cartable {
|
|||||||
'invoice_item'=>'service_id,item_type,date_start,date_stop',
|
'invoice_item'=>'service_id,item_type,date_start,date_stop',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'reminders',
|
||||||
|
);
|
||||||
|
|
||||||
private $_render = array();
|
private $_render = array();
|
||||||
|
|
||||||
// Our required Interface Methods
|
// Our required Interface Methods
|
||||||
|
@ -21,13 +21,13 @@ class Model_Invoice_Item extends ORM_OSB {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_start'=>array(
|
'date_start'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_stop'=>array(
|
'date_stop'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ class Model_Invoice_Item extends ORM_OSB {
|
|||||||
|
|
||||||
// Display the period that a transaction applies
|
// Display the period that a transaction applies
|
||||||
public function period() {
|
public function period() {
|
||||||
return ($this->date_start == $this->date_stop) ? Config::date($this->date_start) : sprintf('%s -> %s',Config::date($this->date_start),Config::date($this->date_stop));
|
return ($this->date_start == $this->date_stop) ? Site::Date($this->date_start) : sprintf('%s -> %s',Site::Date($this->date_start),Site::Date($this->date_stop));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function save(Validation $validation = NULL) {
|
public function save(Validation $validation = NULL) {
|
||||||
|
@ -23,8 +23,12 @@ class Model_Invoice_Memo extends ORM_OSB {
|
|||||||
*/
|
*/
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'memo',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -10,6 +10,10 @@
|
|||||||
* @license http://dev.osbill.net/license.html
|
* @license http://dev.osbill.net/license.html
|
||||||
*/
|
*/
|
||||||
class Model_Account_Oauth extends ORM_OSB {
|
class Model_Account_Oauth extends ORM_OSB {
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'oauth_data',
|
||||||
|
);
|
||||||
|
|
||||||
// Relationships
|
// Relationships
|
||||||
protected $_has_one = array(
|
protected $_has_one = array(
|
||||||
'account' => array('foreign_key'=>'id'),
|
'account' => array('foreign_key'=>'id'),
|
||||||
|
@ -26,10 +26,10 @@ class Model_Payment extends ORM_OSB {
|
|||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_payment'=>array(
|
'date_payment'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'fees_amt'=>array(
|
'fees_amt'=>array(
|
||||||
array('Currency::display',array(':value')),
|
array('Currency::display',array(':value')),
|
||||||
@ -241,7 +241,7 @@ class Model_Payment extends ORM_OSB {
|
|||||||
$sql .= ' GROUP BY A.id';
|
$sql .= ' GROUP BY A.id';
|
||||||
$sql .= ' HAVING round(A.total_amt-ALLOC,2) <> 0';
|
$sql .= ' HAVING round(A.total_amt-ALLOC,2) <> 0';
|
||||||
|
|
||||||
foreach ($db->query(Database::SELECT,__($sql,array(':prefix_'=>$db->table_prefix(),':site_id'=>Config::siteid()))) as $values)
|
foreach ($db->query(Database::SELECT,__($sql,array(':prefix_'=>$db->table_prefix(),':site_id'=>Site::ID()))) as $values)
|
||||||
array_push($pid,$values['id']);
|
array_push($pid,$values['id']);
|
||||||
|
|
||||||
return $this->where('id','IN',$pid)->order_by('account_id')->find_all();
|
return $this->where('id','IN',$pid)->order_by('account_id')->find_all();
|
||||||
|
@ -37,6 +37,13 @@ class Model_Product extends ORM_OSB implements Invoicable {
|
|||||||
|
|
||||||
protected $_form = array('id'=>'id','value'=>'description()');
|
protected $_form = array('id'=>'id','value'=>'description()');
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'avail_category',
|
||||||
|
'group_avail',
|
||||||
|
'price_group',
|
||||||
|
'prod_plugin_data',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_nullifempty = array(
|
protected $_nullifempty = array(
|
||||||
'price_group',
|
'price_group',
|
||||||
);
|
);
|
||||||
@ -207,7 +214,7 @@ class Model_Product extends ORM_OSB implements Invoicable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function translate() {
|
private function translate() {
|
||||||
return $this->translate->where('language_id','=',Config::language())->find();
|
return $this->translate->where('language_id','=',Company::instance()->language())->find();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -106,7 +106,7 @@ class Model_Product_Category extends ORM_OSB {
|
|||||||
|
|
||||||
|
|
||||||
private function translate() {
|
private function translate() {
|
||||||
return $this->translate->where('language_id','=',Config::language())->find();
|
return $this->translate->where('language_id','=',Company::instance()->language())->find();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -18,6 +18,10 @@ class Model_Product_Category_Translate extends ORM_OSB {
|
|||||||
'language'=>array('foreign_key'=>'id'),
|
'language'=>array('foreign_key'=>'id'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'description',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_save_message = TRUE;
|
protected $_save_message = TRUE;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -21,6 +21,10 @@ class Model_Product_Translate extends ORM_OSB {
|
|||||||
'language'=>array('foreign_key'=>'id'),
|
'language'=>array('foreign_key'=>'id'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'description_full',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_save_message = TRUE;
|
protected $_save_message = TRUE;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -267,18 +267,18 @@ $(document).ready(function() {
|
|||||||
case 4:
|
case 4:
|
||||||
case 5:
|
case 5:
|
||||||
if ($iio->date_start != $pdata['start_time']) {
|
if ($iio->date_start != $pdata['start_time']) {
|
||||||
$doutput .= sprintf('%s: Set start_time: %s [%s]<br/>',$iio->id,Config::date($pdata['start_time']),$pdata['start_time']);
|
$doutput .= sprintf('%s: Set start_time: %s [%s]<br/>',$iio->id,Site::Date($pdata['start_time']),$pdata['start_time']);
|
||||||
$iio->date_start=$pdata['start_time'];
|
$iio->date_start=$pdata['start_time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $pr AND $iio->date_stop != $pdata['end_time']) {
|
if (! $pr AND $iio->date_stop != $pdata['end_time']) {
|
||||||
$doutput .= sprintf('%s: Set end_time: %s [%s] <br/>',$iio->id,Config::date($pdata['end_time']),$pdata['end_time']);
|
$doutput .= sprintf('%s: Set end_time: %s [%s] <br/>',$iio->id,Site::Date($pdata['end_time']),$pdata['end_time']);
|
||||||
$iio->date_stop = $pdata['end_time'];
|
$iio->date_stop = $pdata['end_time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$bt = ($pr ? $iio->date_stop : $pdata['end_time'])+86400;
|
$bt = ($pr ? $iio->date_stop : $pdata['end_time'])+86400;
|
||||||
|
|
||||||
// $doutput .= sprintf('%s: BT now: %s (%s) [%s]<br/>',$iio->id,Config::date($bt),Config::date($pdata['end_time']),$bt);
|
// $doutput .= sprintf('%s: BT now: %s (%s) [%s]<br/>',$iio->id,Site::Date($bt),Site::Date($pdata['end_time']),$bt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -47,16 +47,16 @@ class Model_Service extends ORM_OSB {
|
|||||||
*/
|
*/
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_start'=>array(
|
'date_start'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_end'=>array(
|
'date_end'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_last_invoice'=>array(
|
'date_last_invoice'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_next_invoice'=>array(
|
'date_next_invoice'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'external_billing'=>array(
|
'external_billing'=>array(
|
||||||
array('StaticList_YesNo::get',array(':value',TRUE)),
|
array('StaticList_YesNo::get',array(':value',TRUE)),
|
||||||
@ -136,7 +136,7 @@ class Model_Service extends ORM_OSB {
|
|||||||
// If $expire is NULL, we'll use the next invoice date
|
// If $expire is NULL, we'll use the next invoice date
|
||||||
$expire = is_null($expire) ? $this->paid_to() : $expire;
|
$expire = is_null($expire) ? $this->paid_to() : $expire;
|
||||||
|
|
||||||
return $format ? Config::date($expire) : $expire;
|
return $format ? Site::Date($expire) : $expire;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -183,7 +183,7 @@ class Model_Service extends ORM_OSB {
|
|||||||
|
|
||||||
$x = (! $iio->loaded() AND $this->date_next_invoice) ? $this->date_next_invoice-86400 : ($iio->total() < 0 ? $iio->date_start-86400 : $iio->date_stop);
|
$x = (! $iio->loaded() AND $this->date_next_invoice) ? $this->date_next_invoice-86400 : ($iio->total() < 0 ? $iio->date_start-86400 : $iio->date_stop);
|
||||||
|
|
||||||
return $format ? Config::date($x) : $x;
|
return $format ? Site::Date($x) : $x;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function last_invoice_item() {
|
private function last_invoice_item() {
|
||||||
@ -217,7 +217,7 @@ class Model_Service extends ORM_OSB {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $format ? ($x ? Config::date($metric) : ' ') : ($x ? $metric : NULL);
|
return $format ? ($x ? Site::Date($metric) : ' ') : ($x ? $metric : NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,10 +23,10 @@ class Model_Service_Change extends ORM_OSB {
|
|||||||
*/
|
*/
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_ordered'=>array(
|
'date_ordered'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
'date_effective'=>array(
|
'date_effective'=>array(
|
||||||
array('Config::date',array(':value')),
|
array('Site::Date',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -18,12 +18,16 @@ class Model_Service_Memo extends ORM_OSB {
|
|||||||
'account'=>array('foreign_key'=>'id'),
|
'account'=>array('foreign_key'=>'id'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'memo',
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters used to format the display of values into friendlier values
|
* Filters used to format the display of values into friendlier values
|
||||||
*/
|
*/
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-append date" id="date_next_invoice_label">
|
<div class="input-append date" id="date_next_invoice_label">
|
||||||
<?php echo Form::input('date_next_invoice_label',Config::date(time()),array('class'=>'span2','label'=>'Date Next Invoice','add-on'=>'<i class="icon-calendar"></i>','disabled')); ?>
|
<?php echo Form::input('date_next_invoice_label',Site::Date(time()),array('class'=>'span2','label'=>'Date Next Invoice','add-on'=>'<i class="icon-calendar"></i>','disabled')); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php echo Form::hidden('date_next_invoice',time()); ?>
|
<?php echo Form::hidden('date_next_invoice',time()); ?>
|
||||||
|
@ -188,13 +188,13 @@ class SSL {
|
|||||||
public function get_valid_to($format=FALSE) {
|
public function get_valid_to($format=FALSE) {
|
||||||
$k = $this->_details('validTo_time_t');
|
$k = $this->_details('validTo_time_t');
|
||||||
|
|
||||||
return $format ? Config::date($k) : $k;
|
return $format ? Site::Date($k) : $k;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_valid_from($format=FALSE) {
|
public function get_valid_from($format=FALSE) {
|
||||||
$k = $this->_details('validFrom_time_t');
|
$k = $this->_details('validFrom_time_t');
|
||||||
|
|
||||||
return $format ? Config::date($k) : $k;
|
return $format ? Site::Date($k) : $k;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_version() {
|
public function get_version() {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
class Model_Task extends ORM_OSB {
|
class Model_Task extends ORM_OSB {
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_run'=>array(
|
'date_run'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ class Model_Task extends ORM_OSB {
|
|||||||
public function next_run($format=FALSE) {
|
public function next_run($format=FALSE) {
|
||||||
$x = $this->_cron()->next($this->date_run);
|
$x = $this->_cron()->next($this->date_run);
|
||||||
|
|
||||||
return $format ? Config::datetime($x) : $x;
|
return $format ? Site::Datetime($x) : $x;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -18,9 +18,13 @@ class Model_Task_Log extends ORM_OSB {
|
|||||||
'task'=>array(),
|
'task'=>array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $_compress_column = array(
|
||||||
|
'message',
|
||||||
|
);
|
||||||
|
|
||||||
protected $_display_filters = array(
|
protected $_display_filters = array(
|
||||||
'date_orig'=>array(
|
'date_orig'=>array(
|
||||||
array('Config::datetime',array(':value')),
|
array('Site::Datetime',array(':value')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user