|
Группа: Администратор
Регистрация: 24.10.2009
Город: Санкт-Петербург
|
Что бы такое сделать нужно модернизировать скрипт.
Как я вижу это делается так. Возьмем к примеру раздел ссылок.
В шаблон search.tpl нужно добавить радиобатон с выбором ищем по всем разделам или по текущему.
Оригинал
<!-- Start id_0121 CMS Status-X -->
<div class="infobox">
<form method="post" action="/index.php?p=links&area={$area}&action=search">
<input type="text" name="ql" style="width:200px" value="{$smarty.request.ql|default:''|sysspecialchars|replace:'-':''}" class="input" />
<input type="submit" class="button" value="{#Search#}" />
</form>
</div>
<!-- End id_0121 CMS Status-X -->
|
С добавлением
<!-- Start id_0121 CMS Status-X -->
<div class="infobox">
<form method="post" action="/index.php?p=links&area={$area}&action=search">
<input type="text" name="ql" style="width:200px" value="{$smarty.request.ql|default:''|sysspecialchars|replace:'-':''}" class="input" />
{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-X -->
|
Далее модернизируем функцию SearchLinks() в классе Class.Links.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");
|
С добавлением
if (isset($_REQUEST['SelCateg']) && $_REQUEST['SelCateg'] == 1 && !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");
|
Пробуйте должно работать, сам я не проверял, оформление радиобатона также не делал, добавил как пример
|