在新的Typo3安装中,我有一个这样的模板。
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
file = fileadmin/default/templates/index.html
...
variables {
...
myPages = CONTENT
myPages {
table = pages
select {
pidInList = 76
orderBy = sorting
}
}
}
}
}
现在我想在我的flowtemplate中迭代这些页面:
<f:for each="{myPages}" as="page">
<f:format.raw>{page.title}</f:format.raw>
</f:for>
不幸的是,如果我做了
<f:debug title="debugger">{myPages}</f:debug>
它表明这是一个空字符串。
如何将所选内容对象的结果数组传递给FLUIDTEMPLATE?
更新
我解决了它创建自定义viewhelper,它返回给定parentId的页面数组。结果存储在流体变量中。
class Tx_Custom_ViewHelpers_Pages_GetViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
/**
* Gets subpages for a given page.
*
* @param int $parentId ID of the parentpage.
* @param string $target Target Variable
*/
public function render($parentId, $target='content') {
$rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages', 'pid=' . $parentId);
if ($this->templateVariableContainer->exists($target) === TRUE) {
$this->templateVariableContainer->remove($target);
}
$this->templateVariableContainer->add($target, $rows);
}
}
模板中的用法:
{namespace cn=Tx_Custom_ViewHelpers}
<cn:pages.get parentId="{parentId}" target="pages"/>
<f:for each="{pages}" as="p">
page: {p.title}
</f:for>
剩余的错字:
page = PAGE
page {
10 = FLUIDTEMPLATE
10{
file = fileadmin/default/templates/index.html
layoutRootPath = fileadmin/default/templates/layouts/
partialRootPath = fileadmin/default/templates/partials/
variables {
content < styles.content.get
parentId = TEXT
parentId.value = 76
}
}
}
答案 0 :(得分:1)
从TYPO3 6.1开始,您可以将数组分配给设置变量:
lib.globalSettings { # Access to constants works, too.
foo = value
}
page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
file = fileadmin/templates/MyTemplate.html
settings < lib.globalSettings
}
http://jweiland.net/typo3/versionen-und-updates/version-61.html#c4300 http://forge.typo3.org/issues/23853
答案 1 :(得分:0)
您应该使用DataProcessing。
page {
10 {
dataProcessing {
999 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
999 {
table = pages
pidInList = 76
where = deleted=0 AND hidden=0
orderBy = sorting
markers.uid.field = uid
as = myPages
}
}
}
}
现在,您可以使用流体中的自定义变量myPages访问所有找到的记录的数组。
要查看孔阵列的内容,请使用
<f:debug title="debugger">{myPages}</f:debug>