TYPO3 索引搜索未显示在页面上

问题描述 投票:0回答:3

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

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

search typo3
3个回答
5
投票

user2714261 显示了如何停用所有元素的 cHash 检查。这实际上可能有点冒险。但您只能针对indexed_search 插件停用它。这不会有任何问题,因为 indexed_search 无论如何都不应该缓存。所以你可以在你的插件设置中写入:

plugin {
    tx_indexedsearch {
        features.requireCHashArgumentForActionArguments = 0
    }
}

这在 TYPO3 8.7.9 中运行良好。

马丁


5
投票

您可以在 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>

2
投票

编辑:我找到了解决方案。你必须在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"/> 
...

如您所见,我的模板中有一个固定的设置。我注意到的是,如果您不在操作 URL 中发送 chash,那么嵌入式插件显然不会运行。也许你可以用你的打字稿生成它。

我确信这就是问题所在,至少对于我来说是这样,因为当我关闭 extbase 的 chash 要求时,它会起作用......

config.tx_extbase.features.requireCHashArgumentForActionArguments = 0

但我认为这有点冒险,不应该在生产中使用

因此生成chash应该是使其发挥作用的方法。只是想分享我所发现的。

© www.soinside.com 2019 - 2024. All rights reserved.