Creación de Portlet Menú de Usuarios ==================================== Basados en el análisis de requerimientos, necesitamos tres portlets diferentes: el portlet de "menú de usuario", el portlet de "nube de etiquetas" y el portlet de "comentarios recientes". Vamos a desarrollar estos portlets extendiendo el widget [CPortlet] que provee Yii. En esta sección, vamos a desarrollar nuestro primer portlet concreto - el portlet de menú de usuario que despliega una lista de items de menú que son accesibles solamente a usuarios autenticados. El menú contiene cuatro items: * Comentarios aprobados: un hipervínculo que lleva a una lista de comentarios pendientes de aprobación; * Crear Nuevo Post: un hipervínculo que lleva a la página de creación de un post; * Gestionar Posts: un hipervínculo que lleva a la página de gestión de posts; * Logout: un botón que hace el logout del usuario actual. Creando la clase `UserMenu` --------------------------- Creamos la clase `UserMenu` para representar la parte lógica del portlet de menú de usuario. La clase es guardada en el archivo `/wwwroot/blog/protected/components/UserMenu.php` con el siguiente contenido: ~~~ [php] Yii::import('zii.widgets.CPortlet'); class UserMenu extends CPortlet { public function init() { $this->title=CHtml::encode(Yii::app()->user->name); parent::init(); } protected function renderContent() { $this->render('userMenu'); } } ~~~ La clase `UserMenu` extiende de la clase `CPortlet` desde la librería `zii`. Sobrecarga los métodos `init()` y `renderContent()` de `CPortlet`. El primero configura el título del portlet para que sea el nombre del usuario actual; el segundo genera el cuerpo del portlet mostrando una vista llamada `userMenu`. > Tip|Consejo: Notar que debemos incluir explícitamente la clase `CPortlet` llamando a `Yii::import()` antes de que hagamos referencia por primera vez. Esto se debe a que `CPortlet` es parte del project `zii` -- la librería oficial de extensiones para Yii. Por cuestiones de rendimiento, las clases en este proyecto no son listadas como clases del núcleo. Por ello, debemos importarla antes de usarla por primera vez. Creando la vista `userMenu` --------------------------- Luego, creamos la vista `userMenu` que es guardada en el archivo `/wwwroot/blog/protected/components/views/userMenu.php`: ~~~ [php]