<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class is for access system configuration. * * @package OSB * @subpackage Config * @category Helpers * @author Deon George * @copyright (c) 2010 Open Source Billing * @license http://dev.osbill.net/license.html */ class Config extends lnApp_Config { // Our setup object public $so; public static $no_site_id_tables = array('setup','country','currency','language','tax'); /** * Load our site configuration from the DB * * We cant do this in __construct(), since Kohana hasn't been fully initialised yet. */ public function loadsite() { // Anti-loop, if we have loaded our record, just return; if ($this->so AND $this->so->loaded()) return $this; $this->so = ORM::factory('setup',array('nonssl_url'=>URL::base('http'))); if (! $this->so->loaded()) throw new Kohana_Exception(_('Site [:site] not defined in DB?'),array(':site'=>URL::base('http'))); Kohana::$environment = (int)static::sitemode(); return $this; } /** * Find a list of all database enabled modules * * Our available modules are defined in the DB (along with method * security). */ public static function modules() { static $return = array(); if (! count($return)) foreach (ORM::factory('module')->list_active() as $mo) $return[$mo->name] = MODPATH.$mo->name; return $return; } public static function moduleexist($module) { return array_key_exists($module,static::modules()) ? TRUE : FALSE; } public static function sitename() { return Company::name(); } public static function siteid($format=FALSE) { return $format ? sprintf('%02s',Config::instance()->loadsite()->so->id) : Config::instance()->loadsite()->so->id; } public static function sitemode() { return Config::instance()->loadsite()->so->status; } public static function copywrite() { return '(c) Open Source Billing Development Team'; } } ?>