【问题标题】:Typo3: Is it possible to make a custom flexform for an extension?Typo3:是否可以为扩展制作自定义 flexform?
【发布时间】:2012-02-27 14:14:46
【问题描述】:

我正在制作一个用户可以发布帖子的扩展程序。但我希望扩展是动态的,例如在一个页面上,用户可以上传图片,而在另一页面上,用户不能上传图片,只能上传一些文字。

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

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

【问题讨论】:

  • 您的意思是 flexform 配置的可变性将不限于预定义的集合数量,而是无限,或者换句话说,为每个插件使用定制?
  • 用户自己应该创建弹性表单?
  • @cascaval 不,只有网站上的管理员。如果它像创建 Templavoila 灵活的内容和模板映射时一样简单,则可能是这样

标签: php typo3


【解决方案1】:

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

虽然 class.t3lib_tceforms.php 包含很多钩子,但我相信要即时更改 TCA,您将不得不使用不同的钩子:postUserLookUp in t3lib/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() 应该让您加载页面配置,由您决定要查找的密钥。

注意:这是未经检验的理论,但其原理是基于我在其中动态修改 TCA 的自定义扩展之一。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你的链接失效了!
    • @Montea 现已修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多