我们开发了一个带有typo3 v8.7.11 的网站。我们想在侧边栏部分显示搜索框,为此我们安装了 indexed_search 扩展。乙
如何在所有前端页面侧边栏部分显示搜索框?
我们开发了一个带有typo3 v8.7.11 的网站。我们想在侧边栏部分显示搜索框,为此我们安装了 indexed_search 扩展。乙
如何在所有前端页面侧边栏部分显示搜索框?
你有多种选择:
从普通内容中的搜索插件复制表单的 HTML 并将其插入到您的页面-(html-) 模板中。
创建一个特殊的 BE-column,将 search-plugin 插入此列并渲染此列在所有页面中继承
使一个特殊页面在 FE 中不可见,您可以在其中插入搜索插件并将此特殊 CE 包含在每个页面的呈现中(在打字稿中使用 CONTENT 对象来选择该特殊 CE)
在打字稿中包含和配置插件。(见 Thomas Löffler 的回答)
我更喜欢选项 2,因为它最灵活,不需要任何可能随时间变化的特殊页面或内容 ID(选项 3)。它还可以处理任何类型的 CE。
例如,如果在更新后插件呈现发生变化,则选项 1 需要手动修复。
每个插件或 CE 根本不可能继承选项 4。如果您可以使用打字稿配置插件,这是一个不错的选择,因为您不需要任何记录(来自 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
}
我的建议是创建一个包含插件的 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" />
请注意,您应该在 Path/To/Template/Search/ 中为此 TS-Plugin 创建一个新的“Search.html”模板,这样它就不会干扰常规插件。此外,如果您在搜索插件本身所在的页面上包含搜索槽,请小心。
使用一个TYPO3扩展,可以是新开发版macina_searchbox的一个副本(fork)
模板模块:在“include static from extensions”下添加“Macina Searchbox”。使用这个或类似的 TypoScript 来包含它,本例中的“6”是搜索页面。请改用您自己的页面 ID。
常数:
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 {
然后您可以编辑 macina_searchbox/Resources/Private/ 下文件夹中的 Fluid 模板文件来修改搜索框的输出。此方法是必要的,以便搜索结果列表不会显示在页面上。您必须改为在您的搜索页面上插入一个索引搜索插件,在此示例中该插件的 id=6。SUCHE 是网站主模板中的标记。使用您自己的标记。
同时 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