簡體   English   中英

TYPO3 - 如何正確定義常量,將其存儲到變量中並在流體模板內部使用

[英]TYPO3 - how to properly define constant, store it into variable and use inside of fluid template

在我正在處理的插件的 Fluid 模板中,有些東西是硬編碼的。 例如:

<f:else>
                <li>
                    <v:page.link pageUid="114" />
                </li>
            </f:else>

由於測試和生產服務器上的pageUid值不同,我想讓它更加動態。

我想以某種方式將其存儲在變量中,然后在流體模板中使用該變量。

我只是不知道在 TYPO3 中做這個很熱。

提前致謝!

因為它是一個設置,所以這樣做:

常數:

plugin.myext.settings.detailPid = 123

設置:

plugin.myext.settings.detailPid = {$plugin.myext.settings.detailPid}

變量用於變量內容。 如果使用帶有 TEXT 或類似變量的變量具有相同的 PID,則過度修飾並且設置是正確的方法。

此外,變量只能用於 FLUID_TEMPLATE 內容元素,不能用於插件!

同樣在您的 extbase 控制器中,您可以通過簡單的訪問$this->settings['detailPid']來訪問這些設置,而無需先渲染 cObjects。

在您的流體中,您可以通過{settings.detailPid}訪問設置。

在您的內容對象 FLUIDTEMPLATE 的排版模板中:

排版設置/配置:

10 = FLUIDTEMPLATE
10 {
    variables {
        pageUid = TEXT
        pageUid.value = 114
    }
}

或使用常量

排版常量:

pageUid = 114

打字稿設置/配置:

10 = FLUIDTEMPLATE
10 {
    variables {
        pageUid = TEXT
        pageUid.value = {$pageUid}
    }
}

然后你可以在你的 Fluid HTML 中獲取pageUid

<f:else>
    <li>
        <v:page.link pageUid="{pageUid}" />
    </li>
</f:else>

要在 Fluid partial 中使用變量,請確保傳遞這些變量,例如通過提供_all

<f:render partial="fluid_part_header" arguments="{_all}" />

如果您EXT:vhs使用EXT:vhs ,您可以執行以下操作:

TS-常數:

pageUid=114

TS-設置:

settings.pageUid = {$pageUid}

模板(流體)

<f:else>
    <li>
        <v:page.link pageUid="{v:variable.typoscript(path: 'settings.pageUid')}" />
    </li>
</f:else>

這將使其可用於所有 FLUID 模板。

請考慮使用 jokumer 的解決方案。 randomresult 的解決方案會起作用,但我不建議這樣做。 您不需要 vhs 來傳遞變量。 不是在談論 Paul Beck 的解決方案,因為它根本行不通。 至少不再是了。 (參見 TYPO3\\CMS\\Fluid\\ViewHelpers\\CObjectViewHelper, https: //docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/CObject.html)。 它只接受內容對象。

將您的 Pid 設置為PID_SOME_PAGE = 123等常量,並在您的插件設置中設置一個變量。 像這樣:

plugin.tx_yourplugin {
  ...
  settings{
    somePage = {$PID_SOME_PAGE}
  }
  ...
}

如果需要,您可以繞過該常量版本並直接在設置中設置頁面 ID。 在我看來,這只是一種更清潔的方式,尤其是對於較大的網站。 然后您可以在模板中使用該變量,例如<f:link.page pageUid="{settings.somePage}">Go to Page</f:link.page> f:link.page 的更多選項在這里: https ://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Link/Page.html

暫無
暫無

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

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