itplusx / flexible-news
将页面作为新闻文章使用的灵活新闻扩展
Requires
- itplusx/flexible-pages: ^2.2
- typo3/cms-core: ^10.0 || ^11.0
Replaces
- itplusx/flexible-news: v2.0.0
- typo3-ter/flexible-news: v2.0.0
README
TYPO3 扩展 flexible_news
在 TYPO3 中创建基于普通页面的新闻文章,并在前端以列表形式显示。
使用页面而不是记录具有以下优点
- 无需额外 TCA
由于此扩展使用 TYPO3 的默认页面及其 TCA 字段,因此不需要额外的 TCA 字段声明。(除非您需要额外的字段) - 无需额外数据库表
此扩展仅使用pages
表,因此不需要额外的表。这可以防止数据库因额外的表和字段而膨胀。 - 无需
routeEnhancers
烦恼
新闻文章的 URL 将表示页面树,并且将自动工作。无需添加routeEnhancers
。每篇文章的 slug 可以通过slug
字段进行更改,且不绑定到文章标题。 - 使用可用的内容元素构建灵活的文章,而不受预定义标记的限制
当使用记录作为新闻文章时,每篇文章的标记在模板中预先定义。
而使用页面作为新闻,每篇文章都可以使用内容元素以不同的方式构建,而不受固定模板的限制。
此扩展利用 EXT:flexible_pages 创建自定义 "新闻" 页面类型和列表内容元素的模板。
安装
扩展安装
使用 composer
安装(推荐)
composer require itplusx/flexible_news
使用 TYPO3 扩展管理器 安装
在 TYPO3 扩展管理器 中使用扩展密钥 flexible_news
。
注意:此扩展需要安装 EXT:flexible_pages。
包含 TypoScript
基本 TypoScript
安装成功后,只需包含新闻列表 CE 的 TypoScript 即可。
CSS TypoScript(可选)
如果您想使用此扩展提供的新闻列表 CE 的 CSS,您还必须包含 Flexible News CSS(可选) TypoScript。
用法
安装正确后,您应该在 TYPO3 后端的页面树上方看到一个新图标。从那里,您只需将其拖到页面树中即可,就像其他任何页面一样。
注意:如果您一开始看不到该图标,请尝试清除缓存并重新加载整个页面。
列表视图
您可以将 “所选 doktypes 的页面” 内容元素添加到每个页面,以便在前端通过 doktype 显示文章列表。内容元素已自带“新闻”模板以相应地渲染列表。
覆盖列表模板
您可以通过扩展 FLUIDTEMPLATE 的 rootPaths 来覆盖列表 CE 模板。您可以在自己的扩展中通过扩展 lib.contentElement
TypoScript 来实现(如此处所述)或使用 flexible_news 提供的常量。
plugin.tx_flexiblenews.templateRootPath
plugin.tx_flexiblenews.partialRootPath
plugin.tx_flexiblenews.layoutRootPath
扩展列表模板
当需要更多新闻列表模板时(例如无图片的新闻列表),可以扩展模板选择。
请参阅 EXT:flexible_pages 的文档或查看在 flexible_news 中如何实现“新闻”模板。
详细视图
详细视图只是页面的视图(使用默认页面模板)。然而,有时可能非常有用为新闻文章创建一个特殊的页面模板(例如,在每篇新闻文章上显示特定内容)。
添加新闻文章页面模板
假设您想要在每篇新闻文章中添加社交媒体分享按钮,您需要执行以下操作。
- 为特殊 dokType 添加 TypoScript 以覆盖 FLUIDTEMPLATE
[page["doktype"] == 87]
page.10 {
templateName >
templateName = News
variables {
socialMediaShare =< lib.socialMediaShare
}
}
[GLOBAL]
- 将之前定义的变量添加到模板文件中,分享按钮应出现的地方
<f:format.html parseFuncTSPath="">{socialMediaShare}</f:format.html>
贡献
欢迎对这个项目提供任何帮助!无论是代码贡献还是改进的想法。但我们会要求您遵守一些规则
- 问题
添加问题请始终尽可能详细地描述错误/功能/任务。仅提供标题是不够的。请使用问题模板。 - 提交
我们的团队遵循 Conventional Commits。我们希望您在想要贡献时遵守这些规则。 - 拉取请求
在提交 PR 之前,请先创建一个问题并链接到拉取请求或至少添加一个包含此 PR 所做详细信息的 PR 描述。否则,我们无法决定此 PR 是否值得进入主分支。