namelesscoder/inline-page-editing

在不切换视图的情况下,直接在页面模块中编辑内容元素

安装次数: 4,849

依赖项: 0

建议者: 0

安全性: 0

星标: 21

关注者: 5

分支: 1

公开问题: 1

类型:typo3-cms-extension

1.2.0 2017-02-20 13:14 UTC

This package is auto-updated.

Last update: 2024-09-22 17:46:21 UTC


README

将内容元素预览区域转换为可点击编辑集成。点击内容元素会打开一个包含一组可由TCA定义的表单字段的编辑表单。

致谢

本扩展的主要工作由Systime A/S赞助,该公司发布交互式教育材料。他们需要为众多编辑人员改进可用性 - 他们委托我执行此任务,并友好地允许我将此扩展以社区形式贡献回来。谢谢,Systime!

它做什么?

它在TYPO3后端进行内联编辑

它还以页面内下拉菜单的形式显示新内容向导

安装

该扩展仅通过Composer安装

composer require namelesscoder/inline-page-editing

使用Composer要求包后,您必须在扩展管理器中激活扩展密钥,或调用

./typo3/cli_dispatch.phpsh extbase extension:install inline_page_editing

该扩展没有依赖项(除了TYPO3 CMS)并且适用于TYPO3 CMS 7.6 LTS及以上版本。

配置

此扩展的配置仅存在于TCA中,任何修改或添加都必须添加到TCA中。该扩展包含核心默认值在Configuration/TCA/Overrides/tt_content.php中,并且可以通过定义inline_page_editing为依赖扩展的第二扩展(推荐)来更改和扩展这些默认值(以导致正确的加载顺序);或者可以在typo3conf/AdditionalConfiguration.php(您也可以使用lowlevel系统扩展的后端模块来写入)中覆盖这些。

有两种可能的目标定义需要不同的配置。一个是常规内容元素类型,另一个是插件(它们共享一个内容类型并且有一个附加的子类型)。

对于常规内容类型

$GLOBALS['TCA']['tt_content']['types']['textmedia]['inlineEditedFields'] = 'header,bodytext';

注意使用types数组,其中CType是索引。该数组(通常仅包含带有内容类型显示的字段列表的showitem)接收一个附加的inlineEditedFields索引,该索引包含一个纯CSV列表,其中包含必须按顺序显示的TCA字段名称。

任何内容类型都可以进行配置,包括您自己添加的内容类型。然而,默认配置仅适用于核心内容类型 - 要启用自定义内容类型的编辑,您必须为每个添加配置。

以及对于插件(list_type)子类型

$GLOBALS['TCA']['tt_content']['types']['list']['my_plugin']['inlineEditedFields'] = 'header,pi_flexform';

注意必须设置为您的插件所谓的签名的附加索引my_plugin。对于Extbase插件,签名使用extensionkey_pluginname生成。其中extensionkey是目标扩展密钥(不带下划线) - 而pluginname是在插件注册中定义的插件名称(出于遗留原因,在这些名称中您经常看到Pi1等)。

如果您不确定特定插件使用哪个插件签名,您可以在数据库中插入一个实例,注意内容元素的UID,并直接查找list_type值。

已知问题

令人惊讶的是,没有出现重大冲突;富文本编辑功能正常工作,钩子仍然可以触发,访问限制(排除字段)得到尊重,记录锁定/解锁操作正确执行,完全支持TCA覆盖,以及由扩展添加的自定义字段。

然而,由于框架集成,存在一些小问题。

  • 由于TYPO3在编辑特定列的列表时的工作方式,TCA displayCond不被尊重。这种行为与在“列表”模块中点击顶部编辑图标来编辑所有显示记录的特定列时发生的情况相匹配,可以认为是按设计,尽管不是非常直观。
  • 某些内容类型的预览需要重新创建,导致它们与正常内容预览显示略有不同。导致这种情况的技术原因是生成自定义预览时输出的HTML DOM结构,与允许核心生成它们时不同:当钩子不负责渲染时,嵌套方式不同。预计未来会有修复此问题的解决方案。