Добрый день, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Status-X | Техническая помощь
         Помогите с поиском

Похожие темы  |  Печать страницы

Помогите с поиском


События Воскресенье, 30.01.2011, 19:07

rostok

Группа: Пользователь
Cообщений: 2
Регистрация: 20.01.2011
Город: hjhjhj
Помогите с поиском
Как в Статусе организовать поиск во какой то отдельной категории. Например сделал я несколько категорий в разделе Ссылок и теперь мне нужно организовать поиск только в какой то одной категории. А сейчас оно ищет по всем категория модуля Ссылки. Помогите плизззз.... Грустно

Пользователь офлайн
События Понедельник, 31.01.2011, 10:35

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Что бы такое сделать нужно модернизировать скрипт.
Как я вижу это делается так. Возьмем к примеру раздел ссылок.
В шаблон search.tpl нужно добавить радиобатон с выбором ищем по всем разделам или по текущему.

Оригинал

PHP-код
<!-- Start id_0121 CMS Status--->
<
div class="infobox">
  <
form method="post" action="/index.php?p=links&amp;area={$area}&amp;action=search">
    <
input type="text" name="ql" style="width:200px" value="{$smarty.request.ql|default:''|sysspecialchars|replace:'-':''}class="input" />&nbsp;
    <
input type="submit" class="button" value="{#Search#}" />
  </
form>
</
div>
<!-- 
End id_0121 CMS Status--->


С добавлением

PHP-код
<!-- Start id_0121 CMS Status--->
<
div class="infobox">
  <
form method="post" action="/index.php?p=links&amp;area={$area}&amp;action=search">
    <
input type="text" name="ql" style="width:200px" value="{$smarty.request.ql|default:''|sysspecialchars|replace:'-':''}class="input" />&nbsp;
    
      {if 
$smarty.request.categ != ''}
      <
input type="radio" name="SelCateg" value="1" />Искать в текущей категории</label>
      <
input type="radio" name="SelCateg" value="0" checked="checked" />Искать во всех категориях</label>
      {/if}
    
    <
input type="submit" class="button" value="{#Search#}" />
  </
form>
</
div>
<!-- 
End id_0121 CMS Status--->


Далее модернизируем функцию SearchLinks() в классе Class.Links.php,

Оригинал

PHP-код
        $entries = array();
        
$check DB::getDB()->Cache_Fetch_Object("SELECT COUNT(Id) AS ResCount FROM " PREFIX "_links WHERE Aktiv='1' AND ((Name_{$this->Lc} LIKE '%{$Search}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search}%') OR (Name_{$this->Lc} LIKE '%{$Search2}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search2}%')) AND Sektion = '" AREA "' ORDER BY Name_{$this->Lc} ASC");
        
$num $check->ResCount;
        
$limit Core::getLim(System::ModulSet('links''PageLimit'));
        
$seiten ceil($num $limit);
        
$a Func::prepage() * $limit $limit;
        
$query_items DB::getDB()->Query("SELECT *, Kategorie, Name_{$this->Lc} AS Name, Beschreibung_{$this->Lc} AS Beschreibung FROM " PREFIX "_links WHERE Aktiv='1' AND ((Name_{$this->Lc} LIKE '%{$Search}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search}%') OR (Name_{$this->Lc} LIKE '%{$Search2}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search2}%')) AND Sektion = '" AREA "' ORDER BY Name_{$this->Lc} ASC LIMIT $a$limit");


С добавлением

PHP-код
        if (isset($_REQUEST['SelCateg']) && $_REQUEST['SelCateg'] == && !empty($_REQUEST['categ'])) {
            
$SelCateg " AND Kategorie = '" s($_REQUEST['categ'], 'i') . "' ";
        } else {
            
$SelCateg '';
        }

        
$entries = array();
        
$check DB::getDB()->Cache_Fetch_Object("SELECT COUNT(Id) AS ResCount FROM " PREFIX "_links WHERE Aktiv='1' " $SelCateg " AND ((Name_{$this->Lc} LIKE '%{$Search}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search}%') OR (Name_{$this->Lc} LIKE '%{$Search2}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search2}%')) AND Sektion = '" AREA "' ORDER BY Name_{$this->Lc} ASC");
        
$num $check->ResCount;
        
$limit Core::getLim(System::ModulSet('links''PageLimit'));
        
$seiten ceil($num $limit);
        
$a Func::prepage() * $limit $limit;
        
$query_items DB::getDB()->Query("SELECT *, Kategorie, Name_{$this->Lc} AS Name, Beschreibung_{$this->Lc} AS Beschreibung FROM " PREFIX "_links WHERE Aktiv='1' " $SelCateg " AND ((Name_{$this->Lc} LIKE '%{$Search}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search}%') OR (Name_{$this->Lc} LIKE '%{$Search2}%' OR Beschreibung_{$this->Lc} LIKE '%{$Search2}%')) AND Sektion = '" AREA "' ORDER BY Name_{$this->Lc} ASC LIMIT $a$limit");


Пробуйте должно работать, сам я не проверял, оформление радиобатона также не делал, добавил как пример


Пользователь офлайн
События Понедельник, 31.01.2011, 17:48

rostok

Автор текущей темы
Группа: Пользователь
Cообщений: 2
Регистрация: 20.01.2011
Город: hjhjhj
Спасибо конечно. Но когда я ставлю искать в текущей категории то оно все равно ищет по всем категориям и выдает результат то что нашло во всех категориях а не только в какой то одной. Грустно
Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 1

Поисковые боты: 12
Yandex, Inktomi Slurp, BingBot(3), Googlebot(4), Unknown Bot(2), oBot

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: Lesya

 Дни рождения


fix (26)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты