我创建了一个自定义内容元素而没有扩展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;
没有工作。
有谁知道如何实现我的目标?谢谢! : - )
答案 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