sgalinski/content-replacer

您需要一个支持 typo3、分类和RTE集成的快速术语替换吗?如果是,该扩展非常适合您的项目。性能的提升是通过将替换术语封装来简化解析过程实现的。

安装次数: 3,933

依赖关系: 0

建议者: 0

安全: 0

类型:typo3-cms-extension

8.0.0 2024-01-19 17:32 UTC

README

许可证: GNU GPL,版本2

仓库: https://gitlab.sgalinski.de/typo3/content_replacer

请在此处报告错误: https://gitlab.sgalinski.de/typo3/content_replacer

目录

  1. EXT: content_replacer
    1. 介绍3
    2. 它做什么?
    3. 优势与劣势
    4. 通配符术语
    5. "stdWrap" 转换
  2. 管理
    1. 设置
    2. 替换术语的标记
    3. RTE 集成
  3. 配置
    1. 参考
  4. 已知问题

介绍

它做什么?

此扩展解析您的内容,并将所有定义的术语替换为灵活的替换文本。也许您已经听说过和阅读过此类扩展,但这个扩展在单个问题上具有多样性:性能!请注意,该扩展不是术语表。如果您需要术语表,则应安装术语表扩展。

优势与劣势

此扩展的主要优势是性能,这比大多数(也许所有)其他替换扩展的替换算法都要高得多。您可以拥有数百个嵌套的替换术语而不会出现任何重大性能下降。另一方面,您需要付出额外的努力。快速的替换算法之所以有效,是因为它高度优化,并伴随着有用的搜索字符串。您需要将任何应替换的术语用特殊 span 标签或自定义字符串封装。

通配符术语

替换术语的封装还有一个很好的优点,因为您可以使用所谓的通配符替换术语来替换几乎所有值。如果您想根据定义在替换封装中的术语从数据库中获取某些信息,这可能很有用。您可以针对每个类别定义一个通配符术语,称为“*”。

"stdWrap" 转换

您可以为每个术语添加 stdWrap 配置。如果您不添加替换文本,则源代码中的替换值用作 stdWrap 转换的内容。

示例

第一个示例“readURL”为替换值应用用户函数。第二个示例“listOfPrices”用链接包围替换项。您可以使用强大的 stdWrap 属性的任何可能性。

plugin.tx_content_replacer {
    readURL {
       preUserFunc = user_typoscriptFunctions->myUserFunction
    }

    listOfPrices {
        typolink.parameter = 1
    }
}

管理

设置

安装扩展 创建一个系统文件夹以组织您的术语和类别。请注意,这只是建议,因为您几乎可以将其添加到任何地方。如果配置 `plugin.tx_content_replacer.storagePid`,您需要考虑术语的正确位置。使用此配置,您可以在不同的树分支中为同一术语具有不同的替换项。在文件夹内部创建一个新的类别(使用“web->list”)

现在在相同目录下创建一些术语

之后,您需要将此扩展的静态模板添加到您的 typoscript 根模板中。这是预先定义一些配置值所需的。

替换术语的标记

在成功安装和初始化后,您可以使用功能。只需进入您的内容元素,并用span标签或您定义的自定义非HTML变体包裹您的术语。该标签必须包含一个以“prefix”配置选项为前缀,并跟随类别名称的类。

类别“text”的示例:嗨,我的名字是 `nameTerm`

如果您在页面树中的某个位置创建了替换术语“nameTerm”,此示例将立即生效。请注意,术语必须位于由类名指定的类别中。在我们的示例中,这是类别“text”。

如果我们以这种方式标记我们的出现,我们将获得几个优点。可以为类别设置特殊类,这些类可以通过CSS进行样式化(例如,在前端标记未替换的出现或在RTE中标记它们,使用内容CSS样式表)!解析最终内容的简单且极其快速的方法!永远不会在导航等地方发生意外的替换!

RTE 集成

上面的图片展示了您如何轻松地使用ckeditor标记术语。折叠格式框中的前两个选项是将具有“replace-text”或“replace-feature”类的span标签添加到RTE中选定的值周围。当前标记的条目用红色着色,并用虚线边框下划线。这是因为您可以加载RTE的特殊CSS文件。下面是所需的RTE配置。

editor:
  config:
    contentsCss:
      - "EXT:my_ext/Resources/Public/StyleSheets/rte.css"
    stylesSet:
      - {name: "Category1", element: "span", attributes: { class: "replace-text" }}
      - {name: "Category2", element: "span", attributes: { class: "replace-feature" }}

配置

您可以在静态模板中找到配置选项。您可以在Web->模板中编辑常量(PLUGIN.CONTENT_REPLACER)。

参考

以下是对全局选项和typoscript常量都有效的参考。

属性数据类型描述默认
disabled布尔值使用此选项在某些特殊页面或完整的页面分支上禁用替换机制。false
amountOfPasses整数确定遍历内容的次数,以防止可能的无穷递归。如果您在替换文本“bar”中定义了一个替换术语“foo”,该替换文本包含替换术语“foo”本身,则可能会发生这种情况。

请注意,此机制不会影响性能,因为替换仅在找不到更多术语时继续。
5
prefix字符串您可以设置此类前缀为您喜欢的任何值。它用作span标签的前缀,以防止与现有其他类发生冲突。replace-
specialParserCharacter字符单个字符,用作您自定义的非HTML包装

示例
定义的字符:~
可能的包装:~replace-myCategory~myTerm~~

## Known Problems

Currently there are no known problems!
Bugtracker: https://gitlab.sgalinski.de/typo3/content_replacer/issues