Bonjour à tous, c'est encore moi (désolé d'avance ^^)
J'ai une nouvelle petite question qui concerne comme le titre l'indique les conditions et les foreach.
En fait dans mon admin_index de users j'aimerai différencier certain type d'user de la manière suivante:

Puisqu'ils sont dans un tableau je voudrais ajouter un background-color à la ligne et un espace entre les types par exemple si j'ai 3 admin 2 users et 3 modos :

en rouge : Admin
Admin
Admin

En orange: User
User

En jaune : Modo
Modo
Modo

Voilà alors j'ai tenté un truc de ce style dans mon foreach

<?php foreach($users as $k=>$v): $v = current($v); ?>
<php if($v'role'] = 'user'): ?>
<php echo $this->Html->style(array('background-color' => '#Macouleur','margin-bottom' => '50px')); ?>
    <tr>
        <td><?php echo $v'id']; ?></td>
        <td><?php echo $v'username']; ?></td>
        <td><?php echo $v'role']; ?></td>
        <td>
            <?php echo $this->Html->link("Editer", array('action'=>'edit',$v'id']),array('style'=>'color:#3fbcef;text-decoration:underline')); ?> /  
            <?php echo $this->Html->link("Supprimer", array('action'=>'delete',$v'id']),array('style'=>'color:#df0024;text-decoration:underline'),'Voulez vous vraiment supprimer cet utilisateur ?'); ?>
        </td>
    </tr>
<php endif; ?>
    <?php endforeach; ?>

Evidemment ça ne fonctionne pas ;) Je pense bien que ce n'est pas comme ça qu'on doit procéder mais alors comment ? ^^

2 réponses


Maenhyr
Réponse acceptée

Salut,
j'aurais fais un truc similaire à ça :

<?php foreach($users as $k=>$v): $v = current($v); ?>
    <tr class="row-<?php echo v'role'];?>">
        <td><?php echo $v'id']; ?></td>
        <td><?php echo $v'username']; ?></td>
        <td><?php echo $v'role']; ?></td>
        <td>
            <?php echo $this->Html->link("Editer", array('action'=>'edit',$v'id']),array('style'=>'color:#3fbcef;text-decoration:underline')); ?> /  
            <?php echo $this->Html->link("Supprimer", array('action'=>'delete',$v'id']),array('style'=>'color:#df0024;text-decoration:underline'),'Voulez vous vraiment supprimer cet utilisateur ?'); ?>
        </td>
    </tr>
    <?php endforeach; ?>

.row-user td {
 background-color: #aabbcc;
}
.row-modo td {
 background-color: #bbccdd;
}
.row-admin td {
 background-color: #ccddee;
}

Cela permet de découper le code html qui permet la structure du site et le CSS qui permet le design. Et ça permet de gagner en simplicité en enlevant les if/else.

SwithFr
Auteur

C'est en effet une solution à laquelle je n'avais pas pensé et qui est tout à fait correct ;) Merci beaucoup pour ton aide.