问题描述
我从sitepackagebuilder(v9.5.14)中获得了我的软件包。我不擅长打字。我正在使用来自 bootstrap_package 的可选菜单导航文件 MainBefore.html (我想要的文件),该文件放入了stpkg扩展名,因为该文件可在FE中与main一起全局使用菜单。我尝试在以下两个示例中解释我的疑问。 第一个对我很清楚。通常我会做这样的事情(我唯一已知的打字和访问方式)。
示例1: 在打字稿中
lib.stdContent = FLUIDTEMPLATE
lib.stdContent {
file = EXT:sitepackagebuilder/Resources/Private/Partials/Page/DropIn/Navigation/Data.html
variables {
mylabel = TEXT
mylabel.value = Label coming from TypoScript!
}
}
在Data.html
<h4>Hello TYPO3</h4>
<h3 hidden>{mylabel}</h3>
MainBefore.html
....
<div class="from-data-file"><f:cObject typoscriptObjectPath="lib.stdContent" /></div>
....
上面的示例将起作用。
示例2:
但是下面的示例是我的疑问。
page.10 = FLUIDTEMPLATE
page.10.variables.userInfoForChat = COA_INT
page.10.variables.userInfoForChat {
10 = FLUIDTEMPLATE
10 {
file = EXT:company/Resources/Private/Partials/Page/DropIn/Navigation/Data.html
variables {
mylabel = TEXT
mylabel.value = Label coming from TypoScript!
}
}
}
如何像示例1一样访问Data.html中的变量并在MainBefore.html中呈现内容?如果我错了,请纠正我 两个文件都位于同一位置。
解决方法
首先:您正在做非常复杂的事情。通常,彼此之间不需要堆叠模板。因此主要问题是:您打算做什么?
然后我们可以找到一种简单的方法。
我尝试确定您的意图:
您有一个主模板(在此示例中,main = main,否则只是常规页面呈现的一小部分),您要在其中有一个变量,该变量由另一个模板填充,并在其中插入了一些变量。
缺少某些信息,因为当所有值都是静态的(如您的示例)时,这些信息是不必要的。
当您使用未缓存的COA_INT
时,一定会有一些非静态的信息,而名称userInfoForChat
则暗示了特定于用户的信息,当然这是不可缓存的。
我的问题是:为什么要在变量中放入完整的流体模板,当它应该足以在其中包含一些未缓存的值并且仅使用一组流体模板时。 (该集合已经可以包括模板,布局和很多局部元素)