Скрытие сообщений из результатов поиска - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Скрытие сообщений из результатов поиска

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 14:28

Есть раздел форума, в нём сообщения. Задача - как скрыть сообщения и темы в этом разделе в результатах поиска? Тобишь при заходе в раздел видны эти сообщения, но в результатах поиска - нет.
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 15:42

Во первых, сообщения из закрытых разделов для этого пользователя не будут участвовать в поиске, во вторых - при поиске можно выбрать форумы по которым производится поиск.
0

#3 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 537
  • IPB version:3.4.x
 

Отправлено 05 Июнь 2012 - 15:52

Плюс в "системных настройках > поиск" есть поле "исключить следующие форумы" для списка новых сообщений.
0

#4 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 15:55

Просмотреть сообщениеsiv1987 05 Июнь 2012 - 15:42 сказал(а):

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

Вы не так поняли меня. Скажем есть раздел и юзер который пишет в нём. Затем он скажем хочет найти свои сообщения через поиск - но в поиске не должно быть результатов с этого раздела.

Вот как например есть настройка поиска:

Цитата

Просмотр новых публикаций: игнорирование разделов
Выберите разделы, публикации из которых не будут отображаться в результатах "просмотра новых публикаций". Зажав клавишу Ctrl можно выбрать несколько разделов.

Такое же хотелось реализовать и по всем структурам поиска.
0

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:11

А если мне нужен поиск по этому форуму? А вот если он мне не понадобится, я его просто исключу в опциях поиска. Имхо, бессмысленная какая-то затея. Либо человек не умеет пользоваться поиском.
Наверное без хука такого не сделать. Хотя я с настройками поиска не очень знаком, может быть что-то такое и есть.
0

#6 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:18

Просмотреть сообщениеsiv1987 05 Июнь 2012 - 16:11 сказал(а):

А если мне нужен поиск по этому форуму? А вот если он мне не понадобится, я его просто исключу в опциях поиска. Имхо, бессмысленная какая-то затея. Либо человек не умеет пользоваться поиском.

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

Цитата

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

Не находил.
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:23

Просмотреть сообщениеHaktar сказал(а):

не смог находить посредством поиска ни свои ни чужие сообщения определённого раздела

Для этого придется полностью отключить поиск по этому разделу. Если в настройках ничего нет, то только хуком.
0

#8 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:32

Просмотреть сообщениеsiv1987 05 Июнь 2012 - 16:23 сказал(а):

Для этого придется полностью отключить поиск по этому разделу. Если в настройках ничего нет, то только хуком.

В том то и дело что нельзя нигде раздел выключить из поиска полностью.
0

#9 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 537
  • IPB version:3.4.x
 

Отправлено 05 Июнь 2012 - 16:36

Пароль на раздел поставьте. Поиск на запароленных разделах не работает :)
0

#10 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:37

Просмотреть сообщениеRitsuka 05 Июнь 2012 - 16:36 сказал(а):

Пароль на раздел поставьте. Поиск на запароленных разделах не работает :)


О точно. Сейчас попробую :)
0

#11 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 537
  • IPB version:3.4.x
 

Отправлено 05 Июнь 2012 - 16:45

Вообще вот как определяется список форумов, где работает поиск:

	/**
	 * Fetch forum IDs safe to use when searching, etc
	 *
	 * @param	int			Optional member ID, if no member ID is passed, it'll use current member
	 * @param	array		Array of ids to skip
	 * @return	array		Array of "good" IDs
	 */
	public function fetchSearchableForumIds( $memberId=null, $skipIds=array() )
	{
		$forumIdsOk = array();
		$member 	= ( $memberId === null || $memberId == $this->_memberData['member_id'] ) ? $this->_memberData : IPSMember::load( $memberId, 'core' );
		$posts 		= intval( $member['posts'] );
		
		/* Ensure this has been set up */
		if ( ! is_array( $this->forum_by_id ) OR ! count( $this->forum_by_id ) )
		{
			$this->strip_invisible = 1;
			$this->forumsInit();
		}

		/* Get list of good forum IDs */
		foreach( $this->forum_by_id as $id => $data )
		{
			/* Тут проверяется маска доступа пользователя - может ли он вообще смотреть форум */
			if ( ! $this->registry->permissions->check( 'read', $data ) OR ! $this->registry->permissions->check( 'view', $data ) )
			{
				continue; //пропуск номера
			}
			
			/* Тут проверяется, не стоит ли на форуме пароль на доступ */
			if ( ! $this->forumsCheckAccess( $id, 0, 'forum', array(), true ) )
			{
				continue; //пропуск номера
			}
				
			/* Тут проверяется, может ли группа пользователя писать посты или видеть чужие посты в этом разделе, при этом не являясь супермодером или модером раздела */					
			if ( ( ! $data['sub_can_post'] OR ! $data['can_view_others'] ) AND !$this->memberData['g_is_supmod'] AND !isset( $this->memberData['forumsModeratorData'][ $id ] ) )
			{
				continue;
			}
			
			/* Тут проверяется, набрал ли пользователь минимально необходимое количество постов для просмотра раздела */
			if ( $data['min_posts_view'] > $posts AND !$member['g_is_supmod'] )
			{
				continue;
			}

			/* Тут выкидываются форумы, которые пользователь исключил сам в расширенных условиях поиска */
			if ( is_array( $skipIds ) AND count( $skipIds ) )
			{
				if ( in_array( $id, $skipIds ) )
				{
					continue;
				}
			}
			
			$forumIdsOk[] = $id;
		}
		
		return $forumIdsOk;
	}


Теоретически можно попробовать перегрузить этот метод хуком, но с хуками, модифицирующими классы приложений, все всегда крайне ненадежно и смутно. Ну или просто вхардкодить подмешивание к $skipIds массива нужных вам id-шников - /admin/applications/forums/sources/classes/forums/class_forums.php.

Хотя, если пароль на разделе устраивает - это самый простой вариант :)

UPD. Расписал выше в посте в комментариях к коду подробнее, что к чему.
0

#12 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:46

Цитата

Хотя, если пароль на разделе устраивает - это самый простой вариант :)

С паролем тоже никак. После ввода пароля через поиск находишь сообщения кто писал в разделе.

Цитата

Теоретически можно попробовать перегрузить этот метод хуком, но с хуками, модифицирующими классы приложений, все всегда крайне ненадежно и смутно. Ну или просто вхардкодить подмешивание к $skipIds массива нужных вам id-шников - /admin/applications/forums/sources/classes/forums/class_forums.php

Этого я не знаю как сделать.

А если посредством if-а в шаблоне поиска?
0

#13 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 537
  • IPB version:3.4.x
 

Отправлено 05 Июнь 2012 - 16:49

Цитата

А если посредством if-а в шаблоне поиска?

Испортится постраничная разбивка. Пустые, неполные страницы результатов поиска нужны? :)

Могу попробовать написать хук.
0

#14 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 05 Июнь 2012 - 16:51

Просмотреть сообщениеRitsuka 05 Июнь 2012 - 16:49 сказал(а):

Испортится постраничная разбивка. Пустые, неполные страницы результатов поиска нужны? :)

Не критично :)

Цитата

Могу попробовать написать хук.

Было бы хорошо. Тем более это будет первый хук в таком роде.
0

#15 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 537
  • IPB version:3.4.x
 

Отправлено 05 Июнь 2012 - 17:08

Все оказалось на удивление просто: Вложение  ri_sforums.xml (3,31К)
Количество загрузок: 10

Установите хук, в системных настройках в разделе "Hooks" появится группа настроек "Searchable forums". Там в единственном поле через запятую укажете id форумов, которые нужно исключить из поиска.

Отпишитесь, как оно.
2

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2017 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна