|
From: <ir...@us...> - 2013-04-06 13:03:58
|
Revision: 11351
http://sourceforge.net/p/xoops/svn/11351
Author: irmtfan
Date: 2013-04-06 13:03:55 +0000 (Sat, 06 Apr 2013)
Log Message:
-----------
- fix and improve: parse all files in all paths before any action in class/log.php and admin/file.php(2013/04/06)
- fix: return false when no file is selected in class/log.php(2013/04/06)
Modified Paths:
--------------
XoopsModules/userlog/trunk/userlog/admin/file.php
XoopsModules/userlog/trunk/userlog/blocks/views.php
XoopsModules/userlog/trunk/userlog/class/log.php
XoopsModules/userlog/trunk/userlog/docs/changelog.txt
XoopsModules/userlog/trunk/userlog/xoops_version.php
Modified: XoopsModules/userlog/trunk/userlog/admin/file.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/admin/file.php 2013-04-06 06:50:24 UTC (rev 11350)
+++ XoopsModules/userlog/trunk/userlog/admin/file.php 2013-04-06 13:03:55 UTC (rev 11351)
@@ -33,6 +33,7 @@
$opentry = UserlogRequest::getString('op', '');
$filename = UserlogRequest::getString('filename', '');
$confirm = UserlogRequest::getString('confirm',0, 'post');
+$file = $loglogObj->parseFiles($file);
$totalFiles = count($file);
if(!empty($opentry) && ($confirm == 0 || $totalFiles == 0)) {
redirect_header("file.php", 5, sprintf(_AM_USERLOG_ERROR,""));
@@ -66,10 +67,6 @@
redirect_header("file.php", 5, sprintf(_AM_USERLOG_ERROR,implode("<br\>",$loglogObj->getErrors())));
break;
case "merge":
- // if "all"
- if ($file[0] == "all") {
- list($allFiles,$totalFiles) = $Userlog->getAllLogFiles();
- }
if ($mergeFile = $loglogObj->mergeFiles($file, $filename)) {
redirect_header("file.php", 5, sprintf(_AM_USERLOG_FILE_MERGE_SUCCESS, $totalFiles,$mergeFile));
}
Modified: XoopsModules/userlog/trunk/userlog/blocks/views.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/blocks/views.php 2013-04-06 06:50:24 UTC (rev 11350)
+++ XoopsModules/userlog/trunk/userlog/blocks/views.php 2013-04-06 13:03:55 UTC (rev 11351)
@@ -29,11 +29,11 @@
// options[0] - number of items to show in block. the default is 10
// options[1] - items to select in Where claus
-// options[2] - Time period - default 1 day
-// options[3] - Uid in WHERE claus: select some users to only count views by them 0-all (by default)
-// options[4] - Gid in WHERE claus: select some groups to only count views by them 0-all (by default)
-// options[5] - Sort - module, views
-// options[6] - Order - DESC, ASC
+// options[2] - Time period - default: 1 day
+// options[3] - Uid in WHERE claus: select some users to only count views by them -1 -> all (by default)
+// options[4] - Gid in WHERE claus: select some groups to only count views by them 0 -> all (by default)
+// options[5] - Sort - views, module dirname, module name, module views default: views
+// options[6] - Order - DESC, ASC default: DESC
function userlog_views_show($options)
{
Modified: XoopsModules/userlog/trunk/userlog/class/log.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/class/log.php 2013-04-06 06:50:24 UTC (rev 11350)
+++ XoopsModules/userlog/trunk/userlog/class/log.php 2013-04-06 13:03:55 UTC (rev 11351)
@@ -291,9 +291,14 @@
$fileHandler->close();
return true;
}
- public function exportFilesToCsv($log_file, $headers, $csvNamePrefix="list_", $delimiter=";")
+ public function exportFilesToCsv($log_files = array(), $headers, $csvNamePrefix="list_", $delimiter=";")
{
- list($logs, $totalLogs) = $this->getLogsFromFiles($log_file);
+ $log_files = $this->parseFiles($log_files);
+ if( ($totalFiles = count($log_files)) == 0) {
+ $this->setErrors(_AM_USERLOG_FILE_SELECT_ONE);
+ return false;
+ }
+ list($logs, $totalLogs) = $this->getLogsFromFiles($log_files);
$logs = $this->arrayToDisplay($logs);
$csvNamePrefix = basename($csvNamePrefix);
if($csvFile = $this->exportLogsToCsv($logs, $headers, $csvNamePrefix . "from_file_total_" . $totalLogs ,$delimiter)) {
@@ -323,10 +328,10 @@
$fileHandler->close();
return $csvFile;
}
- public function getLogsFromFiles($log_file = null, $limit = 0, $start = 0, $options = null, $sort = "log_time", $order = "DESC")
+ public function getLogsFromFiles($log_files = array(), $limit = 0, $start = 0, $options = null, $sort = "log_time", $order = "DESC")
{
$logs = array();
- $logsStr = $this->readFiles($log_file);
+ $logsStr = $this->readFiles($log_files);
// if no logs return empty array and total = 0
if(empty($logsStr)) return array(array(), 0);
foreach ($logsStr as $id=>$log) {
@@ -432,36 +437,23 @@
}
public function readFiles($log_files = array())
{
- if(empty($log_files[0]) || count($log_files) == 0) {
+ $log_files = $this->parseFiles($log_files);
+ if( ($totalFiles = count($log_files)) == 0) {
return $this->readFile();
}
$logs = array();
- $ext = pathinfo($log_files[0], PATHINFO_EXTENSION);
- // if "all" or no extension => $path
- if ($log_files[0] == "all" || empty($ext)) {
- list($allFiles,$totalFiles) = $this->userlog->getAllLogFiles();
- if (empty($totalFiles)) return array();
- foreach($allFiles as $path=>$files) {
- foreach($files as $file) {
- $logs = array_merge($logs,$this->readFile($path . "/" . $file));
- }
- // if it is $path
- if ($log_files[0] != "all") {
- if ($log_files[0] == $path) break; // exit for loop and return logs
- $logs = array(); // reset logs for next path
- }
- }
- 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;
}
public function mergeFiles($log_files = array(), $mergeFileName = null)
{
+ $log_files = $this->parseFiles($log_files);
+ if( ($totalFiles = count($log_files)) == 0) {
+ $this->setErrors(_AM_USERLOG_FILE_SELECT_ONE);
+ return false;
+ }
$logs = array();
$logsStr = $this->readFiles($log_files);
$data = implode("\n",$logsStr);
@@ -504,12 +496,12 @@
$fileHandler->XoopsFileHandler($log_file, false);
if (!$fileHandler->exists()) {
$this->setErrors("Cannot open file ({$log_file})");
- return false;
+ return array();
}
if (($data = $fileHandler->read()) == false) {
$this->setErrors("Cannot read file ({$log_file})");
- return false;
+ return array();
}
$fileHandler->close();
$logs = explode("\n",$data);
@@ -517,11 +509,12 @@
}
public function deleteFiles($log_files = array())
{
- $deletedFiles = 0;
- if (count($log_files) == 0) {
- $this->setErrors("No file to delete");
+ $log_files = $this->parseFiles($log_files);
+ if( ($totalFiles = count($log_files)) == 0) {
+ $this->setErrors(_AM_USERLOG_FILE_SELECT_ONE);
return false;
}
+ $deletedFiles = 0;
// file open/read
$fileHandler = XoopsFile::getHandler();
foreach($log_files as $file) {
@@ -603,8 +596,26 @@
$fileHandler->close();
return $newFile;
}
- public function zipFiles($log_files = array(), $zipFileName = null)
+ public function getFilesFromFolders($folders = array())
{
+ list($allFiles,$totalFiles) = $this->userlog->getAllLogFiles();
+ if (empty($totalFiles)) return array();
+ $pathFiles = array();
+ $getAll = false;
+ if(in_array("all",$folders)) $getAll = true;
+ foreach($allFiles as $path=>$files) {
+ if($getAll || in_array($path, $folders)) {
+ foreach($files as $file) {
+ $pathFiles[] = $path . "/" . $file;
+ }
+ }
+ }
+ return $pathFiles;
+ }
+ public function parseFiles($log_files = array())
+ {
+ $pathFiles = $this->getFilesFromFolders($log_files);
+ $log_files = array_unique(array_merge($log_files,$pathFiles));
// file open/read
$fileHandler = XoopsFile::getHandler();
foreach($log_files as $key=>$file) {
@@ -616,6 +627,11 @@
}
}
$fileHandler->close();
+ return $log_files;
+ }
+ public function zipFiles($log_files = array(), $zipFileName = null)
+ {
+ $log_files = $this->parseFiles($log_files);
if( ($totalFiles = count($log_files)) == 0) {
$this->setErrors("No file to zip");
return false;
Modified: XoopsModules/userlog/trunk/userlog/docs/changelog.txt
===================================================================
--- XoopsModules/userlog/trunk/userlog/docs/changelog.txt 2013-04-06 06:50:24 UTC (rev 11350)
+++ XoopsModules/userlog/trunk/userlog/docs/changelog.txt 2013-04-06 13:03:55 UTC (rev 11351)
@@ -1,5 +1,7 @@
Userlog
Changelog:
+- fix and improve: parse all files in all paths before any action in class/log.php and admin/file.php(2013/04/06)
+- fix: return false when no file is selected in class/log.php(2013/04/06)
- fix: hide filename element when delete is selected in admin/file.php(2013/04/06)
- improve: show the name of action in confirm box in admin/file.php(2013/04/06)
- change version to BETA 1(2013/04/01)
Modified: XoopsModules/userlog/trunk/userlog/xoops_version.php
===================================================================
--- XoopsModules/userlog/trunk/userlog/xoops_version.php 2013-04-06 06:50:24 UTC (rev 11350)
+++ XoopsModules/userlog/trunk/userlog/xoops_version.php 2013-04-06 13:03:55 UTC (rev 11351)
@@ -100,11 +100,11 @@
$i = 0;
// options[0] - number of items to show in block. the default is 10
// options[1] - items to select in Where claus
-// options[2] - Time period - default 1 day
-// options[3] - Uid in WHERE claus: select some users to only count views by them 0-all (by default)
-// options[4] - Gid in WHERE claus: select some groups to only count views by them 0-all (by default)
-// options[5] - Sort - module, views
-// options[6] - Order - DESC, ASC
+// options[2] - Time period - default: 1 day
+// options[3] - Uid in WHERE claus: select some users to only count views by them -1 -> all (by default)
+// options[4] - Gid in WHERE claus: select some groups to only count views by them 0 -> all (by default)
+// options[5] - Sort - views, module dirname, module name, module views default: views
+// options[6] - Order - DESC, ASC default: DESC
$modversion['blocks'][$i]['file'] = "views.php";
$modversion['blocks'][$i]['name'] = _MI_USERLOG_BLOCK_VIEWS;
$modversion['blocks'][$i]['description'] = _MI_USERLOG_BLOCK_VIEWS_DSC;
|