VN:F [1.9.22_1171]
Rating: 4.8/5 (2 votes cast)
Mensajes al usuario
Habiendo visto la primera parte de esta serie Extendiendo el sfActions de Symfony con el primer artículo, en el que vimos básicamente las primeras configuraciones que deberíamos hacer creando una clase BaseActions que extendiera de sfActions y haciendo que nuestros actions extiendan directamente de nuestra clase base, ahora podemos pasar a ver un ejemplo muy frecuente de uso, basándonos sobre el objeto myUser del cual hablamos en la serie Personalizando el objeto sfUser de Symfony.
Lo que hicimos en el myUser fue básicamente, para recordar, un método que permitiría cargar dentro del objeto Flash los mensajes de INFO, WARN y ERROR para los usuarios. Nos quedó algo así:
–>/apps/frontend/lib/myUser.class.php
class myUser extends sfBasicSecurityUser
{
const INFO_MESSAGE = 'infoMessages';
const WARNING_MESSAGE = 'warnMessages';
const ERROR_MESSAGE = 'errorMessages';
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
// METODOS PARA MANEJO DE MENSAJES FLASH
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
/**
* Agrega mensajes al FLASH del objeto sfUser creando un array por cada tipo
* de mensaje (myUser::INFO_MESSAGE, myUser::WARNING_MESSAGE, myUser::ERROR_MESSAGE).
* El mensaje $msg será agregado al nivel correspondiente que por defecto será el INFO
* @param string $msg
* @param string $level
*/
public function addMessage($msg, $level = myUser::INFO_MESSAGE)
{
//-- Obtengo el array almacenado, en caso de no existir retorna una array vacío
$flashContent = $this->getFlash($level, array());
//-- Controla si ya existe un mensaje igual para no insertarlo repetido
if(!in_array($msg, $flashContent))
{
//- Agrego el mensaje enviado en la siguiente posición disponible del array
$flashContent[] = $msg;
//-- Seteo el array al Flash nuevamente
$this->setFlash($level, $flashContent);
}
}
}
Ahora podemos ingresar desde nuestros actions directamente así:
Leer mas