Typo3 类型3:特殊tt_内容类型。在输出之前修改内容

Typo3 类型3:特殊tt_内容类型。在输出之前修改内容,typo3,Typo3,我是否可以创建一种“特殊”类型的tt_内容,以便在输出之前以某种自定义方式处理文本 在我的例子中,我想在页眉和/或正文中添加#######我的#标记#####,并将其替换为给定页面的正确单词 例如: 访问此页面时:mypage.com/?marker=test tt#U内容中的标题:“欢迎来到###########,尽情享受 在浏览器中输出:“欢迎测试,享受” 我可以通过制作一个自定义插件来实现这一点。问题更多的是,如果我可以为同样的目的重用普通tt_contant是的,您可以通过将自己的T

我是否可以创建一种“特殊”类型的tt_内容,以便在输出之前以某种自定义方式处理文本

在我的例子中,我想在页眉和/或正文中添加#######我的#标记#####,并将其替换为给定页面的正确单词

例如:

  • 访问此页面时:mypage.com/?marker=test
  • tt#U内容中的标题:“欢迎来到###########,尽情享受
  • 在浏览器中输出:“欢迎测试,享受”

我可以通过制作一个自定义插件来实现这一点。问题更多的是,如果我可以为同样的目的重用普通tt_contant

是的,您可以通过将自己的TCA配置添加到typo3conf/extTables.php文件中来轻松扩展
tt_内容

t3lib_div::loadTCA('tt_content');

$TCA['tt_content']['columns']['CType']['config']['items']['user_my_type'] = array(
  0 => 'My custom content',
  1 => 'user_my_type',
  2 => 'i/tt_content.gif',
);
$TCA['tt_content']['ctrl']['typeicon_classes']['user_my_type'] = 'mimetypes-x-content-text';
$TCA['tt_content']['ctrl']['typeicons']['user_my_type'] = 'tt_content.gif';

/* In the following either copy, insert and modify configuration from some other
   content elemenet (you can find it in the ADMIN TOOLS -> Configuration - $TCA)... */
$TCA['tt_content']['types']['user_my_type']['showitem'] = '';

/* ...or assign it some other configuration so that it's exactly the same
   as some other content type and stays the same after some update of TYPO3: */
$TCA['tt_content']['types']['user_my_type']['showitem'] = $TCA['tt_content']['types']['text']['showitem'];
之后,只需在打字脚本模板中设置元素的渲染方式:

tt_content.user_my_type = COA
tt_content.user_my_type {
  10 = TEMPLATE
  10 {
    template = TEXT
    template.field = header

    marks {
      MY_MARKER = TEXT
      MY_MARKER.value = TEST
    }
  }

  20 = TEMPLATE
  20 {
    template = TEXT
    template {
      field = bodytext
      required = 1
      parseFunc = < lib.parseFunc_RTE
    }

    marks < tt_content.user_my_type.10.marks
  }
}
tt\u content.user\u my\u type=COA
tt_content.user_my_类型{
10=模板
10 {
模板=文本
template.field=标题
标记{
MY_MARKER=文本
MY_MARKER.value=测试
}
}
20=模板
20 {
模板=文本
模板{
字段=正文
必需=1
parseFunc=
笔记
  • 打字脚本呈现只是一个简化的示例。您可能希望添加其他标准配置,如其他元素中的配置,例如为前端显示添加编辑图标的配置
  • 我的示例中的标记可以根据需要由URL中GET参数的值填充,但这会带来严重的安全隐患。您肯定需要对该输入进行很好的验证

  • 感谢您提供了这本很棒的教程。第一部分很好。对于渲染,我想使用php,因为我不知道其他方法。但是我只需要在呈现tt#U内容元素之前,在标题和正文中替换一个####标记########################hink您应该能够轻松地使用标准打字稿功能进行替换。我想到了两个替换选项,尽管我从未使用过其中任何一个。第一个选项是尝试使用好的旧对象。您可以尝试使用用户填写的文本(正文或标题字段)填充其
    模板
    属性并将
    标记
    属性设置为替换。请注意,对于bodytext,您必须首先应用所有标准转换。请参阅
    tt_content.text
    了解如何使用。第二个选项是使用更新的(TYPO3>=4.6)属性。您基本上可以复制
    tt_content.text的配置,并将
    stdWrap
    replacement
    添加到标题和正文字段中。非常感谢。我将对此进行讨论,并开始一个关于如何使用php的新问题。我已将第一个选项作为示例添加到我的答案中。