Facebook Fanpage


  • Enviar formulario con ajax jquery

    En el siguiente ejemplo, os mostraré como enviar un formulario vía AJAX, este proceso facilitará las consultas necesarias a PHP, todo ello...
  • Descifrando la Seguridad: El Fascinante Mundo de los Criptosistemas de Clave Pública

    Entrada 1: La Revolución de la Criptografía Asimétrica¿Alguna vez te has preguntado cómo puedes enviar información confidencial a través de internet...
  • Cómo configurar un servidor FTP sobre CentOS 7

    Instalación y puesta en marcha de vsftpd Instalar vsftpd en CentOS 7 es sencillo, en esta versión todavía se sigue usando Yum, el gestor de...
  • Oracle Dumpdir – Import, Export y el uso de Directorios.

    Oracle Dumpdir  Import, Export y el uso de Directorios. Cuando tenemos diferentes objetos de la base, ya sea una tabla, datos, etc y...
  • Solución a ORA-65096: invalid common user or role name en Oracle

    Solución a ORA-65096: invalid common user or role name en Oracle Hola a todos, hoy explicaré como solucionar un problema común en Oracle al...
  • Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva

    Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva Por defecto, en el FTP de una web los permisos deben ser los siguientes:...
  • Publicar aplicación WAR/JSP/SERVLET/TOMCAT/MYSQL en servidor dedicado/vps cPanel

    Publicar aplicación war con conexión a mysql.1. Ingresar al cPanel2. En la opción "Mysql Bases de datos", crear una base de datos, un usuario de...
  • Generar jar con NetBeans incluyendo Bibliotecas Externas Java

    Hola amigos, después de buscar un poco acerca de como incluir las librerías que utilizamos en nuestros proyectos Java...
  • Subir imagen al servidor con Yii Framework y eliminar imagenes del servidor

    En esta ocacion les traigo la manera de como subir imagenes al servidor y una ves subidas las imagenes como eliminarlas del servidor, este ejemplo es...
  • crear host virtual

    Cómo crear un VirtualHost en ubuntu y apache En este post veremos qué es y cómo crear un virtual host utilizando ubuntu y apache. ¿Qué es un...
  • Enviar formulario con ajax jquery

    En el siguiente ejemplo, os mostraré como enviar un formulario vía AJAX, este proceso facilitará las consultas necesarias a PHP, todo ello...
  • Descifrando la Seguridad: El Fascinante Mundo de los Criptosistemas de Clave Pública

    Entrada 1: La Revolución de la Criptografía Asimétrica¿Alguna vez te has preguntado cómo puedes enviar información confidencial a través de internet...
Previous Next

martes, 23 de octubre de 2012

Como hacer que Yii reconozca modulos automaticamente


Escenario :
Necesitamos que la aplicacion al cargar, reconozca los modulos que tenga incluido, mas los modulos que puedan tener estos otros modulos.

¿Que debemos hacer?

En el fichero de inicio de la aplicacion (index.php) sustituí
Yii::createWebApplication($config)->run();
por

Código PHP:
class VRSTWebApplication extends CWebApplication{public function __construct($config=null){parent::__construct($config);
$this->_configurarModulosAplicacion();}
private function _configurarModulosAplicacion(){$modulos=array();$mods=AyudaModulo::modulosExistentes(realpath(Yii::app()->basePath . DIRECTORY_SEPARATOR . 'modules'));foreach($mods as $mod) {$this->setImport(array('application.modules.'.$mod.'.models.*','application.modules.'.$mod.'.components.*',));$this->setModules(array($mod=>array('id'=>$mod)));
$modulo=$this->getModule($mod);}}
}$webApp=new VRSTWebApplication($config);$webApp->run();




Esto para detectar los modulos que existen dentro de la carpeta protected/modules y configurarselos a la aplicacion.
La linea $modulo=$this->getModule($mod); me sirve para que cada modulo configurado al cargarse tambien "recargue" los modulos que tenga dentro.
Para esto cree una clase que hereda de CWebModule y pongo todos mis modulos a heredar de ella.

Esta clase tiene un metodo que se se encarga de cargar los modulos interiores, este es el codigo:




Código PHP:
private function _configurarModulosComponentes(){$this->setImport(array($this->id.'.models.*',$this->id.'.components.*',));
$mods=AyudaModulo::modulosExistentes($this->modulePath);foreach($mods as $mod) {$strMod=strtolower($mod);$this->setImport(array($this->id.'.'.$strMod.'.models.*',$this->id.'.'.$strMod.'.components.*',));
$this->setModules(array($strMod=>array('id'=>$strMod)));$modulo=$this->getModule($strMod);}}



Como resolver lo del usuario?
En esta misma clase redefinír el metodo:



Código PHP:
public function beforeControllerAction($controller, $action){if(parent::beforeControllerAction($controller, $action)){if ((Yii::app()->session['usuarioNombre']=='')||(Yii::app()->session['usuarioClave']=='')){$controller->redirect(Yii::app()->homeUrl);}if (Yii::app()->user->isGuest){$LoginForm = new LoginForm;$LoginForm->username = Yii::app()->session['usuarioNombre'];$LoginForm->password = Yii::app()->session['usuarioClave'];$LoginForm->login();}
return true;}elsereturn false;}


Basicamente lo que se hace es preguntar por dos variables de sesión, usuarioNombre y usuarioClave, si estan vacias redirecciono para homeUrl, si no entonces creo un nuevo modelo LoginForm y hago Login.




0 comentarios:

Publicar un comentario