Documentation TYPO3 par Ameos |
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 1999-2004 Kasper Skaarhoj (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 ***************************************************************/ 00032 require_once(PATH_t3lib."class.t3lib_pagetree.php"); 00033 require_once(PATH_t3lib."class.t3lib_bedisplaylog.php"); 00034 class logFunctions_ext extends t3lib_BEDisplayLog { 00035 function initArray() { 00036 global $LANG; 00037 $codeArr=Array(); 00038 $codeArr[$i][]=$LANG->getLL("chLog_l_time"); 00039 $codeArr[$i][]=$LANG->getLL("chLog_l_user"); 00040 $codeArr[$i][]=$LANG->getLL("chLog_l_error"); 00041 $codeArr[$i][]=$LANG->getLL("chLog_l_action"); 00042 $codeArr[$i][]=$LANG->getLL("chLog_l_table"); 00043 $codeArr[$i][]=$LANG->getLL("chLog_l_details"); 00044 return $codeArr; 00045 } 00046 } 00047 00048 00049 require_once(PATH_t3lib."class.t3lib_extobjbase.php"); 00050 00051 class tx_belog_webinfo extends t3lib_extobjbase { 00052 var $localLangFile = "locallang.php"; 00053 00054 function modMenu() { 00055 global $LANG; 00056 00057 return array( 00058 "log_users" => array( 00059 0 => $LANG->getLL("chLog_users_0"), 00060 "-1" => $LANG->getLL("chLog_users_-1") 00061 ), 00062 "log_time" => array( 00063 0 => $LANG->getLL("chLog_time_0"), 00064 1 => $LANG->getLL("chLog_time_1"), 00065 2 => $LANG->getLL("chLog_time_2"), 00066 10 => $LANG->getLL("chLog_time_10"), 00067 11 => $LANG->getLL("chLog_time_11"), 00068 12 => $LANG->getLL("chLog_time_12"), 00069 20 => $LANG->getLL("chLog_time_20") 00070 ), 00071 "depth" => array( 00072 0 => $LANG->getLL("depth_0"), 00073 1 => $LANG->getLL("depth_1"), 00074 2 => $LANG->getLL("depth_2"), 00075 3 => $LANG->getLL("depth_3") 00076 ) 00077 ); 00078 } 00079 00080 // *********************************** 00081 // MAIN function for log display 00082 // *********************************** 00083 function localLang() { 00084 include_once($this->thisPath."/mod/locallang.php"); 00085 $GLOBALS["LOCAL_LANG"]=t3lib_div::array_merge_recursive_overrule($GLOBALS["LOCAL_LANG"],$LOCAL_LANG); 00086 } 00087 00093 function main() { 00094 global $SOBE,$LANG; 00095 00096 $this->localLang(); 00097 00098 $lF = t3lib_div::makeInstance("logFunctions_ext"); 00099 00100 $theOutput=""; 00101 $menu=""; 00102 $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"]); 00103 $menu.= " ".$LANG->getLL("chLog_menuDepth").": ".t3lib_BEfunc::getFuncMenu($this->pObj->id,"SET[depth]",$this->pObj->MOD_SETTINGS["depth"],$this->pObj->MOD_MENU["depth"]); 00104 $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"]); 00105 $theOutput.=$this->pObj->doc->section($LANG->getLL("chLog_title"),'<span class="nobr">'.$menu.'</span>',0,1); 00106 00107 // Build query 00108 00109 $where_part=""; 00110 00111 // Get the idlist of pages for the treestructure. 00112 $tree = t3lib_div::makeInstance("t3lib_pageTree"); 00113 $tree->init("AND ".$this->pObj->perms_clause); 00114 $tree->makeHTML=0; 00115 $tree->fieldArray = Array("uid"); 00116 if ($this->pObj->MOD_SETTINGS["depth"]) { 00117 $tree->getTree($this->pObj->id, $this->pObj->MOD_SETTINGS["depth"], ""); 00118 } 00119 $tree->ids[]=$this->pObj->id; 00120 $idList = implode($tree->ids,","); 00121 00122 //$where_part.=" AND ((tablename='pages' and recuid in (".$idList.")) OR (tablename!='pages' and recpid in (".$idList.")))"; // DB 00123 $where_part.=" AND (event_pid in (".$idList."))"; // DB 00124 00125 // Time: 00126 $starttime=0; 00127 $endtime=time(); 00128 switch($this->pObj->MOD_SETTINGS["log_time"]) { 00129 case 0: 00130 // This week 00131 $week = (date("w") ? date("w") : 7)-1; 00132 $starttime = mktime (0,0,0)-$week*3600*24; 00133 break; 00134 case 1: 00135 // Last week 00136 $week = (date("w") ? date("w") : 7)-1; 00137 $starttime = mktime (0,0,0)-($week+7)*3600*24; 00138 $endtime = mktime (0,0,0)-$week*3600*24; 00139 break; 00140 case 2: 00141 // Last 7 days 00142 $starttime = mktime (0,0,0)-7*3600*24; 00143 break; 00144 case 10: 00145 // This month 00146 $starttime = mktime (0,0,0, date("m"),1); 00147 break; 00148 case 11: 00149 // Last month 00150 $starttime = mktime (0,0,0, date("m")-1,1); 00151 $endtime = mktime (0,0,0, date("m"),1); 00152 break; 00153 case 12: 00154 // Last 31 days 00155 $starttime = mktime (0,0,0)-31*3600*24; 00156 break; 00157 } 00158 if ($starttime) { 00159 $where_part.=" AND tstamp>=".$starttime." AND tstamp<".$endtime; 00160 } 00161 00162 $where_part.=" AND type=1"; // DB 00163 00164 00165 // Users 00166 $this->pObj->be_user_Array = t3lib_BEfunc::getUserNames(); 00167 if (!$this->pObj->MOD_SETTINGS["log_users"]) { // All users 00168 // Get usernames and groupnames 00169 if (!$GLOBALS["BE_USER"]->isAdmin()) { 00170 $groupArray = explode(",",$GLOBALS["BE_USER"]->user["usergroup_cached_list"]); 00171 $this->pObj->be_user_Array = t3lib_BEfunc::blindUserNames($this->pObj->be_user_Array,$groupArray,1); 00172 } 00173 00174 if (is_array($this->pObj->be_user_Array)) { 00175 while(list(,$val)=each($this->pObj->be_user_Array)) { 00176 $selectUsers[]=$val["uid"]; 00177 } 00178 } 00179 $selectUsers[] = $GLOBALS["BE_USER"]->user["uid"]; 00180 $where_part.=" AND userid in (".implode($selectUsers,",").")"; 00181 } else { 00182 $where_part.=" AND userid=".$GLOBALS["BE_USER"]->user["uid"]; // Self user 00183 } 00184 00185 00186 00187 00188 00189 $log = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_log', '1=1'.$where_part, '', 'uid DESC', 100); 00190 00191 $codeArr = $lF->initArray(); 00192 $oldHeader = ""; 00193 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($log)) { 00194 $header = $this->pObj->doc->formatTime($row["tstamp"],10); 00195 if (!$oldHeader) $oldHeader = $header; 00196 00197 if ($header!=$oldHeader) { 00198 $theOutput.=$this->pObj->doc->spacer(10); 00199 $theOutput.=$this->pObj->doc->section($oldHeader,$this->pObj->doc->table($codeArr)); 00200 $codeArr=$lF->initArray(); 00201 $oldHeader=$header; 00202 $lF->reset(); 00203 } 00204 00205 $i++; 00206 $codeArr[$i][]=$lF->getTimeLabel($row["tstamp"]); 00207 $codeArr[$i][]=$lF->getUserLabel($row["userid"]); 00208 $codeArr[$i][]=$row["error"] ? $lF->getErrorFormatting($lF->errorSign[$row["error"]]) : ""; 00209 $codeArr[$i][]=$lF->getActionLabel($row["type"]."_".$row["action"]); 00210 $codeArr[$i][]=$row["tablename"]; 00211 $codeArr[$i][]=$lF->formatDetailsForList($row); 00212 } 00213 $theOutput.=$this->pObj->doc->spacer(10); 00214 $theOutput.=$this->pObj->doc->section($header,$this->pObj->doc->table($codeArr)); 00215 00216 $GLOBALS['TYPO3_DB']->sql_free_result($log); 00217 00218 return $theOutput; 00219 } 00220 } 00221 00222 if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/belog/class.tx_belog_webinfo.php"]) { 00223 include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/belog/class.tx_belog_webinfo.php"]); 00224 } 00225 00226 ?>