|
TYPO3 API
SVNRelease
|
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 1999-2011 Kasper Skårhøj (kasperYYYY@typo3.com) 00006 * All rights reserved 00007 * 00008 * This script is part of the TYPO3 project. The TYPO3 project is 00009 * free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * The GNU General Public License can be found at 00015 * http://www.gnu.org/copyleft/gpl.html. 00016 * A copy is found in the textfile GPL.txt and important notices to the license 00017 * from the author is found in LICENSE.txt distributed with these scripts. 00018 * 00019 * 00020 * This script is distributed in the hope that it will be useful, 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 * GNU General Public License for more details. 00024 * 00025 * This copyright notice MUST APPEAR in all copies of the script! 00026 ***************************************************************/ 00027 /** 00028 * Module: Log-viewing 00029 * 00030 * This module lets you view the changelog. 00031 * 00032 * @author Kasper SkÃ¥rhøj <kasperYYYY@typo3.com> 00033 */ 00034 00035 00036 $GLOBALS['LANG']->includeLLFile('EXT:belog/mod/locallang.xml'); 00037 00038 $BE_USER->modAccess($MCONF,1); 00039 00040 00041 00042 00043 /** 00044 * Tools log script class 00045 * 00046 * @author Kasper Skårhøj <kasperYYYY@typo3.com> 00047 * @package TYPO3 00048 * @subpackage tx_belog 00049 */ 00050 class SC_mod_tools_log_index { 00051 var $MCONF=array(); 00052 var $MOD_MENU=array(); 00053 var $MOD_SETTINGS=array(); 00054 00055 /** 00056 * Document template object 00057 * 00058 * @var noDoc 00059 */ 00060 var $doc; 00061 00062 var $content; 00063 var $lF; 00064 var $be_user_Array; 00065 00066 var $theTime = 0; 00067 var $theTime_end = 0; 00068 protected $dateFormat; 00069 00070 /** 00071 * Initialize module 00072 * 00073 * @return void 00074 */ 00075 function init() { 00076 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS; 00077 $this->MCONF = $GLOBALS['MCONF']; 00078 00079 $this->lF = t3lib_div::makeInstance('t3lib_BEDisplayLog'); 00080 00081 $this->doc = t3lib_div::makeInstance('template'); 00082 $this->doc->backPath = $BACK_PATH; 00083 $this->doc->setModuleTemplate('templates/belog.html'); 00084 00085 // Load necessary JavaScript 00086 /** @var $pageRenderer t3lib_PageRenderer */ 00087 $pageRenderer = $this->doc->getPageRenderer(); 00088 $pageRenderer->loadExtJS(); 00089 $pageRenderer->addJsFile($this->backPath . '../t3lib/js/extjs/tceforms.js'); 00090 00091 // Define settings for Date Picker 00092 $dateFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy']; 00093 $this->dateFormat = $dateFormat . ' ' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm']; 00094 $typo3Settings = array( 00095 'datePickerUSmode' => 0, 00096 'dateFormat' => array($dateFormat, $this->dateFormat), 00097 ); 00098 $pageRenderer->addInlineSettingArray('', $typo3Settings); 00099 00100 $this->doc->JScode = ' 00101 <script language="javascript" type="text/javascript"> 00102 script_ended = 0; 00103 function jumpToUrl(URL) { 00104 window.location.href = URL; 00105 } 00106 </script> 00107 '; 00108 00109 $this->doc->tableLayout = Array ( 00110 '0' => Array ( 00111 'defCol' => array('<td valign="top" class="t3-row-header"><strong>', '</strong></td><td class="t3-row-header"><img src="' . $this->doc->backPath . 'clear.gif" width="10" height="1" alt="" /></td>') 00112 ), 00113 'defRow' => Array ( 00114 '0' => Array('<td valign="top">','</td>'), 00115 'defCol' => Array('<td><img src="' . $this->doc->backPath . 'clear.gif" width="10" height="1" alt="" /></td><td valign="top">', '</td>') 00116 ) 00117 ); 00118 $this->doc->table_TABLE = '<table border="0" cellspacing="0" cellpadding="0" class="typo3-dblist">'; 00119 $this->doc->form = '<form action="" method="post">'; 00120 00121 $this->menuConfig(); 00122 $this->be_user_Array = t3lib_BEfunc::getUserNames(); 00123 $this->lF->be_user_Array = &$this->be_user_Array; 00124 } 00125 00126 /** 00127 * Menu configuration 00128 * 00129 * @return void 00130 */ 00131 function menuConfig() { 00132 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS,$TYPO3_DB; 00133 00134 // MENU-ITEMS: 00135 // If array, then it's a selector box menu 00136 // If empty string it's just a variable, that'll be saved. 00137 // Values NOT in this array will not be saved in the settings-array for the module. 00138 $this->MOD_MENU = array( 00139 'users' => array( 00140 0 => $GLOBALS['LANG']->getLL('any'), 00141 '-1' => $GLOBALS['LANG']->getLL('self') 00142 ), 00143 'workspaces' => array( 00144 '-99' => $GLOBALS['LANG']->getLL('any'), 00145 0 => $GLOBALS['LANG']->getLL('live'), 00146 '-1' => $GLOBALS['LANG']->getLL('draft'), 00147 ), 00148 'time' => array( 00149 0 => $GLOBALS['LANG']->getLL('thisWeek'), 00150 1 => $GLOBALS['LANG']->getLL('lastWeek'), 00151 2 => $GLOBALS['LANG']->getLL('last7Days'), 00152 10 => $GLOBALS['LANG']->getLL('thisMonth'), 00153 11 => $GLOBALS['LANG']->getLL('lastMonth'), 00154 12 => $GLOBALS['LANG']->getLL('last31Days'), 00155 20 => $GLOBALS['LANG']->getLL('noLimit'), 00156 30 => $GLOBALS['LANG']->getLL('userdefined') 00157 ), 00158 'max' => array( 00159 20 => $GLOBALS['LANG']->getLL('20'), 00160 50 => $GLOBALS['LANG']->getLL('50'), 00161 100 => $GLOBALS['LANG']->getLL('100'), 00162 200 => $GLOBALS['LANG']->getLL('200'), 00163 500 => $GLOBALS['LANG']->getLL('500'), 00164 1000 => $GLOBALS['LANG']->getLL('1000'), 00165 1000000 => $GLOBALS['LANG']->getLL('any') 00166 ), 00167 'action' => array( 00168 0 => $GLOBALS['LANG']->getLL('any'), 00169 1 => $GLOBALS['LANG']->getLL('actionDatabase'), 00170 2 => $GLOBALS['LANG']->getLL('actionFile'), 00171 3 => $GLOBALS['LANG']->getLL('actionCache'), 00172 254 => $GLOBALS['LANG']->getLL('actionSettings'), 00173 255 => $GLOBALS['LANG']->getLL('actionLogin'), 00174 '-1' => $GLOBALS['LANG']->getLL('actionErrors') 00175 ), 00176 'manualdate' => '', 00177 'manualdate_end' => '', 00178 'groupByPage' => '', 00179 ); 00180 00181 // Add custom workspaces (selecting all, filtering by BE_USER check): 00182 if (t3lib_extMgm::isLoaded('workspaces')) { 00183 $workspaces = $TYPO3_DB->exec_SELECTgetRows('uid,title','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); 00184 if (count($workspaces)) { 00185 foreach ($workspaces as $rec) { 00186 $this->MOD_MENU['workspaces'][$rec['uid']] = $rec['uid'].': '.$rec['title']; 00187 } 00188 } 00189 } 00190 00191 // Adding groups to the users_array 00192 $groups = t3lib_BEfunc::getGroupNames(); 00193 if (is_array($groups)) { 00194 foreach ($groups as $grVals) { 00195 $this->MOD_MENU['users']['gr-' . $grVals['uid']] = $GLOBALS['LANG']->getLL('group') . ' ' . $grVals['title']; 00196 } 00197 } 00198 00199 $users = t3lib_BEfunc::getUserNames(); 00200 if (is_array($users)) { 00201 foreach ($users as $grVals) { 00202 $this->MOD_MENU['users']['us-' . $grVals['uid']] = $GLOBALS['LANG']->getLL('user') . ' ' . $grVals['username']; 00203 } 00204 } 00205 00206 // CLEANSE SETTINGS 00207 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']); 00208 00209 // manual dates 00210 if ($this->MOD_SETTINGS['time'] == 30) { 00211 if (!trim($this->MOD_SETTINGS['manualdate'])) { 00212 $this->theTime = $this->MOD_SETTINGS['manualdate'] = 0; 00213 } else { 00214 $this->theTime = $this->parseDate($this->MOD_SETTINGS['manualdate']); 00215 if (!$this->theTime) { 00216 $this->MOD_SETTINGS['manualdate'] = ''; 00217 } else { 00218 $this->MOD_SETTINGS['manualdate'] = date($this->dateFormat, $this->theTime); 00219 } 00220 } 00221 00222 if (!trim($this->MOD_SETTINGS['manualdate_end'])) { 00223 $this->theTime_end = $this->MOD_SETTINGS['manualdate_end'] = 0; 00224 } else { 00225 $this->theTime_end = $this->parseDate($this->MOD_SETTINGS['manualdate_end']); 00226 if (!$this->theTime_end) { 00227 $this->MOD_SETTINGS['manualdate_end'] = ''; 00228 } else { 00229 $this->MOD_SETTINGS['manualdate_end'] = date($this->dateFormat, $this->theTime_end); 00230 } 00231 } 00232 } 00233 } 00234 00235 /** 00236 * Main function 00237 * 00238 * @return void 00239 */ 00240 function main() { 00241 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS; 00242 00243 $this->content.= $this->doc->header($GLOBALS['LANG']->getLL('adminLog')); 00244 $this->content.=$this->doc->spacer(5); 00245 00246 00247 // Menu compiled: 00248 $menuU= t3lib_BEfunc::getFuncMenu(0,'SET[users]',$this->MOD_SETTINGS['users'],$this->MOD_MENU['users']); 00249 $menuM= t3lib_BEfunc::getFuncMenu(0,'SET[max]',$this->MOD_SETTINGS['max'],$this->MOD_MENU['max']); 00250 $menuT= t3lib_BEfunc::getFuncMenu(0,'SET[time]',$this->MOD_SETTINGS['time'],$this->MOD_MENU['time']); 00251 $menuA= t3lib_BEfunc::getFuncMenu(0,'SET[action]',$this->MOD_SETTINGS['action'],$this->MOD_MENU['action']); 00252 $menuW= t3lib_BEfunc::getFuncMenu(0,'SET[workspaces]',$this->MOD_SETTINGS['workspaces'],$this->MOD_MENU['workspaces']); 00253 00254 $groupByPage= t3lib_BEfunc::getFuncCheck(0, 'SET[groupByPage]',$this->MOD_SETTINGS['groupByPage']); 00255 $style = ' style="margin:4px 2px;padding:1px;vertical-align:middle;width: 115px;"'; 00256 00257 $inputDate = '<input type="text" value="' . ($this->MOD_SETTINGS['manualdate'] ? $this->MOD_SETTINGS['manualdate'] : '') .'" name="SET[manualdate]" id="tceforms-datetimefield-manualdate"' . $style . ' />'; 00258 $pickerInputDate = '<img' . t3lib_iconWorks::skinImg($this->backPath, 'gfx/datepicker.gif', '', 0) . ' style="cursor:pointer; vertical-align:middle;" alt=""' . ' id="picker-tceforms-datetimefield-manualdate" />'; 00259 00260 $inputDate_end = '<input type="text" value="' . ($this->MOD_SETTINGS['manualdate_end'] ? $this->MOD_SETTINGS['manualdate_end'] : '') .'" name="SET[manualdate]" id="tceforms-datetimefield-manualdate_end"' . $style . ' />'; 00261 $pickerInputDate_end = '<img' . t3lib_iconWorks::skinImg($this->backPath, 'gfx/datepicker.gif', '', 0) . ' style="cursor:pointer; vertical-align:middle;" alt=""' . ' id="picker-tceforms-datetimefield-manualdate_end" />'; 00262 00263 $setButton = '<input type="button" value="' . $GLOBALS['LANG']->getLL('set') . '" onclick="jumpToUrl(\'mod.php?&id=0&M=tools_log&SET[manualdate]=\'+escape($(\'tceforms-datetimefield-manualdate\').value)+\'&SET[manualdate_end]=\'+escape($(\'tceforms-datetimefield-manualdate_end\').value),this);" />'; 00264 00265 $this->content.=$this->doc->section('',$this->doc->menuTable( 00266 array( 00267 array($GLOBALS['LANG']->getLL('users'), $menuU), 00268 array($GLOBALS['LANG']->getLL('time'), $menuT . ($this->MOD_SETTINGS['time'] == 30 ? 00269 '<br />' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:from', true) . ' ' . $inputDate . $pickerInputDate . 00270 ' ' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:to', true) . ' ' . $inputDate_end . $pickerInputDate_end . ' ' . $setButton : '')) 00271 ), 00272 array( 00273 array($GLOBALS['LANG']->getLL('max'), $menuM), 00274 array($GLOBALS['LANG']->getLL('action'), $menuA) 00275 ), 00276 array( 00277 $GLOBALS['BE_USER']->workspace !== 0 ? array($GLOBALS['LANG']->getLL('workspace'), '<strong>'.$GLOBALS['BE_USER']->workspace . '</strong>') : array($GLOBALS['LANG']->getLL('workspace'), $menuW), 00278 array($GLOBALS['LANG']->getLL('groupByPage'), $groupByPage) 00279 ) 00280 )); 00281 00282 00283 $codeArr = $this->lF->initArray(); 00284 $oldHeader=''; 00285 $c=0; 00286 00287 // Action (type): 00288 $where_part=''; 00289 if ($this->MOD_SETTINGS['action'] > 0) { 00290 $where_part.=' AND type='.intval($this->MOD_SETTINGS['action']); 00291 } elseif ($this->MOD_SETTINGS['action'] == -1) { 00292 $where_part .= ' AND error != 0'; 00293 } 00294 00295 00296 $starttime=0; 00297 $endtime = $GLOBALS['EXEC_TIME']; 00298 00299 // Time: 00300 switch($this->MOD_SETTINGS['time']) { 00301 case 0: 00302 // This week 00303 $week = (date('w') ? date('w') : 7)-1; 00304 $starttime = mktime (0,0,0)-$week*3600*24; 00305 break; 00306 case 1: 00307 // Last week 00308 $week = (date('w') ? date('w') : 7)-1; 00309 $starttime = mktime (0,0,0)-($week+7)*3600*24; 00310 $endtime = mktime (0,0,0)-$week*3600*24; 00311 break; 00312 case 2: 00313 // Last 7 days 00314 $starttime = mktime (0,0,0)-7*3600*24; 00315 break; 00316 case 10: 00317 // This month 00318 $starttime = mktime (0,0,0, date('m'),1); 00319 break; 00320 case 11: 00321 // Last month 00322 $starttime = mktime (0,0,0, date('m')-1,1); 00323 $endtime = mktime (0,0,0, date('m'),1); 00324 break; 00325 case 12: 00326 // Last 31 days 00327 $starttime = mktime (0,0,0)-31*3600*24; 00328 break; 00329 case 30: 00330 $starttime = $this->theTime; 00331 if ($this->theTime_end) { 00332 $endtime = $this->theTime_end; 00333 } else { 00334 $endtime = $GLOBALS['EXEC_TIME']; 00335 } 00336 } 00337 00338 if ($starttime) { 00339 $where_part.=' AND tstamp>='.$starttime.' AND tstamp<'.$endtime; 00340 } 00341 00342 00343 // Users 00344 $selectUsers = array(); 00345 if (substr($this->MOD_SETTINGS['users'],0,3) == "gr-") { // All users 00346 $this->be_user_Array = t3lib_BEfunc::blindUserNames($this->be_user_Array,array(substr($this->MOD_SETTINGS['users'],3)),1); 00347 if (is_array($this->be_user_Array)) { 00348 foreach ($this->be_user_Array as $val) { 00349 if ($val['uid']!=$BE_USER->user['uid']) { 00350 $selectUsers[]=$val['uid']; 00351 } 00352 } 00353 } 00354 $selectUsers[] = 0; 00355 $where_part.=' AND userid in ('.implode($selectUsers,',').')'; 00356 } elseif (substr($this->MOD_SETTINGS['users'],0,3) == "us-") { // All users 00357 $selectUsers[] = intval(substr($this->MOD_SETTINGS['users'],3)); 00358 $where_part.=' AND userid in ('.implode($selectUsers,',').')'; 00359 } elseif ($this->MOD_SETTINGS['users']==-1) { 00360 $where_part.=' AND userid='.$BE_USER->user['uid']; // Self user 00361 } 00362 00363 // Workspace 00364 if ($GLOBALS['BE_USER']->workspace!==0) { 00365 $where_part.=' AND workspace='.intval($GLOBALS['BE_USER']->workspace); 00366 } elseif ($this->MOD_SETTINGS['workspaces']!=-99) { 00367 $where_part.=' AND workspace='.intval($this->MOD_SETTINGS['workspaces']); 00368 } 00369 00370 // Finding out which page ids are in the log: 00371 $logPids = array(); 00372 if ($this->MOD_SETTINGS['groupByPage']) { 00373 $log = $GLOBALS['TYPO3_DB']->exec_SELECTquery('event_pid', 'sys_log', '1=1'.$where_part, 'event_pid'); 00374 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($log)) { 00375 $logPids[] = $row['event_pid']; 00376 } 00377 00378 // Overview: 00379 $overviewList = array(); 00380 foreach($logPids as $pid) { 00381 if ((int)$pid>0) { 00382 $overviewList[]= htmlspecialchars( 00383 sprintf( 00384 $GLOBALS['LANG']->getLL('pagenameWithUID'), 00385 t3lib_BEfunc::getRecordPath($pid, '', 20), 00386 $pid 00387 ) 00388 ); 00389 } 00390 } 00391 sort($overviewList); 00392 $this->content.=$this->doc->divider(5); 00393 $this->content.= $this->doc->section( 00394 $GLOBALS['LANG']->getLL('overview'), 00395 sprintf($GLOBALS['LANG']->getLL('timeInfo'), 00396 date($this->dateFormat, $starttime), 00397 date($this->dateFormat, $endtime)) . 00398 '<br /><br /><br />' . implode('<br />', $overviewList), 00399 1, 1, 0 00400 ); 00401 00402 $this->content.=$this->doc->spacer(30); 00403 } else $logPids[] = '_SINGLE'; 00404 00405 00406 foreach($logPids as $pid) { 00407 $codeArr = $this->lF->initArray(); 00408 $this->lF->reset(); 00409 $oldHeader=''; 00410 00411 $this->content.=$this->doc->divider(5); 00412 switch($pid) { 00413 case '_SINGLE': 00414 $insertMsg = ''; 00415 break; 00416 case '-1': 00417 $insertMsg = ' ' . $GLOBALS['LANG']->getLL('forNonPageRelatedActions') . ' '; 00418 break; 00419 case '0': 00420 $insertMsg = ' ' . $GLOBALS['LANG']->getLL('forRootLevel') . ' '; 00421 break; 00422 default: 00423 $insertMsg = ' ' . sprintf($GLOBALS['LANG']->getLL('forPage'), t3lib_BEfunc::getRecordPath($pid, '', 20), $pid) . ' '; 00424 break; 00425 } 00426 $this->content .= $this->doc->section( 00427 sprintf($GLOBALS['LANG']->getLL('logForNonPageRelatedActionsOrRootLevelOrPage'), 00428 $insertMsg, 00429 date($this->dateFormat, $starttime), 00430 date($this->dateFormat, $endtime) 00431 ), 00432 '', 1, 1, 0 00433 ); 00434 00435 $log = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_log', '1=1'.$where_part.($pid!='_SINGLE'?' AND event_pid='.intval($pid):''), '', 'uid DESC', intval($this->MOD_SETTINGS['max'])); 00436 00437 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($log)) { 00438 $header=$this->doc->formatTime($row['tstamp'],10); 00439 if (!$oldHeader) $oldHeader=$header; 00440 00441 if ($header!=$oldHeader) { 00442 $this->content.=$this->doc->spacer(10); 00443 $this->content.=$this->doc->section($oldHeader,$this->doc->table($codeArr)); 00444 $codeArr=$this->lF->initArray(); 00445 $oldHeader=$header; 00446 $this->lF->reset(); 00447 } 00448 00449 $i++; 00450 $codeArr[$i][]=$this->lF->getTimeLabel($row['tstamp']); 00451 $codeArr[$i][]=$this->lF->getUserLabel($row['userid'],$row['workspace']); 00452 $codeArr[$i][]=$this->lF->getTypeLabel($row['type']); 00453 $codeArr[$i][]=$row['error'] ? $this->lF->getErrorFormatting($this->lF->errorSign[$row['error']],$row['error']) : ''; 00454 $codeArr[$i][]=$this->lF->getActionLabel($row['type'].'_'.$row['action']); 00455 $codeArr[$i][]=$this->lF->formatDetailsForList($row); 00456 } 00457 $this->content.=$this->doc->spacer(10); 00458 $this->content.=$this->doc->section($header,$this->doc->table($codeArr)); 00459 00460 $GLOBALS['TYPO3_DB']->sql_free_result($log); 00461 } 00462 00463 // Setting up the buttons and markers for docheader 00464 $docHeaderButtons = $this->getButtons(); 00465 //$markers['CSH'] = $docHeaderButtons['csh']; 00466 $markers['CONTENT'] = $this->content; 00467 00468 // Build the <body> for the module 00469 $this->content = $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers); 00470 // Renders the module page 00471 $this->content = $this->doc->render( 00472 $GLOBALS['LANG']->getLL('adminLog'), 00473 $this->content 00474 ); 00475 00476 } 00477 00478 /** 00479 * Parse the manual date 00480 * 00481 * @param string $date 00482 * @return int timestamp 00483 */ 00484 function parseDate($date) { 00485 if (strpos($date, ' ') === FALSE) { 00486 $date .= ' 0:00'; 00487 } 00488 $parts = t3lib_div::trimExplode(' ', $date, TRUE); 00489 00490 $dateParts = preg_split('/[-\.\/]/', $parts[0]); 00491 if (count($dateParts) < 3) { 00492 return 0; 00493 } 00494 $timeParts = preg_split('/[\.:]/', $parts[1]); 00495 return mktime($timeParts[0], $timeParts[1], 0, $dateParts[1], $dateParts[0], $dateParts[2]); 00496 } 00497 00498 /** 00499 * Output content 00500 * 00501 * @return string HTML 00502 */ 00503 function printContent() { 00504 echo $this->content; 00505 } 00506 00507 /** 00508 * Create the panel of buttons for submitting the form or otherwise perform operations. 00509 * 00510 * @return array all available buttons as an assoc. array 00511 */ 00512 protected function getButtons() { 00513 00514 $buttons = array( 00515 'csh' => '', 00516 'shortcut' => '' 00517 ); 00518 // CSH 00519 //$buttons['csh'] = t3lib_BEfunc::cshItem('_MOD_web_func', '', $GLOBALS['BACK_PATH']); 00520 00521 // Shortcut 00522 if ($GLOBALS['BE_USER']->mayMakeShortcut()) { 00523 $buttons['shortcut'] = $this->doc->makeShortcutIcon('','users,time,max,action',$this->MCONF['name']); 00524 } 00525 00526 return $buttons; 00527 } 00528 } 00529 00530 00531 if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/belog/mod/index.php'])) { 00532 include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/belog/mod/index.php']); 00533 } 00534 00535 00536 00537 // Make instance: 00538 $SOBE = t3lib_div::makeInstance('SC_mod_tools_log_index'); 00539 $SOBE->init(); 00540 $SOBE->main(); 00541 $SOBE->printContent(); 00542 ?>
1.8.0