added @var phpDoc comments to various variables
[Packages/TYPO3.CMS.git] / typo3 / alt_menu.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27 /**
28 * Displays the vertical menu in the left most frame of TYPO3s backend
29 *
30 * $Id$
31 * Revised for TYPO3 3.6 2/2003 by Kasper Skaarhoj
32 * XHTML-trans compliant
33 *
34 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
35 * @co-author Sebastian Kurfuerst <sebastian@garbage-group.de>
36 */
37 /**
38 * [CLASS/FUNCTION INDEX of SCRIPT]
39 *
40 *
41 *
42 * 80: class SC_alt_menu
43 * 91: function init()
44 * 108: function main()
45 * 190: function printContent()
46 *
47 * TOTAL FUNCTIONS: 3
48 * (This index is automatically created/updated by the extension "extdeveval")
49 *
50 */
51
52
53 require ('init.php');
54 require ('template.php');
55 require_once (PATH_t3lib.'class.t3lib_loadmodules.php');
56 require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
57 require_once ('class.alt_menu_functions.inc');
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 /**
73 * Script Class for rendering the vertical menu in the left side of the backend frameset
74 *
75 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
76 * @co-author Sebastian Kurfuerst <sebastian@garbage-group.de>
77 * @package TYPO3
78 * @subpackage core
79 */
80 class SC_alt_menu {
81
82 // Internal, Static: GPvar
83 var $_clearCacheFiles;
84
85 /**
86 * Menu functions object
87 *
88 * @var alt_menu_functions
89 */
90 var $alt_menuObj;
91
92 /**
93 * Initialize
94 * Loads the backend modules available for the logged in user.
95 *
96 * @return void
97 */
98 function init() {
99 global $TBE_MODULES, $TBE_TEMPLATE;
100
101 // Setting GPvars:
102 $this->_clearCacheFiles = t3lib_div::_GP('_clearCacheFiles');
103
104 // Loads the backend modules available for the logged in user.
105 $this->loadModules = t3lib_div::makeInstance('t3lib_loadModules');
106 $this->loadModules->observeWorkspaces = TRUE;
107 $this->loadModules->load($TBE_MODULES);
108
109 // Instantiates the menu object which will generate some JavaScript for the goToModule() JS function in this frame.
110 $this->alt_menuObj = t3lib_div::makeInstance('alt_menu_functions');
111
112 $TBE_TEMPLATE->JScodeArray[] = $this->alt_menuObj->generateMenuJScode($this->loadModules->modules);
113 }
114
115 /**
116 * Main content generated
117 *
118 * @return void
119 */
120 function main() {
121 global $BE_USER,$TYPO3_CONF_VARS,$TBE_TEMPLATE;
122
123 $TBE_TEMPLATE->docType='xhtml_trans';
124 $TBE_TEMPLATE->divClass='vertical-menu';
125 $TBE_TEMPLATE->bodyTagAdditions = 'onload="top.restoreHighlightedModuleMenuItem()"';
126
127 $this->content.=$TBE_TEMPLATE->startPage('Vertical Backend Menu');
128 $backPath = $GLOBALS['BACK_PATH'];
129
130 // Printing the menu
131 $alt_menuObj = t3lib_div::makeInstance('alt_menu_functions');
132 $this->content.= $alt_menuObj->topMenu($this->loadModules->modules);
133
134 // clear cache commands for Admins
135 if($BE_USER->isAdmin()) { // && $BE_USER->workspace===0 NOT used anyway because under a workspace developers might still like to clear cache!
136 $functionsArray = $alt_menuObj->adminFunctions($backPath);
137
138 $this->content.='
139
140 <!--
141 Menu with admin functions: Clearing cache:
142 -->
143 <div id="typo3-alt-menu-php-adminFunc">';
144
145
146 // Table with those admin functions
147 $this->content.='
148 <table border="0" cellpadding="0" cellspacing="1" width="100%" id="typo3-adminmenu">';
149
150 // Header: Admin functions
151 $this->content.='
152 <tr class="c-mainitem">
153 <td colspan="2"><span class="c-label"><b>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:rm.adminFunctions',1).'</b>&nbsp;</span><span class="c-iconCollapse"></span></td>
154 </tr>';
155
156 $rows=array();
157 foreach($functionsArray as $functionsArraySetup) {
158 $rows[]='
159 <tr class="c-subitem">
160 <td valign="top" align="center" class="icon">'.$functionsArraySetup['icon'].'</td>
161 <td><a href="'.htmlspecialchars($functionsArraySetup['href']).'">'.htmlspecialchars($functionsArraySetup['title']).'</a></td>
162 </tr>';
163 }
164
165 // Imploding around the divider table row:
166 $this->content.=implode('
167 <tr>
168 <td colspan="2"><img'.t3lib_iconWorks::skinImg($backPath,'gfx/altmenuline.gif','width="105" height="3"').' alt="" /></td>
169 </tr>',$rows);
170
171 $this->content.='
172 </table>';
173 $this->content.=t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'menu_adminFunction', $GLOBALS['BACK_PATH']);
174 $this->content.='
175 </div>
176 ';
177 }
178
179 // superuser mode
180 if($BE_USER->user['ses_backuserid']) {
181 $username = '<p id="username" class="typo3-red-background">[SU: '.htmlspecialchars($BE_USER->user['username']).']</p>';
182 } else {
183 $username = '<p id="username">['.htmlspecialchars($BE_USER->user['username']).']</p>';
184 }
185 // Printing bottons (logout button)
186 $this->content.='
187
188
189 <!--
190 Logout button / username
191 -->
192 <div id="typo3-alt-menu-php-logininfo">'.$alt_menuObj->topButtons().$username.'
193 </div>';
194
195 // End page:
196 $this->content.=$TBE_TEMPLATE->endPage();
197 }
198
199 /**
200 * Outputting the accumulated content to screen
201 *
202 * @return void
203 */
204 function printContent() {
205 echo $this->content;
206 }
207 }
208
209 // Include extension?
210 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/alt_menu.php']) {
211 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/alt_menu.php']);
212 }
213
214
215
216
217
218
219
220
221
222
223
224
225 // Make instance:
226 $SOBE = t3lib_div::makeInstance('SC_alt_menu');
227 $SOBE->init();
228 $SOBE->main();
229 $SOBE->printContent();
230 ?>