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('ПРОЩАЙСТОЛОВАЯ');
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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']));
}
/**
* 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' => '/~dev_rating',
'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);
/**
* Информация о системе: название, версия.
*/
define('ASSEMBLY_SYSTEM_NAME', 'Сервис БРС');
define('ASSEMBLY_VERSION', '0.9');
/**
* Enable modules. Modules are referenced by a relative or absolute path.
*/
Kohana::modules(array(
Andrew Rudenets
committed
'account' => MODPATH.'account', // Authentication and account manager
'kotwig' => MODPATH.'kotwig', // Twig template engine
// '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.
*/
/* --------------- Авторизация ---------------- */
Route::set('sign', '(sign(/<type>))', array('type' => '(up|in)'))
->defaults(array(
'controller' => 'authentication',
'action' => 'sign',
));
Route::set('remind', 'remind')
->defaults(array(
'controller' => 'authentication',
'action' => 'remind',
));
Route::set('sign:out', 'sign/out')
->defaults(array(
'controller' => 'authentication',
'action' => 'logout',
));
/* --------------- Служебные ссылки ---------------- */
Route::set('handler', 'handler/<controller>/<action>(/<id>)')
->defaults(array(
'action' => 'index',
'directory' => 'handler'))
->filter(function($route, $params, $request)
{
if ($request->method() !== HTTP_Request::POST)
{
Andrew Rudenets
committed
// Данный маршрут выполним только для POST-запросов
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
return FALSE;
}
});
Route::set('twig:show', 'twig(/<id>)')
->defaults(array(
'controller' => 'twig',
'action' => 'show'
));
/* --------------- Общие ссылки ---------------- */
Route::set('index', 'index')
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'index'
));
Route::set('settings', 'settings')
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'settings'
));
Route::set('profile', 'profile(/<type>(/<id>))', array('type' => '(teacher|student)'))
->defaults(array(
'controller' => 'UserEnvi',
'action' => 'profile'
));
/* --------------- Студенты ---------------- */
Route::set('subject', 'subject/<id>', array('id' => '[0-9]+'))
->defaults(array(
'directory' => 'student',
'controller' => 'subject',
'action' => 'show'
));
// Внутренние вызовы!
Route::set('stdnt:index', 'student/index')
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'student',
'controller' => 'index',
'action' => 'index'
));
Route::set('stdnt:settings', 'student/settings')
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'student',
'controller' => 'index',
'action' => 'settings'
));
Route::set('stdnt:profile', 'student/profile')
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'student',
'controller' => 'profile',
'action' => 'show'
));
/* --------------- Преподаватели ---------------- */
Route::set('map:create', 'map/create')
->defaults(array(
'directory' => 'teacher',
'controller' => 'map',
'action' => 'create'
));
Route::set('map:edit', 'map/<id>', array('id' => '[0-9]+'))
'controller' => 'map',
'action' => 'edit'
));
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Route::set('rating', 'rating/<id>', array('id' => '[0-9]+'))
->defaults(array(
'directory' => 'teacher',
'controller' => 'rating',
'action' => 'edit'
));
// Внутренние вызовы!
Route::set('tchr:index', 'teacher/index')
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'index',
'action' => 'index'
));
Route::set('tchr:settings', 'teacher/settings')
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'index',
'action' => 'settings'
));
Route::set('tchr:profile', 'teacher/profile(/<action>(/<id>))', array('action' => '(student)', 'id' => '[0-9]+'))
->filter(function($route, $params, $request){
if($request->is_initial())
return FALSE;
})
->defaults(array(
'directory' => 'teacher',
'controller' => 'profile',
'action' => 'show'
));
/* --------------- Администрирование ---------------- */
Andrew Rudenets
committed
Route::set('admin:common', 'admin(/<controller>/(<action>(/<param1>(:<param2>))))')
->defaults(array(
'directory' => 'admin',
Andrew Rudenets
committed
'controller' => 'index',