/** * Application initialization * - Loads the plugins * - Sets the cookie configuration */ public static function init() { // Set defaule cache configuration Cache::$default = Kohana::$config->load('site')->get('default_cache'); try { $cache = Cache::instance()->get('dummy' . rand(0, 99)); } catch (Exception $e) { // Use the dummy driver Cache::$default = 'dummy'; } // Load the plugins Swiftriver_Plugins::load(); // Add the current default theme to the list of modules $theme = Swiftriver::get_setting('site_theme'); if (isset($theme) and $theme != "default") { Kohana::modules(array_merge(array('themes/' . $theme->value => THEMEPATH . $theme->value), Kohana::modules())); } // Clean up unset($active_plugins, $theme); // Load the cookie configuration $cookie_config = Kohana::$config->load('cookie'); Cookie::$httponly = TRUE; Cookie::$salt = $cookie_config->get('salt', Swiftriver::DEFAULT_COOKIE_SALT); Cookie::$domain = $cookie_config->get('domain') or ''; Cookie::$secure = $cookie_config->get('secure') or FALSE; Cookie::$expiration = $cookie_config->get('expiration') or 0; // Set the default site locale I18n::$lang = Swiftriver::get_setting('site_locale'); }
public static function set($name, $value, $lifetime = null, $domain = null) { if ($lifetime === null) { $lifetime = Cookie::$expiration; } if ($lifetime !== 0) { $lifetime += time(); } if ($domain !== null) { Cookie::$domain = $domain; } $value = Cookie::salt($name, $value) . '~' . $value; return setcookie($name, $value, $lifetime, Cookie::$path, Cookie::$domain, Cookie::$secure, Cookie::$httponly); }
/** * @param array $opts Array of options. Supported keys:<ul> * <li>'path' - The path on the server in which the cookie will be available on. * If set to '/', the cookie will be available within the entire domain. * If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. * Default value is: /<br> * <li>'domain' - The domain that the cookie is available to. * Setting the domain to 'www.example.com' will make the cookie available in the www subdomain and higher subdomains. * Cookies available to a lower domain, such as 'example.com' will be available to higher subdomains, such as 'www.example.com'. * Older browsers still implementing the deprecated » RFC 2109 may require a leading . to match all subdomains. * Default value is '.' + $_SERVER['SERVER_NAME'] [www is omitted]<br> * <li>'prefix' - Prefix for cookies. See: self::$prefix */ public static function init(array $opts = array()) { if (self::$inited) { return; } if (isset($opts['path']) and (string) $opts['path']) { self::$path = (string) $opts['path']; } if (isset($opts['prefix'])) { self::$prefix = (string) $opts['prefix']; } if (isset($opts['domain']) and (string) $opts['domain']) { self::$domain = (string) $opts['domain']; } else { self::$domain = $_SERVER['SERVER_NAME']; self::$domain = '.' . preg_replace('#^www\\.#', '', strtolower(self::$domain)); } self::$secure = (isset($_SERVER['HTTPS']) and strtolower($_SERVER['HTTPS']) == 'on'); }
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('cache' => MODPATH . 'cache', 'database' => MODPATH . 'database', 'image' => MODPATH . 'image', 'orm' => MODPATH . 'orm', 'paypal' => MODPATH . 'paypal', 'kandler' => MODPATH . 'kandler', 'email' => MODPATH . 'email', 'pagination' => MODPATH . 'pagination', 'sitemap' => MODPATH . 'sitemap', 'amazon' => MODPATH . 'amazon')); /** * Cache */ Kohana::$caching = TRUE; Cache::$default = 'apc'; /** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. */ // Default route Route::set('default', '(<controller>(/<action>(/<id>)))')->defaults(array('controller' => 'ads', 'action' => 'home')); // Error route Route::set('error', 'error/<action>(/<message>)', array('action' => '[0-9]++', 'message' => '.+'))->defaults(array('controller' => 'error_handler')); /** * Cookie configuration settings */ Cookie::$salt = 'ASJ12094X:F?!*!*AD'; Cookie::$expiration = Date::MONTH; Cookie::$httponly = TRUE; Cookie::$secure = isset($_SERVER["HTTPS"]); Cookie::$domain = '.gowork.at';
# copy config/init.php.default to config/init.php Kohana::init(include APPPATH . 'config/init.php'); /** * 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()); /** * Cookie config. */ $cookie = Kohana::$config->load('cookie'); Cookie::$salt = $cookie->salt; Cookie::$expiration = $cookie->expiration; Cookie::$domain = $cookie->domain; Cookie::$path = $cookie->path; Cookie::$secure = $cookie->secure; Cookie::$httponly = $cookie->httponly; /** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(array()); /** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. */ Route::set('api', '<directory>(/<controller>(/<action>(/<params>)))', array('params' => '.*', 'directory' => '(v1|v2)'))->defaults(array('controller' => 'defaults', 'action' => 'index', 'directory' => 'v1')); Route::set('join', 'join')->defaults(array('controller' => 'auth', 'action' => 'join')); Route::set('default', '(<controller>(/<action>(/<id>)))')->defaults(array('controller' => 'welcome', 'action' => 'index'));
public static function setCookieDomain($domain) { if (preg_match('/^([\\da-z\\.-]{0,61})?(\\.[\\da-z-]{0,61}\\.[a-z]{2,6})$|^([\\da-z-]{0,61}\\.[a-z]{2,6})$/', $domain, $matches)) { if (count($matches) == 3) { Cookie::$domain = $matches[2]; } else { if (isset($matches[3])) { Cookie::$domain = "." . $matches[3]; } } } }
* 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()); $hostname = $_SERVER['SERVER_NAME']; if (strpos($hostname, 'earlybirds.qyuki.com') !== FALSE) { Cookie::$domain = 'earlybirds.qyuki.com'; } if (strpos($hostname, 'eb.qyuki.com') !== FALSE) { Cookie::$domain = 'eb.qyuki.com'; } if (strpos($hostname, '8eta.qyuki.com') !== FALSE) { Cookie::$domain = '8eta.qyuki.com'; } Cookie::$salt = 'fdsh-tretgd-re-gfds-gt-erg-fdg-'; /** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(array('auth' => MODPATH . 'auth', 'database' => MODPATH . 'database', 'image' => MODPATH . 'image', 'orm' => MODPATH . 'orm', 'formo' => MODPATH . 'formo', 'userguide' => MODPATH . 'userguide')); /** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. */ Route::set('sections', '<directory>(/<controller>(/<action>(/<id>(/<param>))))', array('directory' => "(admin|jobs)"))->defaults(array('directory' => 'admin', 'controller' => 'user', 'action' => 'index')); Route::set('default', '(<controller>(/<action>(/<id>(/<param1>(/<param2>(/<param3>))))))')->defaults(array('controller' => 'stimulus', 'action' => 'index')); define('SIGNED_IN_HOME', '/stimulus'); define('NON_SIGNED_IN_HOME', '/user'); /**
$config = Kohana::$config->load('base'); Kohana::$base_url = $config->get('base_url', '/'); /** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(Kohana::$config->load('modules')->as_array()); /** * Set the system default language * Muti-language settings in config/multilang.php */ I18n::lang('en-us'); /** * set Cookie config */ Cookie::$salt = $config->get('salt', 'hustoj'); Cookie::$domain = $config->get('domain'); /** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. */ Route::set('show_problem_data', 'admin/problem/showdata/<id>/<filename>.<ext>', array('filename' => '\\w+', 'ext' => '\\w+'))->defaults(array('directory' => 'admin', 'controller' => 'problem', 'action' => 'showdata')); Route::set('del_problem_data', 'admin/problem/deldata/<id>/<filename>.<ext>', array('filename' => '\\w+', 'ext' => '\\w+'))->defaults(array('directory' => 'admin', 'controller' => 'problem', 'action' => 'deldata')); Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))')->defaults(array('directory' => 'admin', 'controller' => 'index', 'action' => 'index')); Route::set('auth', '<action>', array('action' => '(login|logout|setting|setting)'))->defaults(array('controller' => 'user')); Route::set('search', 'problem/search')->defaults(array('controller' => 'problem', 'action' => 'search')); Route::set('ranklist', 'rank/user(/<id>)', array('id' => '[[:word:]]+'))->defaults(array('controller' => 'user', 'action' => 'list')); Route::set('profile', 'u/<uid>', array('uid' => '[[:word:]]+'))->defaults(array('controller' => 'user', 'action' => 'profile')); Route::set('status', 'status')->defaults(array('controller' => 'solution', 'action' => 'status')); Route::set('topic', 't/<id>', array('id' => '\\d+'))->defaults(array('controller' => 'discuss', 'action' => 'topic')); Route::set('news', 'news/<id>', array('id' => '\\d+'))->defaults(array('controller' => 'index', 'action' => 'news')); Route::set('page', '<action>', array('action' => '(faqs|about|links|contact|help|terms)'))->defaults(array('controller' => 'index'));