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

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

Вот пример http://forums.igray.ru/

Там зделано так, что каждой группе присвоена картинка (qroup icon), численность которой у каждого пользователя увеличивается в зависимости от количества постов (pips). Вопрос: как это слить воедино, но для 2.0.х?

Спасибо!

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

Это можно просто сделать заменивая везде где отображаются пипы пользователей style_images/<#IMG_DIR#>/pip.gif иконкой группы. И перед этим отображение самой иконки группы отовсюду убрать.

 

Но тогда пипы от скинов не будут зависеть.

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

А мне и не надо, чтоб зависили. Только, плиз, объясни поподробнее- в каких функция, что менять.[1117257480:1117257642]

	/*-------------------------------------------------------------------------*/
// Parse the member info
/*-------------------------------------------------------------------------*/

function parse_member( $member=array() )
{
 global $ibforums, $std, $DB;
 
 $member['avatar'] = $std->get_avatar( $member['avatar_location'], $ibforums->member['view_avs'], $member['avatar_size'], $member['avatar_type'] );
 
 $pips = 0;
 
 foreach($this->mem_titles as $k => $v)
 {
	 if ($member['posts'] >= $v['POSTS'])
	 {
   if (!$member['title'])
   {
  	 $member['title'] = $this->mem_titles[ $k ]['TITLE'];
   }
   
   $pips = $v['PIPS'];
   break;
	 }
 }
 
 if ( $ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon'] )
 {
	 $member['member_rank_img'] = $this->html->member_rank_img($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
 }
 else if ( $pips )
 {
	 if ( is_numeric( $pips ) )
	 {
   for ($i = 1; $i <= $pips; ++$i)
   {
  	 $member['member_rank_img'] .= "<{A_STAR}>";
   }
	 }
	 else
	 {
   $member['member_rank_img'] = $this->html->member_rank_img( 'style_images/<#IMG_DIR#>/folder_team_icons/'.$pips );
	 }
 }
 
 $member['member_joined'] = $this->html->member_joined( $std->get_date( $member['joined'], 'JOINED' ) );
 
 $member['member_group']  = $this->html->member_group( $ibforums->cache['group_cache'][ $member['mgroup'] ]['g_title'] );
 
 $member['member_posts']  = $this->html->member_posts( $std->do_number_format($member['posts']) );
 
 $member['member_number'] = $this->html->member_number( $std->do_number_format($member['id']) );
 
 $member['profile_icon']  = $this->html->member_icon_profile( $member['id'] );
 
 $member['message_icon']  = $this->html->member_icon_msg( $member['id'] );
 
 if ($member['location'])
 {
	 $member['member_location']  = $this->html->member_location( $member['location'] );
 }
 
 if (! $member['hide_email'])
 {
	 $member['email_icon'] = $this->html->member_icon_email( $member['id'] );
 }
 
 if ( $member['id'] )
 {
	 $member['addresscard'] = $this->html->member_icon_vcard( $member['id'] );

 

 

Вот код. Или предоставить другой? :D[1117257480:1117257958]

 //-----------------------------------------
       // Custom Profile fields
       //-----------------------------------------
       
       if ( $ibforums->vars['custom_profile_topic'] == 1 or $load_modules )
       {
	 require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );
	 $this->custom_fields = new custom_fields( $DB );
	 
	 $this->custom_fields->member_id  = $ibforums->member['id'];
	 $this->custom_fields->cache_data = $ibforums->cache['profilefields'];
	 $this->custom_fields->admin      = intval($ibforums->member['g_access_cp']);
	 $this->custom_fields->supmod     = intval($ibforums->member['g_is_supmod']);
       }
       
       //-----------------------------------------
	 // Get all the member groups and
	 // member title info
	 //-----------------------------------------
       
       if ( ! is_array( $ibforums->cache['ranks'] ) )
       {
      	 $ibforums->cache['ranks'] = array();
      	 
	 $DB->simple_construct( array( 'select' => 'id, title, pips, posts',
           'from'   => 'titles',
           'order'  => "posts DESC",
       )      );
       
	 $DB->simple_exec();
     
	 while ($i = $DB->fetch_row())
	 {
   $ibforums->cache['ranks'][ $i['id'] ] = array(
                'TITLE' => $i['title'],
                'PIPS'  => $i['pips'],
                'POSTS' => $i['posts'],
            	 );
	 }
	 
	 $std->update_cache( array( 'name' => 'ranks', 'array' => 1, 'deletefirst' => 1 ) );
       }
       
       $this->mem_titles = $ibforums->cache['ranks'];
}

 

 

Вот тут еще пресутствуют пипс...

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

Щас...

 

sources/topics.php

 

Это:

  if ( $ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon'] )
{
 $member['member_rank_img'] = $this->html->member_rank_img($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
}
else if ( $pips )
{
 if ( is_numeric( $pips ) )
 {
  for ($i = 1; $i <= $pips; ++$i)
  {
   $member['member_rank_img'] .= "<{A_STAR}>";
  }
 }
 else
 {
  $member['member_rank_img'] = $this->html->member_rank_img( 'style_images/<#IMG_DIR#>/folder_team_icons/'.$pips );
 }
}

 

Заменим на:

 

                if ( $ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon'] )
               {
                       if ( is_numeric( $pips ) )
                       {
                               for ($i = 1; $i <= $pips; ++$i)
                               {
                                  $member['member_rank_img'] .= $this->html->member_rank_img($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
                               }
                       }
                       else
                       {
                               $member['member_rank_img'] = $this->html->member_rank_img( 'style_images/<#IMG_DIR#>/folder_team_icons/'.$pips );
                       }
               }
               else if ( $pips )
               {
                       if ( is_numeric( $pips ) )
                       {
                               for ($i = 1; $i <= $pips; ++$i)
                               {
                                       $member['member_rank_img'] .= "<{A_STAR}>";
                               }
                       }
                       else
                       {
                               $member['member_rank_img'] = $this->html->member_rank_img( 'style_images/<#IMG_DIR#>/folder_team_icons/'.$pips );
                       }
               }

 

 

А в sources/profile.php

 

Это:

                if ($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon'])
               {
                       $member['member_rank_img'] = $this->topic_html->member_rank_img($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
               }
               else if ($pips)
               {
                       if ( is_numeric( $pips ) )
                       {
                               for ($i = 1; $i <= $pips; ++$i)
                               {
                                       $member['member_rank_img'] .= "<{A_STAR}>";
                               }
                       }
                       else
                       {
                               $member['member_rank_img'] = $this->topic_html->member_rank_img('style_images/<#IMG_DIR#>/folder_team_icons/'.$pips);
                       }
               }

 

На:

                if ($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon'])
               {
                      if ( is_numeric( $pips ) )
                       {
                               for ($i = 1; $i <= $pips; ++$i)
                               {
                                    $member['member_rank_img'] .= $this->topic_html->member_rank_img($ibforums->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
                               }
                       }
                       else
                       {
                               $member['member_rank_img'] = $this->topic_html->member_rank_img('style_images/<#IMG_DIR#>/folder_team_icons/'.$pips);
                       }

               }
               else if ($pips)
               {
                       if ( is_numeric( $pips ) )
                       {
                               for ($i = 1; $i <= $pips; ++$i)
                               {
                                       $member['member_rank_img'] .= "<{A_STAR}>";
                               }
                       }
                       else
                       {
                               $member['member_rank_img'] = $this->topic_html->member_rank_img('style_images/<#IMG_DIR#>/folder_team_icons/'.$pips);
                       }
               }

 

 

Если у группы есть Group Icon, то оно покажет этих картинок столько, сколько нужно. Если иконка группы не указана, то выводить будет столько_сколько_нужно обычных пипов.

 

Кстати, я ошибся, там в 2.0.4. можно сделать и чтобы взависимости от скина было :D

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

  • 7 месяцев спустя...

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

То есть к примеру, у Администрации - красные кубики, у модераторов - зеленые, и чтоб они росли с кол-вом сообщений.

1. АЦ-Скины/Шаблоны- HTML Шаблоны- Редактировать Шаблон- Topic View Section- Post Entry.

2.Находим там: {$author['member_rank_img']}

 

и заменяем (а можно занести в комментарии и писать ниже) на:

<script type="text/javascript">

<!--

var group1 = "Группа: Администрация"

var group2 = "Группа: Модератор"

var group3 = "Группа: Помощник Модератора"

var icon1 = "url_icon1"

var icon2 = "url_icon2"

var icon3 = "url_icon3"

var icon=""

var k

var mes= "{$author['member_posts']}"

var mgstr= mes.substr(11, mes.length);

var mg=parseInt(mgstr);

if (mg>0) {k=1}

if (mg>30) {k=2}

if (mg>150) {k=3}

if (mg>200) {k=4}

if (mg>400) {k=5}

if ( "{$author['member_group']}" == group1) {icon=icon1}

if ( "{$author['member_group']}" == group2) {icon=icon2}

if ( "{$author['member_group']}" == group3) {icon=icon3}

for (var i=1; i <= k; i++)

{ document.write ('<img src="',icon,'">');

}

document.write ('<br />');

//-->

</script>

Пояснение:

  • Синие переменные вводите значения сами (имена Групп, и полные адреса картинок). У меня там 3 группы, и 3 иконки, если вам надо вы можете сделать 2, 4, 5 и т.д.
    Пример:
    для добавления 4 группы надо создать переменные group4 и icon4 (по типу предыдущих)
  • В фиолетовом коде вы также должно внести свои изменения.
    В моём примере кубики растут в такой последовательности: 0, 30, 150, 200, 400.
    k - это кол-во кубиков. Числа 0, 30, 150, 200, 400 вы должны проредактировать под свой форум. Так же можно убрать или добавить там кубик.
    И далее присваевание группе картинки:
    if ( "{$author['member_group']}" == group1) {icon=icon1}
    Вы так же должны подстроить под свой форум( может у вас не 3 группы, а больще или меньше)

Вроде всё, если что-то ещё не понятно то спрашивайте.

 

P.S.Это код для 1.3, но он должен работать и для 2.1... Если там переменные не так называтся, то исправишь... я о {$author['member_group']} и т.д

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

  • 9 месяцев спустя...

AlDi

В 2.1.7 работать не будет точно,там нету Post Entry.

Кстати,правильно - "сочЕтание",а не то,что в названии темы. :D

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

  • 2 месяца спустя...

Выложил в Архиве небольшой мод осуществляющий поставленную задачу под 2.1.7...

Custom PIP

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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