Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Как сделать форму поиска (http://forum.typo3.ru/showthread.php?t=5283)

Elenka 03.12.2007 14:02

Как сделать форму поиска
 
Помогите пожалуиста, как сделать, чтобы поиск выглядел как окошечко для ввода слова и рядом кнопка Искать( стандартно как на всех сайтах), у меня поиск только расширенный получается, когда просто есть кнопка поиск и при нажатии на нее в поле CONTENTа появляется форма поиска расширенного( подкл. расширение search в typo3)

gunner 04.12.2007 22:19

Цитата:

Сообщение от Elenka (Сообщение 16372)
Помогите пожалуиста, как сделать, чтобы поиск выглядел как окошечко для ввода слова и рядом кнопка Искать( стандартно как на всех сайтах), у меня поиск только расширенный получается, когда просто есть кнопка поиск и при нажатии на нее в поле 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;
}
?>

и вот не могу понять, почему в замапленный элемент... ничего не выводится...

shuman 06.08.2008 09:36

Цитата:

Сообщение от Alex Podusov (Сообщение 20564)
вынес форму поиска в отдельный 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

Цитата:

Сообщение от Alex Podusov (Сообщение 20587)
Сделал так:
и всё равно ничего

вот как зделао у меня

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_ к названию функции - и всё заработало. Спасибо! Теперь кажется, что где-то я это читал, но видимо тогда оно не отлажилось в голове


Часовой пояс GMT +4, время: 07:18.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot