b13/newspage

为新闻添加一个新的页面类型 doktype。

安装次数: 11,582

依赖: 0

建议者: 0

安全: 0

星标: 5

关注者: 9

分支: 1

开放性问题: 0

类型:typo3-cms-extension

2.1.4 2024-07-16 08:20 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 内已解决的问题创建新的模型
  • 使最近插件更易于过滤(使用列表中添加的过滤器?)