我使用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>
}
}
当我点击搜索时,我被重定向到我的搜索页面,其中包含已安装的搜索插件,但没有显示搜索结果甚至关键字。这些页面已被很好地编入索引,并且在后端索引搜索的搜索关键字中显示,但不是在前端,我在这里做什么?请帮忙!
答案 0 :(得分:3)
您可以在FLUIDTEMPLATE中使用<f:form>
来生成Quicksearch-Form。这样,将生成一个基本的cHash参数,并自动附加到action-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}
}
Quicksearch.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>
答案 1 :(得分:3)
user2714261显示了如何停用所有元素的cHash检查。这可能有点风险。但是你只能为indexed_search插件取消它。这不会有任何问题,因为indexed_search无论如何都不应该缓存。所以你jsut可以写你的插件 - 设置:
plugin {
tx_indexedsearch {
features.requireCHashArgumentForActionArguments = 0
}
}
在TYPO3 8.7.9中运行良好。
马丁
答案 2 :(得分:1)
编辑:我找到了解决方案。你必须在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"/>
...
正如您所见,我的模板中有一个固定的设置。我注意到的是,如果您不在动作网址中发送混乱,嵌入式插件显然不会运行。可能你可以用你的typoscript生成它。
我确定这是问题所在,至少在我的情况下,因为当我关闭extbase的chash要求时,它可以工作......
config.tx_extbase.features.requireCHashArgumentForActionArguments = 0
但我认为这有点风险,不应该用于生产
所以产生混乱应该是让它运作的方法。只想分享我发现的东西。