C:\$Recycle.Bin\S-1-5-21-3967099092-2644009230-141905953-500\$R83TZYV\nucleus\libs\ACTIONLOG.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/*
  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/) 
  * Copyright (C) 2002-2005 The Nucleus Group
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
  * (see nucleus/documentation/index.html#license for more info)
 */
/**
  * Actionlog class for Nucleus
  *
 * @license http://nucleuscms.org/license.txt GNU General Public License
 * @copyright Copyright (C) 2002-2005 The Nucleus Group
 * @version $Id: ACTIONLOG.php,v 1.11.2.1 2005/08/15 10:50:12 dekarma Exp $
  */
define('ERROR',1);        // only errors
define('WARNING',2);    // errors and warnings
define('INFO',3);        // info, errors and warnings
define('DEBUG',4);        // everything 
$CONF['LogLevel'] = INFO;

class 
ACTIONLOG {

    
/**
      * (Static) Method to add message to log
      */
    
function add($level$message) {
        global 
$member$CONF;
        
        if (
$CONF['LogLevel'] < $level)
            return;
        
        if (
$member && $member->isLoggedIn())
            
$message "[" $member->getDisplayName() . "] " $message;
        
        
$message addslashes($message);        // add slashes
        
$timestamp date("Y-m-d H:i:s",time());    // format timestamp
        
$query "INSERT INTO " sql_table('actionlog') . " (timestamp, message) VALUES ('$timestamp', '$message')";
        
        
sql_query($query);
        
        
ACTIONLOG::trimLog();
    }
    
    
/**
      * (Static) Method to clear log
      */
    
function clear() {
        global 
$manager;
        
        
$query 'DELETE FROM ' sql_table('actionlog');

        
$manager->notify('ActionLogCleared',array());
        
        return 
sql_query($query);
    }
    
    function 
trimLog() {
        static 
$checked 0;
        
        
// only check once per run
        
if ($checked) return;
        
        
// trim
        
$checked 1;
        
        
$iTotal quickQuery('SELECT COUNT(*) AS result FROM ' sql_table('actionlog'));
        
        
// if size > 500, drop back to about 250
        
$iMaxSize 500;
        
$iDropSize 250;
        if (
$iTotal $iMaxSize) {
            
$tsChop quickQuery('SELECT timestamp as result FROM ' sql_table('actionlog') . ' ORDER BY timestamp DESC LIMIT '.$iDropSize.',1');
            
sql_query('DELETE FROM ' sql_table('actionlog') . ' WHERE timestamp < \'' $tsChop '\'');
        }
        
    }

}

?>