*/
function iniciar(&$obj, $accion = AI_ALTA) // ~X2C
{
+ # FIXME - Tomar la db desde afuera.
+ $db = AI_DB::connect('../conf/DB.ini');
$tipo = substr(get_class($obj), 3);
$s_tipo = ucfirst($tipo);
if ($tipo == 'gruposecciones') {
// Elementos.
if ($tipo == 'sistema') {
require_once 'SAMURAI/Sistema.php';
- $sistemas = SAMURAI_Sistema::getArraySistemas(AI_DB::connect('../conf/DB.ini'));
- $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
+ $sistemas = array('' => '--');
+ $cargados = AI_Sistema::getSistemasArray($db);
+ foreach (SAMURAI_Sistema::getArraySistemas($db) as $id => $nom) {
+ if (!in_array($id, $cargados)
+ or ($accion & (AI_BAJA | AI_MODIF) and $id == $obj->$tipo)) {
+ $sistemas[$id] = $nom;
+ }
+ }
+ $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
+ $this->addRule($tipo, 'Debe ingresar un sistema.', 'required');
}
if ($accion & (AI_BAJA | AI_MODIF)) {
if ($tipo == 'sistema') {
$fId->freeze();
}
if ($tipo == 'grupo' or $tipo == 'servicio') {
- $tipos = array('' => '--', '0' => 'Página Principal') +
- arbol2array(AI_DB::connect('../conf/DB.ini'),
- ($tipo == 'grupo') ? 'grupo_secciones' : $tipo, 0, $tipo, 'nombre',
- $tipo . '_padre');
+ $tipos = array('' => '--', '0' => 'Página Principal')
+ + arbol2array($db, ($tipo == 'grupo') ? 'grupo_secciones' : $tipo,
+ 0, $tipo, 'nombre', $tipo . '_padre', 'ASC');
+ // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo).
+ if ($accion & (AI_BAJA | AI_MODIF)) {
+ unset($tipos[$obj->$tipo]);
+ }
$fPadre =& $this->addElement('select', $padre, 'Padre', $tipos);
$fNombre =& $this->addElement('text', 'nombre', 'Nombre');
// Validación.
$fAntiguedad =& $this->addElement('select', 'antiguedad', 'Antigüedad',
array(3 => '3 días', 1 => '1 día', 7 => '1 semana'));
$fSecciones =& $this->addElement('select', 'secciones', 'Secciones',
- AI_GrupoSecciones::getSeccionesArray(),
- array('multiple' => 'multiple', 'size' => 5));
+ AI_GrupoSecciones::getSeccionesArray($db),
+ array('multiple' => 'multiple', 'size' => 8));
$fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos');
// Validación.
$this->addRule('antiguedad', 'La antigüedad debe ser un número natural.',