如何将字符串值用于内容元素的布局字段?

How to use string values for layout field of content elements?

在使用 CASE 时,(例如布局或框架选项)我想使用文字而不是数字,以便更容易看出每个项目的用途。

根据文档,只要我避免使用具有特殊含义的词,如“if”、“setCurrent”、“key”、“stdWrap”和“default”,这应该可以工作

然而,当我在 TS Config 中使用这些值中的任何一个时:

TCEFORM.tt_content.layout.addItems {
    banner-home = Banner Home
    banner_home = Banner Home
    bannerHome = Banner Home
    bannerhome = Banner Home
}

内容元素将不会保存它,布局下拉列表将恢复为默认值。

由于tt_content的布局字段是

layout int(11) unsigned DEFAULT '0' NOT NULL

您需要先更改字段类型才能存储非数值。

可以通过您自己的扩展中的 ext_tables.sql 文件应用对数据库结构的更改。确保您的扩展程序在现有扩展程序之后加载,现有扩展程序为此字段定义 int(11)。为此,在 ext_emconf.php 中添加一个 depends 条目。

参见: