]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/DBTreeObject.php
Se cambian los die(expr) por trigger_error(expr, E_USER_ERROR) para poder interceptar...
[mecon/ai.git] / lib / AI / DBTreeObject.php
index 71689bc85f7018b4f363dcbb335c3366e40193ad..b322043309fac634c86b56a86b7886471f1012b2 100644 (file)
 // $Id$
 //
 
 // $Id$
 //
 
-// +X2C includes
 require_once 'AI/DBObject.php';
 require_once 'AI/DBObject.php';
-// ~X2C
 
 
-// +X2C Class 524 :AI_DBTreeObject
 /**
  * @package AI
  * @access public
 /**
  * @package AI
  * @access public
@@ -57,30 +54,32 @@ class AI_DBTreeObject extends AI_DBObject {
         return $this->_hijos;
     }
 
         return $this->_hijos;
     }
 
-    // ~X2C
-
-    // +X2C Operation 526
     /**
      * @param  int $id Identificador del objecto.
     /**
      * @param  int $id Identificador del objecto.
-     * @param  string $confFile Configuracin del objeto.
+     * @param  string $confFile Configuración del objeto.
      *
      * @return void
      * @access public
      */
      *
      * @return void
      * @access public
      */
-    function AI_DBTreeObject($id = 0, $confFile = '') // ~X2C
+    function AI_DBTreeObject($id = 0, $confFile = '')
     {
         parent::AI_DBObject($id, $confFile);
     }
     {
         parent::AI_DBObject($id, $confFile);
     }
-    // -X2C
 
 
-    // +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.
+     * @param  string $orden Indica cómo ordenar los hijos cargados.
      *
      *
-     * @return PEAR_Error
+     * @return mixed
      * @access public
      */
      * @access public
      */
-    function cargarHijos($db) // ~X2C
+    function cargarHijos($db, $soloHabilitados = true, $orden = 'nombre')
     {
         $id_field = $this->conf['id'];
         $id_padre = $this->conf['padre'];
     {
         $id_field = $this->conf['id'];
         $id_padre = $this->conf['padre'];
@@ -91,7 +90,14 @@ 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';
+            }
+            if ($orden) {
+                $query .= ' ORDER BY ' . $orden;
+            }
+            $result = $db->query($query);
             if (DB::isError($result)) {
                 return $result;
             }
             if (DB::isError($result)) {
                 return $result;
             }
@@ -107,14 +113,12 @@ class AI_DBTreeObject extends AI_DBObject {
         // Si no hay mas resultados, entonces terminó bien.
         if (AI_Error::isError($err)
                 and $err->getCode() == AI_ERROR_NO_RESULTADOS) {
         // Si no hay mas resultados, entonces terminó bien.
         if (AI_Error::isError($err)
                 and $err->getCode() == AI_ERROR_NO_RESULTADOS) {
-            return true;
+            return $this->_hijos;
         }
         // Si no, se devuelve el error.
         return $err;
     }
         }
         // Si no, se devuelve el error.
         return $err;
     }
-    // -X2C
 
 
-    // +X2C Operation 529
     /**
      * Borra el objeto de la base de datos verificando que no tenga hijos.
      *
     /**
      * Borra el objeto de la base de datos verificando que no tenga hijos.
      *
@@ -123,7 +127,7 @@ class AI_DBTreeObject extends AI_DBObject {
      * @return PEAR_Error
      * @access public
      */
      * @return PEAR_Error
      * @access public
      */
-    function borrar($db) // ~X2C
+    function borrar($db)
     {
                $id_field = $this->conf['id'];
                $id_padre = $this->conf['padre'];
     {
                $id_field = $this->conf['id'];
                $id_padre = $this->conf['padre'];
@@ -148,8 +152,7 @@ class AI_DBTreeObject extends AI_DBObject {
         }
         return PEAR::raiseError('No hay un identificador válido para borrar');
     }
         }
         return PEAR::raiseError('No hay un identificador válido para borrar');
     }
-    // -X2C
 
 
-} // -X2C Class :AI_DBTreeObject
+}
 
 ?>
\ No newline at end of file
 
 ?>
\ No newline at end of file