]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/DBTreeObject.php
Se mejora el link a Nuevo.
[mecon/ai.git] / lib / AI / DBTreeObject.php
index c8752c8ce194066659bfe518ec97fa6dcc6e804c..66f050794c20f79736f1a165f03068d8c1874b57 100644 (file)
@@ -75,12 +75,15 @@ class AI_DBTreeObject extends AI_DBObject {
 
     // +X2C Operation 527
     /**
 
     // +X2C Operation 527
     /**
+     * Carga hijos de un objeto. Si hubo error devuelve un PEAR_Error, si no hubo error, devuleve un array de objetos (los hijos).
+     *
      * @param  mixed $db Base de datos o resultado de donde cargar los hijos.
      * @param  mixed $db Base de datos o resultado de donde cargar los hijos.
+     * @param  bool $soloHabilitados Si es true, se cargan solo los hijos con el flag habilitado.
      *
      *
-     * @return PEAR_Error
+     * @return mixed
      * @access public
      */
      * @access public
      */
-    function cargarHijos($db) // ~X2C
+    function cargarHijos($db, $soloHabilitados = true) // ~X2C
     {
         $id_field = $this->conf['id'];
         $id_padre = $this->conf['padre'];
     {
         $id_field = $this->conf['id'];
         $id_padre = $this->conf['padre'];
@@ -91,7 +94,11 @@ class AI_DBTreeObject extends AI_DBObject {
             $db     = $result->dbh;
         // Si no es un resultado, hago el query.
         } else {
             $db     = $result->dbh;
         // Si no es un resultado, hago el query.
         } else {
-            $result   = $db->query("SELECT * FROM $tabla WHERE $id_padre = $id");
+            $query = "SELECT * FROM $tabla WHERE $id_padre = $id";
+            if ($soloHabilitados) {
+                $query .= ' AND ' . $this->conf['habilitado'] . ' = 1';
+            }
+            $result = $db->query($query);
             if (DB::isError($result)) {
                 return $result;
             }
             if (DB::isError($result)) {
                 return $result;
             }
@@ -106,8 +113,8 @@ class AI_DBTreeObject extends AI_DBObject {
         }
         // Si no hay mas resultados, entonces terminó bien.
         if (AI_Error::isError($err)
         }
         // Si no hay mas resultados, entonces terminó bien.
         if (AI_Error::isError($err)
-                and $err->getCode() == AIERROR_NO_RESULTADOS) {
-            return true;
+                and $err->getCode() == AI_ERROR_NO_RESULTADOS) {
+            return $this->_hijos;
         }
         // Si no, se devuelve el error.
         return $err;
         }
         // Si no, se devuelve el error.
         return $err;