<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class extends the core Kohana class by adding some core application * specific functions, and configuration. * * @package OSB * @category Modifications * @author Deon George * @copyright (c) 2009-2013 Open Source Billing * @license http://dev.osbill.net/license.html */ class Config extends Kohana_Config { // Our default logo, if there is no site logo public static $logo = 'img/logo-small.png'; /** * @compat Restore KH 3.1 functionality * @var Kohana_Config Singleton static instance */ protected static $_instance; /** * Some early initialisation * * At this point, KH hasnt been fully initialised either, so we cant rely on * too many KH functions yet. * * NOTE: Kohana doesnt provide a parent construct for the Kohana_Config class. */ public function __construct() { if (defined('PHPUNITTEST')) $_SERVER['SERVER_NAME'] = PHPUNITTEST; } /** * Get the singleton instance of Config. * * $config = Config::instance(); * * @return Config * @compat Restore KH 3.1 functionality */ public static function instance() { if (Config::$_instance === NULL) // Create a new instance Config::$_instance = new Config; return Config::$_instance; } public static function copywrite() { return '(c) Open Source Billing Development Team'; } /** * 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 $result = array(); if (! count($result)) { // We need to know our site here, so that we can subsequently load our enabled modules. if (PHP_SAPI === 'cli') { if (! ($site = Minion_CLI::options('site'))) { echo _('Cant figure out the site, use --site= for CLI')."\n"; die(); } else $_SERVER['SERVER_NAME'] = $site; } foreach (ORM::factory('Module')->list_external() as $mo) $result[$mo->name] = MODPATH.$mo->name; } return $result; } public static function module_config($item,array $value=NULL) { return Company::instance()->module_config($item,$value); } public static function module_exist($module) { return array_key_exists(strtolower($module),self::modules()) ? TRUE : FALSE; } /** * See if our emails for the template should be sent to configured admin(s) * * @param string template - Template to test for * @return mixed|array - Email to send test emails to */ public static function testmail($template) { $config = Kohana::$config->load('debug')->email_admin_only; if (is_null($config) OR ! is_array($config) OR empty($config[$template])) return FALSE; else return $config[$template]; } } ?>