Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] FrontEndUsers et viewuser
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.3
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.3
#~ Installed Modules:
#~ CMSMailer: 2.0.1
#~ FileManager: 1.1.0
#~ MenuManager: 1.7.5
#~ ModuleManager: 1.4
#~ News: 2.11.1
#~ nuSOAP: 1.0.2
#~ Printing: 1.1.2
#~ Search: 1.6.10
#~ ThemeManager: 1.1.4
#~ TinyMCE: 2.8.3
#~ CGExtensions: 1.24
#~ FrontEndUsers: 1.12.12
#~ CustomContent: 1.7.3
#~ FormBuilder: 0.7
#~ FormBrowser: 0.4
#~ SelfRegistration: 1.6.7
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 100000000
#~ default_upload_permission: 664
#~ 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.2.14
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 3000
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 100M
#~ upload_max_filesize: 100M
#~ session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 4.1.22
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

lorsque je fais un viewuser sur l'id d'un utilisateur, seulement la première propriété est affichée au lieu de toutes pourtant, si je comprends bien le gabarit d'origine, il 'a une boucle qui doit permettre de toutes les afficher.
Code :
{* view user template *}
<p>{$feu->Lang('id')}:&nbsp;{$userinfo.id}</p>
<p>{$feu->Lang('username')}:&nbsp;{$userinfo.username}</p>
<p>{$feu->Lang('email')}:&nbsp;<a href="mailto:{$email_address}">{$email_address}</a></p>
<p>{$feu->Lang('expires')}:&nbsp;{$userinfo.expires}</p>
<p>{$feu->Lang('password')}:&nbsp;{$userinfo.password}</p>
{foreach from=$user_properties item='entry'}
{if $entry.type != 0}
<p>{$entry.prompt}:&nbsp;{$entry.data}</p>
{/if}
{/foreach}

donc, pourquoi une seule et comment résolver le problème?
merci
Répondre
#2

Auto-réponse:

trouvant pas le problème, j'ai crée une UDT pour m'afficher ce que je veux:
Code :
global $gCms;

echo "
<table>
<thead><tr>
<th>Partenaire</th>
<th>Agence</th>
<th>Nom et prénom</th>
<th>Email</th>
<th>Téléphone</th>
<th>Login</th>
<th>Date d'expiration</th>
</tr></thead>";

$config =& $gCms->GetConfig();
$FEU = $gCms->modules['FrontEndUsers']['object'];

$db = &$gCms->GetDb(); //connection à la bd cms
$query = "SELECT * FROM cms_module_feusers_users AS t1 LEFT JOIN cms_module_feusers_belongs AS t2 ON  t1.id = t2.userid WHERE t2.groupid=1";
$dbresult = mysql_query($query);//exécution de la requête

while($fields = mysql_fetch_array($dbresult))  
    {
$userid = $fields['id'];
$username = $fields['username'];
$expires = $fields['expires'];

$nom = $FEU->GetUserPropertyFull('nom',$userid);
$agence = $FEU->GetUserPropertyFull('agence',$userid);
$mail = $FEU->GetUserPropertyFull('mail',$userid);
$telephone = $FEU->GetUserPropertyFull('telephone',$userid);
$pass = $FEU->GetUserPropertyFull('pass',$userid);
$partenaire = $FEU->GetUserPropertyFull('partenaire',$userid);

$part = "SELECT option_text FROM cms_module_feusers_dropdowns WHERE option_name=".$partenaire."";
$result = mysql_query($part);
$partenaire = mysql_result($result, 0);

echo '<tr>';
echo '<td>'.$partenaire.'</td>';
echo '<td>'.$agence.'</td>';
echo '<td>'.$nom.'</td>';
echo '<td>'.$mail.'</td>';
echo '<td>'.$telephone.'</td>';
echo '<td>'.$username.'</td>';
echo '<td>'.$expires.'</td>';
echo '<tr>';

}

echo '</table>';

par contre je pense qu'il est possible de supprimer
Code :
$part = "SELECT option_text FROM cms_module_feusers_dropdowns WHERE option_name=".$partenaire."";
$result = mysql_query($part);
$partenaire = mysql_result($result, 0);

et d'utiliser quelquechose dérivé de
Code :
{$feu_smarty->get_dropdown_text($propname,$propvalue[,$assign])}
donné dans l'aide de FEU

donc si quelqu'un a une idée...
merci
Répondre
#3

Bonjour,
il y a la table module_feusers_properties :
Code :
SELECT * FROM cms_module_feusers_users AS t1 LEFT JOIN cms_module_feusers_belongs AS t2 ON  t1.id = t2.userid
left join cms_module_feusers_properties as t3 ON t1.id=t3.userid WHERE t2.groupid=1

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Répondre
#4

je l'ai déjà exploité dans cette partie
Code :
$nom = $FEU->GetUserPropertyFull('nom',$userid);
$agence = $FEU->GetUserPropertyFull('agence',$userid);
$mail = $FEU->GetUserPropertyFull('mail',$userid);
$telephone = $FEU->GetUserPropertyFull('telephone',$userid);
$pass = $FEU->GetUserPropertyFull('pass',$userid);
$partenaire = $FEU->GetUserPropertyFull('partenaire',$userid);

mais c'est la seconde requête qui va chercher les entrées dans la table des dropdowns que je souhaiterai optimiser.
Répondre
#5

Si tu appelles 6 fois GetUserPropertyFull, c'est pas optimisé.

Dans la requête, tu peux ajouter la table dropdowns:
Code :
SELECT * FROM cms_module_feusers_users AS t1 LEFT JOIN cms_module_feusers_belongs AS t2 ON  t1.id = t2.userid
left join cms_module_feusers_properties as t3 ON t1.id=t3.userid left join cms_module_feusers_dropdowns as t4 ON t3.data=t4.option_name WHERE t2.groupid=1
En affinant le SELECT pour ne prendre que les colonnes qui tu sont utiles.
Ensuite 2 boucles imbriquées et la récupération des champs soir `data` soit `option_texte` non nuls.

Ainsi, avec une seule requête, tu récupère tout.

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Répondre
#6

waow,

ça m'a pas l'air simple.... en tout cas merci pour le tuyau, je regarde ça et je viens dire si j'ai réussi ces imbrications de boucles.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)