Создать собственный профиль пользователя Joomla 2.5

Я создаю несколько настраиваемых полей профиля пользователя, я просто создаю плагин для редактирования профиля пользователя (добавляя поля в profile.xml и т. д.). Теперь, когда я создаю пользователя или редактирую его, у меня есть классические поля профиля (город, адрес и т. д.) и мои собственные поля. Я создаю страницу профиля пользователя, на которой отображаются все поля, но я хотел бы отредактировать эту страницу. Я хотел бы отображать только свои поля или добавить класс CSS и т.д.

Как я могу отредактировать его? Где я могу найти это?

По-другому я создаю другую страницу, с плагином php я могу добавить код. Как я могу получить доступ к своим настраиваемым полям? Я попытался с http://docs.joomla.org/Accessing_the_current_user_object, но я могу получить доступ только к полям по умолчанию .

Кто-нибудь знает, как получить доступ к этим переменным?

ps вот что я пишу в своей статье с 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";

выдает "не работает" :(

что не так с этим кодом?


person Edoz    schedule 22.10.2012    source источник
comment
Какова структура вашего файла базы данных. Например, вы не используете #__phs_user_profiles с префиксом joomla?   -  person George Wilson    schedule 22.10.2012
comment
Я уже пытался использовать #__, но это то же самое.. ошибка была в апострофе запроса ' :)   -  person Edoz    schedule 23.10.2012


Ответы (2)


Простой способ, которым вам нужно отредактировать представление (профиль) com_users, и в представлении профиля вы можете получить доступ к пользователю с помощью: -

$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";

также проверьте ссылку http://docs.joomla.org/Accessing_the_database_using_JDatabase

person Rakesh Sharma    schedule 22.10.2012
comment
спасибо .. Я не могу использовать print_r, потому что мой плагин не позволяет этого, но что-то не так с ' запроса - person Edoz; 23.10.2012

Во-первых, вы неправильно указали таблицу базы данных. Вам нужно определить префикс, используя #__, например #__content.

Также следует изменить следующий код:

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

к этому:

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

}
person Lodder    schedule 22.10.2012
comment
Сначала я попробовал с #__, но результат не изменился... и с {} тоже самое :) - person Edoz; 23.10.2012