Настройка отображения профиля

Главные вкладки

Аватар пользователя rhangelxs rhangelxs 6 апреля 2007 в 16:44

Делаю так:
В template.php вставляю:

function phptemplate_user_profile($user, $fields = array()) {
  // Pass to phptemplate, including translating the parameters to an associative array. The element names are the names that the variables
  // will be assigned within your template.
  /* potential need for other code to extract field info */
return _phptemplate_callback('user_profile', array('user' => $user, 'fields' => $fields));
  }

Потом создаю user_profile.tpl.php
С примерно таким содержанием:

<div class="profile">
<div align="left"><?php  if($user->picture) {print theme('user_picture', $user);}?>
<h2 class="title">Основные данные</h2>
<dt class="user-member">Статус:</dt><dd class="user-member">
<?php
    print "<div class=\"fields\">";
   
        $time_period = variable_get('user_block_seconds_online', 600);
    $users = db_query("SELECT DISTINCT(uid), access FROM {users} WHERE access >= %d AND uid = %s", time() - $time_period, $user->uid);
    $total_users = db_num_rows($users);
        if ($total_users == 1)
        {
            $output = t('На сайте');
        }
        else
        {
            $output = t('Отсутствует');      
        }
       
    print $output;
?>
</dd></dl>
<dt class="user-member">Время участия:</dt><dd class="user-member"><?php print (format_interval(time() - $user->created));?></dd></dl>
<dt class="user-member">Зарегистрирован:</dt><dd class="user-member"><?php print (format_date($user->created, 'small', 'F j, o'));?></dd></dl>
<br />
<h2 class="title">Контакты</h2>
<?php
global $user;
profile_load_profile($user);

        if ($user->profile_icq > '1')
        {
print ("<dt class=\"user-member\">Номер ICQ:</dt><dd class=\"user-member\">");
print ("<img src=\"http://web.icq.com/whitepages/online?icq=") ;
print ("$user->profile_icq") ;
print ("&img=5\" alt=\"Status\">") ;
print ($user->profile_icq);
print ("</dd></dl>");

        }
?>
<?php
print ("$user->name");
?>
</div>

Смотрю свой профиль все хорошо, все данные выводятся корректно.
Смотрю чужой профиль и вижу свои данные, как это победить, подозреваю, конечно что все дело в переменной $user, но на какую ее менять непонятно. Подскажите?

Комментарии

Аватар пользователя rhangelxs rhangelxs 6 апреля 2007 в 17:26

Каждый кусок php кода, заключенный в

<?php
?>

выполняется отдельно как я понимаю и внекоторых кусках кода директива global $user; не используется. Даже после ее удаления все остается по прежнему. ДЛя простоты проверки предлагаю код

<?php
  if($user->picture) {print theme('user_picture', $user);}
?>

Этот кусок кода взял с офф сайта друпала, но у меня когда заходишь в любого юзера показывается своя аватара.

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 6 апреля 2007 в 17:47

странновато имхо. ведь это же параметр для фукции function phptemplate_user_profile($user, $fields = array()) и если этот параметр берется из глобального в каждом новом куске кода между тегами пхп...

в любом случае, можешь воспользоваться функцией user_load(...)