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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » [req] vBulletin v2.3.x + фильтр тем

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

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

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

Maximus_BRZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Уже давно ищу фильтр поиска по названию тем, как на Ру-Борде, но нигде не могу найти. Ни у кого не имеется такой хак или идеи по его созданию?

----------
@borzov

Всего записей: 2219 | Зарегистр. 11-01-2003 | Отправлено: 20:59 02-12-2004 | Исправлено: Maximus_BRZ, 21:00 02-12-2004
Program_files



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поддерживаю. Тоже очень интересует такая вещь... Умельцы, АУ!

Всего записей: 43 | Зарегистр. 02-12-2003 | Отправлено: 13:37 03-12-2004
Maximus_BRZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сам нашел ответ на этот вопрос... Берем стандартную форму поиска, добавляем скрытый инпут titelonly со значением yes и готово. Не так навороченно как тут, но работает.

----------
@borzov

Всего записей: 2219 | Зарегистр. 11-01-2003 | Отправлено: 14:03 09-12-2004
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maximus_BRZ
А хака случайно не нашел?

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 10:25 19-05-2005
Maximus_BRZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W, нет, не нашел... Сдам сессию буду писать сам. Банальным запросом обойтись не удается...

----------
@borzov

Всего записей: 2219 | Зарегистр. 11-01-2003 | Отправлено: 22:21 20-05-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хак к форуму vBulletin.
Автор
ivank
(Иван Коростелёв)

 
Все изменения в forumdisplay.php
 
Около 420 строки, после
Код:
        // display threads
        if (!($forumperms & CANVIEWOTHERS))
                $limitothers = "AND postuserid = $bbuserinfo[userid] AND $bbuserinfo[userid] <> 0";
        else
                $limitothers = '';
 
        // filter out deletion notices if can't be seen
        if (!($forumperms & CANSEEDELNOTICE) AND !can_moderate($forumid))
    {
                $delthreadlimit = "AND deletionlog.primaryid IS NULL";
                $deljoin = "LEFT JOIN deletionlog ON(thread.threadid = deletionlog.primaryid AND type = 'thread')";
    }
        else
    {
                $delthreadlimit = '';
                $deljoin = '';
    }

 
надо добавить
Код:
$filter_sql = $filter_url_ext = '';
if (isset($_GET['filter_string']) && isset($_GET['filter_by']))
{
$filter_string = strtolower(str_replace('"', '', $_GET['filter_string']));
$filter_by = str_replace('"', '', $_GET['filter_by']);
$filter_url_ext = "&filter_by=$filter_by&filter_string=$filter_string";
if ($filter_by == 'poster')
$filter_by = 'thread.postusername';
else
$filter_by = "thread.title";
$filter_sql = "AND LOWER($filter_by) LIKE \"%$filter_string%\"";
 
// показываем темы за все дни, независимо от того, как это выбрано у пользователя в настройках
$daysprune = -1;
}

 
Около 520, вместо

Код:
$threadscount = $DB_site->query_first("
SELECT COUNT(*) AS threads,
SUM(IF(lastpost>=$lastread AND open<>10,1,0)) AS newthread
FROM thread
$deljoin
WHERE forumid = $foruminfo[forumid]
AND sticky = 0
AND visible = 1
$globalignore
$limitothers
$delthreadlimit
");

должно быть

Код:
$threadscount = $DB_site->query_first("
SELECT COUNT(*) AS threads,
SUM(IF(lastpost>=$lastread AND open<>10,1,0)) AS newthread
FROM thread
$deljoin
WHERE forumid = $foruminfo[forumid]
AND sticky = 0
AND visible = 1
$globalignore
$limitothers
$delthreadlimit
"
 
.$filter_sql
 
);

 
около 550 строки надо поменять
 

Код:
                $stickies = $DB_site->query("
                        SELECT threadid
                        FROM thread AS thread
                        $deljoin
                        WHERE forumid = $foruminfo[forumid]
                                AND visible = 1
                                AND sticky = 1
                                $limitothers
                                $globalignore
                                $delthreadlimit
                ");

 
на
Код:
                $stickies = $DB_site->query("
                        SELECT threadid
                        FROM thread AS thread
                        $deljoin
                        WHERE forumid = $foruminfo[forumid]
                                AND visible = 1
                                AND sticky = 1
                                $limitothers
                                $globalignore
                                $delthreadlimit
                "
 
. $filter_sql
 
);

 
Около 610, вместо

Код:
$getthreadids = $DB_site->query("
SELECT " . iif($sortfield == 'voteavg', $votequery) . " threadid
FROM thread AS thread
$deljoin
WHERE forumid = $foruminfo[forumid]
AND sticky = 0
AND visible = 1
$globalignore
$datecut
$limitothers
$delthreadlimit
ORDER BY sticky DESC, $sqlsortfield $sqlsortorder
LIMIT $limitlower, $perpage
");

должно быть:
Код:
$getthreadids = $DB_site->query("
SELECT " . iif($sortfield == 'voteavg', $votequery) . " threadid
FROM thread AS thread
$deljoin
WHERE forumid = $foruminfo[forumid]
AND sticky = 0
AND visible = 1
$globalignore
$datecut
$limitothers
$delthreadlimit
"
 
.$filter_sql.
 
"
ORDER BY sticky DESC, $sqlsortfield $sqlsortorder
LIMIT $limitlower, $perpage
");
 

 
В шаблон FORUMDISPLAY надо добавить в необходимое место нечто вроде
Код:
<form action="/forumdisplay.php" method="get">
<input type=hidden name=f value="$forumid">
Фильтр:  
<input class=bginput type=text size=14 name=filter_string value="$filter_string">
по <select name=filter_by>  
<option value=title>названию темы  
<option value=poster>автору
</select>  
<input class=button type=submit value="ok">
</form><if condition="isset($filter_string) and $filter_string != ''">
<br><a href="/forumdisplay.php?f=$forumid" class=smallest2>Сбросить фильтр</a>
</if>

 
Все права хака принадлежат автору, обратная связь c автором ivank@ivank.ru


Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 21:14 21-05-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » [req] vBulletin v2.3.x + фильтр тем


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru