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

InVisible forums / Невидимые форумы


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

Есть такая модификация для 1.1.... и для 2.1.x http://www.ibresource.ru/forums/index.php?showtopic=44225

Но для 2.3.x ненашел. Вот мой вариант - переделал под себя возможно кому то пригодится.

 

1. сделать запрос

ALTER TABLE ibf_members ADD invisible_forums VARCHAR(255) DEFAULT NULL

Если у вас на форуме больше 50 разделов, лучше сделать запрос

ALTER TABLE ibf_members ADD invisible_forums text

2. Изменение шаблона skin_ucp -- Menu_bar

найти

				<{ITEM_START}> <a href="{$this->ipsclass->base_url}act=UserCP&CODE=04">{$this->ipsclass->lang['m_board_opt']}</a><br />

добавить после

				<{ITEM_START}> <a href='{$this->ipsclass->base_url}act=UserCP&CODE=333'>Видимость форумов</a><br />

3. Добавить шаблон в skin_ucp

Название - forum_header

Переменные -

Содержание -

<form action="{$this->ipsclass->vars['board_url']}/index.php" method="post" name='fview'>
<input type='hidden' name='act' value='UserCP'>
<input type='hidden' name='CODE' value='999'>
<div class="formsubtitle">Выберите форумы, которые не хотите видеть (Внимание так же отключится и поиск по этим форумам, включая "Показать новые сообщения")</div>
<div class="borderwrapm">
<table class='ipbtable' cellspacing="1">
<tr>
<th align='center' width='5%'>inVisible</td>
<th align='left' width='95%'>{$this->ipsclass->lang['ft_forum']}</td>
</tr>

языковая переменная аналогично

 

4. Добавить шаблон в skin_ucp

Название - forum_row

Переменные - $data=""

Содержание -

<tr>
<td class='row1' align='center' width='5%'><input name=invForums[] type="checkbox" value="{$data['id']}" {$data['checked']}></td>
<td class='row1' align='left'>
<b><a href='{$this->ipsclass->base_url}act=SF&f={$data['id']}'>{$data['name']}</a></b>
<br><span class='desc'>{$data['description']}</span>
</td>
</tr>

5. Добавить шаблон в skin_ucp

Название - forum_end

Переменные -

Содержание -

<tr>
<td align='center' class='row1' valign='middle' colspan='2'><input type="submit" value="Сохранить изменения" class='forminput'></td></tr>
</table>
</div>
</form>

(за этот фрагмент 10x Hugo Weaving)

языковая переменная аналогично по желанию

 

6. Добавить шаблон в skin_ucp

Название - forum_cat_row

Переменные - $data=""

Содержание -

				<tr>
			   <td class='row1' align='left' colspan="2">
				   <b><a href='{$this->ipsclass->base_url}act=SF&f={$data['id']}'>{$data['name']}</a></b>
				   <br><span class='desc'>{$data['description']}</span>
			   </td>
			 </tr>

7. изменение файла sources/action_public/boards.php

 

найти

			foreach( $this->ipsclass->forums->forum_cache[ $fid ] as $forum_data )
		{

добавить после

			if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false)	 continue;

найти

				foreach( $this->ipsclass->forums->forum_cache[ $root_id ] as $id => $forum_data )
			{

добавить после

				if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false)	 continue;

найти

						foreach( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] as $forum_data )
					{

добавить после

				if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false)	 continue;

 

8. изменение файла sources/action_public/usercp.php

 

найти

			case '50':
			$this->forum_tracker();
			break;
		case '51':
			$this->remove_forum_tracker();
			break;

добавить после

			case '333':
			$this->forums_view();
			break;
		case '999':
			$this->do_forums_view();
			break;

найти

}

?>

добавить перед, не промахнуться!

 	function forums_view() {

		$this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_header();

		foreach( $this->ipsclass->forums->forum_cache['root'] as $id => $forum_data )
		{
		$cat_data = $forum_data;
		$this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_cat_row( $cat_data );

				if ( is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] ) )
				{
			$this->recursion_forum_view($this->ipsclass->forums->forum_cache[ $forum_data['id'] ]);
				}
		}
	$this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_end();

	$this->page_title = $this->ipsclass->lang['t_welcome'];
		$this->nav		= array( "<a href='".$this->ipsclass->base_url."act=UserCP&CODE=00'>".$this->ipsclass->lang['t_title']."</a>" );

	}

function recursion_forum_view($forums)
{
   		foreach( $forums as $id => $forum_data )
		{
		if ( $this->ipsclass->check_perms($forum_data['show_perms']) != TRUE ) continue;

		if (in_array($forum_data['id'], explode(",",$this->ipsclass->member['invisible_forums'])))
					  $forum_data['checked'] = 'checked="checked"';
				if ( $this->ipsclass->vars['forum_cache_minimum'] )
				{
					  $forum_data['description'] = "<!--DESCRIPTION:{$forum_data['id']}-->";
			$need_desc[] = $forum_data['id'];
			}
			$this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_row( $forum_data  );

		if (is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ]))
			$this->recursion_forum_view($this->ipsclass->forums->forum_cache[ $forum_data['id'] ]);

	}
}

	//*******************************************************************/
	//| Forums Visibility Change function
	//|
	//| Change user inVisible forums list.
	//|
	//*******************************************************************/
	function do_forums_view()
	{

	//---------------------------------------------------------
	// If no inVisible forums then make default variable value
	//---------------------------------------------------------
	if (empty($this->ipsclass->input['invForums']))
		{
			$this->ipsclass->input['invForums'][] = '0';
		}

	//---------------------------------------------------------
	// Create string of inVisible forums id's
	//---------------------------------------------------------

	$invis_forums_list = implode(',',$this->ipsclass->input['invForums']);


	//---------------------------------------------------------
	//update user profile in DataBase
	//---------------------------------------------------------
		$this->ipsclass->DB->do_update( 'members', array( 'invisible_forums' => ''.$invis_forums_list.'' ), "id={$this->ipsclass->member['id']}" );

	//---------------------------------------------------------
	//redirect to the Forums List
	//---------------------------------------------------------
	$this->ipsclass->print->redirect_screen( 'Видимость форумов изменена', 'act=UserCP&CODE=333' );
}

 

и тут тоже языковая переменная

 

9. изменение файла sources/classes/class_session.php

 

найти

		has_blog, has_gallery, members_markers, members_editor_choice, members_auto_dst, members_display_name, members_created_remote,
	members_cache, members_disable_pm

добавить после

, invisible_forums

да так, с запятой.

 

Вот наверное и все.

Если вы хотите отключить поиск - по этим разделам (В том числе и кнопкой "Новые сообщения" - тогда:

 

10. изменение файла sources/action_public/search.php

найти

			//-----------------------------------------
		// Not an array...
		//-----------------------------------------

		if ( $this->ipsclass->input['forums'] == 'all' )
		{
			foreach( $this->ipsclass->forums->forum_by_id as $data )
			{

 

добавить после

			   if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$data['id'].",") !== false) continue;

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

  • 2 месяца спустя...

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

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

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

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

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

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

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

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

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

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

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