簡體   English   中英

TYPO3索引搜索不起作用

[英]TYPO3 Indexed Search not working

我正在使用TYPO3版本8,我已經安裝了帶有錯字的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>
    }
}

當我單擊搜索時,我被重定向到包含已安裝搜索插件的搜索頁面,但是沒有搜索結果甚至沒有顯示關鍵字。 頁面索引良好,並且在后端索引搜索關鍵字中出現,但在前端卻沒有,我在這里誤解了什么? 請幫忙!

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

user2714261顯示了如何停用所有元素的cHash檢查。 這樣做可能有點冒險。 但是,您只能將它用於indexed_search插件。 那不會有什么問題,因為indexed_search仍然不應該緩存。 這樣您就可以在您的插件設置中編寫jsut了:

plugin {
    tx_indexedsearch {
        features.requireCHashArgumentForActionArguments = 0
    }
}

在TYPO3 8.7.9中效果很好。

馬丁

編輯:我找到了解決方案。 您必須向typolink ts添加一些內容(我的結果插件具有_pi2 btw)

        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的嚴格要求時,它就起作用了...

config.tx_extbase.features.requireCHashArgumentForActionArguments = 0

但我認為這有點冒險,不應在生產中使用

因此產生沖擊力應該是使其工作的方法。 只是想分享我發現的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM