Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// -- Environment setup --------------------------------------------------------
// Load the core Kohana class
require SYSPATH.'classes/Kohana/Core'.EXT;
if (is_file(APPPATH.'classes/Kohana'.EXT))
{
// Application extends the core
require APPPATH.'classes/Kohana'.EXT;
}
else
{
// Load empty core extension
require SYSPATH.'classes/Kohana'.EXT;
}
/**
* Set the default time zone.
*
* @link http://kohanaframework.org/guide/using.configuration
* @link http://www.php.net/manual/timezones
*/
date_default_timezone_set('Europe/Moscow');
/**
* Set the default locale.
*
* @link http://kohanaframework.org/guide/using.configuration
* @link http://www.php.net/manual/function.setlocale
*/
setlocale(LC_ALL, 'ru-RU.utf-8');
/**
* Enable the Kohana auto-loader.
*
* @link http://kohanaframework.org/guide/using.autoloading
* @link http://www.php.net/manual/function.spl-autoload-register
*/
spl_autoload_register(array('Kohana', 'auto_load'));
/**
* Optionally, you can enable a compatibility auto-loader for use with
* older modules that have not been updated for PSR-0.
*
* It is recommended to not enable this unless absolutely necessary.
*/
//spl_autoload_register(array('Kohana', 'auto_load_lowercase'));
/**
* Enable the Kohana auto-loader for unserialization.
*
* @link http://www.php.net/manual/function.spl-autoload-call
* @link http://www.php.net/manual/var.configuration#unserialize-callback-func
*/
ini_set('unserialize_callback_func', 'spl_autoload_call');
/**
* Set the mb_substitute_character to "none"
*
* @link http://www.php.net/manual/function.mb-substitute-character.php
*/
mb_substitute_character('none');
// -- Configuration and initialization -----------------------------------------
/**
* Set the default language
*/
I18n::lang('ru-ru');
Andrew Rudenets
committed
Cookie::$salt = sha1('ПРОЩАЙСТОЛОВАЯ');
if (isset($_SERVER['SERVER_PROTOCOL']))
{
// Replace the default protocol.
HTTP::$protocol = $_SERVER['SERVER_PROTOCOL'];
}
/**
* Set Kohana::$environment if a 'KOHANA_ENV' environment variable has been supplied.
*
* Note: If you supply an invalid environment name, a PHP warning will be thrown
* saying "Couldn't find constant Kohana::<INVALID_ENV_NAME>"
*/
if (isset($_SERVER['KOHANA_ENV']))
{
Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV']));
}
//Kohana::$environment = ($_SERVER['SERVER_NAME'] !== 'localhost') ? Kohana::PRODUCTION : Kohana::DEVELOPMENT;
/**
* 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(
/**
* 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);
/**
* Информация о системе: название, версия.
*/
define('ASSEMBLY_VERSION', '0.9');
/**
* Enable modules. Modules are referenced by a relative or absolute path.
*/
Kohana::modules(array(
Andrew Rudenets
committed
'kotwig' => MODPATH.'kotwig', // Twig template engine
'mpdf' => MODPATH.'mpdf', // HTML->PDF converter
'phpexcel' => MODPATH.'phpexcel', // HTML->MS Excel 2007 converter
Andrew Rudenets
committed
'mailer' => MODPATH.'mail',
// 'codebench' => MODPATH.'codebench', // Benchmarking tool
'database' => MODPATH.'database', // Database access
));
/**
* Set the routes. Each route must have a minimum of a name, a URI and a set of
* defaults for the URI.
*/
// dedicated routes
require APPPATH . 'routes/api.php';
require APPPATH . 'routes/dean_office.php';
Route::set('main', '')->defaults(['controller' => 'index']);
Route::set('sign', 'sign(/<type>)', array('type' => '(up|in)'))
->defaults(array(
'controller' => 'authentication',
Route::set('secret_entrance', 'ssign(/<type>)', array('type' => '(up|in)'))
->defaults(array(
'controller' => 'authentication',
Route::set('sign:out', 'sign/out')
->defaults(array(
'controller' => 'authentication',
'action' => 'logout',
));
Route::set('remind', 'remind')
->defaults(array(
'controller' => 'authentication',
'action' => 'remind',
));
Route::set('remind:end', 'remind/<token>')
->defaults(array(
'controller' => 'authentication',
Route::set('handler', 'handler/<controller>(/<action>(/<id>))')
'directory' => 'handler',
'action' => 'index',
Route::set('window', 'window/<id>')
->defaults(array(
'controller' => 'Window',
'action' => 'get'
));
Route::set('common:index', 'index')
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'index'
));
Route::set('common:settings', 'settings')
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'settings'
));
Route::set('common:profile', 'profile(/<type>(/<id>))', array('type' => '(teacher|student)'))
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'profile'
));
Route::set('student:subject', 'subject/<id>', array('id' => '[0-9]+'))
->defaults(array(
'directory' => 'student',
'controller' => 'subject',
'action' => 'show'
));
// Внутренние вызовы!
Route::set('student:index', 'student/index')
->filter(function($route, $params, Request $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'student',
'controller' => 'index',
'action' => 'index'
));
Route::set('student:settings', 'student/settings')
->filter(function($route, $params, Request $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'student',
'controller' => 'index',
'action' => 'settings'
));
Route::set('teacher:map:create', '<type>/create', ['type' => '(discipline|coursework)'])
->filter(function(Route $route, $params, Request $request){
$params['action'] = 'create_' . $params['type'];
return $params;
})
->defaults(array(
Route::set('discipline:edit', 'discipline/<id>((/)<section>)', ['id' => '\d+'])
->filter(function(Route $route, $params, Request $request){
$params['action'] = 'edit_' . $params['section'];
return $params;
})
->defaults([
'controller' => 'edit',
'section' => 'structure',
]);
Route::set('teacher:rating', 'rate/<id>', array('id' => '[0-9]+'))
->defaults(array(
'directory' => 'teacher',
'controller' => 'rating',
'action' => 'edit'
));
Route::set('teacher:exam', 'exam/<id>', array('id' => '[0-9]+'))
->defaults(array(
'directory' => 'teacher',
'controller' => 'rating',
'action' => 'exam'
));
Route::set('teacher:index', 'teacher/index')
->filter(function($route, $params, Request $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'index',
'action' => 'index'
));
Route::set('teacher:settings', 'teacher/settings')
->filter(function($route, $params, Request $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'index',
'action' => 'settings'
));
Route::set('teacher:profile', 'teacher/profile(/<action>(/<id>))', array('action' => '(student)', 'id' => '[0-9]+'))
->filter(function($route, $params, Request $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'profile',
Route::set('admin:common', 'admin(/<controller>(/<action>(/<param1>(:<param2>))))')
->defaults(array(
'directory' => 'admin',
Andrew Rudenets
committed
'controller' => 'index',
));
Route::set('javaSessionProvider', 'java_authentication')
->defaults(array(
'controller' => 'JavaAuthentication',
'action' => 'authentication',));