1: <?php
2: /**
3: * Copyright 2013-2014 Horde LLC (http://www.horde.org/)
4: *
5: * See the enclosed file COPYING for license information (GPL). If you
6: * did not receive this file, see http://www.horde.org/licenses/gpl.
7: *
8: * @category Horde
9: * @copyright 2013-2014 Horde LLC
10: * @license http://www.horde.org/licenses/gpl GPL
11: * @package IMP
12: */
13:
14: /**
15: * Manage the expanded folders list.
16: *
17: * @author Michael Slusarz <slusarz@horde.org>
18: * @category Horde
19: * @copyright 2013-2014 Horde LLC
20: * @license http://www.horde.org/licenses/gpl GPL
21: * @package IMP
22: */
23: class IMP_Ftree_Prefs_Expanded extends IMP_Ftree_Prefs
24: {
25: /* Constants for nav_expanded. */
26: const NO = 0;
27: const YES = 1;
28: const LAST = 2;
29:
30: /**
31: * Value of nav_expanded pref.
32: *
33: * @var integer
34: */
35: protected $_expanded;
36:
37: /**
38: * Constructor.
39: */
40: public function __construct()
41: {
42: global $prefs;
43:
44: if (($folders = @unserialize($prefs->getValue('expanded_folders'))) &&
45: is_array($folders)) {
46: $this->_data = $folders;
47: }
48:
49: $this->_expanded = $prefs->getValue('nav_expanded');
50: $this->_locked = $prefs->isLocked('expanded_folders');
51: }
52:
53: /**
54: */
55: public function shutdown()
56: {
57: $GLOBALS['prefs']->setValue('expanded_folders', serialize($this->_data));
58: }
59:
60: /**
61: */
62: public function offsetGet($offset)
63: {
64: switch ($this->_expanded) {
65: case self::NO:
66: return false;
67:
68: case self::YES:
69: return true;
70:
71: case self::LAST:
72: return parent::offsetGet($offset);
73: }
74: }
75:
76: }
77: