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

Как сделать поиск по описанию темы?

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Vova_OB
phpBB 2.0.2
Сообщения: 310
Стаж: 16 лет 4 месяца
Откуда: Kiev Ukraine
Благодарил (а): 74 раза
Поблагодарили: 8 раз

Как сделать поиск по описанию темы?

Сообщение Vova_OB »

Нужно создать поиск в описаниях тем.
В таблице phpbb_topics есть ячейка topic_desc(описание темы)

1) Как сделать чтобы на странице http://www.sayt.com/search.php было одностроковое окно куда вписываешь текст который возможно есть в описании темы и находятся темы в описании которых этот текст есть?

2) И чтобы главное окно поиска сверху форума тоже реагировало на поиск в описании темы?
Последний раз редактировалось Айдар 06.07.2011 12:16, всего редактировалось 1 раз.
Причина: Добавили немного логики в заголовок темы
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Как сделать функцию поиска ?

Сообщение Пчелкин »

Может Search Topic JQAutocomplete для этого подойдет? Конкретно для поиска тем по названиям предназначен.
Последний раз редактировалось Пчелкин 06.07.2011 13:55, всего редактировалось 1 раз.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Vova_OB
phpBB 2.0.2
Сообщения: 310
Стаж: 16 лет 4 месяца
Откуда: Kiev Ukraine
Благодарил (а): 74 раза
Поблагодарили: 8 раз

Re: Как сделать функцию поиска ?

Сообщение Vova_OB »

Пчелкин
так понял поставить этот мод и заменить в нем topic_title на topic_desc ?!
или доработать его (мод) по принципу его работы?!
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Как сделать функцию поиска ?

Сообщение Пчелкин »

В принципе можно название заменить на описание...Просмотрите внимательно все файлы мода на наличие заменяемой таблицы...что б потом косяков не стало.

ПыСы..просмотрел все файлы мода сам..повезло..ни в инструкции, ни в файлах самой всплывашки ничего менять не надо..
Только один файл подлежит лечению - vajax.php.
В нем все слова title замените на desc
Все должно сработать и поиск по описаниям у вас готов...Но вот бы сделать поиск и по тому и тому (названию и описанию).
Тут уже в vajax.php надо колдовать параметром

Код: Выделить всё

	}	
	else
	{

Но я сам такое не умею....обычно слизываю в других скриптах...Там, где используются два запроса в одной функции...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Vova_OB
phpBB 2.0.2
Сообщения: 310
Стаж: 16 лет 4 месяца
Откуда: Kiev Ukraine
Благодарил (а): 74 раза
Поблагодарили: 8 раз

Re: Как сделать поиск по описанию темы?

Сообщение Vova_OB »

попробую, задача интересная
Аватара пользователя
Vova_OB
phpBB 2.0.2
Сообщения: 310
Стаж: 16 лет 4 месяца
Откуда: Kiev Ukraine
Благодарил (а): 74 раза
Поблагодарили: 8 раз

Re: Как сделать поиск по описанию темы?

Сообщение Vova_OB »

там в этом файле vajax.php

Код: Выделить всё

if ($mode == 'live_search')
{
	$q = utf8_strtoupper(utf8_normalize_nfc(request_var('q', '',true)));
	if(!$q)
	{
		exit();
	}	
	else
	{
		$sql_where = ' AND UPPER(t.topic_title) ' . $db->sql_like_expression($db->any_char . $q . $db->any_char);
		$sql_approved = 'AND t.topic_approved = 1';
		$sql_forum = ($forum_id) ? 'AND t.forum_id = ' . $forum_id : '';

		$sql = "SELECT t.topic_id, t.topic_title
			FROM " . TOPICS_TABLE . " t
			WHERE t.topic_type IN (" . POST_NORMAL . ', ' . POST_STICKY . ")
				$sql_where
				$sql_approved
				$sql_forum
			ORDER BY topic_title";
		$result = $db->sql_query_limit($sql,$config['search_topic_num']);

		$topic_list = array();

		while ($row = $db->sql_fetchrow($result))
		{
			$topic_id = (int)$row['topic_id'];
			$topic_list[$row['topic_title']] = $topic_id;
			
			if (strpos(utf8_strtoupper($row['topic_title']), $q) !== false) 
			{
				$key = htmlspecialchars_decode($row['topic_title']);
				echo  $row['topic_title'] . "|$topic_id\n";
			}
		}
		$db->sql_freeresult($result);
	}
}
как добавить в него еще поиск в описаниях? ятак понял это один к одному только title на desc меняются и следующее добавить к существующему?

Код: Выделить всё

$sql_where = ' AND UPPER(t.topic_desc) ' . $db->sql_like_expression($db->any_char . $q . $db->any_char);
		$sql_approved = 'AND t.topic_approved = 1';
		$sql_forum = ($forum_id) ? 'AND t.forum_id = ' . $forum_id : '';

		$sql = "SELECT t.topic_id, t.topic_desc)
			FROM " . TOPICS_TABLE . " t
			WHERE t.topic_type IN (" . POST_NORMAL . ', ' . POST_STICKY . ")
				$sql_where
				$sql_approved
				$sql_forum
			ORDER BY topic_desc)";
		$result = $db->sql_query_limit($sql,$config['search_topic_num']);

		$topic_list = array();

		while ($row = $db->sql_fetchrow($result))
		{
			$topic_id = (int)$row['topic_id'];
			$topic_list[$row['topic_desc)']] = $topic_id;
			
			if (strpos(utf8_strtoupper($row['topic_desc)']), $q) !== false) 
			{
				$key = htmlspecialchars_decode($row['topic_title']);
				echo  $row['topic_title'] . "|$topic_id\n";
			}
		}
		$db->sql_freeresult($result);
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Как сделать поиск по описанию темы?

Сообщение Пчелкин »

Вот заменить - сам попробовал - сработало (по описаниям) А что б и то и то - это к спецам..подождем...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70

Вернуться в «Запросы модов для phpBB 3.0.x»