Menú contextual
Si hay menús dinámicos (ver sección correspondiente) y dependen de los contextos seleccionados, lo mejor es controlar los contextos lo más
temprano posible. El mejor lugar es sobrecargar _init() dentro de Abs_AppController, que es una clase abstracta destinada justo a estos
fines que extiende Abs_AdmController.
Ejemplo: añadir contexto del tipo his (historias clínicas) usando la forma:
http://URL/actxt/his/ID
y quitarlo usando
http://URL/dctxt/his/ID
Se haría:
public function _init()
{
// Atender peticiones de contexto
if ($this->_segment(0) == 'actxt') { // actxt es para añadir/cambiar el contexto
$type = $this->_segment(1);
if ($type != '') {
switch ($type) {
case 'his': // type=his ==> historiales
{
$idHis = (int)\zfx\PKView::unpack($this->_segment(2), 'id');
if ($idHis > 0) {
$nombrePaciente = Historias::obtNombrePaciente($idHis);
ADMContext::add(new ADMContext('his', "HC:", $nombrePaciente, $idHis,
$this->_urlController() . 'dctxt/his'));
}
}
}
}
} elseif ($this->_segment(0) == 'dctxt') { // dctxt es para quitar el contexto
$type = $this->_segment(1);
if ($type != '') {
ADMContext::del($type);
}
}
parent::_init();
}