Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Topic Search - поиск в теме

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 20 лет 1 месяц
Откуда: СССР
Благодарил (а): 5 раз
Поблагодарили: 105 раз

Сообщение Mr. Anderson »

Siava писал(а):Мод пришлось удалить
Форум лег? :)
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5278
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 790 раз

Сообщение Siava »

Mr. Anderson
Он просто задумался ровно на число секунд таймаута в mysql :)
Мод конечно полезный, но им же можно заDoSить форум при желании.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 20 лет 1 месяц
Откуда: СССР
Благодарил (а): 5 раз
Поблагодарили: 105 раз

Сообщение Mr. Anderson »

Siava писал(а):но им же можно заDoSить форум при желании
Во-первых, задосить мона много как при желании-то :)
Во-вторых, при желании... гы... мона и горы свернуть... Тока зачем? :)
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

На самом деле мод требует некоторой доработки на скорость :)
Только что на тему из 111 страниц натравил - влет...
Часть кода из темы мода на phpbb.com, но кое что от себя.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5278
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 790 раз

Сообщение Siava »

// Topic Search MOD - by fantomex
Xpert
В модах выложен другой

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

## MOD Title: Topic Search
## MOD Author: Darkmonkey <info@darkmonkeydesigns.com> (Brendan kettle) http://www.darkmonkeydesigns.com
## MOD Description: Lets a user search within a specified topic
## MOD Version: 1.1.0
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Siava
Это указание на автора кода, мембера phpbb.com
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

У меня что-то оптимизация не работает, ругается:

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

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/***/public_html/***/search.php on line 412
причем раз 20, а потом

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

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/search.php:412) in /home/***/public_html/***/includes/page_header.php on line 510

и то же самое для строк 512 и 513

В 412 строке в search.php

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

409					// Topic Search MOD
410					if(!empty($tid))
411					{
412						if ( in_array($post_id, $topic_post_ids) ) 
413						{ 
414							$search_ids[] = $post_id; 
415						}
416						$show_results = 'posts';
417					}
а в page_header.php строки 510-513:

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

	header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
}
header ('Expires: 0');
header ('Pragma: no-cache');
Добавлено спустя 7 минут 36 секунд:

Да, кстати, у меня стиль FI Black стоит, и форма поиска белая, и вводимый текст не видно (т.к. шрифт светлый). Как сделать, чтобы форма была цвета фона (черная)?

Добавлено спустя 34 минуты 40 секунд:
Alice писал(а):Да, кстати, у меня стиль FI Black стоит, и форма поиска белая, и вводимый текст не видно (т.к. шрифт светлый). Как сделать, чтобы форма была цвета фона (черная)?
Снято. Разобралась сама :)
Я не волшебник, я только учусь!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Выложите search.php, посмотрим.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Я оптимизацию-то удалила уже.
Я вот думаю, может это из-за кода, который первым надо вставлять?
В инструкции условие:

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

FIND
			$search_ids = array();
несколько раз встречается, я ставлю после первого упоминания. Хотя ругается не на этот "отрезок". :?

Сейчас специально опять "оптимизировала", выкладываю (теперь ругается на 410, там теперь if ( in_array($post_id, $topic_post_ids) ), просто в этот раз без строчных пробелов делала)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Я не волшебник, я только учусь!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Нужно вот так

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

			$search_ids = array();

			// Topic Search MOD - by fantomex
			// We'll create the list of valid post_ids
			$topic_post_ids = array();

			if ( !empty($tid) )
			{
				$sql = "SELECT post_id FROM " . POSTS_TABLE . " WHERE topic_id = '$tid'";
				$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not find posts data', '', __LINE__, __FILE__, $sql);
				while( $row = $db->sql_fetchrow($result) )
				{
					$topic_post_ids[] = $row['post_id'];
				}
			}
			// END Topic Search MOD

			while( list($post_id, $matches) = each($result_list) )
			{
				if ( $matches )
				{

					// Topic Search MOD
					if(!empty($tid))
					{
						if ( in_array($post_id, $topic_post_ids) )
						{
							$search_ids[] = $post_id;
						}
						$show_results = 'posts';
					}
					else
					{ // End Topic Search MOD

					$search_ids[] = $post_id;

					// Topic Search MOD
					}
					// End Topic search MOD

				}
			}
Т.е. на самом деле первая точка поиска вот такая

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

			@reset($result_list);

			$search_ids = array();
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Вот, теперь не ругается! Спасибо!!! :)
Надо было вчера поэкспериментировать, после каждого FIND код пробовать ставить. В следующий раз так и сделаю. Но правда нахимичить можно.
Я не волшебник, я только учусь!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Не стоит химичить. Это ошибка инструкции. К сожалению, давно подмечено, что ночью какие-то моменты можно и упустить.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Вы обновите ее (инструкцию), хотя кому нужно - тему почитает :)
Я не волшебник, я только учусь!
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5278
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 790 раз

Сообщение Siava »

Xpert
Аддон существенно ускоряет выборку :) поиск по теме из 1200 стр. прошёл успешно.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5278
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 790 раз

Сообщение Siava »

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

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

<input type='hidden' name='search_terms' value='any' />
не помогает.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)

Вернуться в «Поддержка модов для phpBB 2.0.x»