remove debug
[Pman.Base] / Pman / Roo.php
index a173d24..8aa0a70 100644 (file)
@@ -13,7 +13,7 @@ require_once 'Pman.php';
  * 
  * - applySort($au, $sortcol, $direction, $array_of_columns, $multisort) -- does not support multisort at present..
  * - applyFilters($_REQUEST, $authUser, $roo) -- apply any query filters on data. and hide stuff not to be seen. (RETURN false to prevent default filters.)
- * - postListExtra($_REQUEST) : array(extra_name => data) - add extra column data on the results (like new messages etc.)
+ * - postListExtra($_REQUEST, $roo, $array_data) : array(extra_name => data) - add extra column data on the results (like new messages etc.)
  * - postListFilter($data, $authUser, $request) return $data - add extra data to an object
  * 
  * - toRooSingleArray($authUser, $request) // single fetch, add data..
@@ -25,7 +25,7 @@ require_once 'Pman.php';
  *      ... call $roo->jerr() on failure...
  *
  *  BEFORE
- * - beforeDelete($dependants_array, $roo) Argument is an array of un-find/fetched dependant items.
+ * - beforeDelete($dependants_array, $roo, $request) Argument is an array of un-find/fetched dependant items.
  *                      - jerr() will stop insert.. (Prefered)
  *                      - return false for fail and set DO->err;
  * - beforeUpdate($old, $request,$roo) - after update - jerr() will stop insert..
@@ -36,9 +36,7 @@ require_once 'Pman.php';
  * - onInsert($request,$roo, $event) - after insert
  * - onDelete($req, $roo) - after delete
  * - onUpload($roo)
- * 
- * 
+ *  
  * - toEventString (for logging - this is generically prefixed to all database operations.)
  */
 
@@ -142,7 +140,7 @@ class Pman_Roo extends Pman
      *   applyFilters($_REQUEST, $authUser, $roo)
      *                     -- apply any query filters on data. and hide stuff not to be seen.
      *                     -- can exit by calling $roo->jerr()
-     *   postListExtra($_REQUEST) : array(extra_name => data)
+     *   postListExtra($_REQUEST, $roo, $array_data) : array(extra_name => data)
      *                     - add extra column data on the results (like new messages etc.)
      *   postListFilter($data, $authUser, $request) return $data
      *                      - add extra data to an object
@@ -243,11 +241,12 @@ class Pman_Roo extends Pman
        
         // sets map and countWhat
         $this->loadMap($x, array(
-            'columns' => $_columns,
-            'distinct' => empty($_REQUEST['_distinct']) ? false:  $_REQUEST['_distinct'],
-            'exclude' => empty($_REQUEST['_exclude_columns']) ? false:  explode(',', $_REQUEST['_exclude_columns'])
+                'columns' => $_columns,
+                'distinct' => empty($_REQUEST['_distinct']) ? false:  $_REQUEST['_distinct'],
+                'exclude' => empty($_REQUEST['_exclude_columns']) ? false:  explode(',', $_REQUEST['_exclude_columns'])
         ));
-         
+        
+        
         $this->setFilters($x,$_REQUEST);
         
         if (!$this->checkPerm($x,'S', $_REQUEST))  {
@@ -259,8 +258,13 @@ class Pman_Roo extends Pman
           //DB_DataObject::debugLevel(1);
         // count with multiple joins and no conditions can be quite slow - so if there are no conditions - just remove the joins from the count.
         $xx = clone($x);
-        if (empty($xx->_query['condition']) && !empty($xx->_join)) {
+        $old_where = $x->whereAdd();
+        if (empty($old_where )) {
             $xx->_join = '';
+        } else {
+            $x->whereAdd($old_where);
+            $xx=clone($x);
+            
         }
        
         $total = $xx->count($this->countWhat);
@@ -328,7 +332,7 @@ class Pman_Roo extends Pman
         
         $extra = false;
         if (method_exists($queryObj ,'postListExtra')) {
-            $extra = $queryObj->postListExtra($_REQUEST, $this);
+            $extra = $queryObj->postListExtra($_REQUEST, $this, $ret);
         }
         
         
@@ -348,12 +352,6 @@ class Pman_Roo extends Pman
             
         
         }
-        //die("DONE?");
-      
-        //if ($x->tableName() == 'Documents_Tracking') {
-        //    $ret = $this->replaceSubject(&$ret, 'doc_id_subject');
-       // }
-        
         
         
         if (!empty($_REQUEST['_requestMeta']) &&  count($ret)) {
@@ -763,12 +761,12 @@ class Pman_Roo extends Pman
                     $ms ? json_decode($ms) : false
             );
         }
+        
         if ($ms !== false) {
             return $this->multiSort($x);
         }
-        
         if ($sorted === false) {
-            
             $cols = $x->tableColumns();
             $excols = array_keys($this->cols);
             
@@ -910,7 +908,6 @@ class Pman_Roo extends Pman
         if (method_exists($x, 'toRooArray')) {
             $this->jok($x->toRooArray($req));
         }
-        
         $this->jok($x->toArray());
         
         
@@ -918,7 +915,7 @@ class Pman_Roo extends Pman
     
     function insert($x, $req, $with_perm_check = true)
     {
-        if (method_exists($x, 'setFromRoo')) {
+         if (method_exists($x, 'setFromRoo')) {
             $res = $x->setFromRoo($req, $this);
             if (is_string($res)) {
                 $this->jerr($res);
@@ -926,7 +923,7 @@ class Pman_Roo extends Pman
         } else {
             $x->setFrom($req);
         }
-        
+
         if ( $with_perm_check &&  !$this->checkPerm($x,'A', $req))  {
             $this->jerr("PERMISSION DENIED (i)");
         }
@@ -980,7 +977,7 @@ class Pman_Roo extends Pman
         if ($ev) { 
             $ev->audit($x);
         }
-        
+      
         // note setFrom might handle this before hand...!??!
         if (!empty($_FILES) && method_exists($x, 'onUpload')) {
             $x->onUpload($this, $_REQUEST);
@@ -1240,7 +1237,7 @@ class Pman_Roo extends Pman
             $match_total = 0;
             
             if ( $has_beforeDelete ) {
-                if ($xx->beforeDelete($match_ar, $this) === false) {
+                if ($xx->beforeDelete($match_ar, $this, $_REQUEST) === false) {
                     $errs[] = "Delete failed ({$xx->id})\n".
                         (isset($xx->err) ? $xx->err : '');
                     continue;