sgalinski / content-replacer
您需要一个支持 typo3、分类和RTE集成的快速术语替换吗?如果是,该扩展非常适合您的项目。性能的提升是通过将替换术语封装来简化解析过程实现的。
Requires
- typo3/cms-core: ^12.4
Replaces
- sgalinski/content_replacer: 8.0.0
README
许可证: GNU GPL,版本2
仓库: https://gitlab.sgalinski.de/typo3/content_replacer
请在此处报告错误: https://gitlab.sgalinski.de/typo3/content_replacer
目录
- EXT: content_replacer
- 介绍3
- 它做什么?
- 优势与劣势
- 通配符术语
- "stdWrap" 转换
- 管理
- 设置
- 替换术语的标记
- RTE 集成
- 配置
- 参考
- 已知问题
介绍
它做什么?
此扩展解析您的内容,并将所有定义的术语替换为灵活的替换文本。也许您已经听说过和阅读过此类扩展,但这个扩展在单个问题上具有多样性:性能!请注意,该扩展不是术语表。如果您需要术语表,则应安装术语表扩展。
优势与劣势
此扩展的主要优势是性能,这比大多数(也许所有)其他替换扩展的替换算法都要高得多。您可以拥有数百个嵌套的替换术语而不会出现任何重大性能下降。另一方面,您需要付出额外的努力。快速的替换算法之所以有效,是因为它高度优化,并伴随着有用的搜索字符串。您需要将任何应替换的术语用特殊 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