Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
евгеш

Аватар пользователя рядом с названием темы

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

Обширный вопрос.

Сделал по гайду:

 

Шаблон, отвечающий за отображение списка тем называется forumIndexTemplate и находится в разделе Forum View. Открываем его и находим следующий участок кода:

<th scope='col' class='col_f_icon'> </th>

 

Ниже этого участка вставляем:

<th scope='col' class='col_f_avatar'> </th>

 

 

Это заголовок нашего будущего столбца с аватарами. Теперь нужно организовать сам вывод аватаров - находим:

<td class='short altrow'>{parse replacement="{$data['folder_img']}"}</td>

 

Ниже вставляем:

<!-- (CSN) Avatar TS -->
<php>
$csn_NoAvatar = "<img src='{$this->settings['img_url']}/profile/default_thumb.png' alt='avatar'/>";
$csn_MemberTS = IPSMember::load( $data['starter_id'], 'core,extendedProfile' );
if ( $csn_MemberTS['avatar_location'] == "" ) {
       $csn_MemberAvatar = $csn_NoAvatar;
} else {
       $csn_MemberAvatar = IPSMember::buildAvatar( $csn_MemberTS, 0, 1 );
}
</php>
<td class='short altrow'><div class='csn_TopicAvatar'>{$csn_MemberAvatar}</div></td>
<!-- / (CSN) Avatar TS -->


[codetext]$csn_NoAvatar[/codetext] - вывод аватара-шаблона на тот случай, если у пользователя отсутствует аватар. Поэтому путь можно поменять на свой.

Теперь пришло время добавить классы в ipb_styles.css. Открываем его и в самый низ добавляем:
th.col_f_avatar{ width: 3%; }
div.csn_TopicAvatar img{
       width: 36px; /* размер аватара в списке тем */
       height: auto;
       background: #fff; /* фон за аватаром */
       -moz-border-radius: 4px;
       -webkit-border-radius: 4px;
       border-radius: 4px;
       padding: 2px;
}

 

И такой вопрос:

1. Аватары отображаются левее иконок тем (прочтено, есть ответы, закрыта и проч) как сделать их в самом левом столбце? т.е. чтобы иконки тем были правее аватаров?

2. Тот же вопрос но с возможностью помещать аватары справа от автора темы.

3. Сложно ли сделать их кликабельными? (ведущими на профиль топикстартера?)

 

Благодарю.

 

upd: to_bot: знать бы куда его вставлять в настройках. Когда регистрировался такого не запрашивалось.

Поделиться сообщением


Ссылка на сообщение

Кто автор инструкции?

Пробовали обратиться к нему? Потому что спрашивать тех, кто это не использует, бесполезно.

Я не использую и не планирую этого делать, так как считаю это лишним, поэтому Ваших проблем не понимаю.

Поделиться сообщением


Ссылка на сообщение

Кто автор инструкции?

Tails

 

upd: to_bot: знать бы куда его вставлять в настройках

http://ipbskins.ru/forum/index.php?app=core&module=usercp&tab=members

 

Обширный вопрос.

Сделал по гайду:

У вас форум слишком быстро грузится?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Этот метод IPSMember::load даст столько запросов, сколько тем будет на странице. Лучше тогда оформить под хуком и обойтись одним запросом.

 

1. Хук

class sx_hook extends skin_форум(~id~)
{
function форумИндексТемплате( $var1, $var2, и тд )
{
	//хардкодим, получаем аватары пользователей с $var1

	//снова хардкодим, впихиваем обратно в $var1

	return parent::форумИндексТемплате( $var1, $var2, и тд );
}
}

2. Делаем правку шаблона

3. Профит!!!

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Этот метод IPSMember::load даст столько запросов, сколько тем будет на странице. Лучше тогда оформить под хуком и обойтись одним запросом.

 

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

К слову, это чревато только скоростью загрузки страницы или чем-то более ужасным?

 

upd: Значит 'на глазок' не получиться определить как поменять иконку темы и аватар местами?

Поделиться сообщением


Ссылка на сообщение

Этот метод IPSMember::load даст столько запросов, сколько тем будет на странице

Угу. Но решение тиражируют налево и направо.

 

Значит 'на глазок' не получиться определить как поменять иконку темы и аватар местами?

Этот кусок

<th scope='col' class='col_f_avatar'> </th>

Не пробовали вставить не под, а на :)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
09/26/11 14:00 (изменено)
Не пробовали вставить не под, а над

Пробывал - совершенно ничего не изменилось. зато если вставлять еще ниже (после столбцов названия темы, даты) сам столбец расширяется.

 

К слову, визуально они будто считаются за один столбец (по крайней мере 'зебра' их красит одним цветом)

Хотя такой фон мне выгоден и не хотелось бы менять это отображение.

post-46113-0-70580600-1317045471_thumb.png

 

Та самая часть - столбцы списка тем.

<tr class='header'>
			<th scope='col' class='col_f_icon'> </th>
			<th scope='col' class='col_f_avatar'> </th>
			<th scope='col' class='col_f_topic'>{$this->lang->words['forum_topic']}</th>
			<th scope='col' class='col_f_starter short'>{$this->lang->words['forum_started_by']}</th>
			<th scope='col' class='col_f_views stats'>{$this->lang->words['forum_stats']}</th>
			<th scope='col' class='col_f_post'>{$this->lang->words['forum_last_post_info']}</th>
			<if test="topicsismod:|:$this->memberData['is_mod'] == 1">
				<th scope='col' class='col_f_mod short'><input type='checkbox' id='tmod_all' class='input_check' title='{$this->lang->words['topic_select_all']}' value='1' /></th>
			</if>
		</tr>	

Изменено пользователем евгеш

Поделиться сообщением


Ссылка на сообщение

К слову, визуально они будто считаются за один столбец

Как одна строка. А у строки бывают и столбцы. Но не важно

 

1. Я тормоз. И не читаю текст до конца

 

2.

<!-- (CSN) Avatar TS -->
Код
<!-- / (CSN) Avatar TS -->

Естественно тоже выше.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Сильно тугой в этих делах, уточню:

Кроме кода:

<th scope='col' class='col_f_avatar'> </th>

Который стоит попробывать вставить выше:

<th scope='col' class='col_f_icon'> </th>

а не ниже.

 

Нужно еще и:

<!-- (CSN) Avatar TS -->
код
<!-- / (CSN) Avatar TS -->

вставить выше:

<td class='short altrow'>{parse replacement="{$data['folder_img']}"}</td>

А не ниже?

Поделиться сообщением


Ссылка на сообщение

upd: Огромное спасибо, слегка подрихтовал и очередность размещения помогла!

Поделиться сообщением


Ссылка на сообщение

Этот метод IPSMember::load даст столько запросов, сколько тем будет на странице. Лучше тогда оформить под хуком и обойтись одним запросом.

А можно поподробней написать как это сделать?

Поделиться сообщением


Ссылка на сообщение

Если у кого-то есть какие-то пожелания/замечания, идеи как оптимизировать код, пусть оставит тут. Потом соберу полную инструкцию и добавлю в файловый архив.

 

Хук.

av_hook.xml

 

Остальное по старой инструкции, только это

<!-- (CSN) Avatar TS -->
<php>
$csn_NoAvatar = "<img src='{$this->settings['img_url']}/profile/default_thumb.png' alt='avatar'/>";
$csn_MemberTS = IPSMember::load( $data['starter_id'], 'core,extendedProfile' );
if ( $csn_MemberTS['avatar_location'] == "" ) {
       $csn_MemberAvatar = $csn_NoAvatar;
} else {
       $csn_MemberAvatar = IPSMember::buildAvatar( $csn_MemberTS, 0, 1 );
}
</php>
<td class='short altrow'><div class='csn_TopicAvatar'>{$csn_MemberAvatar}</div></td>
<!-- / (CSN) Avatar TS -->

 

заменить этим

<td class='short altrow'><div class='csn_TopicAvatar'>{$data['avatar_location']}</div></td>

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

Хук.

Спасибо Большое Человеческое, всё получилось :)

 

 

идеи как оптимизировать код, пусть оставит тут

Да и так всё работает, правда у меня немного другое дополнение (мини-аватары затенёные, если нет новых сообщений) :

 

Шаблон forumIndexTemplate:

<td class='short altrow'><div class='t_avatar <if test="$data['go_new_post'] === false">no-new</if>'><span>{$data['avatar_location']}</span></div></td>

 

Стиль ipb_styles.css:

.t_avatar {width: 24px;height: 24px;overflow: hidden;position: relative;background: url(/grafik/t_noavatar.png) no-repeat 1px 0px;box-shadow: rgba(0, 0, 0, 0.18) 0px 1px 1px;border-width: 1px;border-style: solid;border-radius: 4px;-moz-border-radius: 4px}
.t_avatar.no-new {opacity: 0.3;filter: alpha(opacity=20);}
.t_avatar img.frame {position: absolute;top: 0;left: 0;z-index: 100;}
.t_avatar span {display: block;width: 24px;height: 24px;position: absolute;top: 0px;left: 1px;overflow: hidden;z-index: 99;}
.t_avatar span img {width: 24px;height: 24px;}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо !!!

Все работает...

Подскажите, а как сделать что бы аватары выводились и в результатах поиска новых сообщений за день....

Выводится только имя файла...и все...

Поделиться сообщением


Ссылка на сообщение

Аватары пользователей на главной страницы форума (IPB 3.1x)

 

1. Установить хук

Аватары на главной.xml

 

2. Внешний вид -> %нужный шаблон% -> Список форумов -> boardIndexTemplate

Найти

 

<ul class='last_post'>

Добавить перед (или в другом нужно вам месте)

 

<span class="boardAvatar">
    {$forum_data['avatar_location']}
</span>

В css задать нужные стили для контейнера .boardAvatar

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...