我正在为TYPO3版本7开发一个模板。在后端,我创建了几个后端布局。在setup.ts中的模板(扩展)中,我检查后端布局的ID,以提供正确的fluidtemplate。
为了更容易地使用模板,我想直接通过扩展提供后端布局。如何直接从扩展添加后端布局?如何获取或设置后端布局的id?所以我可以在setup.ts中映射它?
我通常将后端布局存储在文件夹中以构建扩展。
- BackendLayouts/所有后端布局都保存在其中
- BackendLayouts.ts这是布局组合在一起的地方(
<INCLUDE_TYPOSCRIPT: source="Path/To/Backendlayout">
)
图片:示例结构的屏幕截图
布局设置
BE布局的基本设置如下所示:
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和更高版本的
Typo3后端
- 清除缓存并重新加载后端
- 转到根页面并进行编辑
- 转到"资源"选项卡并添加您的TypoScript配置
- 保存,重新加载页面
现在,当您编辑页面时,您应该能够看到添加的后端布局。
进一步行动
如果你想为每个BE布局使用不同的模板,你可以简单地通过FLUIDTEMPLATE设置中的"templateName"部分来完成,如你在这里看到的:官方TypoScript参考,#templateName
您可以提供一个类来实现后端布局的DataProviderInterface。然后,您必须在密钥下注册该类
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider'][$_EXTKEY] = 'Fully''Qualified''Namespace''Of''The''Class';
这是可能的,因为TYPO3 6.2。
更多参考:
- Gerrit的变化
- 锻造中的Diskussion(相当长)
- 示例扩展