Fixed bug #15424: [web_info] allow more than 3 levels for pagetree overview and local...
[Packages/TYPO3.CMS.git] / typo3 / sysext / cms / web_info / class.tx_cms_webinfo.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 1999-2010 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 * Contains a class with functions for page related statistics added to the backend Info module
29 *
30 * $Id$
31 * Revised for TYPO3 3.6 5/2003 by Kasper Skaarhoj
32 *
33 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
34 */
35 /**
36 * [CLASS/FUNCTION INDEX of SCRIPT]
37 *
38 *
39 *
40 * 66: class tx_cms_webinfo_page extends t3lib_extobjbase
41 * 73: function modMenu()
42 * 100: function main()
43 *
44 *
45 * 198: class tx_cms_webinfo_hits extends tx_cms_webinfo_page
46 *
47 * TOTAL FUNCTIONS: 2
48 * (This index is automatically created/updated by the extension "extdeveval")
49 *
50 */
51
52 require_once(PATH_typo3.'class.db_list.inc');
53 require_once(t3lib_extMgm::extPath('cms').'layout/class.tx_cms_layout.php');
54
55
56 /**
57 * Class for displaying page information (records, page record properties)
58 *
59 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
60 * @package TYPO3
61 * @subpackage tx_cms
62 */
63 class tx_cms_webinfo_page extends t3lib_extobjbase {
64
65 /**
66 * Returns the menu array
67 *
68 * @return array
69 */
70 function modMenu() {
71 global $LANG;
72 return array (
73 'pages' => array (
74 0 => $LANG->getLL('pages_0'),
75 2 => $LANG->getLL('pages_2'),
76 1 => $LANG->getLL('pages_1')
77 ),
78 'stat_type' => array(
79 0 => $LANG->getLL('stat_type_0'),
80 1 => $LANG->getLL('stat_type_1'),
81 2 => $LANG->getLL('stat_type_2'),
82 ),
83 'depth' => array(
84 0 => $LANG->getLL('depth_0'),
85 1 => $LANG->getLL('depth_1'),
86 2 => $LANG->getLL('depth_2'),
87 3 => $LANG->getLL('depth_3'),
88 999 => $LANG->sL('LLL:EXT:lang/locallang_core.xml:labels.depth_infi'),
89 )
90 );
91 }
92
93 /**
94 * MAIN function for page information display (including hit statistics)
95 *
96 * @return string Output HTML for the module.
97 */
98 function main() {
99 global $BACK_PATH,$LANG,$SOBE;
100
101 $dblist = t3lib_div::makeInstance('tx_cms_layout');
102 $dblist->descrTable = '_MOD_'.$GLOBALS['MCONF']['name'];
103 $dblist->backPath = $BACK_PATH;
104 $dblist->thumbs = 0;
105 $dblist->script = 'index.php';
106 $dblist->showIcon = 0;
107 $dblist->setLMargin=0;
108 $dblist->agePrefixes=$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.minutesHoursDaysYears');
109
110 $dblist->pI_showUser=1;
111 $dblist->pI_showStat=0;
112
113
114 // PAGES:
115 $this->pObj->MOD_SETTINGS['pages_levels']=$this->pObj->MOD_SETTINGS['depth']; // ONLY for the sake of dblist module which uses this value.
116
117 $h_func = t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[depth]',$this->pObj->MOD_SETTINGS['depth'],$this->pObj->MOD_MENU['depth'],'index.php');
118 if ($this->pObj->MOD_SETTINGS['function']=='tx_cms_webinfo_hits') {
119 $h_func.= t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[stat_type]',$this->pObj->MOD_SETTINGS['stat_type'],$this->pObj->MOD_MENU['stat_type'],'index.php');
120
121 if ($this->pObj->MOD_SETTINGS['stat_type']==1) $dblist->stat_select_field='rl0';
122 if ($this->pObj->MOD_SETTINGS['stat_type']==2) $dblist->stat_select_field='rl1';
123
124 // Timespan
125 for ($a=0;$a<30;$a++) {
126 $dblist->stat_codes[]='HITS_days:'.(-$a);
127 }
128 $timespan_b = mktime (0,0,0);
129 $timespan_e = mktime (0,0,0)-(30-1)*3600*24+1;
130 $header='<br />'.sprintf($LANG->getLL('stat_period'),t3lib_BEfunc::date($timespan_b),t3lib_BEfunc::date($timespan_e)).'<br />';
131
132 //
133 $dblist->start($this->pObj->id,'pages',0);
134 $dblist->pages_noEditColumns=1;
135 $dblist->generateList();
136
137
138 $theOutput.= $this->pObj->doc->section($LANG->getLL('hits_title'),
139 t3lib_BEfunc::cshItem($dblist->descrTable, 'stat', $GLOBALS['BACK_PATH'], '|<br />') . // CSH
140 $h_func.
141 $header.
142 $dblist->HTMLcode,
143 0,
144 1
145 );
146 } else {
147 $h_func.= t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[pages]',$this->pObj->MOD_SETTINGS['pages'],$this->pObj->MOD_MENU['pages'],'index.php');
148 $dblist->start($this->pObj->id,'pages',0);
149 $dblist->generateList();
150
151 // CSH
152 $theOutput.=$this->pObj->doc->section($LANG->getLL('page_title'),
153 t3lib_BEfunc::cshItem($dblist->descrTable, 'pagetree_overview', $GLOBALS['BACK_PATH'], '|<br />') . // CSH
154 $h_func.
155 $dblist->HTMLcode,
156 0,
157 1
158 );
159
160 // SYS_NOTES:
161 if (t3lib_extMgm::isLoaded('sys_note')) {
162 $dblist->start($this->pObj->id,'sys_note',0);
163 $dblist->generateList();
164 if ($dblist->HTMLcode) {
165 $theOutput.=$this->pObj->doc->spacer(10);
166 $theOutput.=$this->pObj->doc->section($LANG->getLL('page_sysnote'),
167 $dblist->HTMLcode,
168 0,
169 1
170 );
171 }
172 }
173
174 // PAGE INFORMATION
175 if ($this->pObj->pageinfo['uid']) {
176 $theOutput.=$this->pObj->doc->spacer(10);
177 $theOutput.=$this->pObj->doc->section($LANG->getLL('pageInformation'),$dblist->getPageInfoBox($this->pObj->pageinfo,$this->pObj->CALC_PERMS&2),0,1);
178 }
179 }
180
181 return $theOutput;
182 }
183 }
184
185 /**
186 * Extension class for hits display, basically using tx_cms_webinfo_page (internally this is detected).
187 * This construction is due to the old "pre-extensions" structure
188 *
189 * IMPORTANT: This class is used by the extension "sys_stat" and will be added to the Info module only when "sys_stat" is installed.
190 * The display of statistics goes on in "tx_cms_webinfo_page" though
191 *
192 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
193 * @package TYPO3
194 * @subpackage tx_cms
195 */
196 class tx_cms_webinfo_hits extends tx_cms_webinfo_page {
197 }
198
199
200 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cms/web_info/class.tx_cms_webinfo.php']) {
201 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cms/web_info/class.tx_cms_webinfo.php']);
202 }
203 ?>