Condition d'affichage d'élément du menu

Par cafreunion, il y a 12 ans


Bonjour,

En suivant les tutoriel sur cakephp, j'ai un menu pour mon projet et je souhaiterais dans le cas d'une connexion d'un utilisateur que le lien administration ne s'affiche pas.
Dans ma base de donnée j'ai un champs : role (user ou admin)

ci dessous mon menu

<?php $pages = $this->requestAction(array('controller'=>'pages', 'action'=>'menu','admin'=>false)); ?>
            <li><?php echo $this->Html->link('News',array('controller'=>'posts','action'=>'index'));?></li>
            <li><?php echo $this->Html->link('Diverstissement',array('controller'=>'games','action'=>'index'));?></li>
            <li><?php echo $this->Html->link('Galerie',array('controller'=>'galleries','action'=>'index'));?></li>
        <?php if(AuthComponent::user('id')):?>
            <li><?php echo $this->Html->link('Mon compte',array('controller'=>'users','action'=>'profil','admin'=>false));?></li>       

            <li><?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>

            <li><?php echo $this->Html->link("Se déconnecter",array('controller'=>'users','action'=>'logout'));?></li>

        <?php else:?>
            <li><?php echo $this->Html->link("S'inscrire",array('controller'=>'users','action'=>'signup'));?></li>
            <li><?php echo $this->Html->link("Se connecter",array('controller'=>'users','action'=>'login'));?></li>
        <?php endif ;?>

comment je pourrais faire.

Pour l'instant que ce soit un user ou admin les lien s'affiche par contre on,peux pas acceder a partir de celui-ci

Je veux masqué ce lien :
Si c'est un user : le lien administration ne doit pas s'afficher
si c'est un admin : le lien s'affiche

merci de votre aide

Cafreunion

7 réponses

cafreunion, il y a 12 ans

Bonjour,

Merci pour cette réponse c'es justement ce que je voulais

Cafreunion

Digikube, il y a 12 ans

Tu peux utiliser :

<?php if(AuthComponent::user('role') == 'admin') { ?>
cafreunion, il y a 12 ans

Re,

J'ai déja cette ligne qui vérifié s'il y a une identification

<?php if(AuthComponent::user('id')):?>

Est t'il possible de mettre une deuxième condition et comment

Merci de votre réponse

Cafreunion

antho07, il y a 12 ans

Bonjour

if( (cond1) && (cond2) && (cond3) ) {
...
}

on passe dans le if si les 3 conditions sont réalisés en même temps (ET logique)

Si tu veux le "ou logique") le symbole c'est ||

if( (cond1) || (cond2) ) {
...
}

Je sais pas si cela répond à ta question ..

cordialement

Antho

cafreunion, il y a 12 ans

Bonjour, Merci de votre régonse mais j'ai déja un If qui test si la personne est identifié voir ci-dessous [code]<?php if(AuthComponent::user('id')):?> code] Je voulais inclure une condition qui se base aussi sur le rôle de l'utilisateur, comme j'utilise le composant AUTH je vois pas trop comment le faire. Dois-je intégré la seconde condition dasn AUTH ou faire autrement A ce niveau je vois pas trop comment proceder a part de faire deux menu un pour les utilisateur normaux et l'autre pour l'administrateur. Ce qui dupliquera mon menu ce qui pourais me donner un truc de ce genre [code]<?php <?php $pages = $this->requestAction(array('controller'=>'pages', 'action'=>'menu','admin'=>false)); ?>

  • <?php echo $this->Html->link('News',array('controller'=>'posts','action'=>'index'));?>
  • <?php echo $this->Html->link('Diverstissement',array('controller'=>'games','action'=>'index'));?>
  • <?php echo $this->Html->link('Galerie',array('controller'=>'galleries','action'=>'index'));?>
    <?php if(AuthComponent::user('id')):?><if user><?php echo $this->Html->link('Mon compte',array('controller'=>'users','action'=>'profil','admin'=>false));?>

    }else{

    <li>
    <?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>
    }

    <li>
    <?php echo $this->Html->link("Se déconnecter",array('controller'=>'users','action'=>'logout'));?></li>

    <?php else:?>

<li>
<?php echo $this->Html->link("S'inscrire",array('controller'=>'users','action'=>'signup'));?></li>

<li>
<?php echo $this->Html->link("Se connecter",array('controller'=>'users','action'=>'login'));?></li>

<?php endif ;?>
?>[code]

Pour l'instant j'ai pas pu tester car je suis au taf

Merci de votre aide

Cafreunion

</if>

antho07, il y a 12 ans

Bonjour, t'utilise la session aussi?

ker0x, il y a 12 ans

Rajoute simplement une condition sur ton lien d'administration :

<?php if(AuthComponent::user('role') == 'admin'): ?>
    <li><?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>
<?php endif; ?>

Bien sur, cette solution suppose que tu aies un champ role dans ta table users !