00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00055 require_once(PATH_t3lib.'class.t3lib_pagetree.php');
00056 require_once(PATH_t3lib.'class.t3lib_bedisplaylog.php');
00057
00065 class logFunctions_ext extends t3lib_BEDisplayLog {
00066
00072 function initArray() {
00073 global $LANG;
00074 $codeArr=Array();
00075 $codeArr[$i][]=$LANG->getLL('chLog_l_time');
00076 $codeArr[$i][]=$LANG->getLL('chLog_l_user');
00077 $codeArr[$i][]=$LANG->getLL('chLog_l_error');
00078 $codeArr[$i][]=$LANG->getLL('chLog_l_action');
00079 $codeArr[$i][]=$LANG->getLL('chLog_l_table');
00080 $codeArr[$i][]=$LANG->getLL('chLog_l_details');
00081 return $codeArr;
00082 }
00083 }
00084
00085
00086
00087
00088 require_once(PATH_t3lib.'class.t3lib_extobjbase.php');
00089
00097 class tx_belog_webinfo extends t3lib_extobjbase {
00098 var $localLangFile = 'locallang.php';
00099
00105 function modMenu() {
00106 global $LANG;
00107
00108 return array(
00109 'log_users' => array(
00110 0 => $LANG->getLL('chLog_users_0'),
00111 '-1' => $LANG->getLL('chLog_users_-1')
00112 ),
00113 'log_time' => array(
00114 0 => $LANG->getLL('chLog_time_0'),
00115 1 => $LANG->getLL('chLog_time_1'),
00116 2 => $LANG->getLL('chLog_time_2'),
00117 10 => $LANG->getLL('chLog_time_10'),
00118 11 => $LANG->getLL('chLog_time_11'),
00119 12 => $LANG->getLL('chLog_time_12'),
00120 20 => $LANG->getLL('chLog_time_20')
00121 ),
00122 'depth' => array(
00123 0 => $LANG->getLL('depth_0'),
00124 1 => $LANG->getLL('depth_1'),
00125 2 => $LANG->getLL('depth_2'),
00126 3 => $LANG->getLL('depth_3')
00127 )
00128 );
00129 }
00130
00136 function localLang() {
00137 $LOCAL_LANG = $GLOBALS['LANG']->includeLLFile('EXT:belog/mod/locallang.xml',FALSE);
00138
00139 $GLOBALS['LOCAL_LANG']=t3lib_div::array_merge_recursive_overrule($GLOBALS['LOCAL_LANG'],$LOCAL_LANG);
00140 }
00141
00147 function main() {
00148 global $SOBE,$LANG;
00149
00150 $this->localLang();
00151
00152 $lF = t3lib_div::makeInstance('logFunctions_ext');
00153
00154 $theOutput='';
00155 $menu='';
00156 $menu.= ' '.$LANG->getLL('chLog_menuUsers').': '.t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[log_users]',$this->pObj->MOD_SETTINGS['log_users'],$this->pObj->MOD_MENU['log_users']);
00157 $menu.= ' '.$LANG->getLL('chLog_menuDepth').': '.t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[depth]',$this->pObj->MOD_SETTINGS['depth'],$this->pObj->MOD_MENU['depth']);
00158 $menu.= ' '.$LANG->getLL('chLog_menuTime').': '.t3lib_BEfunc::getFuncMenu($this->pObj->id,'SET[log_time]',$this->pObj->MOD_SETTINGS['log_time'],$this->pObj->MOD_MENU['log_time']);
00159 $theOutput.=$this->pObj->doc->section($LANG->getLL('chLog_title'),'<span class="nobr">'.$menu.'</span>',0,1);
00160
00161
00162 $where_part='';
00163
00164
00165 $tree = t3lib_div::makeInstance('t3lib_pageTree');
00166 $tree->init('AND '.$this->pObj->perms_clause);
00167 $tree->makeHTML=0;
00168 $tree->fieldArray = Array('uid');
00169 if ($this->pObj->MOD_SETTINGS['depth']) {
00170 $tree->getTree($this->pObj->id, $this->pObj->MOD_SETTINGS['depth'], '');
00171 }
00172 $tree->ids[]=$this->pObj->id;
00173 $idList = implode($tree->ids,',');
00174
00175 $where_part.=' AND (event_pid in ('.$idList.'))';
00176
00177
00178 $starttime=0;
00179 $endtime=time();
00180 switch($this->pObj->MOD_SETTINGS['log_time']) {
00181 case 0:
00182
00183 $week = (date('w') ? date('w') : 7)-1;
00184 $starttime = mktime (0,0,0)-$week*3600*24;
00185 break;
00186 case 1:
00187
00188 $week = (date('w') ? date('w') : 7)-1;
00189 $starttime = mktime (0,0,0)-($week+7)*3600*24;
00190 $endtime = mktime (0,0,0)-$week*3600*24;
00191 break;
00192 case 2:
00193
00194 $starttime = mktime (0,0,0)-7*3600*24;
00195 break;
00196 case 10:
00197
00198 $starttime = mktime (0,0,0, date('m'),1);
00199 break;
00200 case 11:
00201
00202 $starttime = mktime (0,0,0, date('m')-1,1);
00203 $endtime = mktime (0,0,0, date('m'),1);
00204 break;
00205 case 12:
00206
00207 $starttime = mktime (0,0,0)-31*3600*24;
00208 break;
00209 }
00210 if ($starttime) {
00211 $where_part.=' AND tstamp>='.$starttime.' AND tstamp<'.$endtime;
00212 }
00213
00214 $where_part.=' AND type=1';
00215
00216
00217
00218 $this->pObj->be_user_Array = t3lib_BEfunc::getUserNames();
00219 if (!$this->pObj->MOD_SETTINGS['log_users']) {
00220
00221 if (!$GLOBALS['BE_USER']->isAdmin()) {
00222 $groupArray = explode(',',$GLOBALS['BE_USER']->user['usergroup_cached_list']);
00223 $this->pObj->be_user_Array = t3lib_BEfunc::blindUserNames($this->pObj->be_user_Array,$groupArray,1);
00224 }
00225
00226 if (is_array($this->pObj->be_user_Array)) {
00227 while(list(,$val)=each($this->pObj->be_user_Array)) {
00228 $selectUsers[]=$val['uid'];
00229 }
00230 }
00231 $selectUsers[] = $GLOBALS['BE_USER']->user['uid'];
00232 $where_part.=' AND userid in ('.implode($selectUsers,',').')';
00233 } else {
00234 $where_part.=' AND userid='.$GLOBALS['BE_USER']->user['uid'];
00235 }
00236 $lF->be_user_Array = &$this->pObj->be_user_Array;
00237
00238 if ($GLOBALS['BE_USER']->workspace!==0) {
00239 $where_part.=' AND workspace='.intval($GLOBALS['BE_USER']->workspace);
00240 }
00241
00242
00243
00244 $log = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_log', '1=1'.$where_part, '', 'uid DESC', 100);
00245
00246 $codeArr = $lF->initArray();
00247 $oldHeader = '';
00248 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($log)) {
00249 $header = $this->pObj->doc->formatTime($row['tstamp'],10);
00250 if (!$oldHeader) $oldHeader = $header;
00251
00252 if ($header!=$oldHeader) {
00253 $theOutput.=$this->pObj->doc->spacer(10);
00254 $theOutput.=$this->pObj->doc->section($oldHeader,$this->pObj->doc->table($codeArr));
00255 $codeArr=$lF->initArray();
00256 $oldHeader=$header;
00257 $lF->reset();
00258 }
00259
00260 $i++;
00261 $codeArr[$i][]=$lF->getTimeLabel($row['tstamp']);
00262 $codeArr[$i][]=$lF->getUserLabel($row['userid'],$row['workspace']);
00263 $codeArr[$i][]=$row['error'] ? $lF->getErrorFormatting($lF->errorSign[$row['error']],$row['error']) : '';
00264 $codeArr[$i][]=$lF->getActionLabel($row['type'].'_'.$row['action']);
00265 $codeArr[$i][]=$row['tablename'];
00266 $codeArr[$i][]=$lF->formatDetailsForList($row);
00267 }
00268 $theOutput.=$this->pObj->doc->spacer(10);
00269 $theOutput.=$this->pObj->doc->section($header,$this->pObj->doc->table($codeArr));
00270
00271 $GLOBALS['TYPO3_DB']->sql_free_result($log);
00272
00273 return $theOutput;
00274 }
00275 }
00276
00277 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/belog/class.tx_belog_webinfo.php']) {
00278 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/belog/class.tx_belog_webinfo.php']);
00279 }
00280
00281 ?>