为什么FLUIDTEMPLATE变量没有传递到Fluid Template html文件?

问题描述

我正在尝试通过FLUIDTEMPLATE传递变量。但是我的尝试每次都失败了。我已经通过ext-builder创建了一个simpleblog扩展。因此,我的模板文件位于 simpleblog / Resources / Private / Templates / Blog / List.html。。我正在使用此basic example来使用FLUIDTEMPLATE访问数据。我将以下代码放在扩展程序的setup.typoscript中。

page = PAGE
page {
 10 = FLUIDTEMPLATE
10 {
   
  file = EXT:simpleblog/Resources/Private/Templates/Blog/List.html
  settings {
     copyrightYear = 2013
   }
  }
}

,并以模板文件形式访问

...
<h3>{settings.copyrightYear}</h3>

我知道这很简单。但是我不知道是什么阻止了我访问数据。

解决方法

如果使用FLUIDTEMPLATE对象,则可以添加类似于示例的变量。但具有属性variables

10 = FLUIDTEMPLATE
10 {
    file = EXT:simpleblog/Resources/Private/Templates/Blog/List.html
    variables {
        copyrightYear = 2013
   }
}

但是您正在谈论扩展。

扩展名有其自己的模板,而没有在打字稿中明确声明。
模板和变量是在扩展的PHP代码(可能是控制器)中准备的。
经常将(!)复制到流体的一些变量是插件的设置。然后可以在流体变量setting中找到这些值。

阅读扩展程序的手册,您会发现类似的内容

plugin {
    myextension {
        settings {
            mySetting = myValue
        }
    }
}

但是对于每个扩展名或插件而言可能是不同的,因此路径可能会因插件名称而不是扩展名而有所不同,或针对不同操作而具有其他路径。

plugin {
    myplugin {
        list {
            settings {
                myListSetting = myListValue
            }
        }
        show {
            settings {
                myShowSetting = myShowValue
            }
        }
    }
}

不要忘记,这些设置可能会被PHP代码中插件内容元素中的值覆盖。

,

如何填充Blog变量?如果您已经创建了扩展,则逻辑和设置应在plugin.tx_yourext.settings中设置,而不是在全局范围内设置。我认为您在这里混淆了一些事情。参见https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/b-ExtbaseReference/Index.html#typoscript-configuration