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

Раскрашиваем имена пользователей в темах


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

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

Наверняка в вобле такое видели, сейчас мы сделаем то же самое для IPB 2.x, тем более это очень просто.

 

1. Откроем sources/topics.php

Найдём все:

>{$poster['name']}<

И заменим на:

>{$ibforums->cache['group_cache'][ $poster['mgroup'] ]['prefix']}{$poster['name']}{$ibforums->cache['group_cache'][ $poster['mgroup'] ]['suffix']}<

Всё :D

 

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

 

Демо - в аттаченной картинке, или в любой теме здесь

post-5780-1114776352_thumb.jpg

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

  • Ответы 190
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

  • 1 месяц спустя...
... согласно цвету их группы.

А где этот цвет в админке настраивается?[1117386640:1117387434]

... согласно цвету их группы.

А где этот цвет в админке настраивается?

Я понял... в настройках группы

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

не у всех, у меня например на 1,2/1,3 сходу не смог решить :D

 

 

Не могли бы написать, как это на 1.3 все сделать? Спасибо заранее...

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

как именно?

 

 

Пользователи и группы - Настройки группы - Общие настройки

Вид отображения в онлайновом списке [Приставка]

(Можно не заполнять)

(Пример:<span style='color:red'>)

Вид отображения в онлайновом списке [Окончание]

(Можно не заполнять)

(Пример:</span>)

 

ЗЫ. Только здесь разговор несколько о другом идет....

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

не у всех, у меня например на 1,2/1,3 сходу не смог решить
В 1.х нужно немного по другому.

 

В sources/topics.php

 

1: Поменять запрос:

находим два таких похлжих больших запроса:

$DB->query( "SELECT p.*,
			    m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,
m.icq_number,
			    m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
			    g.g_id, g.g_title, g.g_icon, g.g_pip_team, m.rep, g.g_dohtml, g.g_is_supmod $join_get_fields
			    FROM ibf_posts p
			      LEFT JOIN ibf_members m ON (p.author_id=m.id)
			      LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)

и где нить после g.g_id, g.g_title, g.g_icon, добавляем g.prefix, g.suffix,

 

2.

Если стандартно выводится ник, то находим

            // Fix up the membername so it links to the members profile

	 if ($poster['id'])
	 {
   $poster['name'] = "<a href='{$this->base_url}&act=Profile&CODE=03&MID={$poster['id']}'>{$poster['name']}</a>";
	 }

меняем на

            // Fix up the membername so it links to the members profile

	 if ($poster['id'])
	 {
   $poster['name'] = $poster['prefix']."<a href='{$this->base_url}&act=Profile&CODE=03&MID={$poster['id']}'>{$poster['name']}</a>".$poster['suffix'];
	 }

 

если стоит хак вставки ника в форму бістрого ответа, то

находим

  if ($poster['id'])
 {
    $poster['name']=str_replace(" ", " ", $poster['name']);
          $poster['name']='<a href=javascript:ins("{$poster['name']}")>{$poster['name']}</a>';
 }

меняем на

  if ($poster['id'])
 {
    $poster['name']=str_replace(" ", " ", $poster['name']);
          $poster['name']=$poster['prefix'].'<a href=javascript:ins("{$poster['name']}")>{$poster['name']}</a>'.$poster['suffix'];
 }

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

  • 2 недели спустя...
у менястоит скин vRocking там в темах не отображается цвет, и на скине Cobalt тоже не отображается....помогоите, что нужно поменять?
Ссылка на комментарий
Поделиться на других сайтах

Vicer, в 1.3 такая фишка не катит, ничего не меняется.

 

Jax - стал бы я писать, если бы не был уверен? :D Вот живой пример () ;)

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

Parse error: parse error, unexpected T_STRING in /usr/home/gagarinclub.ru/newage/html/sources/Topics.php on line 1211

 

Jax - стал бы я писать, если бы не был уверен?

нет конечно

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

Ну и покажи кусок кода с 1211 строки этого файла по десять строк вниз и вверх, наверняка забыл строку закрыть или что-то в этом роде...
Ссылка на комментарий
Поделиться на других сайтах

   	 $row['signature'] = $skin_universal->signature_separator($poster['signature']);
   }
	 }
	 
	 //--------------------------------------------------------------
           // Fix up the membername so it links to the members profile
           //--------------------------------------------------------------
 
 if ($poster['id'])
{
   $poster['name']=str_replace(" ", " ", $poster['name']);
         $poster['name']=$poster['prefix'].'<a href=javascript:ins("{$poster['name']}")>{$poster['name']}</a>'.$poster['suffix'];
}

$poster[postcount] = ++$postcount;
	 //--------------------------------------------------------------
	 // Parse HTML tag on the fly
	 //--------------------------------------------------------------
	 
	 if ( $this->forum['use_html'] == 1 )
	 {
   // So far, so good..
   
   if ( stristr( $row['post'], '[dohtml]' ) )
   {
  	 // [doHTML] tag found..
  	 
  	 $parse = ($this->forum['use_html'] AND $row['g_dohtml']) ? 1 : 0;
  	 
  	 $row['post'] = $this->parser->post_db_parse($row['post'], $parse );
   }
	 }

 

1211: $poster['name']=$poster['prefix'].'<a href=java script:ins("{$poster['name']}")>{$poster['name']}</a>'.$poster['suffix'];

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

Вроде все правильно :D попробуй в 1211 строке так.
   $poster['name']=$poster['prefix'].'<a href=javascript:ins("'.$poster['name'].'")>.'.$poster['name'].'</a>'.$poster['suffix'];

. Хотя похоже, что ошибка где-то выше - приведи еще кусок кода с измененным запросом ;)

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

Ошибка в базе происходит

mySQL query error: SELECT p.*,
       m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_
name,m.icq_number,
       m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
       g.g_id, g.g_title, g.g_icon, m.rep, g.g_dohtml, m.files, m.downloads, g.prefix, g.suffix, 
       FROM ibf_posts p
         LEFT JOIN ibf_members m ON (p.author_id=m.id)
         LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
         
       WHERE p.topic_id=8499 and p.queued != 1
       ORDER BY p.pid asc LIMIT 0, 20

mySQL error: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM ibf_posts p
         LEFT JOIN ibf_members m ON (p.author
mySQL error code: 
Date: Monday 13th of June 2005 01:56:17 PM

 

 

Код:

 

//----------------------------------------------------------------
// Extended Attach
//----------------------------------------------------------------
	 }
	 
	 //--------------------------------------------------------------
	 // Siggie stuff
	 //--------------------------------------------------------------
	 
	 $row['signature'] = "";
	 
	 if ($poster['signature'] and $ibforums->member['view_sigs'])
	 {
   if ($row['use_sig'] == 1)
   {
  	 if ( $ibforums->vars['sig_allow_html'] == 1 )
  	 {
     $poster['signature'] = $this->parser->parse_html($poster['signature'], 0);
  	 }
  	 
  	 if ( $ibforums->vars['post_wordwrap'] > 0 )
  	 {
     $poster['signature'] = $this->parser->my_wordwrap( $poster['signature'], $ibforums->vars['post_wordwrap']);
  	 }
  	 
  	 $row['signature'] = $skin_universal->signature_separator($poster['signature']);
   }
	 }
	 
	 //--------------------------------------------------------------
           // Fix up the membername so it links to the members profile
           //--------------------------------------------------------------
 
 if ($poster['id'])
{
   $poster['name']=str_replace(" ", " ", $poster['name']);
         $poster['name']=$poster['prefix'].'<a href=javascript:ins("'.$poster['name'].'")>.'.$poster['name'].'</a>'.$poster['suffix'];
}

$poster[postcount] = ++$postcount;
	 //--------------------------------------------------------------
	 // Parse HTML tag on the fly
	 //--------------------------------------------------------------
	 
	 if ( $this->forum['use_html'] == 1 )
	 {
   // So far, so good..
   
   if ( stristr( $row['post'], '[dohtml]' ) )
   {
  	 // [doHTML] tag found..
  	 
  	 $parse = ($this->forum['use_html'] AND $row['g_dohtml']) ? 1 : 0;
  	 
  	 $row['post'] = $this->parser->post_db_parse($row['post'], $parse );
   }
	 }
	 
	 //--------------------------------------------------------------
	 // Do word wrap?
	 //--------------------------------------------------------------
	 
	 if ( $ibforums->vars['post_wordwrap'] > 0 )
	 {
   $row['post'] = $this->parser->my_wordwrap( $row['post'], $ibforums->vars['post_wordwrap']);
	 }
 

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

Во первых - в запросе лишняя запятая перед
FROM ibf_posts p
        LEFT JOIN ibf_members m ON (p.author_id=m.id)
        LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)

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

Исправил, форум открывается.

Но ники остались такими же, только группы, у которых в стилях был <i> стали наклонными и больше ничего.

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

Хмм... :D

<span class='normalname'><span style='color:20681c'><b><a href='http://newage.gcnet.ru/index.php?&act=Profile&CODE=03&MID=33'>Abyss</a></span></b></span>

похоже стиль ссылок перекрывает стиль ника попробуй так:

  $poster['name']='<a href=javascript:ins("'.$poster['name'].'")>.'.$poster['prefix'].$poster['name'].$poster['suffix'].'</a>';

И еще - у тебя перепутан порядок закрывающих и открывающих тегов кое-где для групп (если это твой форум http://newage.gcnet.ru/ )

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

Да, работает, только у тебя точка одна лишняя, нужно

$poster['name']='<a href=javascript:ins("'.$poster['name'].'")>'.$poster['prefix'].$poster['name'].$poster['suffix'].'</a>';

 

похоже стиль ссылок перекрывает стиль ника попробуй так:

У меня это только в статистика на гл. странице форума.

 

Спасибо!

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

А вот ко для 1.3.1 не от Игорька

 

    {
   $poster['name'] = $poster['prefix']."<a href='{$this->base_url}&act=Profile&CODE=03&MID={$poster['id']}'>{$poster['prefix']}{$poster['name']}{$poster['suffix']}</a>";
   }

Прикольная :D

Привер можете глянуть у меня на форуме

http://lizer.kulichki.ru/forum/

А так делать все так как писал Vic'er ;) Удачи

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

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

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

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

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

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

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

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

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

Зарузка...

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

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

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