// $Id$
//
-// +X2C includes
require_once 'AI/DBTreeObject.php';
-// ~X2C
-
require_once 'AI/Error.php';
/**
*/
define('AI_SERVICIO_ORDEN_LONG_NOMBRE', 2);
-// +X2C Class 413 :AI_Servicio
/**
* Servicio.
*
*/
var $habilitado = true;
- // ~X2C
+ /**
+ * Indica si debe abrirse en una ventana nueva.
+ *
+ * @var bool $ventana_nueva
+ * @access public
+ */
+ var $ventana_nueva = false;
- // +X2C Operation 465
/**
* @param int $servicio ID del servicio.
*
* @return void
* @access public
*/
- function AI_Servicio($servicio = 0) // ~X2C
+ function AI_Servicio($servicio = 0)
{
parent::AI_DBTreeObject($servicio, AI_SERVICIO_CONFFILE);
}
- // -X2C
- // +X2C Operation 458
/**
* @param DB $db DB donde guardar.
- * @param bool $nuevo Si es true, se fuerza a guardar el Servicio como nuevo.
+ * @param bool $nuevo Si es true, se fuerza a guardar el Servicio como
+ * nuevo.
*
* @return PEAR_Error
* @access public
*/
- function guardar($db, $nuevo = false) // ~X2C
+ function guardar($db, $nuevo = false)
{
$datos = array(
'servicio_padre' => intval($this->servicio_padre),
'link_ayuda' => $this->link_ayuda,
'necesita_logueo' => $this->necesita_logueo ? 1 : 0,
'habilitado' => $this->habilitado ? 1 : 0,
+ 'ventana_nueva' => $this->ventana_nueva ? 1 : 0,
);
$err = parent::guardar($db, $datos, $nuevo);
if (PEAR::isError($err)) {
return $err;
}
}
- // -X2C
- // +X2C Operation 539
/**
- * Carga hijos de un servicio. Si hubo error devuelve un PEAR_Error, si no hubo error, devuleve un array de objetos (los hijos).
+ * Carga hijos de un servicio.
+ * 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 a usar.
- * @param bool $soloHabilitados Si es true, sólo trae los servicios habilitados.
- * @param mixed $orden Indica el orden en que se deben traer los hijos. Puede ser AI_SERVICIO_ORDEN_CANT_HIJOS, AI_SERVICIO_ORDEN_LONG_NOMBRE o un campo arbitrario.
+ * @param bool $soloHabilitados Si es true, sólo trae los servicios
+ * habilitados.
+ * @param mixed $orden Indica el orden en que se deben traer los hijos.
+ * Puede ser AI_SERVICIO_ORDEN_CANT_HIJOS,
+ * AI_SERVICIO_ORDEN_LONG_NOMBRE o un campo
+ * arbitrario.
*
* @return mixed
* @access public
*/
- function cargarHijos($db, $soloHabilitados = true, $orden = false) // ~X2C
+ function cargarHijos($db, $soloHabilitados = true, $orden = false)
{
if (!is_a($db, 'db_result')) {
if (is_int($orden)) {
$id = intval($this->$id_field);
if ($orden === AI_SERVICIO_ORDEN_LONG_HIJOS) {
$query = "
- SELECT A.*, SUM(CEIL(LENGTH(B.nombre) / 22)) as RENGLONES
+ SELECT
+ A.*,
+ count(1) as COUNT,
+ SUM(CEIL(LENGTH(B.nombre) / 22)) as RENGLONES
FROM {$this->conf['base']}.{$this->conf['tabla']} AS A,
{$this->conf['base']}.{$this->conf['tabla']} AS B
WHERE A.$id_field = B.$id_padre
if ($soloHabilitados) {
$query .= " AND A.{$this->conf['habilitado']} = 1";
}
- $query .= " GROUP BY A.$id_field ORDER BY RENGLONES DESC";
+ $query .= "
+ GROUP BY A.$id_field
+ ORDER BY RENGLONES DESC, COUNT DESC, A.nombre";
} elseif ($orden === AI_SERVICIO_ORDEN_LONG_NOMBRE) {
$query = "
SELECT *
}
return parent::cargarHijos($db, $soloHabilitados, $orden);
}
- // -X2C
-} // -X2C Class :AI_Servicio
+}
?>
\ No newline at end of file