【发布时间】:2016-05-15 15:21:34
【问题描述】:
我正在为 TYPO3 版本 7 开发一个模板。在后端我创建了几个后端布局。在我的 setup.ts 模板(扩展)中,我检查后端布局的 ID 以提供正确的流体模板。
为了更轻松地使用模板,我想直接使用扩展提供后端布局。如何直接从扩展添加后端布局?如何获取或设置后端布局的 id?所以我可以在我的 setup.ts 中映射它?
【问题讨论】:
标签: php typo3 typoscript fluid extbase
我正在为 TYPO3 版本 7 开发一个模板。在后端我创建了几个后端布局。在我的 setup.ts 模板(扩展)中,我检查后端布局的 ID 以提供正确的流体模板。
为了更轻松地使用模板,我想直接使用扩展提供后端布局。如何直接从扩展添加后端布局?如何获取或设置后端布局的 id?所以我可以在我的 setup.ts 中映射它?
【问题讨论】:
标签: php typo3 typoscript fluid extbase
我通常将后端布局存储在文件夹中以构建扩展。
<INCLUDE_TYPOSCRIPT: source="Path/To/Backendlayout">)图片:Screenshot of the Structure of the Example
BE-Layout 的基本设置如下所示:
mod.web_layout.BackendLayouts{
exampleKey {
title = Example
config{
# Here you paste the generated BE-Layout
}
}
}
例如(Default.ts):
mod.web_layout.BackendLayouts{
default{
title = Default
config{
backend_layout {
colCount = 2
rowCount = 2
rows {
1 {
columns {
1 {
name = Slider
colspan = 2
colPos = 1
}
}
}
2 {
columns {
1 {
name = Sidebar
colPos = 2
}
2 {
name = Content
colPos = 0
}
}
}
}
}
}
}
}
最后你需要注册你的页面配置:
<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
'test_ext',
'Configuration/TypoScript/Backend/BackendLayouts.ts',
'My special Backend Layouts'
);
?>
这仅适用于 Typo3 v7.4.x 及更高版本
现在您应该能够在编辑页面时看到添加的后端布局。
如果您想为每个 BE-Layout 使用不同的模板,您可以通过 FLUIDTEMPLATE 设置中的“templateName”属性简单地执行此操作,如下所示:Official TypoScript reference, #templateName
【讨论】:
您可以为后端布局提供一个实现DataProviderInterface 的类。然后,您必须在密钥下注册该类
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider'][$_EXTKEY] = 'Fully\\Qualified\\Namespace\\Of\\The\\Class';
从 TYPO3 6.2 开始,这是可能的。
更多参考资料:
【讨论】: