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

[2.1.x]Набор функций для никнеймов для IPB 2.1.X


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

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

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

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

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

Ближайший аппгрейд затронит раскрасску ников. Теперь они будут раскрашиватся ВЕЗДЕ!

Но про это я спрошу у знакомого, может он подскажет как это реализовать.

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

Уже выкладывал где-то на форуме, но повторюсь:

Для того чтобы раскраска ников действовала на странице рейтинга пользователей по репутации (eXTended Reputation System), делаем следующее:

В файле sources/action_public/reputation.php

Находим:

 

foreach($rows as $row)
			{
					$pluses = ceil(($row['count']+$row['summ'])/2);

 

Ниже добавляем:

 

$row['members_display_name'] = $this->ipsclass->cache['group_cache'][$row['mgroup']]['prefix'].$row['members_display_name'] .$this->ipsclass->cache['group_cache'][$row['mgroup']]['suffix'];

 

Сохраняем, заливаем - радуемся:D

 

Для раскраски ников в моде EASY BAN:

 

Управление стилями > Управление шаблоном > изменить HTML фрагменты > skin_boards > easy_ban

Меняем в нужном месте

{$Data['id']}

На (без ссылки на профиль):

{$this->ipsclass->cache['group_cache'][ $Data['mgroup'] ]['prefix']}{$Data['members_display_name']}{$this->ipsclass->cache['group_cache'][ $Data['mgroup'] ]['suffix']}

 

С ссылкой на профиль:

<a href='{$this->base_url}showuser={$Data['id']}'>{$this->ipsclass->cache['group_cache'][ $Data['mgroup'] ]['prefix']}{$Data['members_display_name']}{$this->ipsclass->cache['group_cache'][ $Data['mgroup'] ]['suffix']}</a>

 

Сохраняем - радуемся;)

 

Раскраска ников на странице Администрация

 

В файле /sources/action_public/misc/stats.php

 

Ищем:

		//-----------------------------------------
	// Get all members.. (two is more eff. than 1)
	//-----------------------------------------

	if ( count( $member_ids ) )
	{
		$this->ipsclass->DB->cache_add_query( 'stats_get_all_members', array( 'member_ids' => $member_ids ) );
		$this->ipsclass->DB->cache_exec_query();

		while( $r = $this->ipsclass->DB->fetch_row() )
		{

Добавляем после:

 $r['members_display_name'] = $this->ipsclass->cache['group_cache'][$r['mgroup']]['prefix']
.$r['members_display_name'].$this->ipsclass->cache['group_cache'][$r['mgroup']]['suffix'];

Ищем:

		//-----------------------------------------
	// Get all groups.. (two is more eff. than 1)
	//-----------------------------------------

	$this->ipsclass->DB->cache_add_query( 'stats_get_all_members_groups', array( 'group_ids' => $group_ids ) );
	$this->ipsclass->DB->cache_exec_query();

	while( $r = $this->ipsclass->DB->fetch_row() )
	{

Добавляем после:

	$r['members_display_name'] = $this->ipsclass->cache['group_cache'][$r['mgroup']]['prefix'] .$r['members_display_name'].$this->ipsclass->cache['group_cache'][$r['mgroup']]['suffix'];

Сохраняем, перезаливаем, радуемся.

 

До раскраски обьявлений не добрался ещё :)

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

О, хорошо что ты это здесь написал. Включю в инструкцию ссылку на этот пост. Если будешь что-то добавлять - пиши в тот же пост.

 

То что касаеться раскраски в стандартных местах - не занимайся покачто этим. У меня есть материалы по раскраске всего форума. Если что-то останеться тогда будем думать.

 

Апдейт через недели 2 будет так как щас началась учёба и куча дел.

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

То что касаеться раскраски в стандартных местах - не занимайся покачто этим. У меня есть материалы по раскраске всего форума. Если что-то останеться тогда будем думать.

 

Если мне попался тот же материал, то штука хорошая, красит ники практически везде, но опять же нет форматирования ников в обьявлениях. Буду думать, надумаю - выложу тут:D

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

  • 2 недели спустя...

Хотел чтобы была картинка у ника сделал всё как написано получилось

<!--Begin Msg Number {$post['pid']}-->

<table class='ipbtable' cellspacing="1">

<tr>

<td valign="middle" class="row2" width="1%"><a name="entry{$post['pid']}"></a><span class="{$post['name_css']}"><if="author['mgroup'] == 'ID_5'">

<img src='http://www.growclub.ru/e107_images/newspost_images/gorshok.jpg' alt='Почётный гроувер' border='0'>&nbsp</if> {$author['members_display_name']}</span></td>

<td class="row2" valign="top" width="99%">

<!-- POSTED DATE DIV -->

 

а картинка не показывается всё как было так и осталось что делать?

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

вот еще нашел в инете:

/*
+----------------------------------------------------
| Member Group Color 1.0.0
| ===================================================
| by Dung, Nguyen Tuan (ntd1712)
| © 2006 Vietnamese - Invision Resources
| [url="http://invisionviet.net/"]http://invisionviet.net/[/url]
| ===================================================
| Date Started: Tue, 29 Aug 2006 02:26 (GMT+07:00)
| Release Data: Tue, 29 Aug 2006 04:07 (GMT+07:00)
| Last Updated: Wed, 20 Sep 2006 03:02 (GMT+07:00)
| License Info: [url="http://invisionviet.net/license.php"]http://invisionviet.net/license.php[/url]
+----------------------------------------------------
*/

Compatibility: IPB v2.1.x
Description  :
- Show member color on pages: Board View (Last Post Info & Board Statistics),
Forum View (Topic Starter & Last Action), Topic View, Profile View, Member Bar (Logged in as...)
User Control Panel (Messages & Buddies List), Members List,  Online List, Search Results...


File to edit:
./sources/action_admin/member.php
./sources/action_public/announcements.php
./sources/action_public/forums.php
./sources/action_public/messenger.php
./sources/action_public/profile.php
./sources/action_public/register.php
./sources/action_public/search.php
./sources/action_public/topics.php
./sources/action_public/usercp.php
./sources/action_public/misc/stats.php
./sources/classes/class_display.php
./sources/classes/class_forums.php
./sources/lib/func_boardstats.php
./sources/sql/mysql_queries.php

---------------------------------------------------------------------------------------------

Open: ./sources/action_admin/member.php

Find: [ function member_change_display_name_do() ]

	$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, members_display_name',
									  'from'   => 'members',
									  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
									  'order'  => "id DESC",
									  'limit'  => array(0,1) ) );
	$this->ipsclass->DB->simple_exec();

	$r = $this->ipsclass->DB->fetch_row();
	$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
	$stats['last_mem_id']   = $r['id'];

Replace with:

	$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, mgroup, members_display_name',
									  'from'   => 'members',
									  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
									  'order'  => "id DESC",
									  'limit'  => array(0,1) ) );
	$this->ipsclass->DB->simple_exec();

	$r = $this->ipsclass->DB->fetch_row();
	$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
	$stats['last_mem_id']   = $r['id'];
	$stats['last_mem_grp']  = $r['mgroup'];

===============================================

Find: [ function member_change_name_complete() ]

	$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, members_display_name',
									  'from'   => 'members',
									  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
									  'order'  => "id DESC",
									  'limit'  => array(0,1) ) );
	$this->ipsclass->DB->simple_exec();

	$r = $this->ipsclass->DB->fetch_row();
	$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
	$stats['last_mem_id']   = $r['id'];

Replace with:

	$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, mgroup, members_display_name',
									  'from'   => 'members',
									  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
									  'order'  => "id DESC",
									  'limit'  => array(0,1) ) );
	$this->ipsclass->DB->simple_exec();

	$r = $this->ipsclass->DB->fetch_row();
	$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
	$stats['last_mem_id']   = $r['id'];
	$stats['last_mem_grp']  = $r['mgroup'];

===============================================

Find: [ function member_do_moderation_queue() ]

		$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, members_display_name',
										  'from'   => 'members',
										  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
										  'order'  => "id DESC",
										  'limit'  => array(0,1) ) );
		$this->ipsclass->DB->simple_exec();

		$r = $this->ipsclass->DB->fetch_row();
		$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
		$stats['last_mem_id']   = $r['id'];

Replace with:

		$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, mgroup, members_display_name',
										  'from'   => 'members',
										  'where'  => "mgroup <> '".$this->ipsclass->vars['auth_group']."'",
										  'order'  => "id DESC",
										  'limit'  => array(0,1) ) );
		$this->ipsclass->DB->simple_exec();

		$r = $this->ipsclass->DB->fetch_row();
		$stats['last_mem_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['name'];
		$stats['last_mem_id']   = $r['id'];
		$stats['last_mem_grp']  = $r['mgroup'];

===============================================

Find: [ function member_delete_do($id) ]

	$r = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id, members_display_name',
									    'from'   => 'members',
									    'where'  => "mgroup <> ".$this->ipsclass->vars['auth_group'],
									    'order'  => 'id DESC',
									    'limit'  => array( 0, 1 )
							   )      );

	$stats['last_mem_name'] = $r['members_display_name'];
	$stats['last_mem_id']   = $r['id'];

Replace with:

	$r = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id, members_display_name, mgroup',
									    'from'   => 'members',
									    'where'  => "mgroup <> ".$this->ipsclass->vars['auth_group'],
									    'order'  => 'id DESC',
									    'limit'  => array( 0, 1 )
							   )      );

	$stats['last_mem_name'] = $r['members_display_name'];
	$stats['last_mem_id']   = $r['id'];
	$stats['last_mem_grp']  = $r['mgroup'];

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/announcements.php

Find: [ function announce_recache() ]

			$this->ipsclass->cache['announcements'][ $r['announce_id'] ] = array( 'announce_id'    => $r['announce_id'],
																				  'announce_title' => $r['announce_title'],
																				  'announce_start' => $r['announce_start'],
																				  'announce_end'   => $r['announce_end'],
																				  'announce_forum' => $r['announce_forum'],
																				  'announce_views' => $r['announce_views'],
																				  'member_id'      => $r['id'],

Add below:

																				  'member_group'   => $r['mgroup'],

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/forums.php

Find: [ function render_forum() ]

$announce['announce_views'] = intval($announce['announce_views']);

Add below:

$announce['member_name']    = $this->ipsclass->cache['group_cache'][ $announce['member_group'] ]['prefix'].$announce['member_name'].$this->ipsclass->cache['group_cache'][ $announce['member_group'] ]['suffix'];

===============================================

Find: [ function render_forum() ]

	//-----------------------------------------
	// Show meh the topics!
	//-----------------------------------------

Add below:

	# Colorize for Member Group Title
	if( count($topic_ids) )
	{
		$this->ipsclass->DB->build_query( array(
											'select'   => 't.tid',
											'from'     => array( 'topics' => 't' ),
											'where'    => "t.tid IN(".implode(",", $topic_ids).")",
											'add_join' => array(
											# MEMBER TABLE JOIN
											0 => array( 'select' => 'mg.mgroup as starter_group',
														'from'   => array( 'members' => 'mg' ),
														'where'  => 'mg.id=t.starter_id',
														'type'   => 'left' ),
											# MEMBER TABLE JOIN
											1 => array( 'select' => 'pg.mgroup as poster_group',
														'from'   => array( 'members' => 'pg' ),
														'where'  => 'pg.id=t.last_poster_id',
														'type'   => 'left' )
																),
										)		);
		$this->ipsclass->DB->exec_query();

		while( $m = $this->ipsclass->DB->fetch_row() )
		{
			if( is_array($topic_array[ $m['tid'] ]) )
			{
				$topic_array[ $m['tid'] ]['starter_group'] = $m['starter_group'];
				$topic_array[ $m['tid'] ]['poster_group']  = $m['poster_group'];
			}
		}
	}

===============================================

Find: [ function parse_data( $topic ) ]

	$topic['last_poster'] = $topic['last_poster_id'] ? $this->ipsclass->make_profile_link( $topic['last_poster_name'], $topic['last_poster_id']) : "-".$topic['last_poster_name']."-";

	$topic['starter']     = $topic['starter_id']     ? $this->ipsclass->make_profile_link( $topic['starter_name'], $topic['starter_id']) : "-".$topic['starter_name']."-";

Replace with:

	//$topic['last_poster'] = $topic['last_poster_id'] ? $this->ipsclass->make_profile_link( $topic['last_poster_name'], $topic['last_poster_id']) : "-".$topic['last_poster_name']."-";

	//$topic['starter']     = $topic['starter_id']     ? $this->ipsclass->make_profile_link( $topic['starter_name'], $topic['starter_id']) : "-".$topic['starter_name']."-";
	$pgroup = $this->ipsclass->cache['group_cache'][ $topic['poster_group'] ];
	$sgroup = $this->ipsclass->cache['group_cache'][ $topic['starter_group'] ];
	$topic['last_poster'] = $topic['last_poster_id'] ? "<a href='{$this->ipsclass->base_url}showuser={$topic['last_poster_id']}'>{$pgroup['prefix']}{$topic['last_poster_name']}{$pgroup['suffix']}</a>" : "-".$topic['last_poster_name']."-";
	$topic['starter']     = $topic['starter_id']     ? "<a href='{$this->ipsclass->base_url}showuser={$topic['starter_id']}'>{$sgroup['prefix']}{$topic['starter_name']}{$sgroup['suffix']}</a>" : "-".$topic['starter_name']."-";

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/messenger.php

Find: [ function contact() ]

		$this->ipsclass->DB->simple_construct( array( 'select' => '*',
												  'from'   => 'contacts',
												  'where'  => "member_id={$this->ipsclass->member['id']}",
												  'order'  =>  "contact_name ASC" ) );
	$this->ipsclass->DB->simple_exec();

Replace with:

	$this->ipsclass->DB->build_query( array(
										'select'   => 'c.*',
										'from'     => array( 'contacts' => 'c' ),
										'where'    => "c.member_id={$this->ipsclass->member['id']}",
										'add_join' => array(
										# MEMBER TABLE JOIN
										0 => array( 'select' => 'm.mgroup',
													'from'   => array( 'members' => 'm' ),
													'where'  => 'm.id=c.member_id',
													'type'   => 'left' ),
															),
									)		);
	$this->ipsclass->DB->exec_query();

===============================================

Find: [ function contact() ]

				$row['text'] = $row['allow_msg']
							 ? $this->ipsclass->lang['can_contact']
							 : $this->ipsclass->lang['cannot_contact'];

Add below:

				$row['contact_name'] = $this->ipsclass->cache['group_cache'][ $row['mgroup'] ]['prefix'].$row['contact_name'].$this->ipsclass->cache['group_cache'][ $row['mgroup'] ]['suffix'];

===============================================

Find: [ function msg_list() ]

$row['date'] = $this->ipsclass->get_date( $row['mt_date'] , 'LONG' );

Add below:

$row['from_name'] = $this->ipsclass->cache['group_cache'][ $row['from_group'] ]['prefix'].$row['from_name'].$this->ipsclass->cache['group_cache'][ $row['from_group'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/profile.php

Find: [ function view_profile() ]

$info['members_display_name'] = $member['members_display_name'];

Replace with:

$info['members_display_name'] = $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['prefix'].$member['members_display_name'].$this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/register.php

Find: [ function create_account() ]

$this->ipsclass->cache['stats']['last_mem_id']   = $member['id'];

Add below:

$this->ipsclass->cache['stats']['last_mem_grp']  = $member['mgroup'];

===============================================

Find: [ function validate_user() ]

$this->ipsclass->cache['stats']['last_mem_id']   = $member['id'];

Add below:

$this->ipsclass->cache['stats']['last_mem_grp']  = $member['mgroup'];

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/search.php

Find: [ function get_topics_user() ]

	$this->ipsclass->DB->simple_construct( array( 'select' => 't.*, t.title as topic_title',
								  'from'   => 'topics t',
								  'where'  => "t.approved=1 AND t.forum_id IN($forums) AND t.starter_id=$mid",
								  'order'  => "t.last_post DESC" ) );

Replace with:

	$this->ipsclass->DB->build_query( array(
											'select'   => 't.*, t.title as topic_title',
											'from'     => array( 'topics' => 't' ),
											'where'    => "t.approved=1 AND t.forum_id IN($forums) AND t.starter_id=$mid",
											'add_join' => array(
											# MEMBER TABLE JOIN
											0 => array( 'select' => 'mg.mgroup as starter_group',
														'from'   => array( 'members' => 'mg' ),
														'where'  => 'mg.id=t.starter_id',
														'type'   => 'left' ),
											# MEMBER TABLE JOIN
											1 => array( 'select' => 'pg.mgroup as poster_group',
														'from'   => array( 'members' => 'pg' ),
														'where'  => 'pg.id=t.last_poster_id',
														'type'   => 'left' )
																),
											'order'  => "t.last_post DESC"
										)		);

===============================================

Find: [ function get_new_posts() ]

	$this->ipsclass->DB->simple_construct( array( 'select' => 't.*, t.title as topic_title',
												  'from'   => 'topics t',
												  'where'  => "t.approved=1 AND t.state != 'link' AND t.forum_id IN($forums) AND t.last_post > {$last_time}",
												  'order'  => "t.last_post DESC" ) );

Replace with:

	$this->ipsclass->DB->build_query( array(
											'select'   => 't.*, t.title as topic_title',
											'from'     => array( 'topics' => 't' ),
											'where'    => "t.approved=1 AND t.state != 'link' AND t.forum_id IN($forums) AND t.last_post > {$last_time}",
											'add_join' => array(
											# MEMBER TABLE JOIN
											0 => array( 'select' => 'mg.mgroup as starter_group',
														'from'   => array( 'members' => 'mg' ),
														'where'  => 'mg.id=t.starter_id',
														'type'   => 'left' ),
											# MEMBER TABLE JOIN
											1 => array( 'select' => 'pg.mgroup as poster_group',
														'from'   => array( 'members' => 'pg' ),
														'where'  => 'pg.id=t.last_poster_id',
														'type'   => 'left' )
																),
											'order'  => "t.last_post DESC"
										)		);

===============================================

Find: [ function show_results() ]

			$this->ipsclass->DB->simple_construct( array( 'select' => 't.*',
														  'from'   => 'topics t',
														  'where'  => "t.tid IN({$topics})",
														  'order'  => "t.pinned DESC, t.".$this->sort_key." ".$this->sort_order,
														  'limit'  => array( $this->first, 25 )
												 )      );
			$this->ipsclass->DB->simple_exec();

Replace with:

			$this->ipsclass->DB->build_query( array(
												'select'   => 't.*',
												'from'     => array( 'topics' => 't' ),
												'where'    => "t.tid IN({$topics})",
												'add_join' => array(
												# MEMBER TABLE JOIN
												0 => array( 'select' => 'mg.mgroup as starter_group',
															'from'   => array( 'members' => 'mg' ),
															'where'  => 'mg.id=t.starter_id',
															'type'   => 'left' ),
												# MEMBER TABLE JOIN
												1 => array( 'select' => 'pg.mgroup as poster_group',
															'from'   => array( 'members' => 'pg' ),
															'where'  => 'pg.id=t.last_poster_id',
															'type'   => 'left' )
																	),
												'order'  => "t.pinned DESC, t.".$this->sort_key." ".$this->sort_order,
												'limit'  => array( $this->first, 25 )
											)		);
			$this->ipsclass->DB->exec_query();

===============================================

Find: [ function show_results() ]

			$this->ipsclass->DB->simple_construct( array( 'select' => 't.*',
														  'from'   => 'topics t',
														  'where'  => "t.tid IN({$topics})",
														  'order'  => "t.pinned DESC, t.".$this->sort_key." ".$this->sort_order,
														  'limit'  => array( $this->first, 25 )
												 )      );
			$this->ipsclass->DB->simple_exec();

Replace with:

			$this->ipsclass->DB->build_query( array(
												'select'   => 't.*',
												'from'     => array( 'topics' => 't' ),
												'where'    => "t.tid IN({$topics})",
												'add_join' => array(
												# MEMBER TABLE JOIN
												0 => array( 'select' => 'mg.mgroup as starter_group',
															'from'   => array( 'members' => 'mg' ),
															'where'  => 'mg.id=t.starter_id',
															'type'   => 'left' ),
												# MEMBER TABLE JOIN
												1 => array( 'select' => 'pg.mgroup as poster_group',
															'from'   => array( 'members' => 'pg' ),
															'where'  => 'pg.id=t.last_poster_id',
															'type'   => 'left' )
																	),
												'order'  => "t.pinned DESC, t.".$this->sort_key." ".$this->sort_order,
												'limit'  => array( $this->first, 25 )
											)		);
			$this->ipsclass->DB->exec_query();

===============================================

Find: [ function parse_entry($topic, $view_as_post=0) ]

$topic['author_name'] = "<b><a href='{$this->base_url}showuser={$topic['author_id']}'>{$topic['author_name']}</a></b>";

Replace with:

$topic['author_name'] = "<b><a href='{$this->base_url}showuser={$topic['author_id']}'>{$this->ipsclass->cache['group_cache'][ $topic['mgroup'] ]['prefix']}{$topic['author_name']}{$this->ipsclass->cache['group_cache'][ $topic['mgroup'] ]['suffix']}</a></b>";

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/topics.php

Find: [ function parse_member( $member=array() ) ]

$member['member_group']  = $this->ipsclass->compiled_templates['skin_topic']->member_group( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_title'] );

Add below:

$member['members_display_name'] = $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['prefix'].$member['members_display_name'].$this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/usercp.php

Find: [ function splash() ]

			$this->ipsclass->DB->simple_construct( array( 'select' => '*',
														  'from'   => 'topics',
														  'where'  => 'tid IN ('.implode(",",$topic_array).')',
														  'limit'  => array(0,5) ) );

			$this->ipsclass->DB->simple_exec();

Replace with:

			$this->ipsclass->DB->build_query( array(
												'select'   => 't.*',
												'from'     => array( 'topics' => 't' ),
												'where'    => "t.tid IN(".implode(",", $topic_array).")",
												'add_join' => array(
												# MEMBER TABLE JOIN
												0 => array( 'select' => 'mg.mgroup as starter_group',
															'from'   => array( 'members' => 'mg' ),
															'where'  => 'mg.id=t.starter_id',
															'type'   => 'left' ),
												# MEMBER TABLE JOIN
												1 => array( 'select' => 'pg.mgroup as poster_group',
															'from'   => array( 'members' => 'pg' ),
															'where'  => 'pg.id=t.last_poster_id',
															'type'   => 'left' )
																	),
												'limit'  => array(0,5)
											)		);
			$this->ipsclass->DB->exec_query();

---------------------------------------------------------------------------------------------

Open: ./sources/action_public/misc/stats.php

Find: [ function show_today_posters() ]

$info['joined']  = $this->ipsclass->get_date( $info['joined'], 'JOINED' );

Add above:

$info['members_display_name'] = $this->ipsclass->cache['group_cache'][ $info['mgroup'] ]['prefix'].$info['members_display_name'].$this->ipsclass->cache['group_cache'][ $info['mgroup'] ]['suffix'];

===============================================

Find: [ function parse_member( $member ) ]

$member['msg_icon'] = "<a href='{$this->base_url}&act=Msg&CODE=04&MID={$member['id']}'><{P_MSG}></a>";

Add above:

$member['members_display_name'] = $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['prefix'].$member['members_display_name'].$this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/classes/class_display.php

Find: [ function do_output($output_array) ]

	$output_array['MEMBER_BAR'] = $this->ipsclass->compiled_templates['skin_global']->member_bar($msg_data);

Add above:

	$msg_data['g_prefix'] = $this->ipsclass->cache['group_cache'][ $this->ipsclass->member['mgroup'] ]['prefix'];
	$msg_data['g_suffix'] = $this->ipsclass->cache['group_cache'][ $this->ipsclass->member['mgroup'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/classes/class_forums.php

Find:

var $mod_cache     = array();

Add below:

var $mem_cache     = array();

===============================================

Find: [ function forums_init() ]

		if ( $f['parent_id'] < 1 )
		{
			$f['parent_id'] = 'root';
		}

Add below:

		if ( $f['last_poster_id'] > 0 )
		{
			$uid[] = $f['last_poster_id'];
		}

===============================================

Find: [ function forums_init() ]

		$f['fid'] = $f['id'];

		$this->forum_cache[ $f['parent_id'] ][ $f['id'] ] = $f;
		$this->forum_by_id[ $f['id'] ] = &$this->forum_cache[ $f['parent_id'] ][ $f['id'] ];
	}

Add below:

	if( is_array($uid) && count($uid) > 0 )
	{
		$this->ipsclass->DB->simple_construct( array( 'select' => 'id, mgroup', 'from' => 'members', 'where' => "id IN (".implode(",", $uid).")" ) );
		$this->ipsclass->DB->simple_exec();

		while( $m = $this->ipsclass->DB->fetch_row() )
		{
			$this->mem_cache[ $m['id'] ] = $m['mgroup'];
		}
	}

===============================================

Find: [ function forums_get_moderators($forum_id="") ]

$mod_string .= "<a href='{$this->ipsclass->base_url}act=Members&max_results=30&filter={$moderator['gid']}&sort_order=asc&sort_key=members_display_name&st=0&b=1'>{$moderator['gname']}</a>, ";

Replace with:

$mod_string .= "<a href='{$this->ipsclass->base_url}act=Members&max_results=30&filter={$moderator['gid']}&sort_order=asc&sort_key=members_display_name&st=0&b=1'>{$this->ipsclass->cache['group_cache'][ $moderator['gid'] ]['prefix']}{$moderator['gname']}{$this->ipsclass->cache['group_cache'][ $moderator['gid'] ]['suffix']}</a>, ";

===============================================

Find: [ function forums_format_lastinfo($forum_data) ]

		$forum_data['last_poster'] = $forum_data['last_poster_id'] ? "<a href='{$this->ipsclass->base_url}showuser={$forum_data['last_poster_id']}'>{$forum_data['last_poster_name']}</a>"
																   : $forum_data['last_poster_name'];

Replace with:

		if( $forum_data['last_poster_id'] )
		{
			$prefix = $this->ipsclass->cache['group_cache'][ $this->mem_cache[ $forum_data['last_poster_id'] ] ]['prefix'];
			$suffix = $this->ipsclass->cache['group_cache'][ $this->mem_cache[ $forum_data['last_poster_id'] ] ]['suffix'];
		}

		$forum_data['last_poster'] = $forum_data['last_poster_id'] ? "<a href='{$this->ipsclass->base_url}showuser={$forum_data['last_poster_id']}'>{$prefix}{$forum_data['last_poster_name']}{$suffix}</a>"
																   : $forum_data['last_poster_name'];

---------------------------------------------------------------------------------------------

Open: ./sources/lib/func_boardstats.php

Find: [ function show_totals() ]

		$this->ipsclass->lang['total_word_string'] = str_replace( "<#posts#>" , "$total_posts"          , $this->ipsclass->lang['total_word_string'] );

Add above:

		if( ! $stats['last_mem_grp'] )
		{
			$mgroup = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'mgroup', 'from' => 'members', 'where' => 'id='.intval($stats['last_mem_id']) ) );
			$stats['last_mem_grp'] = $mgroup['mgroup'];
		}
		$stats['last_mem_name'] = $this->ipsclass->cache['group_cache'][ $stats['last_mem_grp'] ]['prefix'].$stats['last_mem_name'].$this->ipsclass->cache['group_cache'][ $stats['last_mem_grp'] ]['suffix'];

---------------------------------------------------------------------------------------------

Open: ./sources/sql/mysql_queries.php

Find: [ function msg_get_sent_list( $a ) ]

return "SELECT mem.members_display_name as from_name, mem.id as from_id

Add after:

, mem.mgroup as from_group

===============================================

Find: [ function msg_get_folder_list( $a ) ]

return "SELECT mt.*,mem.members_display_name as from_name, mem.id as from_id

Add after:

, mem.mgroup as from_group

===============================================

Find: [ function ucp_get_all_announcements( $a ) ]

return "SELECT a.*, m.id, m.name,

Add after:

m.mgroup,

===============================================

Find: [ function stats_get_todays_posters( $a ) ]

return "SELECT COUNT(*) as tpost, m.id, m.name,

Add after:

m.mgroup,

---------------------------------------------------------------------------------------------

Goto: ACP: LOOK & FEEL: Skin Manager: Edit Template HTML:

1/ Open Template Bit: All Global HTML: member_bar

Find:

{ipb.member['members_display_name']}

Replace With:

{$msg['g_prefix']}{ipb.member['members_display_name']}{$msg['g_suffix']}

---------------------------------------------------------------------------------------------

That's all! 
©2006 ntd1712

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

4iX-Pblx не ты один это нашол. Лежит на инвизионайзе. При чём обидно что он появилься через месяц после моего мода, но из-за громкого названия и известности автора популярность большая.

Надо это изучить и добавить то чего нам нехватает. Только руки до этого недоходят.

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

ОО, нашла тему, а то не могла найти. Мод классный спасибо.

С картинками малость всё же запуталась, но это мои тараканы неумелые такие. И вопрос, а если многим хочу дать личную картинку, не группам, а юзерам, то это как всех отдельно прописывать?

 

У меня картинка встала хорошо, под аватаром, над статусом, очень мило. Но всё мучает вопрос. А если другие картинки хочу другим, то выстроить целую цепочку таких функций? Это не вредно?

 

Подсветка с надписью не работает (у меня опера), значит накосячила где-то?

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

Читац приват.

+ В теории есть такая вещь как elseif. Это чтобы не писать много раз <if>....</if>

<if (author['mgroup'] == '9')
{echo ("
<img src='http://.....' alt='.....' border='0'>
");}

elseif (author['id'] == '8')
<img src='http://.....' alt='.....' border='0'>
{echo ("

");}
>

Но я не знаток пхп, поэтому скорее всего это неправельно... :D То где я это видел оно имело немного другою форму.

 

Относительно подсветки. Вроде в опере alt не работает. За это отвечает параметр title. Поэтому можно сделать так: <img src='http://.....' alt='.....' title="...." border='0'>

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

Угу, спасибо. Да подсветка мелочь, без неё жить можно. Картинки встали хорошо, но всем жаль не влепить личную)))) Спасибо ещё раз и за мод и за терпеливые объяснения. :D Нескольким поставила их так, другим может кто-то посоветует черех дополнительные поля профиля как ставить. Но 7 человек довольны и я с ними заодно. Побольше бы таких скриптов и объясняющих))
Ссылка на комментарий
Поделиться на других сайтах

:D А вот про всплывающее окошко, в котором отображаются ники тех кто писал сообщения в теме, все забыли ;)

 

 

Форматирование ников во всплывающем окне "Кто писал сообщения".

 

 

Необходимые изменения:

1. Редактирование sources/sql/mysql_queries.php

2. Редактирование sources/action_public/misc/stats.php

 

Открываем:

 

sources/action_public/misc/stats.php

 

Находим:

 					$r['author_name'] = $this->ipsclass->compiled_templates['skin_stats']->who_name_link($r['author_id'], $r['author_name']);

Заменяем на:

 					$r['author_name'] = $this->ipsclass->compiled_templates['skin_stats']->who_name_link($r['author_id'], $this->ipsclass->cache['group_cache'][ $r['mgroup'] ]['prefix'].$r['members_display_name'].$ibforums->cache['group_cache'][ $poster['mgroup'] ]['suffix']);

Сохраняем, заливаем.

 

 

sources/sql/mysql_queries.php

 

Находим:

	function stats_who_posted( $a )
{
	return "SELECT COUNT(p.pid) as pcount, p.author_id, p.author_name FROM ".SQL_PREFIX."posts p
				WHERE p.topic_id={$a['tid']} AND queued=0 GROUP BY p.author_id ORDER BY pcount DESC";
}

 

Заменяем на:

	function stats_who_posted( $a )
{
	return "SELECT COUNT(p.pid) as pcount, p.author_id, p.author_name, m.mgroup, m.members_display_name FROM  ".SQL_PREFIX."posts p
	LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
				WHERE p.topic_id={$a['tid']} AND queued=0 GROUP BY p.author_id ORDER BY pcount DESC";
}

Сохраняем, заливаем. :)

 

+ЗЫ, а кто-нить разобрался с расскраской ников в обьявлениях при просмотре форума?

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

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

mrMad-Cat

Ну к примеру: Общие вопросы (по 2.1.x)

Есть колонка Ответов при клике на ссылку в колонке откроется всплывающее окошко, где отображаются ники тех кто отметился в теме :D

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

Лол, я даже не знал про это! хахах! Ок, спасибо.

Потом посмотрю про всё остальное. Покачто нет времени.

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

хммм... перестал ник вставляться... хотя было раньше все ок

т.е. при кликаньи наник вставляется такое:

после опубликования становится таким:

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

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

Дата не будет вставляться. А вот никнейм должен. Странно, у меня всё работает. Может это из-за того что у меня расширенная форма быстрого ответа стоит. Ну тогда поменяй часть джаваскрипта:

txt='[quote name="'+qinf+'" post='+pid+']\n'+txt+'\n[/quote]\n'

на

txt='[quote='+qinf+date+']\n'+txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'

 

да, вот это сделал

не помогло

а что есть "либо второе"? так и так было - не работаить

при том сначала же работалос... ничего, вроде, не менял (не припомню по крайней мере) и как-то само по себе перестало работать =).. даж не знаю... может кто-то еще поменял что-нить, конечно, но это очень маловероятно

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


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

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

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