- Совместимость
- не проверялся на совместимость
- Изменения в БД
- требуются
- Автор
- frost444
- Общественное достояние
- да
Описание: добавляет возможность быстрого поиска на AJAX.
Возможности:
Возможности:
- Быстрый поиск по форуму или трекеру
- Подсвечивает найденные совпадения
- Текст ищется при введении его в поиске, с таймаутом, после определенного количества символов (интервал задается в конфиге)
- Навигация по найденным результатам
- Поиск пользователей
- Возможность переключения между поиском по темам и подсказкой популярных запросов
- Инструкция по установке
-
PHP:
Автор мода: frost444 ####[ВЫПОЛНИТЬ]-----SQL CREATE TABLE IF NOT EXISTS `bb_queries` ( `query` varchar(250) NOT NULL, `hit` int(11) NOT NULL, UNIQUE KEY `hint` (`query`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ####[КОНЕЦ]-----SQL ####[ОТКРЫТЬ]----- config.php -----[в конец]----- $bb_cfg['search_type'] = 'Topic'; //Поле может принимать 2 значения Topic или Queries для отключения напишите что либо другое)) ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- init_bb.php -----[найти]----- define('BB_PRIVMSGS_TEXT', 'bb_privmsgs_text'); -----[добавить ниже]----- //AJAX SEARCH MODE define('BB_QUERIES', 'bb_queries'); //AJAX SEARCH MODE ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- init_bb.php -----[найти]----- define('BB_PRIVMSGS_TEXT', 'bb_privmsgs_text'); -----[добавить ниже]----- //AJAX SEARCH MODE define('BB_QUERIES', 'bb_queries'); //AJAX SEARCH MODE ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- ajax.php -----[найти]----- 'index_data' => array('guest'), -----[добавить ниже]----- 'QuickSearch' => array('user'), -----[найти последнюю скобку и перед ней добавить]----- function QuickSearch() { require(AJAX_DIR .'QuickSearch.php'); } ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- functions.php -----[в конец]----- function limit_words ($string, $word_limit) { $words = explode(" ",$string); return implode(" ",array_splice($words,0,$word_limit)); } ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- tracker.php -----[найти]----- $template->assign_vars(array( -----[добавить выше]----- if (!empty($_REQUEST['nm']) && !empty($results)) { DB()->sql_query("INSERT INTO ".BB_QUERIES." (query, hit) VALUES ('".DB()->escape($_REQUEST['nm'])."', 1) ON DUPLICATE KEY UPDATE hit = hit + 1"); } ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- lang_main.php -----[в конец]----- //AJAX SEARCH MODE $lang['AJAX_SEARCH_NO_USER'] = 'Вы не ввели имя пользователя'; $lang['AJAX_SEARCH_NULL_RESULT'] = 'Поиск не дал результатов'; $lang['AJAX_SEARCH_NO_NAME'] = 'Вы не ввели текст для поиска'; $lang['AJAX_SEARCH_RESULT'] = 'Результат поиска'; //AJAX SEARCH MODE ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- page_header.php -----[найти]----- $template->assign_vars(array( -----[добавить ниже]----- 'SEARCH_TYPE' => $bb_cfg['search_type'], ####[СОХРАНИТЬ_ФАЙЛ]#### ####[ОТКРЫТЬ]----- page_header.tpl -----[найти]----- <script type="text/javascript" src="{SITE_URL}misc/js/main.js?v={$bb_cfg['js_ver']}"></script> -----[добавить ниже]----- <script type="text/javascript" src="{SITE_URL}misc/js/opt.js?v={$bb_cfg['js_ver']}"></script> <script type="text/javascript" src="{SITE_URL}misc/js/jquery-ui.min.js"></script> <script type="text/javascript" src="{SITE_URL}misc/js/tag-it.js"></script> <link rel="stylesheet" href="{TPL_DIR}/jquery-ui.min.css?v={$bb_cfg['css_ver']}" type="text/css"> <link rel="stylesheet" href="{TPL_DIR}/tag-it.css?v={$bb_cfg['css_ver']}" type="text/css"> -----[найти]----- <form id="quick-search" action="" method="post" onsubmit="$(this).attr('action', $('#search-action').val());"> <input type="hidden" name="max" value="1" /> <input type="hidden" name="to" value="1" /> <input id="search-text" type="text" name="nm" class="hint" placeholder="{L_SEARCH_S}" required /> <select id="search-action"> <option value="tracker.php#results" selected="selected"> {L_TRACKER_S} </option> <option value="search.php"> {L_FORUM_S} </option> </select> <input type="submit" class="med" value="{L_SEARCH}" style="width: 55px;" /> </form> -----[заменить]----- <form id="quick-search" action="" method="post" onsubmit="$(this).attr('action', $('#search-action').val());"> <input type="hidden" name="max" value="1" /> <input type="hidden" name="to" value="1" /> <table><tr> <td style="width: 350px;"><input class="QuickSearch" type="text" name="nm" data-type="{SEARCH_TYPE}" placeholder="{L_SEARCH_S}" required /></td> <td><select id="search-action"> <option value="tracker.php#results" selected="selected"> {L_TRACKER_S} </option> <option value="search.php"> {L_FORUM_S} </option> </select> <input type="submit" class="med" value="{L_SEARCH}" style="width: 55px;" /></td> </tr></table> </form> <table class="searchQuick"><tr id="QuickSearchResult{SEARCH_TYPE}" style="display: none;"><td></td></tr></table> ####[СОХРАНИТЬ_ФАЙЛ]####