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
00036 unset($MCONF);
00037 require ("conf.php");
00038 require ($BACK_PATH."init.php");
00039 require ($BACK_PATH."template.php");
00040 $LANG->includeLLFile("EXT:belog/mod/locallang.php");
00041 require_once (PATH_t3lib."class.t3lib_bedisplaylog.php");
00042 require_once (PATH_t3lib."class.t3lib_pagetree.php");
00043
00044 $BE_USER->modAccess($MCONF,1);
00045
00046
00047
00048
00049
00050
00051
00052 class SC_mod_tools_log_index {
00053 var $MCONF=array();
00054 var $MOD_MENU=array();
00055 var $MOD_SETTINGS=array();
00056 var $doc;
00057
00058 var $content;
00059 var $lF;
00060 var $be_user_Array;
00061
00062 function init() {
00063 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
00064 $this->MCONF = $GLOBALS["MCONF"];
00065
00066 $this->lF = t3lib_div::makeInstance("t3lib_BEDisplayLog");
00067 $this->menuConfig();
00068
00069 $this->doc = t3lib_div::makeInstance("noDoc");
00070 $this->doc->backPath = $BACK_PATH;
00071
00072 $this->doc->JScode = '
00073 <script language="javascript" type="text/javascript">
00074 script_ended = 0;
00075 function jumpToUrl(URL) {
00076 document.location = URL;
00077 }
00078 </script>
00079 ';
00080 $this->doc->tableLayout = Array (
00081 "0" => Array (
00082 "0" => Array('<TD valign="top"><b>','</b></td>'),
00083 "defCol" => Array('<TD><img src="'.$this->doc->backPath.'clear.gif" width=10 height=1></td><td valign="top"><b>','</b></td>')
00084 ),
00085 "defRow" => Array (
00086 "0" => Array('<TD valign="top">','</td>'),
00087 "defCol" => Array('<TD><img src="'.$this->doc->backPath.'clear.gif" width=10 height=1></td><td valign="top">','</td>')
00088 )
00089 );
00090 $this->doc->form = '<form action="" method="post">';
00091
00092 $this->be_user_Array = t3lib_BEfunc::getUserNames();
00093 $this->lF->be_user_Array = &$this->be_user_Array;
00094 }
00095 function menuConfig() {
00096 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
00097
00098
00099
00100
00101
00102 $this->MOD_MENU = array(
00103 "users" => array(
00104 0 => "All users",
00105 "-1" => "Self"
00106 ),
00107 "time" => array(
00108 0 => "This week",
00109 1 => "Last week",
00110 2 => "Last 7 days",
00111 10 => "This month",
00112 11 => "Last month",
00113 12 => "Last 31 days",
00114 20 => "No limit"
00115 ),
00116 "max" => array(
00117 20 => "20",
00118 50 => "50",
00119 100 => "100",
00120 200 => "200",
00121 500 => "500"
00122 ),
00123 "action" => array(
00124 0 => "All",
00125 1 => "Database",
00126 2 => "File",
00127 254 => "Settings",
00128 255 => "Login",
00129 "-1" => "Errors"
00130 )
00131 );
00132
00133
00134 $groups = t3lib_BEfunc::getGroupNames();
00135 if (is_array($groups)) {
00136 while(list(,$grVals)=each($groups)) {
00137 $this->MOD_MENU["users"][$grVals["uid"]] = "Group: ".$grVals["title"];
00138 }
00139 }
00140
00141
00142 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP("SET"), $this->MCONF["name"]);
00143 }
00144 function main() {
00145 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
00146
00147 $this->content.=$this->doc->startPage("Administration log");
00148 $this->content.=$this->doc->header("Administration log");
00149 $this->content.=$this->doc->spacer(5);
00150
00151
00152
00153 $menuU= t3lib_BEfunc::getFuncMenu(0,"SET[users]",$this->MOD_SETTINGS["users"],$this->MOD_MENU["users"]);
00154 $menuM= t3lib_BEfunc::getFuncMenu(0,"SET[max]",$this->MOD_SETTINGS["max"],$this->MOD_MENU["max"]);
00155 $menuT= t3lib_BEfunc::getFuncMenu(0,"SET[time]",$this->MOD_SETTINGS["time"],$this->MOD_MENU["time"]);
00156 $menuA= t3lib_BEfunc::getFuncMenu(0,"SET[action]",$this->MOD_SETTINGS["action"],$this->MOD_MENU["action"]);
00157
00158
00159 $this->content.=$this->doc->section("",$this->doc->menuTable(
00160 array(
00161 array(fw("Users:"),$menuU),
00162 array(fw("Time:"),$menuT)
00163 ),
00164 array(
00165 array(fw("Max:"),$menuM),
00166 array(fw("Action:"),$menuA)
00167 )
00168 ));
00169 $this->content.=$this->doc->divider(5);
00170
00171
00172 $codeArr = $this->lF->initArray();
00173 $oldHeader="";
00174 $c=0;
00175
00176
00177 $where_part="";
00178 if ($this->MOD_SETTINGS["action"] > 0) {
00179 $where_part.=" AND type=".intval($this->MOD_SETTINGS["action"]);
00180 } elseif ($this->MOD_SETTINGS["action"] == -1) {
00181 $where_part.=" AND error";
00182 }
00183
00184
00185 $starttime=0;
00186 $endtime=time();
00187
00188
00189 switch($this->MOD_SETTINGS["time"]) {
00190 case 0:
00191
00192 $week = (date("w") ? date("w") : 7)-1;
00193 $starttime = mktime (0,0,0)-$week*3600*24;
00194 break;
00195 case 1:
00196
00197 $week = (date("w") ? date("w") : 7)-1;
00198 $starttime = mktime (0,0,0)-($week+7)*3600*24;
00199 $endtime = mktime (0,0,0)-$week*3600*24;
00200 break;
00201 case 2:
00202
00203 $starttime = mktime (0,0,0)-7*3600*24;
00204 break;
00205 case 10:
00206
00207 $starttime = mktime (0,0,0, date("m"),1);
00208 break;
00209 case 11:
00210
00211 $starttime = mktime (0,0,0, date("m")-1,1);
00212 $endtime = mktime (0,0,0, date("m"),1);
00213 break;
00214 case 12:
00215
00216 $starttime = mktime (0,0,0)-31*3600*24;
00217 break;
00218 }
00219 if ($starttime) {
00220 $where_part.=" AND tstamp>=".$starttime." AND tstamp<".$endtime;
00221 }
00222
00223
00224
00225 if ($this->MOD_SETTINGS["users"] > 0) {
00226 $this->be_user_Array = t3lib_BEfunc::blindUserNames($this->be_user_Array,array($this->MOD_SETTINGS["users"]),1);
00227 if (is_array($this->be_user_Array)) {
00228 while(list(,$val)=each($this->be_user_Array)) {
00229 if ($val[uid]!=$BE_USER->user[uid]) {
00230 $selectUsers[]=$val[uid];
00231 }
00232 }
00233 }
00234 $selectUsers[] = 0;
00235 $where_part.=" AND userid in (".implode($selectUsers,",").")";
00236 } elseif ($this->MOD_SETTINGS["users"]==-1) {
00237 $where_part.=" AND userid=".$BE_USER->user[uid];
00238 }
00239
00240
00241
00242
00243 $log = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_log', '1=1'.$where_part, '', 'uid DESC', intval($this->MOD_SETTINGS['max']));
00244
00245 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($log)) {
00246 $header=$this->doc->formatTime($row[tstamp],10);
00247 if (!$oldHeader) $oldHeader=$header;
00248
00249 if ($header!=$oldHeader) {
00250 $this->content.=$this->doc->spacer(10);
00251 $this->content.=$this->doc->section($oldHeader,$this->doc->table($codeArr));
00252 $codeArr=$this->lF->initArray();
00253 $oldHeader=$header;
00254 $this->lF->reset();
00255 }
00256
00257 $i++;
00258 $codeArr[$i][]=$this->lF->getTimeLabel($row[tstamp]);
00259 $codeArr[$i][]=$this->lF->getUserLabel($row[userid]);
00260 $codeArr[$i][]=$this->lF->getTypeLabel($row[type]);
00261 $codeArr[$i][]=$row[error] ? $this->lF->getErrorFormatting($this->lF->errorSign[$row[error]]) : "";
00262 $codeArr[$i][]=$this->lF->getActionLabel($row[type]."_".$row[action]);
00263 $codeArr[$i][]=$this->lF->formatDetailsForList($row);
00264 }
00265 $this->content.=$this->doc->spacer(10);
00266 $this->content.=$this->doc->section($header,$this->doc->table($codeArr));
00267
00268 $GLOBALS['TYPO3_DB']->sql_free_result($log);
00269
00270 if ($BE_USER->mayMakeShortcut()) {
00271 $this->content.=$this->doc->spacer(20).$this->doc->section('',$this->doc->makeShortcutIcon("","users,time,max,action",$this->MCONF["name"]));
00272 }
00273
00274 }
00275 function printContent() {
00276
00277 $this->content.=$this->doc->spacer(20);
00278 $this->content.=$this->doc->endPage();
00279 echo $this->content;
00280 }
00281 }
00282
00283
00284 if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/belog/mod/index.php"]) {
00285 include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/belog/mod/index.php"]);
00286 }
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300 $SOBE = t3lib_div::makeInstance("SC_mod_tools_log_index");
00301 $SOBE->init();
00302 $SOBE->main();
00303 $SOBE->printContent();
00304 ?>