Sino otra manera es usar requestAction(), y renderElement(), entonces en tu
layout tenés (5 es el ID de usuario, supongo que ya lo tendrás en alguna
variable en el layout):

<?php echo $this->renderElement('user_menu', array('user' => 5)); ?>

Luego en app/views/elements/user_menu.ctp tenés:

<?php $menu = $this->requestAction('/users/menu/' . $user); ?>
<?php foreach($menu as $option): ?>
        <?php echo $html->link($option['text'], $option['url']); ?>
<?php endforeach; ?>

Luego en el controlador UsersController tenés:

function menu($user_id) {
        if (isset($this->params['requested'])) {
                $menu = array();

                $menu[] = array(
                        'text' => 'Home',
                        'url' => '/'
                );

                if ($user_id > 0) {
                        $menu[] = array(
                                'text' => 'My Account',
                                'url' => '/users/edit/' . $user_id
                        );
                }

                return $menu;
        }

        $this->redirect('/');
}

Esa es la manera más "Cake", porque el trabajo de construir el menú
dependiendo del usuario queda en manos del controlador de usuarios. Y quién
mejor para saber qué le corresponde a cada usuario que justamente el
controlador de usuarios. Para explorar más sobre el tema de utilizar
requestAction() leete lo que el amigo gwoo escribió:
http://bakery.cakephp.org/articles/view/342

Sin embargo, una manera más rápida (y menos "fashion" ;) es hacerlo en el
beforeRender de AppController:

class AppController extends Controller {
        function beforeRender() {
                $menu = array();

                $menu[] = array(
                        'text' => 'Home',
                        'url' => '/'
                );

                if (isset($this->user)) {
                        $menu[] = array(
                                'text' => 'My Account',
                                'url' => '/users/edit/' . $user_id
                        );
                }

                $this->set('menu', $menu);
        }
}

Entonces allí la variable $menu ya te queda disponible para ser usada en el
layout.

-MI

---------------------------------------------------------------------------

Remember, smart coders answer ten questions for every question they ask. 
So be smart, be cool, and share your knowledge. 

BAKE ON!

blog: http://www.MarianoIglesias.com.ar


-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En
nombre de ricardofloyd
Enviado el: Viernes, 20 de Abril de 2007 09:56 a.m.
Para: CakePHP-es
Asunto: Re: Menú en función del tipo de usuario

Hola, tambien lo que puedes hacer es crar una vista de menu como te
sea util para ti mismo, luego crar usuarios en la base y realizar una
autentificacion, una ves que te resulte tu autentificacion ocupa la
function logout mejor te lo demuiestro con ejemplos.


--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a