" */ /** * 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; if (isset($_SERVER['KOHANA_ENV'])) { Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV'])); } /** * Initialize Kohana, setting the default options. * * The following options are available: * * - string base_url path, and optionally domain, of your application NULL * - string index_file name of your index file, usually "index.php" index.php * - string charset internal character set used for input and output utf-8 * - string cache_dir set the internal cache directory APPPATH/cache * - integer cache_life lifetime, in seconds, of items cached 60 * - boolean errors enable or disable error handling TRUE * - boolean profile enable or disable internal profiling TRUE * - boolean caching enable or disable internal caching FALSE * - boolean expose set the X-Powered-By header FALSE */ Kohana::init(array( 'base_url' => Kohana::$environment === Kohana::PRODUCTION ? '/tsmac' : '/tsmac', 'caching' => Kohana::$environment === Kohana::PRODUCTION, 'profile' => Kohana::$environment !== Kohana::PRODUCTION, 'index_file' => FALSE, )); /** * Attach the file write to logging. Multiple writers are supported. */ Kohana::$log->attach(new Log_File(APPPATH.'logs')); /** * Attach a file reader to config. Multiple readers are supported. */ Kohana::$config->attach(new Config_File); /** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(array( 'tsm' => MODPATH.'tsm', // TSM Module // 'lnauth' => MODPATH.'lnauth', // lnAuth Base Authentication Tools 'lnapp' => MODPATH.'lnapp', // lnApp Base Application Tools // 'oauth' => MODPATH.'oauth', // OAuth Module for External Authentication 'auth' => SMDPATH.'auth', // Basic authentication // 'cache' => SMDPATH.'cache', // Caching with multiple backends // 'cron' => SMDPATH.'cron', // Kohana Cron Module // 'codebench' => SMDPATH.'codebench', // Benchmarking tool 'database' => SMDPATH.'database', // Database access // 'gchart' => MODPATH.'gchart', // Google Chart Module // 'highchart' => MODPATH.'highchart', // Highcharts Chart Module // 'image' => SMDPATH.'image', // Image manipulation 'khemail' => SMDPATH.'khemail', // Email module for Kohana 3 PHP Framework // 'minion' => SMDPATH.'minion', // CLI Tasks '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 // 'xml' => SMDPATH.'xml', // XML module for Kohana 3 PHP Framework )); /** * Load our modules defined in the DB */ #Kohana::modules(array_merge(Kohana::modules(),Config::modules())); /** * Enable specalised interfaces */ Route::set('sections', '/(/(/(/)))', array( 'directory' => '('.implode('|',array_values(URL::$method_directory)).')' )) ->defaults(array( 'action' => 'index', )); // Static file serving (CSS, JS, images) Route::set('default/media', 'media(/)', array('file' => '.+')) ->defaults(array( 'controller' => 'media', 'action' => 'get', )); /** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. */ Route::set('default', '((/(/)))', array('id'=>'[a-zA-Z0-9_.-]+')) ->defaults(array( 'controller' => 'welcome', 'action' => 'index', )); /** * If APC is enabled, and we need to clear the cache */ if (file_exists(APPPATH.'cache/CLEAR_APC_CACHE') AND function_exists('apc_clear_cache') AND (PHP_SAPI !== 'cli')) { if (! apc_clear_cache() OR ! unlink(APPPATH.'cache/CLEAR_APC_CACHE')) throw new Kohana_Exception('Unable to clear the APC cache.'); } // If we are a CLI, set our session dir if (PHP_SAPI === 'cli') session_save_path('tmp/'); ?>