Группа: Администратор Регистрация: 23.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");
|
Пробуйте должно работать, сам я не проверял, оформление радиобатона также не делал, добавил как пример |