我正在使用TYPO3版本8,我已经安装了带有typoscript的indexed_search表单框
50 = COA
50 {
stdWrap {
wrap = <div id="searchcontainer">|</div><div class="clearboth"></div>
required = 1
}
10 = TEXT
10 {
wrap = <form id="searchbox" name="searchbox" action="|" method="post">
typolink.parameter = {$searchPID}
typolink.returnLast = url
if.isTrue = {$config.tx_realurl_enable}
}
20 = TEXT
20 {
value = <form id="searchbox" name="searchbox" action="/" method="post">
if.isFalse = {$config.tx_realurl_enable}
}
30 = COA
30 {
10 = TEXT
10{
wrap = <input type="hidden" name="id" value="|" />
value = {$searchPID}
if.isFalse = {$config.tx_realurl_enable}
}
20 = TEXT
20 {
wrap = <input type="text" id="swords" name="swords" value="|" size="20" onfocus="this.value='';" />
value = {$searchTEXT}
}
30 = TEXT
30 {
wrap = <input type="submit" id="searchbutton" value="" />
}
}
40 = TEXT
40 {
value = </form>
}
}
当我点击搜索时,我被重定向到包含已安装搜索插件的搜索页面,但没有搜索结果,甚至没有显示关键字。这些页面索引良好,并且在后端索引搜索关键字中出现,但不在前端中,我在这里缺少什么?请帮忙!
user2714261 显示了如何停用所有元素的 cHash 检查。这实际上可能有点冒险。但您只能针对indexed_search 插件停用它。这不会有任何问题,因为 indexed_search 无论如何都不应该缓存。所以你可以在你的插件设置中写入:
plugin {
tx_indexedsearch {
features.requireCHashArgumentForActionArguments = 0
}
}
这在 TYPO3 8.7.9 中运行良好。
马丁
您可以在 FLUIDTEMPLATE 中使用
<f:form>
来生成快速搜索表单。这样,就会自动生成一个重要的 cHash 参数并将其附加到操作 URL 中。
TypoScript(常量)
plugin.tx_indexedsearch.settings.targetPid = 35
TypoScript(设置)
lib.quicksearch = FLUIDTEMPLATE
lib.quicksearch{
file = fileadmin/Quicksearch.html
settings.targetPid = {$plugin.tx_indexedsearch.settings.targetPid}
}
快速搜索.html
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div id="quicksearch">
<f:form action="search" method="post" controller="Search" extensionName="indexedsearch" pluginName="pi2" pageUid="{settings.targetPid}">
<f:form.textfield name="search[sword]" value="{sword}" class="quicksearch-sword" />
<f:form.submit name="search[submitButton]" value="Search" class="quicksearch-submit" />
</f:form>
</div>
</html>
编辑:我找到了解决方案。你必须在typolink ts中添加一些东西(我的结果插件有_pi2顺便说一句)
wrap = <form id="searchbox" name="searchbox" action="|" method="post">
typolink.parameter = 25
typolink.additionalParams = &tx_indexedsearch_pi2[action]=search&tx_indexedsearch_pi2[controller]=Search
typolink.returnLast = url
typolink.useCacheHash = 1
第一次发帖:
我现在没有解决方案,但我找到了一些可以帮助的东西。
我在 TYPO3 8 和搜索框上也遇到类似的问题。我调整了搜索框的 HTML,使其适合嵌入式插件,如下所示:
<form action="searchresult.html?tx_indexedsearch_pi2%5Baction%5D=search&tx_indexedsearch_pi2%5Bcontroller%5D=Search" method="post" name="searchform" id="searchform">
<input name="tx_indexedsearch_pi2[search][sword]" type="text"/>
<input name="tx_indexedsearch_pi2[search][submitButton]" type="submit" id="submitbutton" value="submit"/>
...
如您所见,我的模板中有一个固定的设置。我注意到的是,如果您不在操作 URL 中发送 chash,那么嵌入式插件显然不会运行。也许你可以用你的打字稿生成它。
我确信这就是问题所在,至少对于我来说是这样,因为当我关闭 extbase 的 chash 要求时,它会起作用......
config.tx_extbase.features.requireCHashArgumentForActionArguments = 0
但我认为这有点冒险,不应该在生产中使用
因此生成chash应该是使其发挥作用的方法。只是想分享我所发现的。