Перейти к контенту
  • 0

Аватар в шапке


W_Wolf

Вопрос

Помогите плз, есть такая проблемка, нужно на каждой странице сделать в шапке аватар пользователя. Т.е. Что бы он располагался рядом с ником пользователя.

Как сделать примерно понимаю, но незнаю где именно. В каком файле находится запрос, который отвечает за вывод ника, вместо ipsclass->member['members_display_name']

И каким вообще кодом можно вывести аватар например в шаблоне member_bar ?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Хитромудро как с именем не получится.

 

Открываем ./sources/classes/class_display.php

 

Находим место где member_bar вызывается

		$output_array['MEMBER_BAR'] = $this->ipsclass->compiled_templates['skin_global']->member_bar($msg_data);

 

Видим что в сам шаблон передается только $msg_data, если поднятся выше, то будет видно что это массив.

 

Собственно теперь в этот массив надо добавить аватар юзера. Собственно самого аватара нет в глобальном массиве $ipsclass->member, потому делаем запрос, важно помнить что бывают еще гости у которых аватара нет (стоит условие на наличие id в глобальном массиве):

 

if ( $this->ipsclass->member['id'] )
{
$this->ipsclass->DB->simple_construct(array( 'select' => 'avatar_location, avatar_size, avatar_type', 'from' => 'member_extra', 'where' => "id='" . $this->ipsclass->member['id'] ."'"));

$this->ipsclass->DB->simple_exec();
$avatar = $this->ipsclass->DB->fetch_row(); 

}

 

Итого в массиве $avatar будут все данные об аватаре пользователя. Осталось их собрать в кучу и получить <img тэг для аватара. Для этого дописываем в код вызов специально предназначенной для оформления аватаров функции get_avatar. Результат работы функции (тэг <img) запишем в массив $msg_data с индексом AVATAR:

 

if ( $this->ipsclass->member['id'] )
{
$this->ipsclass->DB->simple_construct(array( 'select' => 'avatar_location, avatar_size, avatar_type', 'from' => 'member_extra', 'where' => "id='" . $this->ipsclass->member['id'] ."'"));

$this->ipsclass->DB->simple_exec();
$avatar = $this->ipsclass->DB->fetch_row(); 

$msg_data['AVATAR'] = $this->ipsclass->get_avatar( $avatar['avatar_location'], 1, $avatar['avatar_size'], $avatar['avatar_type'] );

}

 

Собственно для пользователя мы все сделали, однако гость в данном случае остается слабым местом, потому расширим условие, добавив логику для гостя, например добавим дефолтный noavatar.gif

 

 

if ( $this->ipsclass->member['id'] )
{
$this->ipsclass->DB->simple_construct(array( 'select' => 'avatar_location, avatar_size, avatar_type', 'from' => 'member_extra', 'where' => "id='" . $this->ipsclass->member['id'] ."'"));

$this->ipsclass->DB->simple_exec();
$avatar = $this->ipsclass->DB->fetch_row(); 

$msg_data['AVATAR'] = $this->ipsclass->get_avatar( $avatar['avatar_location'], 1, $avatar['avatar_size'], $avatar['avatar_type'] );

} else {

$msg_data['AVATAR'] = "<img src='{$this->ipsclass->vars['AVATARS_URL']}/noavatar.gif' border='0' alt='' />";

}

 

 

Дальше в шаблоне member_bar в нужном месте добавляем {$msg['AVATAR']} и все.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Если перенести шаблон из member_bar в global_board_header все работает, кроме как раз этих тегов: {$msg['TEXT']} {$msg['AVATAR']} Не подскажете, что и где подправить? Можно конечно сделать чтобы сам хэадер не отображался, а из member_bar сделать шапку, но все-же можно как-нибудь без этого? Вставка непосредственно тега <% MEMBER BAR %> все отображает, но тогда приходится редактировать уже сам member_bar и удалять его из главного шаблона. Изменено пользователем BlackSun
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.