在TYPO3 7.6之前的版本中,您可以在内容元素中选择标题的位置(就我记忆而言,左,中,右)。
用于在tt_content header_position
中存储该信息的字段仍然可用。
但是,它不会出现在后端。
我也使用fluid_styled_content
来呈现我的内容,而标题部分不包含对该位置的任何引用,只包含对布局字段的引用。
我的问题是:如何重新启用该字段并使用它来定位标题?
答案 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包含是否有效。
希望这有点帮助;)