blob: b851796528fbc40e7a00009305b5f6dbc17c67c7 (
plain)
1
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?php
/**
* The context object handles the current configuration file and different
* useful functions associated to the current view state.
*/
class FreshRSS_Context {
public static $conf = null;
public static $total_unread = 0;
public static $total_starred = array(
'all' => 0,
'read' => 0,
'unread' => 0,
);
public static $state = 0;
public static $current_get = array(
'all' => false,
'starred' => false,
'feed' => false,
'category' => false,
);
public static $order = 'DESC';
public static function init() {
// Init configuration.
$current_user = Minz_Session::param('currentUser');
try {
self::$conf = new FreshRSS_Configuration($current_user);
} catch(Minz_Exception $e) {
Minz_Log::error('Cannot load configuration file of user `' . $current_user . '`');
die($e->getMessage());
}
// Init i18n.
Minz_Session::_param('language', self::$conf->language);
Minz_Translate::init();
// Get the current state.
// self::$state = self::$conf->default_view;
}
public static function isStateEnabled($state) {
return self::$state & $state;
}
public static function getRevertState($state) {
if (self::$state & $state) {
return self::$state & ~$state;
} else {
return self::$state | $state;
}
}
public static function currentGet() {
if (self::$current_get['all']) {
return 'a';
} elseif (self::$current_get['starred']) {
return 's';
} elseif (self::$current_get['feed']) {
return 'f_' . self::$current_get['feed'];
} elseif (self::$current_get['category']) {
return 'c_' . self::$current_get['category'];
}
}
public static function isCurrentGet($get) {
$type = $get[0];
$id = substr($get, 2);
switch($type) {
case 'a':
return self::$current_get['all'];
case 's':
return self::$current_get['starred'];
case 'f':
return self::$current_get['feed'] === $id;
case 'c':
return self::$current_get['category'] === $id;
default:
return false;
}
}
public static function nextStep() {
// TODO: fix this method.
return array(
'get' => 'a',
'idMax' => (time() - 1) . '000000'
);
}
}
|