TYPO3 API  SVNRelease
index.php
Go to the documentation of this file.
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?&amp;id=0&amp;M=tools_log&amp;SET[manualdate]=\'+escape($(\'tceforms-datetimefield-manualdate\').value)+\'&amp;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 . '&nbsp;' . $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 ?>