|
From: <ir...@us...> - 2013-03-04 14:02:32
|
Revision: 11151
http://sourceforge.net/p/xoops/svn/11151
Author: irmtfan
Date: 2013-03-04 14:02:25 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
- add manual delete/purge for engine=db
- add log status. active/idle
Modified Paths:
--------------
XoopsModules/userlog/trunk/userlog/admin/index.php
XoopsModules/userlog/trunk/userlog/admin/logs.php
XoopsModules/userlog/trunk/userlog/class/log.php
XoopsModules/userlog/trunk/userlog/class/stats.php
XoopsModules/userlog/trunk/userlog/class/userlog.php
XoopsModules/userlog/trunk/userlog/docs/changelog.txt
XoopsModules/userlog/trunk/userlog/include/log.php
XoopsModules/userlog/trunk/userlog/language/english/admin.php
XoopsModules/userlog/trunk/userlog/language/english/help/help.html
XoopsModules/userlog/trunk/userlog/language/english/modinfo.php
XoopsModules/userlog/trunk/userlog/templates/userlog_admin_logs.html
XoopsModules/userlog/trunk/userlog/xoops_version.php
Modified: XoopsModules/userlog/trunk/userlog/admin/index.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/admin/index.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/admin/index.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -58,6 +58,7 @@
}
}
$indexAdmin->addConfigBoxLine($Userlog->getConfig('logfilepath') , 'folder');
+$indexAdmin->addConfigBoxLine("<span class='bold " . ($Userlog->getConfig('status') ? "green" : "red") . "'>" . _MI_USERLOG_STATUS . " " . ($Userlog->getConfig('status') ? _MI_USERLOG_ACTIVE : _MI_USERLOG_IDLE) . "</span>", 'default');
echo $indexAdmin->addNavigation('index.php');
echo $indexAdmin->renderButton();
echo $indexAdmin->renderIndex();
Modified: XoopsModules/userlog/trunk/userlog/admin/logs.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/admin/logs.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/admin/logs.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -34,7 +34,8 @@
$options = UserlogRequest::getArray("options");
$engine = UserlogRequest::getString('engine',$Userlog->getConfig("engine"));
$file = UserlogRequest::getArray('file', "all");
-
+$opentry = UserlogRequest::getString('op');
+
$logsetObj = UserlogSetting::getInstance();
// get var types int, text, bool , ...
$type_vars = $logsetObj->getOptions("", "type");
@@ -73,7 +74,7 @@
foreach($val_arr as $qry) {
// if !QUERY eg: !logs.php,views.php
if (substr($qry,0,1) == "!") {
- $criteria_q[$key]->add(new Criteria($op, "%" . substr($qry,1) . "%", "NOT LIKE"), "OR");
+ $criteria_q[$key]->add(new Criteria($op, "%" . substr($qry,1) . "%", "NOT LIKE"), "AND");
} else {
$criteria_q[$key]->add(new Criteria($op, "%" . $qry . "%", "LIKE"), "OR");
}
@@ -99,20 +100,48 @@
$formNav->addElement($hidOptionsEl);
unset($hidOptionsEl);
}
-
+// parse query page
+if ( !empty($query_array) ) {
+ $query_page = implode("&", array_values($query_array));
+}
+$query_entry = "&engine=" . $engine . "&limitentry=" . $limitentry . "&sortentry=" . $sortentry . "&orderentry=" . $orderentry;
+if ($engine == "file") {
+ foreach($file as $oneFile) {
+ $query_entry .= "&file[]=" . $oneFile;
+ }
+}
// get logs from engine: 1- db 2- file
$loglogObj = UserlogLog::getInstance();
+
+// delete/purge
+$confirm = UserlogRequest::getString('confirm',0);
+if ($opentry == "del" && !empty($confirm)) {
+ $log_id = UserlogRequest::getArray('log_id');
+ if( $engine == 'db' ) {
+ // delete logs in database
+ $statsObj = UserlogStats::getInstance();
+ if(is_numeric($log_id[0])) {
+ $criteriaLogId = new CriteriaCompo();
+ $criteriaLogId->add(new Criteria("log_id", "(" . implode(",",$log_id) . ")", "IN"));
+ $numDel = $statsObj->delete($type = 'log', 0, 0, $criteriaLogId);
+ redirect_header("logs.php?op=" . $query_entry . (!empty($query_page) ? "&" . $query_page : ''), 1, sprintf(_AM_USERLOG_LOG_DELETE_SUCCESS, $numDel));
+ } elseif($log_id[0] == "bulk") {
+ $numDel = $statsObj->delete($type = 'log', 0, 0, $criteria);
+ redirect_header("logs.php?op=" . $query_entry , 10, sprintf(_AM_USERLOG_LOG_DELETE_SUCCESS_QUERY, $numDel, $query_page) );
+ }
+ redirect_header("logs.php?op=" . $query_entry . (!empty($query_page) ? "&" . $query_page : ''), 1, _AM_USERLOG_LOG_DELETE_ERROR);
+ // for file
+ } else {
+ redirect_header("logs.php?op=" . $query_entry . (!empty($query_page) ? "&" . $query_page : ''), 1, _AM_USERLOG_LOG_DELETE_ERROR);
+ }
+}
if( $engine == 'db' ) {
$logs = $Userlog->getHandler('log')->getLogs($limitentry,$startentry,$criteria,$sortentry,$orderentry ,null, false);
$totalLogs = $Userlog->getHandler('log')->getLogsCount($criteria);
} else {
list($logs, $totalLogs) = $loglogObj->getLogsFromFiles($file, $limitentry, $startentry, $options, $sortentry,$orderentry);
}
-// parse query page
-if ( !empty($query_array) ) {
- $query_page = implode("&", array_values($query_array));
-}
-$query_entry = "&limitentry=" . $limitentry . "&sortentry=" . $sortentry . "&orderentry=" . $orderentry;
+
// pagenav
$pagenav = new XoopsPageNav($totalLogs, $limitentry, $startentry, 'startentry', $query_entry . (!empty($query_page) ? "&" . $query_page : ''));
if ( !empty($pagenav) ) {
@@ -138,6 +167,9 @@
if ( !empty($query_page) ) {
$GLOBALS['xoopsTpl']->assign('query_page', $query_page);
}
+if ( !empty($query_entry) ) {
+ $GLOBALS['xoopsTpl']->assign('query_entry', $query_entry);
+}
$GLOBALS['xoopsTpl']->assign('types', $type_vars);
// form
@@ -147,7 +179,7 @@
$engineEl->addOption("db", _AM_USERLOG_ENGINE_DB);
$engineEl->addOption("file", _AM_USERLOG_ENGINE_FILE);
if ($engine == "file") {
- $fileEl = $loglogObj->buildFileSelectEle($file);
+ $fileEl = $loglogObj->buildFileSelectEle($file, true);
}
$limitEl = new XoopsFormText(_AM_USERLOG_LOGS_PERPAGE, "limitentry", 10, 255, $limitentry);
$limitEl->setDescription(sprintf(_AM_USERLOG_LOGS_PERPAGE_DSC, $Userlog->getConfig("logs_perpage")));
@@ -193,6 +225,7 @@
$formNav->addElement($submitEl);
$GLOBALS['xoopsTpl']->assign('formNav', $formNav->render());
+$indexAdmin = new ModuleAdmin();
//headers
foreach($skips as $option) {
unset($headers[$option]);
Modified: XoopsModules/userlog/trunk/userlog/class/log.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/class/log.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/class/log.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -32,6 +32,7 @@
public $_store = 0; // store: 0,1->db 2->file 3->both
+ public $_sourceJSON = array("get","post","request","files","env","session","cookie","header","logger");// json_encoded fields
/**
* constructor
*/
@@ -126,7 +127,7 @@
foreach($logs as $log_id=>$log) {
$logs[$log_id]["log_time"] = $this->userlog->formatTime($logs[$log_id]["log_time"]);
$logs[$log_id]["last_login"] = $this->userlog->formatTime($logs[$log_id]["last_login"]);
- foreach (array("session","cookie","header","logger") as $option){
+ foreach ($this->_sourceJSON as $option){
// if value is not string it was decoded in file
if (!is_string($logs[$log_id][$option])) continue;
$logArr = json_decode($logs[$log_id][$option], true);
@@ -223,13 +224,20 @@
// if type is text
if (!empty($val_arr[0]) && intval($val_arr[0]) == 0) {
foreach ($logs as $id => $log) {
- $flagStr = false;
foreach($val_arr as $qry) {
// if !QUERY eg: !logs.php,views.php
if (substr($qry,0,1) == "!") {
- if(strpos($log[$op], substr($qry,1)) !== false) $flagStr = true;
+ $flagStr = true;
+ if(strpos($log[$op], substr($qry,1)) !== false) {
+ $flagStr = false; // have that delete
+ break; // means AND
+ }
} else {
- if(strpos($log[$op], $qry) !== false) $flagStr = true;
+ $flagStr = false;
+ if(strpos($log[$op], $qry) !== false) {
+ $flagStr = true; // have that dont delete
+ break; // means OR
+ }
}
}
if (!$flagStr) unset($logs[$id]);
@@ -292,9 +300,9 @@
return $this->readFile();
}
$logs = array();
- $pathParts = pathinfo($log_files[0]);
+ $ext = pathinfo($log_files[0], PATHINFO_EXTENSION);
// if "all" or no extension => $path
- if ($log_files[0] == "all" || empty($pathParts[extension])) {
+ if ($log_files[0] == "all" || empty($ext)) {
list($allFiles,$totalFiles) = $this->userlog->getAllLogFiles();
if (empty($totalFiles)) return array();
foreach($allFiles as $path=>$files) {
@@ -310,6 +318,8 @@
return $logs;
}
foreach($log_files as $file) {
+ $ext = pathinfo($file, PATHINFO_EXTENSION);
+ if (empty($ext)) return $logs;
$logs = array_merge($logs,$this->readFile($file));
}
return $logs;
@@ -345,7 +355,7 @@
if (empty($totalFiles)) return false;
$log_file_name = $this->userlog->getConfig('logfilename');
$working_file = $log_file_name.".".$logext;
- $fileEl = new XoopsFormSelect(_AM_USERLOG_FILE,"file", $currentFile);
+ $fileEl = new XoopsFormSelect(_AM_USERLOG_FILE,"file", $currentFile, 3, $multi);
$fileEl->addOption("all", _AM_USERLOG_STATS_FILEALL);
foreach($allFiles as $path=>$files) {
$fileEl->addOption($path, ">" . $path);
Modified: XoopsModules/userlog/trunk/userlog/class/stats.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/class/stats.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/class/stats.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -127,7 +127,7 @@
$exceed = $logs - $this->userlog->getConfig('maxlogs');
// if logs exceed the maxlogs delete them
if ($exceed > 0) {
- $numDel = $this->delete("log",$per, $exceed);
+ $numDel = $this->delete("log",$per, $exceed, null, true);
$logs -= $numDel;
}
$this->update("log", $per, $logs);
@@ -136,19 +136,26 @@
}
return true;
}
- public function delete($type = 'log',$period = 0, $limitDel = 0, $criteria = null)
+ public function delete($type = 'log',$period = 0, $limitDel = 0, $criteria = null, $asObject = false)
{
switch ($type) {
case "log":
- $logsObj = $this->userlog->getHandler('log')->getLogs($limitDel,0,$criteria,"log_id","ASC");
- $numDel = 0;
- foreach (array_keys($logsObj) as $key) {
- $numDel += $this->userlog->getHandler('log')->delete($logsObj[$key], true) ? 1 : 0;
+ if ($asObject) {
+ $logsObj = $this->userlog->getHandler('log')->getLogs($limitDel,0,$criteria,"log_id","ASC");
+ $numDel = 0;
+ foreach (array_keys($logsObj) as $key) {
+ $numDel += $this->userlog->getHandler('log')->delete($logsObj[$key], true) ? 1 : 0;
+ }
+ if ($numDel > 0) {
+ $this->update("logdel", $period, $numDel, true); // increment
+ }
+ unset($logsObj);
+ return $numDel;
}
+ $numDel = $this->userlog->getHandler('log')->deleteAll($criteria, true, $asObject);
if ($numDel > 0) {
$this->update("logdel", $period, $numDel, true); // increment
}
- unset($logsObj);
return $numDel;
break;
}
Modified: XoopsModules/userlog/trunk/userlog/class/userlog.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/class/userlog.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/class/userlog.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -109,7 +109,7 @@
{
$allConfigs = $this->module->getInfo('config');
$currentPath = $this->getConfig("logfilepath");
- $logPaths = array_keys($allConfigs[2]["options"]);
+ $logPaths = array_keys($allConfigs[3]["options"]);
$logext = "log";
$allFiles = array();
$totalFiles = 0;
Modified: XoopsModules/userlog/trunk/userlog/docs/changelog.txt
===================================================================
--- XoopsModules/userlog/trunk/userlog/docs/changelog.txt 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/docs/changelog.txt 2013-03-04 14:02:25 UTC (rev 11151)
@@ -1,6 +1,8 @@
Userlog
Changelog:
-- add acomplete file browsing engine can accept any file, criteria, pagination, sort,order (2013/03/04)
+- add delete/purge for engine=db(2013/03/04)
+- add log status. active/idle(2013/03/04)
+- add a complete file browsing engine can accept any file, criteria, pagination, sort,order (2013/03/04)
- use json_encode instead of serialize for better performance. (2013/03/04)
- add webmaster permission from file to avoid other webmasters to access.(2013/03/02)
- add probabilities to preferences for sets and stats.(previously hardcoded)(2013/03/02)
Modified: XoopsModules/userlog/trunk/userlog/include/log.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/include/log.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/include/log.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -27,6 +27,7 @@
include_once 'common.php';
$Userlog = Userlog::getInstance(false);
+if (!$Userlog->getConfig("status")) return;
$logsetObj = UserlogSetting::getInstance();
$statsObj = UserlogStats::getInstance();
list($setting, $scope) = $logsetObj->getSet();
Modified: XoopsModules/userlog/trunk/userlog/language/english/admin.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/language/english/admin.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/language/english/admin.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -128,16 +128,15 @@
define("_AM_USERLOG_UIDLT_FORM","Enter one '%1\$s' number to show all logs for all users with a '%2\$s' lower than that");
define("_AM_USERLOG_ADMIN_FORM","Enter 1 to show all logs from Admins");
-define("_AM_USERLOG_GROUPS_FORM","Enter one group with 'g' prefix (or several groups separated with comma) to show logs for all users belonging to those groups. eg: g1,g2 means all users belonging to group 1 OR group 2");
+define("_AM_USERLOG_GROUPS_FORM","Enter one group with 'g' prefix (or several groups separated with comma) to show logs for all users belonging to those groups. Enter '!g' prefix to show logs for users not in those groups. eg: g1,g2,!g4 means all users belonging to group 1 OR group 2 AND not belong to group 4");
-
define("_AM_USERLOG_LAST_LOGINGT","User Last Visit since");
define("_AM_USERLOG_LAST_LOGINGT_FORM","Enter Time of User Last Visit to show all logs since that time. Positive for days and negative for hours. eg: 1 means since one day ago");
define("_AM_USERLOG_LAST_LOGINLT","User Last Visit until");
define("_AM_USERLOG_LAST_LOGINLT_FORM","Enter Time of User Last Visit to show all logs until that time. Positive for days and negative for hours. eg: 1 means until one day ago");
// for all other text logs use just one definition
-define("_AM_USERLOG_TEXT_FORM","Enter one exact '%1\$s' or part of '%2\$s' to show all logs for users have that. you can enter several separated with comma. eg: TERM1, TERM2, TERM3");
+define("_AM_USERLOG_TEXT_FORM","Enter one exact '%1\$s' or part of '%2\$s' to show all logs for users have that (with prefix '!' have not that). you can enter several separated with comma. eg: TERM1, !TERM2, TERM3 means all logs have TERM1 and TERM3 but have not TERM2");
// Translators: do not touch below for now
// START DO NOT TOUCH
define("_AM_USERLOG_UNAME_FORM",_AM_USERLOG_TEXT_FORM);
@@ -169,10 +168,18 @@
define("_AM_USERLOG_FILE_WORKING","Working file");
// logs.php error
-define("_AM_USERLOG_LOG_ERROR","No Log is found in database with this criteria.");
+define("_AM_USERLOG_LOG_ERROR","No Log is found with this criteria.");
define("_AM_USERLOG_LOG_STATUS","%1\$s logs are found.");
define("_AM_USERLOG_LOG_PAGE","Pages");
+// logs.php delete
+define("_AM_USERLOG_LOG_DELETE_SELECT","Delete selected logs in the current page.");
+define("_AM_USERLOG_LOG_PURGE_ALL","Purge all rendered logs in all pages?");
+define("_AM_USERLOG_LOG_DELETE_CONFIRM","Are you sure you want to delete logs? logs will permanently be deleted from database.");
+define("_AM_USERLOG_LOG_DELETE_SUCCESS","%1\$d logs deleted successfully.");
+define("_AM_USERLOG_LOG_DELETE_SUCCESS_QUERY","%1\$d logs deleted successfully with '%2\$s' query.");
+define("_AM_USERLOG_LOG_DELETE_ERROR","Error. you input an invalid criteria for delete.");
+
// views block
define("_AM_USERLOG_VIEW_ALL","All views");
define("_AM_USERLOG_VIEW_MODULE","Module views");
Modified: XoopsModules/userlog/trunk/userlog/language/english/help/help.html
===================================================================
--- XoopsModules/userlog/trunk/userlog/language/english/help/help.html 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/language/english/help/help.html 2013-03-04 14:02:25 UTC (rev 11151)
@@ -50,9 +50,9 @@
<h4 class="odd">Logs</h4>
<p class="even">
-You can see users logs through the Admin section of the userlog Module.<br /><br />
+You can see/delete/purge users logs through the Admin section of the userlog Module.<br /><br />
+You can get logs from database or file source engine.<br /><br />
To search for logs based on a criteria you have an advance form.<br /><br />
-To do: browsing logs from log file<br /><br />
</p>
<h4 class="odd">Views block</h4>
<p class="even">
Modified: XoopsModules/userlog/trunk/userlog/language/english/modinfo.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/language/english/modinfo.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/language/english/modinfo.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -26,7 +26,13 @@
define("_MI_USERLOG_DSC","Log user/visitor activities and navigations");
// configs
-// config logfile
+// config status
+define("_MI_USERLOG_STATUS","Log status:");
+define("_MI_USERLOG_STATUS_DSC","Active: Module will do its job. Idle:The module will not log anything");
+define("_MI_USERLOG_ACTIVE","Active");
+define("_MI_USERLOG_IDLE","Idle");
+
+// config categories
define("_MI_USERLOG_CONFCAT_LOGFILE","Log file (Set it if you need to store logs in a file, otherwise ignore it)");
define("_MI_USERLOG_CONFCAT_LOGFILE_DSC","Preferences for Log file");
define("_MI_USERLOG_CONFCAT_FORMAT","Format");
@@ -53,7 +59,7 @@
define("_MI_USERLOG_LOGS_PERPAGE","Number of logs per page");
define("_MI_USERLOG_LOGS_PERPAGE_DSC","The default value for viewing logs");
define("_MI_USERLOG_ENGINE","Select the default engine for browsing logs");
-define("_MI_USERLOG_ENGINE_DSC","This will be the default engine in logs browing.");
+define("_MI_USERLOG_ENGINE_DSC","This will be the default engine in logs browsing.");
// config logdb
define("_MI_USERLOG_MAXLOGS","Maximum logs stored in database");
define("_MI_USERLOG_MAXLOGS_DSC","Logs will be deleted from database after reaching this number");
Modified: XoopsModules/userlog/trunk/userlog/templates/userlog_admin_logs.html
===================================================================
--- XoopsModules/userlog/trunk/userlog/templates/userlog_admin_logs.html 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/templates/userlog_admin_logs.html 2013-03-04 14:02:25 UTC (rev 11151)
@@ -21,23 +21,43 @@
<{if $logs}>
<{assign var=widthC value=5}>
<div class="outer">
+ <form name="delete" action="logs.php?op=del&confirm=1<{if $query_page}>&<{$query_page}><{/if}><{if $query_entry}><{$query_entry}><{/if}>" method="POST" onsubmit="javascript: if(window.document.delete.log_id[].value < 1){return false;}">
<div class="head boxshadow1 border xx-small">
+ <div class="width1 floatleft center">
+ <{$smarty.const._ALL}>: <input type="checkbox" name="id_check" id="id_check" value="1" onclick="xoopsCheckAll('delete', 'id_check');" />
+ </div>
<{foreach item=title key=header from=$headers}>
<div title="<{$title}>" class="width<{if $header == "admin" || $header == "log_id" || $header == "uid"}>1<{else}><{$widthC}><{/if}> floatleft center" style="height: 15px; overflow: hidden;">
- <a class="ui-corner-all tooltip" title="<{$title}>" href="logs.php?limitentry=<{$limitentry}>&sortentry=<{$header}><{if $query_page}>&<{$query_page}><{/if}><{if $sortentry eq $header}>&orderentry=<{if $orderentry eq 'DESC'}>ASC<{else}>DESC<{/if}><{/if}> " alt="<{$title}>"><{if $sortentry eq $header}><img src="<{if $orderentry eq 'DESC'}><{xoModuleIcons16 DESC.png}><{else}><{xoModuleIcons16 ASC.png}><{/if}>"/><{/if}><{$title}></a>
+ <a class="ui-corner-all tooltip" title="<{$title}>" href="logs.php?limitentry=<{$limitentry}>&sortentry=<{$header}><{if $query_page}>&<{$query_page}><{/if}><{if $sortentry eq $header}>&orderentry=<{if $orderentry eq 'DESC'}>ASC<{else}>DESC<{/if}><{/if}> " alt="<{$title}>"><{if $sortentry eq $header}><img src="<{if $orderentry eq 'DESC'}><{xoModuleIcons16 DESC.png}><{else}><{xoModuleIcons16 ASC.png}><{/if}>"/><{/if}><{$title}></a>
</div>
<{/foreach}>
<div class="clear"></div>
</div>
<{foreach item=log key=log_id from=$logs}>
<div class="<{cycle values='even,odd'}> border x-small">
+ <div class="width1 floatleft center">
+ <a href="logs.php?op=del&confirm=1<{if $query_page}>&<{$query_page}><{/if}><{if $query_entry}><{$query_entry}><{/if}>&log_id=<{$log_id}>" title="<{$smarty.const._DELETE}>" onclick="return confirm('<{$smarty.const._AM_USERLOG_LOG_DELETE_CONFIRM}>');"><img src="<{xoModuleIcons16 delete.png}>" alt="<{$smarty.const._DELETE}>" title="<{$smarty.const._DELETE}>" /></a>
+ <input type="checkbox" name="log_id[]" id="log_id[<{$log_id}>]" value="<{$log_id}>" />
+ </div>
<{foreach item=title key=header from=$headers}>
<div title="<{$log.$header}>" class="width<{if $header == "admin" || $header == "log_id" || $header == "uid"}>1<{else}><{$widthC}><{/if}> floatleft center" style="height: 15px; overflow: hidden;"> <{$log.$header}></div>
<{/foreach}>
<div class="clear"></div>
</div>
<{/foreach}>
+ <div class="floatleft">
+ <input onclick="return confirm('<{$smarty.const._AM_USERLOG_LOG_DELETE_CONFIRM}>');" id="submit" class="formButton" type="submit" name="submit" value="<{$smarty.const._AM_USERLOG_LOG_DELETE_SELECT}>" title="<{$smarty.const._AM_USERLOG_LOG_DELETE_SELECT}>" />
+ </div>
+ <{if $pages gt 1}>
+ <div class="floatright xo-buttons">
+ <a class="ui-corner-all tooltip" title="<{$smarty.const._AM_USERLOG_LOG_PURGE_ALL}>" href="logs.php?op=del&confirm=1&log_id=bulk<{if $query_page}>&<{$query_page}><{/if}><{if $query_entry}><{$query_entry}><{/if}>" onclick="return confirm('<{$smarty.const._AM_USERLOG_LOG_DELETE_CONFIRM}>');">
+ <img src="<{xoModuleIcons16 delete.png}>" alt="<{$smarty.const._DELETE}>" title="<{$smarty.const._DELETE}>" /><{$smarty.const._AM_USERLOG_LOG_PURGE_ALL}>
+ </a>
+ </div>
+ <{/if}>
+ <{$pagenav}>
+ <div class="clear"></div>
+ </form>
</div>
<{/if}>
-<{$pagenav}>
<{$form}>
\ No newline at end of file
Modified: XoopsModules/userlog/trunk/userlog/xoops_version.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/xoops_version.php 2013-03-04 06:39:39 UTC (rev 11150)
+++ XoopsModules/userlog/trunk/userlog/xoops_version.php 2013-03-04 14:02:25 UTC (rev 11151)
@@ -111,6 +111,15 @@
// Config Settings (only for modules that need config settings generated automatically)
################### Log file ####################
$i = 0;
+$modversion['config'][$i]['name'] = 'status';
+$modversion['config'][$i]['title'] = '_MI_USERLOG_STATUS';
+$modversion['config'][$i]['description'] = '_MI_USERLOG_STATUS_DSC';
+$modversion['config'][$i]['formtype'] = 'select';
+$modversion['config'][$i]['valuetype'] = 'int';
+$modversion['config'][$i]['default'] = 1;
+$modversion['config'][$i]['options'] = array(_MI_USERLOG_ACTIVE => 1, _MI_USERLOG_IDLE => 0);
+
+$i++;
$modversion['config'][$i]['name'] = 'logfile';
$modversion['config'][$i]['title'] = '_MI_USERLOG_CONFCAT_LOGFILE';
$modversion['config'][$i]['description'] = '_MI_USERLOG_CONFCAT_LOGFILE_DSC';
|