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

Фильтр авторов при просмотре топика


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

Добавляется возможность просмотреть все сообщения одного автора в топике или исключить из просматриваемого топика все сообщения этого автора.

 

skin_topic.php

Найти

<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align='left' width="20%" nowrap="nowrap"><!--IBF.TOPIC_OPTIONS_CLOSED-->{$data[TOPIC][SHOW_PAGES]}</td>
<td align='right' width="80%">{$data[TOPIC][REPLY_BUTTON]}<!--IBF.QUICK_REPLY_CLOSED--><a href='{$ibforums->base_url}act=Post&CODE=00&f={$data[FORUM]['id']}' title='{$ibforums->lang['start_new_topic']}'><{A_POST}></a>{$data[TOPIC][POLL_BUTTON]}</td>
</tr>
</table>

и заменить на

<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align='left' width='20%' nowrap="nowrap"><!--IBF.TOPIC_OPTIONS_CLOSED-->{$data[TOPIC][SHOW_PAGES]}</td>
<td width='2%'> </td>
<td align='center' width='36%' nowrap="nowrap">
<form action="">
<input type="hidden" name="showtopic" value="{$ibforums->input[t]}">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
 <td rowspan="2">Фильтр авторов: </td>
 <td rowspan="2"><input type="text" name="loadfilter" size="10" maxlength="64"></td>
 <td> <input type="radio" name="showorhide" value="show" style="width:10px;height:10px"> показать</td>
  <td rowspan="2"><input type="submit" value=">>>"></td>
</tr>
<tr>
	<td> <input type="radio" name="showorhide" value="hide" checked=checked style="width:10px;height:10px"> скрыть</td>
</tr>
</table>
</form>
</td>
<td width='2%'> </td>
<td align='right' width='60%'>{$data[TOPIC][REPLY_BUTTON]}<!--IBF.QUICK_REPLY_CLOSED--><a href='{$ibforums->base_url}act=Post&CODE=00&f={$data[FORUM]['id']}' title='{$ibforums->lang['start_new_topic']}'><{A_POST}></a>{$data[TOPIC][POLL_BUTTON]}</td>
</tr>
</table>

 

 

lang_error.php

После

missing_files					=>	"Некоторые требуемые файлы отсутствуют. Если Вы хотели просмотреть тему, возможно эта тема перемещена или удалена. Вернитесь назад и попробуйте снова.",

добавить

missinf_filter					=>	"Такого автора не существует или он не писал в этой теме.",

 

 

Topics.php

Перед

		$this->topic['SHOW_PAGES']
		= $std->build_pagelinks( array( 'TOTAL_POSS'  => ($this->topic['posts']+1),
										'PER_PAGE'	=> $ibforums->vars['display_max_posts'],
										'CUR_ST_VAL'  => $ibforums->input['st'],
										'L_SINGLE'	=> "",
										'BASE_URL'	=> $this->base_url."showtopic=".$this->topic['tid'].$loadfilter.$hl,
									  )
							   );

добавить

		$loadfilter = "";
	if($ibforums->input['loadfilter'] != "")
	{
		if($ibforums->input['showorhide'] == "show")$autorfilter = " AND author_name = '".$ibforums->input['loadfilter']."'";
		if($ibforums->input['showorhide'] == "hide")$autorfilter = " AND author_name != '".$ibforums->input['loadfilter']."'";
		$DB->query("SELECT COUNT(pid) as pcount FROM ibf_posts WHERE topic_id = '".$ibforums->input['t']."'".$autorfilter);
		$pcount = $DB->fetch_row();
		$this->topic['posts'] = $pcount['pcount'];
		$loadfilter = "&loadfilter=".$ibforums->input['loadfilter']."&showorhide=".$ibforums->input['showorhide'];
	}

 

 

Найти

		$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,m.dices,m.darlingm,p.darlingp,
				g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.files, m.downloads $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)
				  $join_profile_query
				WHERE p.topic_id=".$this->topic['tid']." and p.queued != 1
				ORDER BY p.{$ibforums->vars['post_order_column']} {$ibforums->vars['post_order_sort']} LIMIT $first, ".$ibforums->vars['display_max_posts']);

и заменить на

		$autorfilter = "";
	if($ibforums->input['loadfilter'] != "")
	{
		if($ibforums->input['showorhide'] == "show")$autorfilter = " AND author_name = '".$ibforums->input['loadfilter']."'";
		if($ibforums->input['showorhide'] == "hide")$autorfilter = " AND author_name != '".$ibforums->input['loadfilter']."'";
		$DB->query("SELECT COUNT(pid) as pcount FROM ibf_posts WHERE topic_id = '".$ibforums->input['t']."'".$autorfilter);
		$pcount = $DB->fetch_row();
		$this->topic['posts'] = $pcount['pcount'];
		if(intval($pcount['pcount'])==0)$std->Error( array( LEVEL => 1, MSG => 'missinf_filter') );
	}
	$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,m.dices,m.darlingm,p.darlingp,
				g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.files, m.downloads $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)
				  $join_profile_query
				WHERE p.topic_id=".$this->topic['tid']." and p.queued != 1".$autorfilter."
				ORDER BY p.{$ibforums->vars['post_order_column']} {$ibforums->vars['post_order_sort']} LIMIT $first, ".$ibforums->vars['display_max_posts']);

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

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

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

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

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

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

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

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

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

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

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

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