如何在TYPO3 7.6中启用header_position

时间:2016-09-09 12:38:05

标签: typo3 typoscript typo3-7.6.x

在TYPO3 7.6之前的版本中,您可以在内容元素中选择标题的位置(就我记忆而言,左,中,右)。

用于在tt_content header_position中存储该信息的字段仍然可用。

但是,它不会出现在后端。 我也使用fluid_styled_content来呈现我的内容,而标题部分不包含对该位置的任何引用,只包含对布局字段的引用。

我的问题是:如何重新启用该字段并使用它来定位标题?

2 个答案:

答案 0 :(得分:3)

数据库字段header_position仅包含在TYPO3核心扩展程序css_styled_content中。如果您没有安装该扩展程序,则数据库中的字段可能存在,因为它是在之前的某个时间安装的。

建议不要同时安装css_styled_content和fluid_styled_content,因为某些选项可能会发生冲突。

如果您想使用fluid_styled_content并且header_position字段可用,最好的方法是自己创建一个非常小的TYPO3扩展,其中包含列header_position的必要SQL定义,该列的适当TCA配置和一些TypoScript扩展/覆盖fluid_styled_content的“部分”路径。

答案 1 :(得分:3)

你必须建立你的快速扩展,这可以重新启用该字段。您需要创建文件夹和文件,如下所示: your_ext /配置/ TCA /重写/ tt_content.php 该文件的内容是:

use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
ExtensionManagementUtility::addTCAcolumns('tt_content',[
    'header_position' => [
            'exclude' => 1,
            'label' => 'LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tt_content.header_position',
            'config' => [
                    'type' => 'select',
                    'renderType' => 'selectSingle',
                    'items' => [
                            ['LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tt_content.header_position.left', 'left'],
                            ['LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tt_content.header_position.right', 'right'],
                            ['LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tt_content.header_position.center', 'center']
                    ]
            ]
    ]   
]);

ExtensionManagementUtility::addFieldsToPalette('tt_content', 'header', '--linebreak--,header_position', 'after:header_layout');

ExtensionManagementUtility::addFieldsToPalette('tt_content', 'headers', '--linebreak--,header_position', 'after:header_layout');

现在该字段应该回到后端,因为您已经通过 addTCAColumns 将其添加到TCA到 tt_content 配置,并通过 addFieldsToPalette添加它 tt_content 标题标题调色板, textmedia 和< strong>标题即可。 您可以使用TYPO3后端中的配置模块找到更多相关信息。当您以管理员身份登录时,您可以看到它。另外一个查看和了解TCA的好地方是TCA参考:https://docs.typo3.org/typo3cms/TCAReference/

现在您需要更改 fluid_styled_content 模板。您需要为 fluid_styled_content 的标题部分创建模板覆盖。

首先创建一个文件夹: your_ext / Configuration / TypoScript 并添加 setup.txt constants.txt 文件。 在 setup.txt 中添加以下行:

lib.fluidContent{
    templateRootPaths{
         10 = {$plugin.your_ext.view.fluid_styled_content.templateRootPath}
    }
    partialRootPaths{
         10 = {$plugin.your_ext.view.fluid_styled_content.partialRootPath}
    }
    layoutRootPaths{
        10 = {$plugin.your_ext.view.fluid_styled_content.layoutRootPath}
    }
}

constants.txt 中执行:

plugin.your_ext{
    view{
        fluid_styled_content{
            templateRootPath = EXT:your_ext/Resources/Private/FluidStyledContent/Templates/
            partialRootPath = EXT:your_ext/Resources/Private/FluidStyledContent/Partials/
            layoutRootPath = EXT:your_ext/Resources/Private/FluidStyledContent/Layouts/
        }
    }
}

要启用TypoScript,您需要在your_ext文件夹中添加ext_tables.php并为其提供以下单行:

TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY,'Configuration/TypoScript', 'Your Ext Template');

您需要通过模板模块将静态TypoScript包含到您的页面中,以便更改为 fluid_styled_content

现在您可以从

复制所需的模板

typo3 / sysext / fluid_styled_content / Resources / Private / Templates

TYPO3 / sysext / fluid_styled_content /资源/专用/局部模板

typo3 / sysext / fluid_styled_content / Resources / Private / Layouts

进入您需要创建的扩展程序文件夹:

your_ext /资源/专用/ FluidStyledContent /模板

your_ext /资源/专用/ FluidStyledContent /局部模板

your_ext /资源/专用/ FluidStyledContent /布局

现在您可以更改模板。对于 header_position 字段,您可能只需要复制

TYPO3 / sysext / fluid_styled_content /资源/专用/局部模板/ Heaeder.html

your_ext /资源/专用/ FluidStyledContent /局部模板/ header.html中

并将您选择的值作为 {data.header_position} 添加到div类并设置样式。

请记住,您不需要复制所有模板,因为使用TypoScript,您只需为流体定义另一个位置,以搜索模板并获取模板(如果可用)。如果没有,流体将向后走回链并获取在位置9和更低位置定义的模板。你可以通过模块模块查看 TypoScript对象浏览器,并查看TypoScript变量 lib.FluidContent ,看看你的TypoScript包含是否有效。

希望这有点帮助;)