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

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

Вот пример 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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