【问题标题】:Typo3: Constant as Page UIDTypo3:常量为页面 UID
【发布时间】:2014-01-25 00:36:39
【问题描述】:

我有一个分配给各种页面 ID 的常量列表(例如 myConstant = 22)。现在我想替换以下链接

<f:link.page pageUid="22" >Link</f:link.page>

类似的东西

<f:link.page pageUid="{myConstant}" >Link</f:link.page>

我一直无法找到正确的语法来执行此操作。有什么帮助吗?

【问题讨论】:

    标签: typo3 fluid


    【解决方案1】:

    我认为你不能直接访问常量,但你可以在 ts-setup 中使用常量。

    在 ts-setup 中使用 plugin.tx_myplugin.settings.myPid = {$myConstant},您可以使用 {settings.myPid} 访问插件中的 pid

    如果您使用的不是插件而是 TS FluidTemplate,您可以像这样分配它们:

    page = PAGE
    page {
        10 = FLUIDTEMPLATE
        10 {
            file = fileadmin/templates/Home.html
            variables {
                pidList {
                    myConstant = {$myConstant}
                    myConstant2 = {$myConstant2}
                }
            }
        }
    }
    
    <f:link.page pageUid="{pidList.myConstant}" >Link</f:link.page>
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 FLUIDTEMPLATE Typoscript-Object,您可以在 TypoScript 中执行以下操作:

      lib.output = FLUIDTEMPLATE
      lib.output {
      #   ...
          variables {
              myPageID = {$myConstant}
          }
      #   ...
      }
      

      在流体模板中,您可以随意使用变量:

      <f:link.page pageUid="{myPageID}" >Link</f:link.page>
      

      如果模板由控制器操作中的扩展呈现,您可以将值分配给插件的设置:plugin.tx_&lt;extkey&gt;[_pi1].settings.myPageID = {$myConstant}。然后你可以像这样在流体模板中使用它:

      <f:link.page pageUid="{settings.myPageID}">Link</f:link.page>
      

      在任何情况下,您都可以将该值分配给某个 TypoScript 对象,并通过使用 f:cObject ViewHelper 或扩展程序 vhs 中的 v:var.typoscript ViewHelper 在模板中读取该值。

      【讨论】:

      • 这似乎是一个很好的解决方案,但后来我注意到这将始终呈现指向当前页面 id 的链接
      • 这可能是因为myPageID 在某处未正确设置。尝试使用&lt;f:debug&gt;{[settings.]myPageID}&lt;/f:debug&gt; 输出它(仅在需要时添加“设置”)。
      【解决方案3】:

      我在 t3 7.6 中尝试过类似的操作如果您想在页面流体模板的某处使用 ts 常量(在 ts-constants 字段中定义为 oneConst),您必须执行以下操作:

      page.10 = FLUIDTEMPLATE
      page.10 {         
          variables{
              const_one=TEXT
              const_one.value={$oneConst}
              }
          }
      }
      

      如果没有 TEXT 定义,您将无法获得值。在您的模板中访问它:

      {const_one} 
      

      提示:我无法在数组中组织 const。喜欢

      const{
         one=TEXT
         one.value={..}
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 1970-01-01
        • 2015-10-25
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多