18/09/2012, 17:36:44
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.2
#~ Url du site :
#~ Hébergeur / Soft : OVH Perso
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
J'ai pour objectif de réaliser un répertoire des utilisateurs, qui sont des professionnels de santé et qui souhaiteraient pouvoir se retrouver sur le site par secteur d'intervention.
Facile ! Il suffit de créer une propriété (menu déroulant) dans FEU nommée "secteur" par exemple et avec CGUserdirectory de trier les membres selon cette propriété. C'est ce que j'ai fait. Mais j'ai un soucis qui me gêne. Un simple détail pour certains. Sûrement. Mais pas pour moi.
Je souhaite qu'il y ait marqué pour un utilisateur travaillant dans le secteur "Recherche" :
Julien BERNARD (Recherche)
C'est à dire en terme CMSMS :
Code :
{$oneuser.username} ({$oneuser.properties.secteur})
Pour commencer, j''ai donc créé une propriété, au format menu déroulant nommée "secteur", la voici :
Code :
Addictions et post-cure
Education spécialisée (enfants)
Troubles envahissants du développement
Education spécialisée (adultes)
Personnes âgées et vieillissement
Prestations et services socioculturels
Prévention et promotion de la santé
Psychiatrie
Réadaptation fonctionnelle
Rééducation cardiovasculaire
Réhabilitation cardiorespiratoire
Réinsertion sociale
Réinsertion professionnelle
Recherche
Autre secteur
J'utilise en suite dans ma page le gabarit de résumé "répertoire" de CGUserDirectrory
Code :
<form> <input onclick="history.back()" type="button" value="Retour" /> </form>
<!-- CGUsers - summary template - repertoire -->
<div id="userdirectory_summary">
<div>
{if isset($firstpage_url)}
<a href="{$firstpage_url}" title="{$mod->Lang('lbl_first_page')}"><<</a>
{/if}
{if isset($prevpage_url)}
<a href="{$prevpage_url}" title="{$mod->Lang('libl_prev_page')}"><</a>
{/if}
{$mod->Lang('page')} {$curpage} sur {$numpages}
{if isset($nextpage_url)}
<a href="{$nextpage_url}" title="{$mod->Lang('lbl_next_page')}">></a>
{/if}
{if isset($lastpage_url)}
<a href="{$lastpage_url}" title="{$mod->Lang('lbl_last_page')}">>></a>
{/if}
</div>
<ul>
{foreach from=$users item='oneuser'}
<li><a href="{$oneuser.detail_url}" title="{$oneuser.username}">{$oneuser.username}</a> {if !isset($oneuser.properties.secteur) || $oneuser.properties.secteur == " "}{else} ({$oneuser.properties.secteur}){/if}
</li>
{/foreach}
</ul>
</div>
<div>
{if isset($firstpage_url)}
<a href="{$firstpage_url}" title="{$mod->Lang('lbl_first_page')}"><<</a>
{/if}
{if isset($prevpage_url)}
<a href="{$prevpage_url}" title="{$mod->Lang('libl_prev_page')}"><</a>
{/if}
{$mod->Lang('page')} {$curpage} sur {$numpages}
{if isset($nextpage_url)}
<a href="{$nextpage_url}" title="{$mod->Lang('lbl_next_page')}">></a>
{/if}
{if isset($lastpage_url)}
<a href="{$lastpage_url}" title="{$mod->Lang('lbl_last_page')}">>></a>
{/if}
</div>
<form> <input onclick="history.back()" type="button" value="Retour" /> </form>
Mon soucis vient du fait que :
1/ un utilisateur qui n'a jamais modifié son profil apparaîtra dans la liste retournée comme ça :
Julien BERNARD <!-- ok résultat attendu -->
2/ un utilisateur qui a modifié son profil, mais jamais choisi de secteur, ou qui a choisi le secteur ligne vide (càd  ) :
Julien BERNARD ( ) <!-- résultat non désiré -->
3/ un utilisateur qui a rempli son secteur sur Recherche :
Julien BERNARD (Recherche) <!-- ok c'est bon -->
Comment puis-je faire pour que je ne me retrouve plus avec des utilisateurs qui ont des paranthèses vides à côté de leur nom comme dans le cas n°2 ? J'ai essayé les ocnditions suivantes, mais sans succès :
{if $oneuser.properties.secteur == " "}.......{/if}
{if $oneuser.properties.secteur}.......{/if}
{if $oneuser.properties.secteur == " "}.......{/if}
{if !isset($oneuser.properties.secteur)....}......{/if}
Je ne comprends pas ce qui cloche dans mon gabarit, des idées ? Peut-être dois-je revoir la manière d'aborder la chose ? Si quelqu'un a une idée je suis preneur car là je me grille les quelques neurones qui fonctionnent encore à essayer de trouver une solution. Merci d'avance