如何为TYPO3中的每个网站添加自定义CKEditor YAML文件?

如何为TYPO3中的每个网站添加自定义CKEditor YAML文件?,ckeditor,typo3,typo3-9.x,tsconfig,typo3-extensions,Ckeditor,Typo3,Typo3 9.x,Tsconfig,Typo3 Extensions,所有文档都说,要使用不同的预设,您需要自定义扩展名。 如果我可以在每个根页面上的TS配置中直接设置YAML路径,那么会更加方便用户 有没有办法在TS配置页面而不是扩展页面中设置自定义YAML的路径 我想要的是: TS每个页面的配置更改: RTE.default.presetpath = 'fileadmin/templates/my_site/rte.yaml' $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = RTE.def

所有文档都说,要使用不同的预设,您需要自定义扩展名。 如果我可以在每个根页面上的TS配置中直接设置YAML路径,那么会更加方便用户

有没有办法在TS配置页面而不是扩展页面中设置自定义YAML的路径

我想要的是:

TS每个页面的配置更改:

RTE.default.presetpath = 'fileadmin/templates/my_site/rte.yaml'
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = RTE.default.presetpath
扩展保持相同的ext\u localconf.php:

RTE.default.presetpath = 'fileadmin/templates/my_site/rte.yaml'
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = RTE.default.presetpath

很简单,请按照以下步骤配置CKEditor

  • 从以下配置中设置默认预设:

    RTE.default.preset = default
    RTE.default.preset = full
    RTE.default.preset = minimal
    
  • 为默认元素设置CKEditor

    RTE.tt_content.types.textmedia.bodytext.preset = default
    
  • 可以使用设置自定义扩展名

    RTE.config.tx_news_domain_model_news.bodytext.preset = default
    
  • 覆盖ext_localconf.php中的配置

     if($_SERVER["REMOTE_ADDR"]=='111.111.111.111'){
         $GLOBALS['TYPO3_CONF_VARS']
                 ['RTE']
                 ['Presets']
                 ['Custom_presets'] = 'EXT:your_extension/Configuration/PageTSconfig/TceForm/Default.yaml';
     }
    
    就这样!您可以在这里的酷博客中找到更多信息:


希望这对你有帮助

建议将配置放在扩展中

但是,TYPO3非常灵活。您可以通过各种方式对其进行配置。如果您使用扩展名(例如a),您可以将所有配置放在一个位置,将其置于版本控制之下,轻松部署它等。这与系统中的各种配置文件(例如fileadmin)形成对比,这不是很好的做法

如果您有多个站点在一次TYPO3安装中需要不同的配置,您可以执行以下操作:

  • 对于每个站点。您可以在扩展中执行此操作,如中所述,或者将其放入typo3conf/AdditionalConfiguration.php中:

    $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['site1'] = 'typo3conf/rte_site1.yaml';
    $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['site2'] = 'typo3conf/rte_site2.yaml';
    
  • 如您所见,路径不必位于扩展中

  • 在站点的TSconfig页面中:

  • 创建文件rte_site1.yaml和rte_site2.yaml。您可以使用现有配置文件之一作为基础:


  • 另请参见。

    我想为同一安装中的每个网站设置不同的yaml,而不必不断更新自定义扩展以添加预设。没有办法在扩展之外设置yaml路径吗?我不确定,但是如果在ext_localconf.php中添加一个IP或域条件呢?检查更新的答案。我通常不制作网站包,但我可能必须按照你的建议开始这样做。