// $Id$
//
-// +X2C includes
require_once 'AI/DBObject.php';
-// ~X2C
-// +X2C Class 524 :AI_DBTreeObject
/**
* @package AI
* @access public
return $this->_hijos;
}
- // ~X2C
-
- // +X2C Operation 526
/**
* @param int $id Identificador del objecto.
- * @param string $confFile Configuracin del objeto.
+ * @param string $confFile Configuración del objeto.
*
* @return void
* @access public
*/
- function AI_DBTreeObject($id = 0, $confFile = '') // ~X2C
+ function AI_DBTreeObject($id = 0, $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 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
*/
- function cargarHijos($db) // ~X2C
+ function cargarHijos($db, $soloHabilitados = true, $orden = 'nombre')
{
$id_field = $this->conf['id'];
$id_padre = $this->conf['padre'];
$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;
}
// 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;
}
- // -X2C
- // +X2C Operation 529
/**
* Borra el objeto de la base de datos verificando que no tenga hijos.
*
* @return PEAR_Error
* @access public
*/
- function borrar($db) // ~X2C
+ function borrar($db)
{
$id_field = $this->conf['id'];
$id_padre = $this->conf['padre'];
}
return PEAR::raiseError('No hay un identificador válido para borrar');
}
- // -X2C
-} // -X2C Class :AI_DBTreeObject
+}
?>
\ No newline at end of file