簡體   English   中英

使用TYPO3 9.5.8中的錯字為tx_news生成口語URL

[英]Generate speaking url for tx_news using typoscript in TYPO3 9.5.8

我將TYPO3 v 9.5.8與tx_news (7.2.0)一起使用。

我真的很喜歡新的TYPO3實現的語音網址生成。

我已經將其配置為生成口語URL,並且也對其進行配置以為tx_news生成口語URL,兩者都工作正常。 但我也想在頁腳中顯示最后三個新聞條目。

我的解決方案是在拼寫設置中生成它們,並將其傳遞給流體模板。 我當前的印刷代碼如下:

    news = CONTENT
    news {
        table = tx_news_domain_model_news
        select {
            pidInList = 24
            max = 3
            orderBy = datetime DESC
        }
        renderObj = COA
        renderObj {
            1 = TEXT
            1.field = datetime
            1.strftime = %d. %B %Y
            1.wrap = <p>|</p>

            2 = TEXT
            2 {
                field = title
                typolink {
                    parameter = 26
                    parameter.override.field = internalurl
                    useCacheHash = 0
                    additionalParams.wrap = &tx_news_pi1[news]=|
                    additionalParams.field = uid
                }
            }
        }
        renderObj.wrap = <div class="header-news-item">|</div>
    }

至少這有效。 但自從我使用additionalParams.wrap追加的新聞條目的ID,生成的URL看起來是這樣的:

<a href="/allgemeines/news/artikel?tx_news_pi1[news]=2&cHash=8b0067dc86ab1392bb84cbf58878e72d">Lorem ipsum dolor sit</a>

我想網址看起來像這樣:

<a href="/allgemeines/news/artikel/lorem-ipsum-dolor-sit">Lorem ipsum dolor sit</a>

這與為重定向到詳細信息視圖而生成的tx_news列表視圖相同。

有人知道這怎么可能嗎?

我想您在生成TypoScript時缺少動作和控制器。

在Georg Ringer 的提示下 ,我開始工作了。

這是從TypoScript開始的工作示例:

news = CONTENT
news {
    table = tx_news_domain_model_news
    select {
        pidInList = 24 // Page ID of the page that contains the news entries.
        max = 3
        orderBy = datetime DESC
    }
    renderObj = COA
    renderObj {
        1 = TEXT
        1.field = datetime
        1.strftime = %d. %B %Y
        1.wrap = <p>|</p>
        2 = TEXT
        2 {
            field = title
            typolink {
                parameter = 26 // Page ID of the page that displays the detail view.
                parameter.override.field = internalurl
                useCacheHash = 0
                additionalParams.wrap = &tx_news_pi1[action]=detail&tx_news_pi1[controller]=News&tx_news_pi1[news]=|
                additionalParams.field = uid
            }
        }
    }
    renderObj.wrap = <div class="header-news-item">|</div>
}

為了使其正常工作,您當然也必須為tx_news啟用口語URL。 從TYPO3 9 LTS開始,您可以通過將其添加到站點yaml配置文件中來執行此操作:

routeEnhancers:
  News:
    type: Extbase
    extension: News
    plugin: Pi1
    routes:
      - routePath: '/{news-title}'
        _controller: 'News::detail'
        _arguments:
          news-title: news
    aspects:
      news-title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment

在這里描述。

暫無
暫無

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

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