Hola muchas gracias, ese tema esta solucionado había cometido un error en la carpeta "Plugins", había puesto "Plugin" :(.
Pero ahora tengo otro... la idea es esta para que se entienda:
El plugin detecta si hay un usuario logueado, llama a la vista y llena una variable de la misma (la vista), dicha variable es recogida por un view helper, si la variable esta llena, quiere decir que el usuario está logueado, sino muestra un formulario.
El problema es que no muestra nada, en el lugar que debiera ir el nombre de usuario o el form, aparece en blanco.
Aqui les pongo el plugin y el view helper a ver si es la forma correcta o hay otra forma mejor.
El plugin:
Código PHP:
Ver originalclass Mis_Plugins_DetectaUser extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$auto=Zend_Auth::getInstance();
if($auto->hasIdentity()){
$hayusuario = $auto->getIdentity()->usuario;
$hayrole = $auto->getIdentity()->role;
$ViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$ViewRenderer->initView();
$ViewRenderer->view->usuoformu = $hayusuario;
}
else {
$ViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$ViewRenderer->initView();
$ViewRenderer->view->usuoformu ="";
}
}
}
El view helper:
Código PHP:
Ver originalclass App_Helper_Usuform extends Zend_View_Helper_Abstract{
public function usuform(){
$aiusu = $this->view->usuoformu;
echo"<span id='formul'>Usuario:".$aiusu." || <a href='/index/logout'> Logout</a> </span>";
}
else{
$form="\n<table border=0>\n";
$form.="<form id='formul' method='post' action='/index/login'>\n";
$form.="<tr><td>Nombre: <input type=text name=\"nombre\" size=9></td>\n";
$form.="<td>Clave: <input type=password name=\"clave\" size=9></td>\n";
$form.="<td><input type=submit value=enviar></td></tr></form>\n";
$form.="</table>\n";
return $form;
}
}
}
Como ven la variable "usuoformu" se genera en el plugin y la recoge el view helper si esta vacia debería mostrar el formulario, sino el nombre de usaurio.
Saludos.