Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 如何在所有前端页面侧边栏中显示搜索框3_Search_Typo3_Tx Indexed Search - Fatal编程技术网

Search 如何在所有前端页面侧边栏中显示搜索框3

Search 如何在所有前端页面侧边栏中显示搜索框3,search,typo3,tx-indexed-search,Search,Typo3,Tx Indexed Search,我们开发了一个带有typo3 v8.7.11的站点。我们希望在侧栏部分显示搜索框,为此我们安装了索引搜索扩展。B 如何在所有前端页面边栏部分显示搜索框?您有多个选项: 在普通内容中从搜索插件复制表单的HTML,并将其插入页面HTML模板中 创建一个特殊的BE列,将搜索插件插入该列,并呈现在所有页面中继承的该列 使一个特殊页面在FE中不可见,在FE中插入搜索插件并在每个页面的呈现中包含此特殊CE使用打字脚本中的内容对象选择该特殊CE 在打字脚本中包含并配置插件。见托马斯·洛夫勒的答案 我更喜欢选项

我们开发了一个带有typo3 v8.7.11的站点。我们希望在侧栏部分显示搜索框,为此我们安装了索引搜索扩展。B


如何在所有前端页面边栏部分显示搜索框?

您有多个选项:

在普通内容中从搜索插件复制表单的HTML,并将其插入页面HTML模板中

创建一个特殊的BE列,将搜索插件插入该列,并呈现在所有页面中继承的该列

使一个特殊页面在FE中不可见,在FE中插入搜索插件并在每个页面的呈现中包含此特殊CE使用打字脚本中的内容对象选择该特殊CE

在打字脚本中包含并配置插件。见托马斯·洛夫勒的答案

我更喜欢选项2,因为它是最灵活的,不需要任何特殊的页面或内容ID,这可能会随着时间的推移而改变选项3。它还可以处理任何类型的CE。 例如,如果更新后插件呈现发生更改,则选项1需要手动修复。 选项4根本不可能让每个插件或CEs继承。如果您可以使用typoscript配置插件,这是一个不错的选择,因为您不需要tt_内容中的任何记录

对于备选方案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
}

最简单的方法是将给定的插件从索引搜索复制到模板中使用的变量

例如,当您使用FLUIDTEMPLATE时:

page.10 = FLUIDTEMPLATE
page.10.variable.searchBox < plugin.tx_indexedsearch

之后,您可以分配一个单独的模板,并通过更改page.10.variable.searchBox和此处可能的配置进行其他修改:

我的技巧是创建一个包含插件的打字脚本对象,如下所示:

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插件创建一个新的Search.html模板,以便它不会干扰常规插件。此外,如果您将搜索槽与搜索插件本身包含在同一页面上,请小心。

使用TYPO3扩展,它可以是新开发版本的

模板模块:将Macina Searchbox添加到包含来自扩展的静态下。 使用此或类似的打字稿将其包括在内,本例中的“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/下面文件夹中的流体模板文件,以修改searchbox的输出。此方法是必要的,以便搜索结果列表不会显示在页面上。您必须在搜索页面上插入索引搜索插件,在本例中,该页面的id=6。SUCHE是网站主模板中的标记。使用自己的标记。

是否使用FLUIDTEMPLATE呈现网站菜单、内容等?@Thomas。对注意:我们正在创建分发主题。所有这些信息都来自此链接:似乎不可能将插件复制到这样的变量中。