oveleon/contao-glossary-bundle

Contao开源CMS的词汇表扩展。词汇表按照新闻和事件类似的方式组织在档案中,可以通过列表和阅读模块显示。

资助包维护!
oveleon

安装数: 3,448

依赖关系: 0

建议者: 0

安全: 0

星标: 4

关注者: 4

分支: 2

公开问题: 1

类型:contao-bundle

2.3.1 2024-09-19 15:39 UTC

README

A styles glossary with terms

Contao开源CMS的词汇表扩展。词汇表按照新闻和事件类似的方式组织在档案中,可以通过列表和阅读模块显示。

Oveleon

支持

如果您喜欢这个扩展,我们希望您能支持我们,保持开源精神的活力。

如果您认为这个插件很有用,请考虑赞助我们,以帮助我们贡献时间和进一步开发本项目及其他开源项目。

您的贡献,无论是通过编码测试提供反馈,甚至捐赠,都有助于确保我们能够继续提供免费开源软件。加入我们,共同做出改变,感谢您的支持! - Oveleon

支持与Contao 4.13和Contao ^5.1(PHP ^8.1)一起使用

描述

使用Contao词汇表包,您可以在后端管理词汇表条目,并使用前端模块显示它们。每个词汇表条目都可以单独修改和结构化内容元素。您网站上出现的术语可以自动替换为链接(或另一种标记)和悬停卡片预览。

特性

  • 与Contao 4.9及更高版本兼容(支持PHP 8)
  • 可以创建多个词汇表
  • 词汇表和术语的前端和后端权限
  • 模块访问保护
  • 分页词汇表列表
  • 快速链接
  • 导航/分页分组用于元音(UTF8到ASCII转换)
  • 自动转换词汇表术语的关键字(标记或链接)
  • 关键字转换的敏感性
  • 词汇表术语的悬停卡片预览
  • 悬停卡片加载动画
  • 插入标签
  • 链接选择器
  • 详情页面的元标题和描述
  • 网站地图集成
  • 缓存失效
  • 悬停卡片内容的缓存(会话存储)
  • abbr描述的缓存(会话存储)
    • 可以使用'abbr'标记功能启用

安装

升级到版本2

从版本1升级到版本2后,请确保编辑您的模块(词汇表和词汇表阅读器)并设置新的模板。

通过composer

composer require oveleon/contao-glossary-bundle

通过contao-manager

Search for contao glossary bundle and add it to your extensions.

安装contao-glossary-bundle后,您需要运行一个contao install

设置

创建词汇表和术语

Contao词汇表包使用与Contao-News-Bundle类似的档案(词汇表)和词汇表条目(术语)。

  1. 为词汇表条目设置重定向页面

  2. 词汇表中创建一个新的词汇表档案

  3. 编辑 ✎ 新的词汇表以添加新的词汇表条目(术语)

  4. 创建一个新的词汇表条目

    • 标题 = 词汇表术语
    • (搜索术语 = 自动转换的关键字)
    • 术语条目预告 = 术语概述等预告文本。
    • 发布条目

  5. (此外,您还可以为详情页面创建内容元素 - 类似于contao新闻)

将术语表发布到您的网站

要显示您的术语表和术语,您必须创建两个前端模块

词汇表概述

  1. 创建前端模块 术语

  2. 选择您的术语表/术语表并配置模块

  3. 将模块嵌入到页面中

词汇表阅读器

  1. 创建前端模块 术语阅读器

  2. 选择您的术语表/术语表

  3. 将模块嵌入到您的重定向页面(您的存档)中

自动关键词转换和悬停卡片

  1. 转到您的 网站根目录,在术语设置下“激活术语”

  2. 选择您的术语表/术语表

  3. (如有需要,启用悬停卡片)

只有术语项内的 搜索词 被考虑。不是关键词本身

您可以为术语添加多个关键词。术语JavaScript执行精确搜索;因此,允许使用空格。

提示

您可以在常规页面上的“专家设置”中禁用自动关键词转换和悬停卡片。此选项建议用于术语页面。

前端模块

词汇表

术语显示所选术语表中的已发布术语项。

设置

术语阅读器

术语显示所选术语表中的已发布术语项。

设置

页面和词汇表设置

根页面设置

contao术语包扩展了

根页面

并添加了额外的 术语设置

这些设置将适用于此根页面的所有子页面。

术语项内的所有关键词默认转换为链接(您可以在术语配置模板中更改标记,请参阅 JavaScript设置

悬停卡片显示术语项的预览

常规页面设置

常规页面的 专家设置 扩展了以下选项

术语存档设置

术语 下的术语包含悬停卡片额外的选项

术语项内的预告图显示在悬停卡片中

术语项设置

术语项是您术语表中的术语。

在Contao中创建链接

自动转换在通过JavaScript进入页面时创建链接(或另一种标记)。出于SEO目的,您可以使用以下选项在Contao中创建真实链接

使用插入标签

有关 插入标签 的更多信息,请访问

官方

Contao文档。

插入标签

您可以使用包含术语ID或其别名(别名是生成且唯一的)的插入标签。

示例

    {{glossaryitem::430}}
    {{glossaryitem::website}}

TinyMCE / 链接选择器

在Contao CMS后端创建TinyMCE链接时,您可以在链接选择器中选择新的来源“术语”。

已知限制

由于安全原因,目前 无法 向通过TinyMCE链接选择器创建的 链接 添加 悬停卡片事件

要将悬停卡片事件应用于链接,请编辑您的tinymce中的HTML,并添加

data-glossary-id: "your glossary item id"

到您的链接。

示例

<a href="{{glossaryitem_url::430}}" target="_blank" rel="noopener" data-glossary-id="430">域名</a>

词汇表JavaScript

通过将解析选项输入到术语初始化中,可以更改术语关键词的标记和悬停卡片的行为。术语对象可以在config_glossary_default模板中找到。开发者可以创建一个以以下前缀开头的新模板:‘config_glossary_’,并在根页面设置中选择它。

设置

启用‘showLoadingAnimation’在内容加载前显示空悬停卡片

浏览器支持

自动关键词转换的术语-JavaScript已在以下浏览器中进行了测试

https://caniuse.cn/?search=String.matchAll

Mac(Big Sur,Catalina)

  • Safari(14.1,13.1)
  • Google Chrome(94)
  • Mozilla Firefox(93)
  • Opera(80)
  • Microsoft Edge(94)

iPhone 和 iPad

  • 移动 Safari (iOS 14 和 iOS 14)
  • Chrome 移动 (iOS 14 和 iOS 14)

Microsoft Windows

  • Google Chrome(94)
  • Mozilla Firefox(93)
  • Opera(80)
  • Microsoft Edge(94)

它将与支持 String.matchAll 的所有浏览器兼容

常见问题

术语表标记在我的网站上不起作用

  • 请确保检查根页面的设置是否已启用术语表
  • 请确保此子页面没有禁用术语表
  • 在打开开发者工具时,检查是否有来自其他源的 JavaScript 错误
  • 请确保检查您的 <body> 内部是否存在现有的 <div id="wrapper"> 容器

    如果您使用的是自定义主题,您必须在模板 config_glossary_default.html 中调整术语表的 JavaScript。在这里,您可以为主页面的主要内容添加一个条目选择器,如下所示(见 JavaScript 选项

    const GN = new Glossary({
      'entrySelector': "#YOUR-CONTENT-SELECTOR",
    

我页面上的并非所有链接都被转换

  • 这仅在 Safari 16.3 及以下版本中发生,且无法解决这个问题,简单的解决方案是购买新设备
  • 由于 MacOS 和 Safari 不允许 js-regex-lookbehind,标记的 JavaScript 包含了一个后备方案。
  • 包含空格的关键词(例如 "Foo Bar")无法找到,完整的关键词("Foobar")仍将被考虑。

我想对术语表标记进行样式设置

  • 如果您需要类,您必须调整 config_glossary_default.html 中的 JavaScript 配置
  • 请检查 JavaScript 设置 以获取更多选项。
    const GN = new Glossary({
      'markupAttr': {
        'class': 'yourclass1 yourclass2'
      },
    

支持

重要

请随时报告错误和功能请求,不要觉得有权利快速修复错误或免费实现您的功能请求。没有免费的午餐 TANSTAAFL

如果您希望尽快实现功能或修复错误,您可以通过通过 网站 联系我们来进行委托。

许可

此项目根据 AGPL-3.0 许可证授权——有关详细信息,请参阅 LICENSE