Pman.php
[Pman.Base] / Pman.php
index 65a7348..7f9a75f 100644 (file)
--- a/Pman.php
+++ b/Pman.php
@@ -612,28 +612,42 @@ class Pman extends HTML_FlexyFramework_Page
      * ---------------- Logging ---------------   
      */
     
+    /**
+     * addEventOnce:
+     * Log an action (only if it has not been logged already.
+     * 
+     * @param {String} action  - group/name of event
+     * @param {DataObject|false} obj - dataobject action occured on.
+     * @param {String} any remarks 
+     */
     
-    
-    
-    
-    function addEvent($act, $obj = false, $remarks = '') {
+    function addEventOnce($act, $obj = false, $remarks = '') 
+    {
         $au = $this->getAuthUser();
         $e = DB_DataObject::factory('Events');
-        
-        if (is_a($e, 'PEAR_Error')) {
-            return; // no event table!
+        $e->init($act,$obj,$remarks); 
+        if ($e->find(true)) {
+            return;
         }
-        $e->person_name = $au ? $au->name : '';
-        $e->person_id = $au ? $au->id : '';
+        $this->addEvent($act, $obj, $remarks);
+    }
+    /**
+     * addEvent:
+     * Log an action.
+     * 
+     * @param {String} action  - group/name of event
+     * @param {DataObject|false} obj - dataobject action occured on.
+     * @param {String} any remarks 
+     */
+    
+    function addEvent($act, $obj = false, $remarks = '') 
+    {
+        $au = $this->getAuthUser();
+        $e = DB_DataObject::factory('Events');
+        $e->init($act,$obj,$remarks); 
+         
         $e->event_when = date('Y-m-d H:i:s');
-        $e->ipaddr = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'cli';
-        $e->action = $act;
-        $e->on_table = $obj ? $obj->tableName() : '';
         
-        $pk = $obj ? $obj->keys()  : false;
-    
-        $e->on_id  = $obj && $pk ? $obj->{$pk[0]}: 0;
-        $e->remarks = $remarks;
         $eid = $e->insert();
         $ff  = HTML_FlexyFramework::get();
         if (empty($ff->Pman['event_log_dir'])) {