b13 / newspage
为新闻添加一个新的页面类型 doktype。
Requires
- php: >=8.1
- typo3/cms-core: ^11.5 || ^12.4
This package is auto-updated.
Last update: 2024-09-16 12:39:26 UTC
README
此扩展提供了一个新的 doktype,用于需要灵活内容的新闻,例如 tt_content
元素。
注册的新 doktype 为 doktype=24
。
插件
此扩展注册了 3 个插件
- list
- 此插件显示所有新闻的列表,可选地根据插件中选择的值进行过滤,并可选地显示前端过滤器
- recent
- teaser
- newsJson
- 此插件带有自己的页面类型(
1623330999
)并返回所有新闻作为预处理的封面图像的 JSON。
- 此插件带有自己的页面类型(
过滤器
此插件预装了一些过滤器
- 分类:同时作为后端过滤器和前端过滤器
- 分类:允许选择多个分类的前端过滤器
- 此过滤器通过 或 操作组合所选分类
- 日期:按年和月进行过滤的前端过滤器
自定义过滤器
如果您想创建自己的过滤器,您可以在 ext_localconf.php
中使用以下调用进行注册
<?php B13\Newspage\Service\FilterService::registerFilter( 'Filter Name', // this name will be used to call the filter internally \Vendor\Ext\Filter\ExampleFilter::class, 'LLL:EXT:vendor/ext/Private/Language/newspage.xlf:filter.name', // label to use for the plugin and frontend filter 'EXT:site_tecselect/Configuration/FlexForms/Newspage/Filter/Partner.xml' // optional flexform definition for a backend filter );
您的类应该实现 B13\Newspage\Filter\FilterInterface
并因此实现 getItems()
和 getQueryConstraint()
函数。
getItems()
函数用于获取过滤器的所有可能值(既适用于插件设置,也适用于前端过滤器)。
getQueryContraint()
用于将过滤限制添加到 list
插件中的查询。如果未设置所有必需值或您想要在前端使用 JavaScript 过滤所有内容,则此函数也可以返回 null
。
请查看此扩展提供的两个过滤器示例。
如果您想启用后端插件过滤器,应提供 FlexForm 定义以选择要过滤的数据。然后需要将此文件作为注册过滤器的第四个参数传递。
创建的字段将自动通过 settings.prefilters.name
以您注册的名称传递。
请查看 EXT:newspage/Configuration/FlexForms/Filter/Category.xml
的示例。
资源
在 b13,我们经常使用额外的页面类型(doktype)来处理分类、概览页面和标签。此扩展添加了一些可用于您自定义 doktype 的资源
页面布局编辑模式
在页面模块布局视图中,最重要的属性(标题、分类、媒体、slug、日期)可以在不离开布局视图的情况下进行编辑。此行为可以在扩展设置中禁用('layout_edit_mode' => '0'
)以显示常规页面视图。
要自定义字段,请使用专门的 tx_newspage_layout
面板
$GLOBALS['TCA']['pages']['palettes']['tx_newspage_layout']['showitem'] = 'title,abstract,slug';
待办事项
tx_newspage_domain_model_category
应替换为sys_category
,因为没有必要为在 TYPO3 内已解决的问题创建新的模型- 使最近插件更易于过滤(使用列表中添加的过滤器?)