错字3:是否可以为扩展程序制作自定义flexform?

时间:2012-02-27 14:14:47

标签: php typo3

我正在进行扩展,用户可以发布帖子。但我希望扩展程序是动态的,以便例如在一个页面上用户可以上传图片,而在另一个页面上用户无法上传图片而是上传一些文字。

我希望能够为插件后端创建一个模板,并为前端创建一个模板,您可以为插件的每次使用修改该模板。 我知道有flexform但是插件的用户必须修改插件......

是否可能,如果可以,我该怎么做?

2 个答案:

答案 0 :(得分:2)

您应该能够通过使用核心方法中的一些现有挂钩来修改字段 pi_flexform 之前的TCA,从而更改为加载的XML文件(包含flexform配置)你的插件。由于这是页面配置,因此每个页面可能不同,但可以通过子页面继承。

虽然 class.t3lib_tceforms.php 包含很多钩子,但我相信如果要动态更改TCA,您将不得不使用另一个:{strong> t3lib / postUserLookUp class.t3lib_userauth.php

  1. 创建一个包含修改TCA方法的类,并在 ext_localconf.php 中注册它: $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['postUserLookUp'][] = 'EXT:YOUR_EXTENSION/class.YOUR_CLASS.php:YOUR_CLASS->YOUR_METHOD';

  2. 在自定义方法中,按照管理员在页面配置中设置的值覆盖$TCA['tt_content']['columns']['pi_flexform']['config']['ds']['YOUR_EXTENSION_pi1,list']的TCA。 t3lib_BEfunc::getModTSconfig()应该允许您加载页面配置,由您决定要查找的密钥。

  3. 注意:这是未经测试的理论,但其原理基于我的一个自定义扩展,我可以动态修改TCA。

答案 1 :(得分:0)

看看EXT:flux。克劳斯已经这样做了。  https://github.com/FluidTYPO3/flux