Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Фиксим search.cgi - поиск без учета регистра - ХАК

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Поиск без учета регистра - Хак
----------------
Выкладываю фикс к search.cgi чтобы не учитывать регистр.
Делаем backup и открываем файл search.cgi.
Находим следующий кусок кода:

Код:
for ('TYPE_OF_SEARCH','NAME_SEARCH','POST_SEARCH','FORUMS_TO_SEARCH','action','SEARCH_STRING','REFINE_SEARCH','CUR_TIME','nextforum','start') {
   next unless defined $_;  
   next if $_ eq 'SEND_MAIL';  
   $tp = $query->param($_);  
   $tp = &unHTML("$tp");  
   ${$_} = $tp;  
   }

После него добавляем:

Код:
if ($SEARCH_STRING) {
$SEARCH_STRING =~ tr/a-z/A-Z/;
$SEARCH_STRING =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;
}

Находим эту часть кода:

Код:
if ($REFINE_SEARCH eq "both_search" || $REFINE_SEARCH eq "topictitle_search") { #1
                        foreach (@KEYWORDS) { #new1

И сразу после нее добавляем:

Код:
$topictitle =~ tr/a-z/A-Z/;
$topictitle =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;

Далее ищем вот это:

Код:
 
foreach (@thddata) { # start foreach 'thd'
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post) = split(/\|/,$_);
foreach (@KEYWORDS) { #new1

И сразу после него добавляем:

Код:
$post =~ tr/a-z/A-Z/;
$post =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;

Далее находим эту часть кода:

Код:
if ($REFINE_SEARCH eq "both_search" || $REFINE_SEARCH eq "topictitle_search") { #1
foreach (@KEYWORDS) { #new1

Сразу после нее добавляем:

Код:
$startedby =~ tr/a-z/A-Z/;
$startedby =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;

Находим этот кусок:

Код:
foreach (@thddata) { # start foreach 'thd'
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post) = split(/\|/,$_);
foreach (@KEYWORDS) { #new1
 

Сразу после него добавляем

Код:
$membername =~ tr/a-z/A-Z/;
$membername =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;

---------------------
Необязательная часть
---------------------
Находим этот кусок:

Код:
 
   foreach (@TRUE_RESULTS[$startarray .. $endarray]) { # start foreach loop
 
   ($forumid, $topicid, $topictitle, $topicdescription, $forumname, $postdate, $string_returned) = split(/\|/,$_);
 
   $postdate = $postdate + ($timedifferencevalue*3600) + ($timezone*3600);
   $longdate = &longdate("$postdate");
 
   $topicdescription = qq(» $topicdescription) if $topicdescription;
   
   $output .= qq(
   <tr>
      <td bgcolor=$miscbackone valign=middle>
         <font face="$font" color=$fontcolormisc size=$dfontsize1>
         <a href="$boardurl/$threadprog?forum=$forumid&topic=$topicid"><b>$topictitle</b></a><br>
         <font size=$dfontsize1>$topicdescription
      </td>
      <td bgcolor=$miscbackone valign=middle>
         <font face="$font" color=$fontcolormisc size=$dfontsize1>
         $ibtxt{'0319'}: <b>$longdate</b> $ibtxt{'2028'} <a href="$boardurl/$forumsprog?forum=$forumid">$forumname</a></font>
      </td>
         <td bgcolor=$miscbackone valign=middle>
         <font face="$font" color=$fontcolormisc size=$dfontsize1>
         <b>$string_returned</b>
         </font>
      </td>
   </tr>
   );
 
   undef $topicdescription;
 
   } # end foreach
 
 

Тут можно сменить дизайн вывода результатов.
---Конец хака-----
 
Добавлено
Использовал идею батвы из хака поиска мемберов.

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 18:23 12-02-2002 | Исправлено: lynx, 03:53 01-07-2003
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если никто эту тему не читает может удалить ее?

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 15:05 13-02-2002
revinsky



Дизель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Зачем? Если никто не постит, это не значит, что никому не надо...
 
(Сорри за флейм)

Всего записей: 1999 | Зарегистр. 15-10-2001 | Отправлено: 16:14 13-02-2002
j0k3r



Advanced Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexei
Да прошёл-то только день!
А этот хак фиксит баг с возвращением из сёрча под любым мембером (вроде такой баг...) да? Или что-то другое?

----------
Музыка, Фильмы, Программы :: FunkySouls
Музыкальный форум

Всего записей: 2499 | Зарегистр. 08-09-2001 | Отправлено: 16:31 13-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexei, не стоит так раздражаться. Я уверен больше чем половина поставили себе этот хак, просто не хотят ничего говорить. Я тоже поставил. Если хочешь благодарности, то спасибо


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 17:35 13-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А я глюк нашел. При вводе в поиск маленьких букв регистр учитывается, а при вводе больших - не учитывается. Странно.

----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 17:38 13-02-2002
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Странно
 
Добавлено
Я не раздражаюсь просто в соседней теме говорили что неплохо бы сделать такой хак, а когда я написал хак никаких комментариев.
Vasya Pupkin

Цитата:
А я глюк нашел.  При вводе в поиск маленьких букв регистр учитывается, а при вводе больших - не учитывается. Странно.

Странно, а ты не забыл вот это кусок вставить

Код:
if ($SEARCH_STRING) {  
$SEARCH_STRING =~ tr/a-z/A-Z/;  
$SEARCH_STRING =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;  
}

 
 
Добавлено
Я не раздражаюсь просто в соседней теме говорили что неплохо бы сделать такой хак, а когда я написал хак никаких комментариев.
Vasya Pupkin

Цитата:
А я глюк нашел.  При вводе в поиск маленьких букв регистр учитывается, а при вводе больших - не учитывается. Странно.

Странно, а ты не забыл вот это кусок вставить

Код:
if ($SEARCH_STRING) {  
$SEARCH_STRING =~ tr/a-z/A-Z/;  
$SEARCH_STRING =~ tr/абвгдеёжзийклмнопрстуфхцчшщъыьэю\377/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/;  
}


Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 19:06 13-02-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexei
Да не кипятись, ставят многие, а комментируют далеко не все. Я сегодня погляжу, погоняю ещё, и скажу о впечатлениях.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 09:06 14-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexei, может и забыл. Сейчас потестю.


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 14:45 15-02-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexei
полезная фича, thanks =)

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 16:52 15-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Странно, но серч сги так и не ищет маленькими буквами. Может кто посмотрит мой код?

----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 15:02 16-02-2002
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vasya Pupkin
Кидай на alex-admin@mail.ru - посмотрю.
2all:
Если у кого есть архив с ib_ru  PLUS 3 выложите ее где-то, я посмотрю ее код.

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 16:29 16-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexei, бросил.


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 17:21 16-02-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а пробегал тут фикс search.cgi - чтобы он за один проход искал?

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 04:45 17-02-2002
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Shurik
В смысле чтоб не было промежуточных окон типа 'Обработка, ищем в форуме №99'?

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 12:10 18-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В смысле чтоб не было промежуточных окон типа 'Обработка, ищем в форуме №99'?

alexei, да это очень интересно.
Кстати, ты мне не ответил насчет серч.цги.


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 18:53 18-02-2002
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vasya Pupkin
Так у меня в ящике его нет, ты наверное не отправил.

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 19:08 18-02-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати, я потестил, вроде всё работает.
alexei - молодец.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 20:15 18-02-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexei Видимо и правда не бросил. Сейчас отправлю.


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 20:21 19-02-2002
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Фиксим search.cgi - поиск без учета регистра - ХАК


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru