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

Вопросы по поисковым модам

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 7 месяцев

Вопросы по поисковым модам

Сообщение Kastaneda »

Требуется консультация по установке мода «Topic Search» и ещё парочка вопросов, относящиеся к поиску.
  1. В инструкции по установке мода «Topic Search» для файла search.php есть такие строки:

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

    #
    #-----[ FIND ]------------------------------------------
    #
    
    			$template->set_filenames(array(
    				'body' => 'search_results_posts.tpl')
    			);
    
    #
    #-----[ BEFORE, ADD ]------------------------------------------
    #
    
    			// Topic search MOD
    			if(empty($tid))
    			{
    			// End Topic search MOD
    Но в файле search.php найдено три вхождения

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

    $template->set_filenames(array( 
                'body' => 'search_results_posts.tpl') 
             );
    Вопрос: вышеозначенные изменения нужно проделать для всех вхождений, или только для самого первого?
  2. Какие аргументы используются в поиске, если нужно найти всю фразу целиком? Или в phpBB это невозможно?
  3. Где-нибудь можно найти инструкцию по использованию поиска в phpBB?
Последний раз редактировалось Kastaneda 30.03.2005 16:29, всего редактировалось 1 раз.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Инструкцию выполнять для самого первого вхождения.
Фразу целиком - например разделение слов при помощи ключевого слова AND.
Инструкцию - в оригинале на английском на сайте phpBB в разделе Support. Там есть подробное руководство по phpBB.

Я для себя форму в шаблоне вставил вставил следующим образом:

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

[open]
viewtopic_body.tpl

[find]
		<td class="catHead" colspan="2" height="28"><span class="nav"><a href="{U_VIEW_OLDER_TOPIC}" class="nav">{L_VIEW_PREVIOUS_TOPIC}</a> :: <a href="{U_VIEW_NEWER_TOPIC}" class="nav">{L_VIEW_NEXT_TOPIC}</a> &nbsp;</span></td>

[replace with]
		<form action="{U_TOPIC_SEARCH}" name="search" method="post" target="_top">
			<td class="catHead" colspan="2" height="28">
			<input type="hidden" name="search_terms" value="any" /><input type="hidden" name="return_chars" value="100" /><input type="hidden" name="show_results" value="posts" /><input type="hidden" name="sort_dir" value="ASC" /><input type="hidden" name="mode" value="topic_search" /><input type="hidden" name="topic_id" value="{TOPIC_ID}" /><input type="text" name="search_keywords" size="20" maxlength="250" value="" /> <input type="submit" name="search_submit" value="{L_SEARCH_TOPIC}" class="liteoption" />
			&nbsp;</td>
		</form>
Самое главное здесь - избавление от ошибки несовместимости с формой быстрого ответа. Это было достигнуто изменением имени формы поиска с post на search.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 7 месяцев

Сообщение Kastaneda »

Xpert писал(а):Инструкцию выполнять для самого первого вхождения.
Понял. А вообще, если при установке каких-либо модов в редактируемых файлах несколько раз встречаются одинаковые вхождения фраз, то нужно всегда производить указанные действия только с первым вхождением? Или это от ситуации зависит?
Xpert писал(а):Фразу целиком - например разделение слов при помощи ключевого слова AND.
К сожалению фраза целиком так и не находится.

А теперь разрешите задать небольшой вопрос по моду «Search Author Topic Starter»? В инструкции написано:

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

#-----[ FIND ]---------------------------------------------
# around line 475
						FROM $from_sql 
						WHERE p.post_id IN (" . implode(", ", $search_ids) . ") 
							$where_sql 

# 
#-----[ REPLACE WITH ]------------------------------------------
# the middle line does not changed
						FROM $from_sql $starter_from_sql
						WHERE p.post_id IN (" . implode(", ", $search_ids) . ") 
							$where_sql $starter_where_sql

Но средняя строка нынче выглядит так:

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

WHERE p.post_id IN (" . implode(", ", $search_id_chunks[$i]) . ")
Эту строку нужно изменить к тому виду, который указан в инструкции к моду? Или, как написано, не следует изменять эту строку.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Kastaneda писал(а):Или это от ситуации зависит?
Если в коде мода явноесть указание заменить или произвести иные действия несколько раз, то несколько раз.
Kastaneda писал(а):Эту строку нужно изменить к тому виду, который указан в инструкции к моду? Или, как написано, не следует изменять эту строку.
Не следует.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 7 месяцев

Сообщение Kastaneda »

Благодарствую!
Аватара пользователя
Rick
phpBB 1.4.2
Сообщения: 63
Стаж: 19 лет 5 месяцев

Сообщение Rick »

Не нашел указанного хака, но нашел вот эти два:
http://www.phpbbhacks.com/download/859 (Search Topic Title Only)
http://www.phpbbhacks.com/download/2204 (Search Subject Only)

По сути своей они схожи, только вот по реализации как-то не очень...
Пожалуйста, подскажите, какой лучше :)

P.S. Собираюсь дополнить этот хак ф-цией фильтра прямо в форуме (как на Ру-Борд). Человек заходит в форум, вводит искомое слово, например "памагите", и ему выдаются только те топики, которые содержат это чудесное слово :)
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Rick
Хак есть у нас в разделе "Поиск".
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 5 месяцев
Откуда: Москва

Сообщение ALER »

При установке мода Topic_Search обнаружена ошибка.
Вот фрагмент из мода:

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

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#

//
// That's all, Folks!
// -------------------------------------------------

#
#-----[ BEFORE, ADD ]------------------------------------------
#

// TOPIC SEARCH MOD
$lang['Click_return_topic'] = 'Click %sHere%s to return to the Topic';
$lang['No_search_words'] = 'Sorry, no search words specified';
$lang['Search_topic'] = 'Search Topic';
$lang['Jump_to_post'] = 'Jump to post';
// END TOPIC SEARCH MOD
Первая строка - дублирование. По крайней мере у меня в форуме в lang_main.php почти в самом начале уже есть строка:

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

$lang['Click_return_topic'] = 'Click %sHere%s to return to the topic'; // %s's here are for uris, do not remove!
Или в русском варианте

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

$lang['Click_return_topic'] = '%sВернуться в тему%s';
Если поставить мод в оригинальном виде, то после удаления постинга выводится почему-то вариант из мода Topic Search (я ожидал, что текст должен был бы просматриваться от начала к концу). Поэтому я закомментировал строку из мода:

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

// TOPIC SEARCH MOD
//$lang['Click_return_topic'] = 'Click %sHere%s to return to the Topic';
$lang['No_search_words'] = 'Sorry, no search words specified';
$lang['Search_topic'] = 'Search Topic';
$lang['Jump_to_post'] = 'Jump to post';
// END TOPIC SEARCH MOD
У меня стоит очень много модов, но думаю, что приведенная уже имеющаяся строка - из оригинального, немодифицированного lang_main.php, т. к. во-первых, она близко к началу файла, а во-вторых, удаление постинга админом, после которого выводится экран с этой строкой, имется и в оригинальном софте.
Алексей aka ALER
Аватара пользователя
ns13
phpBB 1.4.2
Сообщения: 65
Стаж: 18 лет 4 месяца

Сообщение ns13 »

А в каком случае выводится данное сообщение???

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

$lang['No_search_words'] = 'Sorry, no search words specified';
Форум Гильдии U.S.S.R. игры Ragnarok:Online сервера raggame.ru/loki http://www.ussr-guild.h16.ru
Аватара пользователя
baldahin
phpBB 1.4.3
Сообщения: 97
Стаж: 19 лет 4 месяца

Сообщение baldahin »

Имею проблему с модом Search Title Only 1.0.0 (с аналогичным модом от Acyd Burn была такая же проблема)

Проблема заключается в том, что поиск странно реагирует на переименования топиков, точнее вообще не реагирует. Т.е. если у меня есть топик с заголовком "заголовок1", то он замечательно ищется, но если его переименовать в "заголовок2", как он по запросу "заголовок2" уже находиться не будет. Зато будет продолжать находиться по запросу "заголовок1". Т.е. складывается впечатление, что при переименовании топика поисковая таблица не обновляется. Что характерно, полная переиндексация поисковой базы результатов не даёт. Если кто еще пользуется этим модом - подтвердите или опровергните этот глюк. Ну а если кто расскажет куда смотреть, чтобы исправить - буду очень благодарен.

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