-
Notifications
You must be signed in to change notification settings - Fork 242
/
ezcollaborationviewhandler.php
137 lines (124 loc) · 3.56 KB
/
ezcollaborationviewhandler.php
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
/**
* File containing the eZCollaborationViewHandler class.
*
* @copyright Copyright (C) 1999-2012 eZ Systems AS. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.txt GNU General Public License v2
* @version //autogentag//
* @package kernel
*/
/*!
\class eZCollaborationViewHandler ezcollaborationviewhandler.php
\brief The class eZCollaborationViewHandler does
*/
class eZCollaborationViewHandler
{
const TYPE_STANDARD = 1;
const TYPE_GROUP = 2;
/*!
Initializes the view mode.
*/
function eZCollaborationViewHandler( $viewMode, $viewType )
{
$this->ViewMode = $viewMode;
$this->ViewType = $viewType;
$this->TemplateName = $viewMode;
$ini = $this->ini();
if ( $viewType == self::TYPE_STANDARD )
{
$this->TemplatePrefix = "design:collaboration/view/";
$viewGroup = $viewMode . "View";
}
else if ( $viewType == self::TYPE_GROUP )
{
$this->TemplatePrefix = "design:collaboration/group/view/";
$viewGroup = $viewMode . "GroupView";
}
if ( $ini->hasGroup( $viewGroup ) )
{
if ( $ini->hasVariable( $viewGroup, 'TemplateName' ) )
$this->TemplateName = $ini->variable( $viewGroup, 'TemplateName' );
}
}
/*!
\return the template which is used for viewing the collaborations.
*/
function template()
{
return $this->TemplatePrefix . $this->TemplateName . ".tpl";
}
/*!
\static
\return the ini object for collaboration.ini
*/
static function ini()
{
return eZINI::instance( 'collaboration.ini' );
}
/*!
\static
\return true if the viewmode \a $viewMode exists with the current configuration
*/
static function exists( $viewMode )
{
$list = eZCollaborationViewHandler::fetchList();
return in_array( $viewMode, $list );
}
/*!
\static
\return true if the viewmode \a $viewMode exists for groups with the current configuration
*/
static function groupExists( $viewMode )
{
$list = eZCollaborationViewHandler::fetchGroupList();
return in_array( $viewMode, $list );
}
/*!
\static
\return a list of active viewmodes.
*/
static function fetchList()
{
return eZCollaborationViewHandler::ini()->variable( 'ViewSettings', 'ViewList' );
}
/*!
\static
\return a list of active viewmodes for groups.
*/
static function fetchGroupList()
{
return eZCollaborationViewHandler::ini()->variable( 'ViewSettings', 'GroupViewList' );
}
/**
* Returns a shared instance of the eZCollaborationViewHandler class
* pr the two input params.
*
*
* @param string $viewMode
* @param int $type Is self::TYPE_STANDARD by default
* @return eZCollaborationViewHandler
*/
static function instance( $viewMode, $type = self::TYPE_STANDARD )
{
if ( $type == self::TYPE_STANDARD )
$instance =& $GLOBALS["eZCollaborationView"][$viewMode];
else if ( $type == self::TYPE_GROUP )
$instance =& $GLOBALS["eZCollaborationGroupView"][$viewMode];
else
{
return null;
}
if ( !isset( $instance ) )
{
$instance = new eZCollaborationViewHandler( $viewMode, $type );
}
return $instance;
}
/// \privatesection
/// The viewmode
public $ViewMode;
public $ViewType;
public $TemplateName;
public $TemplatePrefix;
}
?>