Как отобразить окно поиска во всей боковой панели страницы внешнего интерфейса typo3
Мы разработали сайт с typo3 v8.7.11. Мы хотим отобразить окно поиска в разделе боковой панели, для этого мы установили расширение indexed_search. В
Как отобразить окно поиска во всех разделах боковой панели страницы веб-интерфейса?
6 ответов
Начиная с версии TYPO3 12, f:form Fluid ViewHelper больше не работает («ViewHelper f:form может использоваться только в контексте extbase и требует запроса, реализующего extbase RequestInterface.»). Решением является статическая форма с динамически генерируемым URL-адресом:
<form method="post" action="{f:uri.page(pageUid:'123',additionalParams:'{tx_indexedsearch_pi2: {action:\'search\',controller:\'Search\'}}')}">
<input type="text" name="tx_indexedsearch_pi2[search][sword]" value="">
<input type="submit" value="Suchen" name="tx_indexedsearch_pi2[search][submitButton]">
</form>
Мой совет - создать объект TypoScript, который фактически включает в себя плагин, например:
lib.headerSearch = USER
lib.headerSearch {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = IndexedSearch
pluginName = Pi2
vendorName = TYPO3\CMS
switchableControllerActions {
Search {
1 = form
2 = search
}
}
features {
requireCHashArgumentForActionArguments = 0
}
view < plugin.tx_indexedsearch.view
view.partialRootPaths.10 = Path/To/Partial/
view.templateRootPaths.10 = Path/To/Template/
settings =< plugin.tx_indexedsearch.settings
}
Затем в свой шаблон включите его вот так
<f:cObject typoscriptObjectPath="lib.headerSearch" />
Обратите внимание, что вы должны создать новый шаблон "Search.html" в Path/To/Template/Search/ для этого TS-плагина, чтобы он не мешал работе обычного плагина. Также будьте осторожны, если вы включаете слот поиска на той же странице, что и сам плагин поиска.
У вас есть несколько вариантов:
скопируйте HTML-код формы из поискового плагина в обычном контенте и вставьте его в свой шаблон страницы (html-).
создайте специальный BE-столбец, вставьте поисковый плагин в этот столбец и визуализируйте этот столбец, унаследованный на всех страницах
сделать специальную страницу невидимой в FE, где вы вставляете поисковый плагин и включаете этот специальный CE в рендеринг каждой страницы (используйте объект CONTENT в typoscript, чтобы выбрать этот специальный CE)
включить и настроить плагин в typoscript. (см. ответ Томаса Леффлера)
Я предпочитаю вариант 2, так как он наиболее гибкий и не требует каких-либо специальных идентификаторов страниц или содержимого, которые могут изменяться со временем (вариант 3). Это также может обращаться с любым видом CE.
Вариант 1 требует ручного исправления, если, например, в обновлении плагина произошли изменения после обновления.
Вариант 4 не может наследоваться каждым плагином или CE. Если вы можете настроить плагин с Typoscript, это хороший вариант, потому что вам не нужна запись (из tt_content)
для варианта 2:
temp.inheritedContent = CONTENT
temp.inheritedContent {
table = tt_content
select.orderBy = sorting
// -- use your own column id: --
select.where = colPos = 100
select.languageField = sys_language_uid
slide = -1
}
Используйте расширение TYPO3, которое может быть копией (вилкой) недавно разработанной версии macina_searchbox
Модуль шаблона: добавьте "Macina Searchbox" в "Включить статические данные из расширений" . Используйте этот или аналогичный TypoScript, чтобы включить его, где "6" в этом примере - страница поиска. Вместо этого используйте свой собственный идентификатор страницы.
Константы:
lib.macina_searchbox {
pidSearchpage = 6
}
Настроить:
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template/template.html
10.workOnSubpart = DOKUMENT
10.marks {
SUCHE < lib.macina_searchbox
LOGO = TEXT
LOGO.value = <a href="/" title="Startseite"><img src="fileadmin/template/img/logo.png"></a>
NAVI= HMENU
NAVI {
Затем вы можете редактировать файлы шаблонов Fluid в папках ниже macina_searchbox/Resources/Private/, чтобы изменить вывод окна поиска. Этот способ необходим для того, чтобы список результатов поиска не отображался на странице. Вместо этого вы должны вставить плагин индексированного поиска на свою страницу поиска, у которого в этом примере id=6. ТАКОЕ - маркер в основном шаблоне сайта. Используйте свой собственный маркер.
Тем временем switchableControllerActions устарел.
Мой любимый: https://github.com/benjaminkott/bootstrap_package/wiki/Add-Indexed-Search-to-Navbar
Самый простой способ - скопировать данный плагин из indexed_search
к переменной, которую вы используете в своем шаблоне.
Например, когда вы используете FLUIDTEMPLATE:
page.10 = FLUIDTEMPLATE
page.10.variable.searchBox < plugin.tx_indexedsearch
После этого вы можете назначить отдельный шаблон и внести другие изменения, изменив page.10.variable.searchBox
с возможной конфигурацией здесь: https://docs.typo3.org/typo3cms/extensions/indexed_search/8.7/Configuration/Index.html