2012-10-22 6 views
0

Je crée des champs de profil utilisateur personnalisés, je crée simplement un plugin de modification du profil utilisateur (en ajoutant les champs dans profile.xml etc). Maintenant quand je crée un utilisateur ou l'édite, j'ai des champs de profil classiques (city, addres etc.) et mes propres champs. Je crée une page de profil utilisateur qui affiche tous les champs, mais je voudrais éditer cette page. Je voudrais afficher seulement mes champs ou ajouter une classe css etc ..Créer un profil utilisateur personnalisé Joomla 2.5

Comment puis-je l'éditer? Où puis-je le trouver?

D'une autre manière, je crée une autre page, avec un plugin php, je peux ajouter du code. Comment puis-je accéder à mes champs personnalisés? J'ai essayé avec http://docs.joomla.org/Accessing_the_current_user_object mais je peux seulement accéder aux champs par défaut.

Est-ce que quelqu'un sait comment accéder à ces variables?

ps ce que j'écris dans mon article avec php:

 

    $user =& JFactory::getUser(); 

    $userId = $user->id; 

    $db = &JFactory::getDbo(); 
     $db->setQuery(
      'SELECT * FROM phs_user_profiles WHERE user_id = '.$userId.' AND profile_key  LIKE \'myfilevalue1.%\'' 
     ); 
    $results = $db->loadAssocList(); 
    if($results) echo $results[0]['profile_value']; 
    else echo "dont work"; 

il affiche "ne fonctionnent pas" :(

quel est le problème avec ce code

+0

Quelle est la structure de votre fichier de base de données. Par exemple, n'utilisez-vous pas #__phs_user_profiles en utilisant le préfixe joomla? –

+0

J'ai déjà essayé d'utiliser #__ mais c'est pareil .. l'erreur était dans la requête apostrophe ':) – Edoz

Répondre

0

Une façon simple, vous devez modifier com_users vue (profil) et ce par la vue de profil, vous pouvez accéder à l'utilisateur: -

$user =& JFactory::getUser(); 

//firstly check you got this. 
echo $userId = $user->id; 
// then you can access all fields using userid. 
    $db = &JFactory::getDbo(); 
    $query = "SELECT * FROM phs_user_profiles WHERE user_id = ".$userId; 
     $db->setQuery($query); 
    $results = $db->loadAssocList(); 
// print result using print_r($results); if you get 
    if($results) echo $results[0]['profile_value']; 
    else echo "dont work"; 

également vérifier le lien http://docs.joomla.org/Accessing_the_database_using_JDatabase

+0

merci .. je ne peux pas utiliser print_r car mon plugin ne le permet pas, mais il y avait quelque chose de mal avec le 'de la requête – Edoz

0

Tout d'abord, vous vous avez spécifié une table de base de données incorrecte Vous devez définir le préfixe en utilisant #__, par exemple #__content

Vous devez également modifier le e code suivant:

if($results) echo $results[0]['profile_value']; 
else echo "dont work"; 

à ceci:

if($results) { 
    echo $results[0]['profile_value']; 
} 
else { 
    echo "dont work"; 

} 
+0

J'ai d'abord essayé aveC#__ mais ne change pas le résultat ... aussi avec {} c'est pareil:) – Edoz