TYPO3索引搜索不起作用

时间:2017-01-19 12:26:25

标签: search typo3

我使用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>
    }
}

当我点击搜索时,我被重定向到我的搜索页面,其中包含已安装的搜索插件,但没有显示搜索结果甚至关键字。这些页面已被很好地编入索引,并且在后端索引搜索的搜索关键字中显示,但不是在前端,我在这里做什么?请帮忙!

3 个答案:

答案 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&amp;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

但我认为这有点风险,不应该用于生产

所以产生混乱应该是让它运作的方法。只想分享我发现的东西。