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

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


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

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

Наверняка в вобле такое видели, сейчас мы сделаем то же самое для 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 ;) Удачи

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

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

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

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

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

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

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

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

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

Зарузка...

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

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

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