$file) { // $file = str_replace('--LAN--', e_LANGUAGE, $file); //e107::lan($path,'log',true); // e107::includeLan(e_PLUGIN.$path.'/languages/'.$file); e107::includeLan(e_PLUGIN.$path.'/languages/'.e_LANGUAGE."_log.php"); e107::includeLan(e_PLUGIN.$path.'/languages/'.e_LANGUAGE."/".e_LANGUAGE."_log.php"); } } define('AL_DATE_TIME_FORMAT', 'y-m-d H:i:s'); function loadEventTypes($table) { $sql = e107::getDb(); $row = $sql->retrieve("SELECT dblog_eventcode,dblog_title FROM #".$table." WHERE dblog_eventcode !='' AND dblog_title !='' GROUP BY dblog_eventcode",true); $eventTypes = array(); foreach($row as $val) { $id = $val['dblog_eventcode']; $def = strpos($val['dblog_title'], "LAN") !== false ? $id : $val['dblog_title']; $eventTypes[$id] = str_replace(': [x]', '', deftrue($val['dblog_title'],$def)); } asort($eventTypes); return $eventTypes; } function time_box($boxname, $this_time, $day_count, $inc_tomorrow = FALSE, $all_mins = FALSE) { // Generates boxes for date and time for today and the preceding days // Appends 'date', 'hours', 'mins' to the specified boxname $all_time = getdate(); // Date/time now $sel_time = getdate($this_time); // Currently selected date/time $sel_day = mktime(0, 0, 0, $sel_time['mon'], $sel_time['mday'], $sel_time['year']); $today = mktime(0, 0, 0, $all_time['mon'], $all_time['mday'] + ($inc_tomorrow ? 1 : 0), $all_time['year']); // Start with day $ret = ""; // Hours $ret .= " "; // Minutes $ret .= " "; return $ret; } class adminlog_admin extends e_admin_dispatcher { protected $modes = array( 'main' => array( 'controller' => 'admin_log_ui', 'path' => null, 'ui' => 'admin_log_form_ui', 'uipath' => null ), 'audit' => array( 'controller' => 'audit_log_ui', 'path' => null, 'ui' => 'admin_log_form_ui', 'uipath' => null ), 'rolling' => array( 'controller' => 'dblog_ui', 'path' => null, 'ui' => 'admin_log_form_ui', 'uipath' => null ), ); //$page_title = array('adminlog' => RL_LAN_030, 'auditlog' => RL_LAN_062, 'rolllog' => RL_LAN_002, 'downlog' => RL_LAN_067, 'detailed' => RL_LAN_094, 'online' => RL_LAN_120); protected $adminMenu = array( 'main/list' => array('caption'=> RL_LAN_030, 'perm' => '5'), 'audit/list' => array('caption'=> RL_LAN_062, 'perm' => '5'), 'rolling/list' => array('caption'=> RL_LAN_002, 'perm' => '5'), 'divider/01' => array('divider'=>true), 'main/prefs' => array('caption'=> LAN_PREFS, 'perm' => '5'), 'main/maintenance' => array('caption'=> LAN_OPTIONS, 'perm' => '5') // 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P') ); protected $adminMenuAliases = array( 'main/edit' => 'main/list' ); protected $adminMenuIcon = 'e-adminlogs-24'; protected $menuTitle = ADLAN_155; } class admin_log_ui extends e_admin_ui { protected $pluginTitle = ADLAN_155; protected $pluginName = 'core'; protected $table = 'admin_log'; protected $pid = 'dblog_id'; protected $perPage = 10; // protected $listQry = "SELECT f.*, u.* FROM #admin_log AS f LEFT JOIN #user AS u ON f.dblog_user_id = u.user_id "; // Should not be necessary. protected $listQry = "SELECT SQL_CALC_FOUND_ROWS f.*, u.user_id, u.user_name FROM #admin_log AS f LEFT JOIN #user AS u ON f.dblog_user_id = u.user_id "; // Should not be required but be auto-calculated. protected $listOrder = 'f.dblog_id DESC'; protected $batchDelete = false; protected $batchDeleteLog = false; //TODO - AdminUI option to disable logging of changes. protected $fields = array ( // 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'nolist'=>true, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), 'dblog_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_datestamp' => array ( 'title' => LAN_DATESTAMP, 'type' => 'datestamp', 'data' => 'int', 'width' => '12%', 'filter' => true, 'help' => '', 'readParms' => array('mask'=>'dd MM yyyy hh:ii:ss'), 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), // 'dblog_microtime' => array ( 'title' => 'Microtime', 'type' => 'method', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_type' => array ( 'title' => RL_LAN_032, 'type' => 'method', 'data' => 'int', 'width' => '5%', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_ip' => array ( 'title' => LAN_IP, 'type' => 'ip', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_user_id' => array ( 'title' => LAN_USER, 'type' => 'user', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms'=>'link=1', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_eventcode' => array ( 'title' => RL_LAN_023, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_title' => array ( 'title' => LAN_TITLE, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_remarks' => array ( 'title' => RL_LAN_033, 'type' => 'method', 'data' => 'str', 'width' => '35%', 'filter'=>true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'nolist'=>true, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ), ); protected $fieldpref = array( 'dblog_datestamp', 'dblog_type', 'dblog_eventcode', 'dblog_user_id', 'dblog_ip', 'dblog_title', 'dblog_remarks'); //'adminlog' => array(RL_LAN_019, RL_LAN_032, RL_LAN_020, RL_LAN_104, LAN_USER, RL_LAN_023, LAN_TITLE, RL_LAN_033), protected $prefs = array( 'sys_log_perpage' => array('title'=> RL_LAN_044, 'type'=>'dropdown', 'data' => 'int','help'=> RL_LAN_064,'writeParms'=>''), 'user_audit_class' => array('title'=> RL_LAN_123, 'type'=>'userclass', 'data' => 'int','help'=>''), 'user_audit_opts' => array('title'=> RL_LAN_031, 'type'=>'method', 'data' => 'array','help'=>''), 'roll_log_active' => array('title'=> RL_LAN_008, 'type'=>'boolean', 'data' => 'int','help'=>''), 'roll_log_days' => array('title'=> RL_LAN_009, 'type'=>'number', 'data' => 'string','help'=>''), // 'Delete admin log events older than ' => array('title'=> RL_LAN_045, 'type'=>'method', 'data' => 'string','help'=>'Help Text goes here'), // 'Delete user audit trail log events older' => array('title'=> 'Delete user audit trail log events older', 'type'=>'method', 'data' => 'string','help'=>'Help Text goes here'), ); public $eventTypes = array(); // optional public function init() { $perPage = e107::getConfig()->get('sys_log_perpage'); $this->perPage = vartrue($perPage,10); $this->prefs['sys_log_perpage']['writeParms'] = array(10=>10, 15=>15, 20=>20, 30=>30, 40=>40, 50=>50); $this->eventTypes = loadEventTypes('admin_log'); if(getperms('0')) { $arr = array_reverse($this->fields, true); $arr['checkboxes'] = array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect' ); $this->fields = array_reverse($arr, true); $this->batchDelete = true; } } function gen_log_delete($selectname) { $values = array(360, 180, 90, 60, 30, 21, 20, 14, 10, 7, 6, 5, 4, 3, 2, 1); return e107::getForm()->select($selectname, $values, '', 'useValues=1&size=small'); } function maintenancePage() { if(!empty($_POST['deleteoldadmin']) || !empty($_POST['deleteoldaudit'])) { $this->maintenanceProcess(); } $frm = e107::getForm(); // Admin log maintenance //================== $text = "
".RL_LAN_125." "; // User log maintenance //==================== $text .= "
".RL_LAN_045." ".$this->gen_log_delete('rolllog_clearadmin')." ".RL_LAN_046." ".$frm->admin_button('deleteoldadmin', 'no-value', 'delete', RL_LAN_049)."
".RL_LAN_066." ".$this->gen_log_delete('rolllog_clearaudit')." ".RL_LAN_046." ".$frm->admin_button('deleteoldaudit', 'no-value', 'delete', RL_LAN_049)."
"; return $text; } function maintenanceProcess() { $mes = e107::getMessage(); $ns = e107::getRender(); $log = e107::getLog(); $frm = e107::getForm(); $sql = e107::getDb(); $tp = e107::getParser(); $back_count = 0; $action = ''; // print_a($_POST); if(!empty($_POST['deleteoldadmin']) && isset($_POST['rolllog_clearadmin'])) { $back_count = intval($_POST['rolllog_clearadmin']); $_POST['backdeltype'] = 'confdel'; $action = 'backdel'; } elseif(!empty($_POST['deleteoldaudit']) && isset($_POST['rolllog_clearaudit'])) { $back_count = intval($_POST['rolllog_clearaudit']); $action = 'backdel'; $_POST['backdeltype'] = 'auditdel'; } /* if(isset($back_count)) { if(($back_count >= 1) && ($back_count <= 90)) { $temp_date = getdate(); $old_date = intval(mktime(0, 0, 0, $temp_date['mon'], $temp_date['mday'] - $back_count, $temp_date['year'])); $old_string = strftime("%d %B %Y", $old_date); // $message = "Back delete ".$back_count." days. Oldest date = ".$old_string; $action = $next_action; $qs[1] = $old_date; $qs[2] = $back_count; } else { $mes->addWarning(RL_LAN_050); } } */ $old_date = strtotime($back_count.' days ago'); // Actually delete back events - admin or user audit log if(($action == "backdel") && isset($_POST['backdeltype'])) { // $old_date = intval($qs[1]); $old_string = $tp->toDate($old_date, "%d %B %Y"); $qry = "dblog_datestamp < ".$old_date; // Same field for both logs switch($_POST['backdeltype']) { case 'confdel': $db_table = 'admin_log'; $db_name = RL_LAN_052; $db_msg = "ADLOG_02"; break; case 'auditdel': $db_table = 'audit_log'; $db_name = RL_LAN_053; $db_msg = "ADLOG_03"; break; default: exit(); // Someone fooling around! } e107::getMessage()->addDebug("Back delete,
oldest date = {$old_string}
Query = {$qry}"); if($del_count = $sql->delete($db_table, $qry)) { // Add in a log event $message = $db_name.str_replace(array('[x]', '[y]'), array($old_string, $del_count), RL_LAN_057); $mes->addSuccess($message); $log->add($db_msg, "db_Delete - earlier than {$old_string} (past {$back_count} days)[!br!]".$message.'[!br!]'.$db_table.' '.$qry, E_LOG_INFORMATIVE, ''); } else { $message = RL_LAN_054; $lastErrorText = $sql->getLastErrorText(); if ($lastErrorText) { $message .= "
$lastErrorText"; } $mes->addWarning($message); } } // Prompt to delete back events /* if(($action == "confdel") || ($action == "auditdel")) { $old_string = strftime("%d %B %Y", $qs[1]); $text = "
".LAN_CONFDELETE."
".(($action == "confdel") ? RL_LAN_047 : RL_LAN_065).$old_string."
".$frm->admin_button('confirmdeleteold', 'no-value', 'delete', RL_LAN_049)." ".$frm->admin_button('confirmcancelold', 'no-value', 'delete', LAN_CANCEL)."
"; $ns->tablerender(LAN_CONFDELETE, $text); } */ } } class admin_log_form_ui extends e_admin_form_ui { function sys_log_perpage($curVal,$mode) { $frm = e107::getForm(); switch($mode) { case 'write': // Edit Page return $frm->text('sys_log_perpage',$curVal); break; } } function user_audit_opts($curVal,$mode) { $frm = e107::getForm(); // User Audit log options (for info) //======================= // define('USER_AUDIT_SIGNUP',11); // User signed up // define('USER_AUDIT_EMAILACK',12); // User responded to registration email // define('USER_AUDIT_LOGIN',13); // User logged in // define('USER_AUDIT_LOGOUT',14); // User logged out // define('USER_AUDIT_NEW_DN',15); // User changed display name // define('USER_AUDIT_NEW_PW',16); // User changed password // define('USER_AUDIT_NEW_EML',17); // User changed email // define('USER_AUDIT_NEW_SET',19); // User changed other settings (intentional gap in numbering) // define('USER_AUDIT_ADD_ADMIN', 20); // User added by admin // define('USER_AUDIT_MAIL_BOUNCE', 21); // User mail bounce // define('USER_AUDIT_BANNED', 22); // User banned // define('USER_AUDIT_BOUNCE_RESET', 23); // User bounce reset // define('USER_AUDIT_TEMP_ACCOUNT', 24); // User temporary account $audit_checkboxes = array(USER_AUDIT_SIGNUP => RL_LAN_071, USER_AUDIT_EMAILACK => RL_LAN_072, USER_AUDIT_LOGIN => LAN_AUDIT_LOG_013, USER_AUDIT_LOGOUT => LAN_AUDIT_LOG_014, // Logout is lumped in with login USER_AUDIT_NEW_DN => RL_LAN_075, USER_AUDIT_NEW_PW => RL_LAN_076, USER_AUDIT_PW_RES => RL_LAN_078, USER_AUDIT_NEW_EML => RL_LAN_077, USER_AUDIT_NEW_SET => RL_LAN_079, USER_AUDIT_ADD_ADMIN => RL_LAN_080, USER_AUDIT_MAIL_BOUNCE => RL_LAN_081, USER_AUDIT_BANNED => RL_LAN_082, USER_AUDIT_BOUNCE_RESET => RL_LAN_083, USER_AUDIT_TEMP_ACCOUNT => RL_LAN_084); $userAuditOpts = e107::getConfig()->get('user_audit_opts'); $text = ""; foreach($audit_checkboxes as $k => $t) { $checked = isset($userAuditOpts[$k]) ? true : false; $text .= $frm->checkbox('user_audit_opts['.$k.']',$k, $checked, array('label'=>$t)); } $text .= $frm->admin_button('check_all', 'jstarget:user_audit_opts', 'checkall', LAN_CHECKALL).$frm->admin_button('uncheck_all', 'jstarget:user_audit_opts', 'checkall', LAN_UNCHECKALL); return $text; } // Custom Method/Function /* function dblog_datestamp($curVal,$mode) { $frm = e107::getForm(); switch($mode) { case 'read': // List Page return date(AL_DATE_TIME_FORMAT, $curVal); break; case 'write': // Edit Page return $frm->text('dblog_datestamp',$curVal); break; case 'filter': case 'batch': return $array; break; } } */ // Custom Method/Function function dblog_microtime($curVal,$mode) { $frm = e107::getForm(); switch($mode) { case 'read': // List Page return date("H:i:s", intval($curVal) % 86400).'.'.str_pad(100000 * round($curVal - floor($curVal), 6), 6, '0'); break; case 'write': // Edit Page return $frm->text('dblog_microtime',$curVal); break; case 'filter': case 'batch': // return $array; break; } } // Custom Method/Function function dblog_type($curVal,$mode) { $tp = e107::getParser(); /* define("E_LOG_INFORMATIVE", 0); // Minimal Log Level, including really minor stuff define("E_LOG_NOTICE", 1); // More important than informative, but less important than notice define("E_LOG_WARNING", 2); // Not anything serious, but important information define("E_LOG_FATAL", 3); // An event so bad your site ceased execution. define("E_LOG_PLUGIN", 4); // Plugin information */ $array = array( ' ', // Minimal Log Level, including really minor stuff '', //FIXME - should be the blue icon. // More important than informative, but less important than notice '', // Not anything serious, but important information '', // An event so bad your site ceased execution. ' ' // Plugin information - Deprecated - Leave empty. ); $array[1] = $tp->toGlyph('fa-question-circle'); $array[2] = $tp->toGlyph('fa-exclamation-circle'); $array[3] = $tp->toGlyph('fa-warning'); switch($mode) { case 'read': // List Page return varset($array[$curVal], $curVal); break; case 'filter': case 'batch': return array(RL_LAN_132,RL_LAN_133,RL_LAN_134,RL_LAN_135); break; } } // Custom Method/Function function dblog_title($curVal,$mode) { $tp = e107::getParser(); switch($mode) { case 'read': // List Page $val = trim($curVal); if(defined($val)) { $val = constant($val); } if(strpos($val,'[x]') !== false) { $remark = $this->getController()->getListModel()->get('dblog_remarks'); preg_match("/\[table\]\s=>\s([\w]*)/i",$remark, $match); if(!empty($match[1])) { $val = $tp->lanVars($val, ''.$match[1].''); } else { preg_match("/\[!br!\]TABLE: ([\w]*)/i", $remark, $m); if(!empty($m[1])) { $val = $tp->lanVars($val, ''.$m[1].''); } } } return $val; break; case 'filter': case 'batch': return null; break; } } function dblog_eventcode($curVal,$mode) { $array = $this->getController()->eventTypes; switch($mode) { case 'read': // List Page return $curVal; break; case 'filter': case 'batch': return $array; break; } } // Custom Method/Function function dblog_remarks($curVal,$mode) { $frm = e107::getForm(); $tp = e107::getParser(); switch($mode) { case 'read': // List Page $text = preg_replace_callback("#\[!(\w+?)(=.+?)?!]#", 'log_process', $curVal); $text = $tp->toHTML($text,false,'E_BODY'); if(strpos($text,'Array')!==false || strlen($text)>300) { $id = $this->getController()->getListModel()->get('dblog_id'); $ret ="".RL_LAN_087.""; $ret .= ""; return $ret; } return $text; break; case 'filter': case 'batch': // return $array; break; } } // Custom Method/Function function dblog_caller($curVal,$mode) { switch($mode) { case 'read': // List Page $val =$curVal; if((strpos($val, '|') !== FALSE) && (strpos($val, '@') !== FALSE)) { list($file, $rest) = explode('|', $val); list($routine, $rest) = explode('@', $rest); $val = $file.'
Function: '.$routine.'
Line: '.$rest; } return $val; break; case 'filter': case 'batch': // return $array; break; } } } class audit_log_ui extends e_admin_ui { protected $pluginTitle = ADLAN_155; protected $pluginName = 'core'; protected $table = 'audit_log'; protected $pid = 'dblog_id'; protected $perPage = 10; protected $listOrder = 'dblog_id DESC'; protected $batchDelete = true; protected $fields = array ( 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), 'dblog_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_datestamp' => array ( 'title' => LAN_DATESTAMP, 'type' => 'datestamp', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => array('mask'=>'dd MM yyyy hh:ii:ss'), 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_microtime' => array ( 'title' => 'Microtime', 'type' => 'text', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_eventcode' => array ( 'title' => 'Eventcode', 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_user_id' => array ( 'title' => LAN_USER, 'type' => 'user', 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms'=>'link=1', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), // 'dblog_user_name' => array ( 'title' => LAN_USER, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_ip' => array ( 'title' => LAN_IP, 'type' => 'ip', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_title' => array ( 'title' => LAN_TITLE, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_remarks' => array ( 'title' => 'Remarks', 'type' => 'method', 'data' => 'str', 'width' => '30%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'nolist'=>true, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ), ); protected $fieldpref = array('dblog_id', 'dblog_datestamp', 'dblog_microtime', 'dblog_eventcode', 'dblog_user_id', 'dblog_user_name', 'dblog_ip', 'dblog_title','dblog_remarks'); public $eventTypes = array(); // optional public function init() { $perPage = e107::getConfig()->get('sys_log_perpage'); $this->perPage = vartrue($perPage,10); $this->eventTypes = loadEventTypes('audit_log'); } /* public function customPage() { $ns = e107::getRender(); $text = 'Hello World!'; $ns->tablerender('Hello',$text); } */ } class dblog_ui extends e_admin_ui { protected $pluginTitle = ADLAN_155; protected $pluginName = 'core'; protected $table = 'dblog'; protected $pid = 'dblog_id'; protected $perPage = 15; protected $listOrder = 'dblog_id desc'; protected $fields = array ( 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), // 'dblog_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_datestamp' => array ( 'title' => LAN_DATESTAMP, 'type' => 'datestamp', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => array('mask'=>'dd MM yyyy hh:ii:ss'), 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_microtime' => array ( 'title' => 'Microtime', 'type' => 'method', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_type' => array ( 'title' => LAN_TYPE, 'type' => 'method', 'data' => 'int', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_eventcode' => array ( 'title' => 'Eventcode', 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_user_id' => array ( 'title' => LAN_ID, 'type' => 'user', 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_user_name' => array ( 'title' => LAN_USER, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_ip' => array ( 'title' => LAN_IP, 'type' => 'ip', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_caller' => array ( 'title' => 'Caller', 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), 'dblog_title' => array ( 'title' => LAN_TITLE, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'dblog_remarks' => array ( 'title' => 'Remarks', 'type' => 'method', 'data' => 'str', 'width' => '30%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'nolist'=>true, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ), ); protected $fieldpref = array('dblog_id', 'dblog_datestamp', 'dblog_microtime', 'dblog_type', 'dblog_eventcode', 'dblog_user_id', 'dblog_user_name', 'dblog_ip', 'dblog_caller', 'dblog_title', 'dblog_remarks'); public $eventTypes = array(); // optional public function init() { $perPage = e107::getConfig()->get('sys_log_perpage'); $this->perPage = vartrue($perPage,10); $this->eventTypes = loadEventTypes('dblog'); } } // Routine to handle the simple bbcode-like codes for log body text function log_process($matches) { switch($matches[1]) { case 'br': return '
'; case 'link': $temp = substr($matches[2], 1); return "{$temp}"; case 'test': return '----TEST----'; default: return $matches[0]; // No change } } new adminlog_admin(); require_once(e_ADMIN."auth.php"); e107::getAdminUI()->runPage(); require_once(e_ADMIN."footer.php");