103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| /*
 | |
|   ----------------------------------------------------------------------
 | |
|   AlternC - Web Hosting System
 | |
|   Copyright (C) 2000-2012 by the AlternC Development Team.
 | |
|   https://alternc.org/
 | |
|   ----------------------------------------------------------------------
 | |
|   LICENSE
 | |
|   
 | |
|   This program is free software; you can redistribute it and/or
 | |
|   modify it under the terms of the GNU General Public License (GPL)
 | |
|   as published by the Free Software Foundation; either version 2
 | |
|   of the License, or (at your option) any later version.
 | |
|   
 | |
|   This program is distributed in the hope that it will be useful,
 | |
|   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|   GNU General Public License for more details.
 | |
|   
 | |
|   To read the license please visit http://www.gnu.org/copyleft/gpl.html
 | |
|   ----------------------------------------------------------------------
 | |
|   Purpose of file: Manage Log files for users 
 | |
|   ----------------------------------------------------------------------
 | |
| */
 | |
| 
 | |
| /**
 | |
| * Classe de gestion des erreurs apparaissant lors d'appels API.
 | |
| */
 | |
| class m_log {
 | |
| 
 | |
|   function m_log(){
 | |
|   }
 | |
| 
 | |
|   function list_logs_directory($dir){
 | |
|     global $cuid,$err;
 | |
|     $err->log("log","list_logs_directory");
 | |
| 
 | |
|     $c=array();
 | |
|     $dir2=$dir;
 | |
|     if ($dir = @opendir($dir)) {
 | |
|       while (($file = readdir($dir)) !== false) {
 | |
|         if ($file!="." && $file!=".." && realpath($dir2 . "/" . $file) == $dir2 . "/" . $file){
 | |
|           $absfile=$dir2."/".$file;
 | |
|           $c[]=array("name"=>$file, 
 | |
|                      "creation_date"=>date("F d Y H:i:s.", filectime($absfile)),
 | |
|                      "filesize"=>filesize($absfile),
 | |
|                      "downlink"=>"logs_download.php?file=".urlencode($file),
 | |
|                     );
 | |
|         }    
 | |
|       }
 | |
|       closedir($dir);
 | |
|     }
 | |
|     usort($c,"compare_logname");
 | |
|     return $c;
 | |
| 
 | |
|   }//list_logs
 | |
| 
 | |
|   function hook_menu() {
 | |
|     $obj = array(
 | |
|       'title'       => _("Logs"),
 | |
|       'ico'         => 'images/logs.png',
 | |
|       'link'        => 'logs_list.php',
 | |
|       'pos'         => 130,
 | |
|      ) ;
 | |
| 
 | |
|      return $obj;
 | |
|   }
 | |
| 
 | |
|   function list_logs_directory_all($dirs){
 | |
|     global $err;
 | |
|     $err->log("log","get_logs_directory_all");
 | |
|     $c=array();
 | |
|     foreach($dirs as $dir=>$val){
 | |
|       $c[$dir]=$this->list_logs_directory($val);
 | |
|     }
 | |
|     return $c;
 | |
| 
 | |
|   }
 | |
|   
 | |
|   function get_logs_directory(){
 | |
|     global $cuid,$mem,$err;
 | |
|     $err->log("log","get_logs_directory");
 | |
|     // Return an array to allow multiple directory in the future
 | |
|     $c=array("dir"=>ALTERNC_LOGS."/".$cuid."-".$mem->user["login"]);
 | |
|     return $c;
 | |
|   }
 | |
|   
 | |
|   function download_link($file){
 | |
|     global $err,$mem;
 | |
|     $err->log("log","download_link");
 | |
|     header("Content-Disposition: attachment; filename=".$file); 
 | |
|     header("Content-Type: application/force-download");
 | |
|     header("Content-Transfer-Encoding: binary");
 | |
|     $f=$this->get_logs_directory();
 | |
|     $ff=$f['dir']."/".basename($file);
 | |
|     set_time_limit(0);
 | |
|     readfile($ff);
 | |
|   }
 | |
| 
 | |
| 
 | |
| } // end class
 | |
| 
 |