Initial
[qwikioffice:qwikioffice.git] / public / server / lib / log.php
1 <?php\r
2 /*\r
3  * qWikiOffice Desktop 1.0\r
4  * Copyright(c) 2007-2010, Murdock Technologies, Inc.\r
5  * licensing@qwikioffice.com\r
6  *\r
7  * http://www.qwikioffice.com/license\r
8  */\r
9 \r
10 class log {\r
11    private $os;\r
12 \r
13    /** __construct()\r
14     *\r
15     * @access public\r
16     * @param {class} $os The os.\r
17     */\r
18    public function __construct(os $os){\r
19       $this->os = $os;\r
20    } // end __construct()\r
21 \r
22    /**\r
23     * error() Inserts an error log into the the qo_log table.\r
24     *\r
25     * @access public\r
26     * @param {array/string} $v An array or a string.\r
27     */\r
28    public function error($v){\r
29       $this->log('ERROR', $v);\r
30    } // end error()\r
31 \r
32    /**\r
33     * warning() Inserts a warning log into the the qo_log table.\r
34     *\r
35     * @access public\r
36     * @param {array/string} $v An array or a string.\r
37     */\r
38    public function warning($v){\r
39       $this->log('WARNING', $v);\r
40    } // end warning()\r
41 \r
42    /**\r
43     * message() Inserts a message log into the the qo_log table.\r
44     *\r
45     * @access public\r
46     * @param {array/string} $v An array or a string.\r
47     */\r
48    public function message($v){\r
49       $this->log('MESSAGE', $v);\r
50    } // end message()\r
51 \r
52    /**\r
53     * audit() Insertss an audit log into the the qo_log table.\r
54     *\r
55     * @access public\r
56     * @param {array/string} $v An array or string.\r
57     */\r
58    public function audit($v){\r
59       $this->log('AUDIT', $v);\r
60    } // end audit()\r
61 \r
62    /**\r
63     * log() Inserts log(s) into the the qo_log table.\r
64     *\r
65     * @access private\r
66     * @param $level Level of the log e.g. ERROR, WARNING, MESSAGE, AUDIT\r
67     * @param {array/string} $v An array or a string.\r
68     */\r
69    private function log($level, $v){\r
70       // was an array passed in?\r
71       if(is_array($v)){\r
72          for($i = 0, $len = count($v); $i < $len; $i++){\r
73             $this->query($level, $v[$i]);\r
74          }\r
75       }\r
76 \r
77       // was a string passed in?\r
78       else if(is_string($v)){\r
79          $this->query($level, $v);\r
80       }\r
81    } // end log()\r
82 \r
83    /**\r
84     * query() Executes the query.\r
85     *\r
86     * @access private\r
87     * @param {string} $level\r
88     * @param {string} $text\r
89     * @return {boolean}\r
90     */\r
91    private function query($level, $text){\r
92       if(!isset($level, $text) || $level == '' || $text == ''){\r
93          return false;\r
94       }\r
95 \r
96       $sql = 'INSERT INTO qo_log (level, text, timestamp) VALUES (?, ?, ?)';\r
97 \r
98       // prepare the statement, prevents SQL injection by calling the PDO::quote() method internally\r
99       $sql = $this->os->db->conn->prepare($sql);\r
100       $sql->bindParam(1, $level);\r
101       $sql->bindParam(2, $text);\r
102       $sql->bindParam(3, date('Y-m-d H:i:s'));\r
103       $sql->execute();\r
104 \r
105       $code = $sql->errorCode();\r
106       if($code == '00000'){\r
107          return true;\r
108       }\r
109 \r
110       return false;\r
111    } // end query()\r
112 }\r
113 ?>