仅为自定义内容元素覆盖tt_content列

时间:2015-06-24 11:01:59

标签: configuration typo3 typo3-7.x

我创建了一个自定义内容元素而没有扩展tt_content列,因为数据库中的现有字段足以满足我的需要。

我正在使用" header"," header_link"和"图像"但我需要"图像"列在我的自定义内容元素中使用时具有不同的TCA配置。

我可以全局更改配置:

$GLOBALS['TCA']['tt_content']['columns']['image']['config']['maxitems'] = 1;

但那不是我想要的。

这样的东西
$GLOBALS['TCA']['tt_content']['my_custom_element']['columns']['image']['config']['maxitems'] = 1;

$GLOBALS['TCA']['tt_content']['columns']['my_custom_element']['image']['config']['maxitems'] = 1;

没有工作。

有谁知道如何实现我的目标?谢谢! : - )

4 个答案:

答案 0 :(得分:3)

尚未记录,但以下代码适用于TYPO3 7.3

$GLOBALS['TCA']['tt_content']['types']['my_custom_element']['columnsOverrides'] = array(
  'image' => array(
    'config' => array(
      'maxitems' => 1
    )
  )
);

答案 1 :(得分:1)

@dmnkhhn是对的。如果您的TYPO3 CMS版本更新或等于TYPO3 CMS 7.3

,则以下是您的解决方案
#include <stdint.h>

typedef struct {
  uint32_t m1;
  uint16_t m2;
} TStruct;

TStruct s = {
  1,
  2
};
  

请注意,您必须将新的插件类型配置为0x01 0x00 0x00 0x00 0x02 0x00 才能使其正常工作。

实施例

查看配置后端模块TCA部分并浏览到(折叠)tt_content / types / html / columnsOverrides,看看TYPO3核心如何处理HTML内容的bodytext字段覆盖元件。

配置后端模块是学习和理解TCA和其他全局变量的好工具,它通过了解其他人已经完成了你想要的事情。

答案 2 :(得分:0)

列的TCA配置是某种 final ,这意味着它们被缓存一次,并且根据任何条件,不可能对一个字段使用不同的配置。

典型的解决方案是添加自定义图像字段即。 my_image tt_content仅替换您的CE类型中的原始image字段

喜欢(样本):

$GLOBALS['TCA']['tt_content']['types']['Tx_Your_Type']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['image']['showitem'];
$GLOBALS['TCA']['tt_content']['types']['Tx_Your_Type']['showitem'] = str_replace(',image ,', ',my_image ,', $GLOBALS['TCA']['tt_content']['types']['Tx_Your_Type']['showitem']);

答案 3 :(得分:0)

使用另一列的配置覆盖字段,如下所示:

Imports System.Management 

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim proc_query As String = "SELECT * FROM Win32_PhysicalMemory"
        Dim proc_searcher As New ManagementObjectSearcher(proc_query)
        For Each info As ManagementObject In proc_searcher.Get()
            textbox1.Text = "Speed of Your RAM is  " & info.Properties("Speed").Value.ToString()
        Next info


    End Sub
End Class