Просмотр полной версии : Как сделать форму поиска
Помогите пожалуиста, как сделать, чтобы поиск выглядел как окошечко для ввода слова и рядом кнопка Искать( стандартно как на всех сайтах), у меня поиск только расширенный получается, когда просто есть кнопка поиск и при нажатии на нее в поле CONTENTа появляется форма поиска расширенного( подкл. расширение search в typo3)
Помогите пожалуиста, как сделать, чтобы поиск выглядел как окошечко для ввода слова и рядом кнопка Искать( стандартно как на всех сайтах), у меня поиск только расширенный получается, когда просто есть кнопка поиск и при нажатии на нее в поле CONTENTа появляется форма поиска расширенного( подкл. расширение search в typo3)
для расширения Indexed Search в html-шаблон достаточно добавить что-то вроде:
<form action="index.php?id=999" id="quicksearch" name="quicksearch" method="post">
<input type="hidden" value="0" name="tx_indexedsearch[_sections]" />
<input type="hidden" value="_" name="tx_indexedsearch[_freeIndexUid]" />
<input type="hidden" value="0" name="tx_indexedsearch[pointer]" />
<input type="hidden" value="" name="tx_indexedsearch[ext]" />
<input type="hidden" value="1" name="tx_indexedsearch[type]" />
<input type="hidden" value="0" name="tx_indexedsearch[defOp]" />
<input type="hidden" value="-1" name="tx_indexedsearch[media]" />
<input type="hidden" value="rank_flag" name="tx_indexedsearch[order]" />
<input type="hidden" value="flat" name="tx_indexedsearch[group]" />
<input type="hidden" value="0" name="tx_indexedsearch[lang]" />
<input type="hidden" value="0" name="tx_indexedsearch[desc]" />
<input type="hidden" value="10" name="tx_indexedsearch[results]" />
<input class="search_input" type="text" value="" name="tx_indexedsearch[sword]" size="10" />
<input type="image" name="tx_indexedsearch[submit_button]" src="fileadmin/templates/images/icon-glass.gif" class="search_submit" />
</form>
где 999 - id страницы с результатами поиска
удачи =)
HardRock
04.08.2008, 12:46
Форма работает, но вот контент с альтернативных языков не ищет
помогите разобратся, в чём проблема , чт оя еще не указал ?
после установки зашол на каждую страницу, извсех существующих, создал страницу Search result, для отображения результатов поиска, подставил выше приведённый код, подкоректировал его под свой сайт, больше ничего не делал, поиск с ангийским языком работает, русский(альтернативный язык) не ищет
и еще вот такой вопрос, страницапоиска не переводится при смене языков, подскажите как это зделать ?
Alex Podusov
05.08.2008, 12:36
значится так... с реалурл'ом этот трюк не проходит. придется прописывать действующий путь до страницы с выводом результатов поиска (здесь ведущий слэш будет НЕОБХОДИМ!). если параметр L не скрыт - то проще этот код вынести в отдельный PHP файл и подключить в замапленную область, а всё, что стояло за "?" перекинуть в строку запросв. Примерно так
<form action="/здесь-путь-до-страницы-поиска/searsh.html?<? $s = explode("?", $_SERVER["REQUEST_URI"]);
echo $s[1]; ?>" id="ваш-идентификатор-класса-для-создания-стиля-оформления" name="quicksearch" method="post">
<input type="hidden" value="0" name="tx_indexedsearch[_sections]" />
<input type="hidden" value="_" name="tx_indexedsearch[_freeIndexUid]" />
<input type="hidden" value="0" name="tx_indexedsearch[pointer]" />
<input type="hidden" value="" name="tx_indexedsearch[ext]" />
<input type="hidden" value="1" name="tx_indexedsearch[type]" />
<input type="hidden" value="0" name="tx_indexedsearch[defOp]" />
<input type="hidden" value="-1" name="tx_indexedsearch[media]" />
<input type="hidden" value="rank_flag" name="tx_indexedsearch[order]" />
<input type="hidden" value="flat" name="tx_indexedsearch[group]" />
<input type="hidden" value="0" name="tx_indexedsearch[lang]" />
<input type="hidden" value="0" name="tx_indexedsearch[desc]" />
<input type="hidden" value="10" name="tx_indexedsearch[results]" />
<input class="search_input" type="text" value="" name="tx_indexedsearch[sword]" size="10" />
<input type="image" name="tx_indexedsearch[submit_button]" src="путь-к-вашей-картринке-с-иконкой-поиска" class="search_submit" />
</form>
Alex Podusov
05.08.2008, 16:27
вынес форму поиска в отдельный php файл, так как добавил туда немного динамики плюс проверка на то, является ли это страница с поиском или нет, чтобы не выводить форму минипоиска на странице с основным поиском...
в setup includeLibs.something1 = fileadmin/template/setup/form_searsh_mini.php
lib.minisearsh = USER
lib.minisearsh {
userFunc = PrintFormSearsh
}
в файле form_searsh_mini.php <?php
function PrintFormSearsh ($content) {
$content = 'формирование формы..........';
return $content;
}
?>
и вот не могу понять, почему в замапленный элемент... ничего не выводится...
вынес форму поиска в отдельный php файл, так как добавил туда немного динамики плюс проверка на то, является ли это страница с поиском или нет, чтобы не выводить форму минипоиска на странице с основным поиском...
в setup includeLibs.something1 = fileadmin/template/setup/form_searsh_mini.php
lib.minisearsh = USER
lib.minisearsh {
userFunc = PrintFormSearsh
}
в файле form_searsh_mini.php <?php
function PrintFormSearsh ($content) {
$content = 'формирование формы..........';
return $content;
}
?>
и вот не могу понять, почему в замапленный элемент... ничего не выводится...
там кажется надо через класс->PrintFormSearsh
в tsref пример для userfunc
Alex Podusov
06.08.2008, 12:02
Сделал по анологии с подключением языкового меню. Там тоже просто функция в отдельном файле...
includeLibs.something = fileadmin/template/setup/tt_news_languageMenu.php
lib.menu_langselector = USER
lib.menu_langselector {
userFunc = user_languageMenu
}
Alex Podusov
06.08.2008, 12:44
Сделал так:
includeLibs.something1 = fileadmin/template/setup/form_searsh_mini.php
lib.minisearsh = USER
lib.minisearsh {
userFunc = myFuncClass->PrintFormSearsh
}
в файле form_searsh_mini.php
<?php
class myFuncClass {
function PrintFormSearsh ($content) {
.....
$c = '...';
return $c;
}
}
?>
и всё равно ничего
HardRock
06.08.2008, 15:31
Сделал так:
и всё равно ничего
вот как зделао у меня
includeLibs.cheta = fileadmin/templates/cms/getSearch.php
page.1.subparts.SEARCH = USER
page.1.subparts.SEARCH.userFunc = user_getSearch
а в index стоит :
<!-- ###SEARCH### -->|<!-- ###SEARCH### -->
всё работает
P.S. помоему называть функцию начиная с user_ обязятельно
Alex Podusov
06.08.2008, 16:10
ха! И верно... в первоначальный вариант, без класса, добавил user_ к названию функции - и всё заработало. Спасибо! Теперь кажется, что где-то я это читал, но видимо тогда оно не отлажилось в голове
HardRock
06.08.2008, 16:31
ха! И верно... в первоначальный вариант, без класса, добавил user_ к названию функции - и всё заработало. Спасибо! Теперь кажется, что где-то я это читал, но видимо тогда оно не отлажилось в голове
Это было в мануале по typoscript это можно посмотреть прям в ЦМСке
в описании обьекта USER или USER INT
ksevelyar
08.08.2008, 00:33
Когда вставляю форму в html с относительным путём (<form action="index.php?id=10" method="post" name="tx_indexedsearch">) - автотемплэйт гадостно хихикая и потирая ручки с невероятнейшим, ядерным удовольствием мне его рушит. Когда вставляю форму с полным путём - не ищет.
index.php?id=10 менял на название страницы (realurl стоит) тот же эффект
Можно как-нибудь эту форму в марку или субпарт засунуть? Заодно if на наличие миниформы на странице куда выводит результат наверно можно будет сделать...
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot