【问题标题】:Adding TYPO3 backend layout from an extension从扩展添加 TYPO3 后端布局
【发布时间】:2016-05-15 15:21:34
【问题描述】:

我正在为 TYPO3 版本 7 开发一个模板。在后端我创建了几个后端布局。在我的 setup.ts 模板(扩展)中,我检查后端布局的 ID 以提供正确的流体模板。

为了更轻松地使用模板,我想直接使用扩展提供后端布局。如何直接从扩展添加后端布局?如何获取或设置后端布局的 id?所以我可以在我的 setup.ts 中映射它?

【问题讨论】:

    标签: php typo3 typoscript fluid extbase


    【解决方案1】:

    我通常将后端布局存储在文件夹中以构建扩展。

    • BackendLayouts/ 保存所有后端布局
    • BackendLayouts.ts 这是将布局组合在一起的地方 (<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 及更高版本

    Typo3 后端

    1. 清除缓存并重新加载后端
    2. 转到根页面并进行编辑
    3. 转到“资源”选项卡并添加您的 TypoScript 配置
    4. 保存,重新加载页面

    现在您应该能够在编辑页面时看到添加的后端布局。

    进一步的行动

    如果您想为每个 BE-Layout 使用不同的模板,您可以通过 FLUIDTEMPLATE 设置中的“templateName”属性简单地执行此操作,如下所示:Official TypoScript reference, #templateName

    【讨论】:

      【解决方案2】:

      您可以为后端布局提供一个实现DataProviderInterface 的类。然后,您必须在密钥下注册该类

      $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider'][$_EXTKEY] = 'Fully\\Qualified\\Namespace\\Of\\The\\Class';
      

      从 TYPO3 6.2 开始,这是可能的。

      更多参考资料:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        相关资源
        最近更新 更多