Forum CMS Made Simple FR

Version complète : RESOLU] CGUserDirectory les membres FEU peuvent choisir d'etre visible
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.2.1
#~ Url du site :
#~ Hébergeur / Soft : xampp
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.2
#~ Installed Modules:
#~ CGExtensions: 1.31.2
#~ CGContentUtils: 1.3.3
#~ FrontEndUsers: 1.21
#~ CustomContent: 1.8.3
#~ CGUserDirectory: 1.3
#~ SelfRegistration: 1.7.2
#~ FormBrowser: 0.4.2
#~ Captcha: 0.4.5
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression:
#~ max_upload_size: 96000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.18
#~ memory_limit: 80M
#~ max_execution_time: 50
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.63
#~ Server Db Grants: Found a "GRANT ALL" statement that appears to be suitable
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

J'utilise SelfRegistration, FEU et CGUserDirectory pour créer une liste d'utilisateurs sur un site associatif.

Les membres voudraient avoir la possibilité de choisir d’être visibles/listés ou non sur la partie publique du site.

Est-il possible d'utiliser une propriété "case à cocher" de FEU pour mettre en place cette option?

Merci pour l'aide.

Arsene
Bonjour,
oui, tu peux ajouter une case à cocher dans "propriété de l'utilisateur" et ensuite la tester dans ton contenu avec SMARTY.
Merci Jissey de me confirmer cela,

pourrais-tu m'aider avec le code smarty à utiliser.

Merci.
salut,
donne moi un début de code à corriger.
Bonjour Jissey,

Ce que j'ai fait jusqu'à présent:
-créé un propriété dans FEU "afficher_profil"
-modifié le summarytemplate de CGUD en ajoutant
Code :
[== Indéfini ==]
{if $oneuser.properties.afficher_profil eq 1}
les personnes ayant coché afficher_profil
{/if}

J'utilise "eq 1" car le sommaire sur le site affiche 1 ou 0 selon que l'user ait coché ou non "afficher_profil"
J'ai comme summarytemplate de CGUserdirectory le code ci-dessous

Code :
[== Indéfini ==]
{* CGUserDirectory summary template *}

<div id="userdirectory_summary">
{if isset($numpages) && $numpages > 1}
{if isset($firstpage_url)}
  <a href="{$firstpage_url}" title="{$mod->Lang('lbl_first_page')}">&lt;&lt;</a>
{/if}
{if isset($prevpage_url)}
  <a href="{$prevpage_url}" title="{$mod->Lang('libl_prev_page')}">&lt;</a>
{/if}
&nbsp;{$mod->Lang('page')}&nbsp;{$curpage}&nbsp;{$mod->Lang('of')}&nbsp;{$numpages}&nbsp;
{if isset($nextpage_url)}
  <a href="{$nextpage_url}" title="{$mod->Lang('lbl_next_page')}">&gt;</a>
{/if}
{if isset($lastpage_url)}
  <a href="{$lastpage_url}" title="{$mod->Lang('lbl_last_page')}">&gt;&gt;</a>
{/if}
{/if}

{if $oneuser.properties.afficher_profil eq 0}
{foreach from=$users item='oneuser'}
<div class="userdirectory_oneuser" style="margin: 2em; padding-bottom; 2em;">

  <div class="row" style="margin: 0.5em;">
    <div style="width: 49%; float: left;">{$mod->Lang('username')}:</div>
    <div style="width: 49%; float: left;"><a href="{$oneuser.detail_url}" title="{$oneuser.username}">{$oneuser.username}</a> ({$oneuser.id})</div>
  </div>

  {if isset($oneuser.refdate)}
  <div class="row" style="margin: 0.5em;">
    <div style="width: 49%; float: left;">{$mod->Lang('last_active')}:</div>
    <div style="width: 49%; float: left;">{$oneuser.refdate|cms_date_format}</div>
  </div>
  {/if}

  <div class="row" style="margin: 0.5em;">
    <div style="width: 49%; float: left;">{$mod->Lang('groups')}:</div>
    <div style="width: 49%; float: left;">    
    {foreach from=$oneuser.groups item='onegroup'}
      {$groups.$onegroup.groupname}&nbsp;
    {/foreach}
    </div>
  </div>

  {* properties *}
  {foreach from=$oneuser.properties item='onepropvalue' key='propname'}
  <div class="row" style="margin: 0.5em;">
    <div style="width: 49%; float: left;">{$properties.$propname.prompt}:</div>
    <div style="width: 49%; float: left;">
      {if $properties.$propname.type == 4}
        {$feu_smarty->get_dropdown_text($propname,$onepropvalue)}
        {* dropdown *}
      {elseif $properties.$propname.type == 5}
        {* multiselect *}
    {assign var='tmp' value=','|explode:$onepropvalue}
        {$feu_smarty->get_multiselect_text($propname,$onepropvalue,'values')}
        {cgud_getpropertysummary_url prop="$propname" propval="$onepropvalue" assign='urls'}
        <ul>
        {foreach from=$values name='multi' item='one'}
          <li>
            {assign var='i' value=$smarty.foreach.multi.index}
            <a href="{$urls[$i]}" title="{$one}">{$one}</a>
          </li>
        {/foreach}
        </ul>
      {else}
        {$onepropvalue}
      {/if}
    </div>
  </div>
  {/foreach}
<div class="clearfloat"></div>
</div>{* userdirectory_oneuser *}
{/foreach}
{/if}
</div>{* userdirectory_summary *}

Merci
et ça ne marche pas?
Tu as vérifié la valeur de $oneuser.properties.afficher_profil ? {$oneuser.properties.afficher_profil}
Il me semble que c'est $oneuser.properties.afficher_profil.value mais je ne connais pas CGUD.
Pour savoir, fait : {$oneuser.properties.afficher_profil|var_dump}
A la limite tu ne fais que ça dans le template.
Bonjour,
tu en es où-ce que?
Bonjour Jissey,

J'ai refait une installation en ligne pour faciliter la compréhension de la situation.

Sur cette page http://cmaxi.com/index.php?page=listes-utilisateurs , tu peux voir deux utilisateurs que j'ai créé.
La propriété "afficher_profil" mets 0 (si pas coché) et 1 (si coché).

dans mon gabarit sommaire de CGUD j'utilise {if $oneuser.properties.afficher_profil eq 0} et il affiche les 2 utilisateurs (coché et non coché) parce que lorsque je mets {if $oneuser.properties.afficher_profil eq 1}, je n'ai aucun des deux visible.

Je peux te donner accès à l'admin si ça te permets de mieux apprécier la situation.

Merci.
salut,
avant de me donner un accès, as-tu essayé comme je te l'ai dit plus haut :
Code :
[== Indéfini ==]
{if $oneuser.properties.afficher_profil.value eq 1}
et si ça ne résout pas le problème :
Code :
[== Indéfini ==]
{$oneuser.properties.afficher_profil|var_dump}
Merci encore de m'aider,

J'ai toujours le même résultat lorsque j'ajoute .value à la fin {if $oneuser.properties.afficher_profil.value eq 1}

Quant à {$oneuser.properties.afficher_profil|var_dump}, il m'affiche NULL à l'écran.
ok, alors j'installe CGUD et je regarde le nom des champs supplémentaires.
Haaa! mais non! tu as mis {if $oneuser.properties.afficher_profil eq 0} n dehors de la boucle. Il faut le mettre après le foreach. et met aussi {$oneuser.properties.afficher_profil|var_dump} pendant que tu y es.
voilà:
tu dois utiliser:
Code :
[== Indéfini ==]
$oneuser['properties']['afficher_profil']
Merci Jissey,

J'ai juste déplacé dans la boucle et ça marche.

Je mets résolu. merci encore pour ton aide.

Arsene
Super...j'avais dit une grosse bêtise : en smarty, les array s'écrivent bien nom.key1.key2 et non pas nom['key1']['key2'] comme en PHP!

Heureux que ça marche.
A+