mediadreams/md_unreadnews

这个TYPO3扩展为前端用户向ext:news的记录添加未读信息。

安装: 2 003

依赖项: 0

建议者: 0

安全: 0

星级: 1

关注者: 2

分支: 1

开放问题: 1

类型:typo3-cms-extension

5.0.1 2024-07-15 09:30 UTC

This package is auto-updated.

Last update: 2024-09-15 09:49:15 UTC


README

此扩展为前端用户向ext:news的记录添加未读信息。在新闻记录列表中,前端用户可以查看自己是否已阅读过文章。此外,还可以显示类别中的未读文章数量。

扩展附带typoscript库,可以包含在任何需要的地方。

要求

  • TYPO3 >= 11.5
  • ext:news >= 9.0

屏幕截图

Screenshot list

安装

  • 通过扩展管理器安装扩展或使用composer
  • 包含扩展的静态TypoScript
  • 通过设置自己的常量来配置扩展

可用的常量

  • storagePid:这是您想要存储未读记录的页面uid。
  • categories:用逗号分隔的类别uid字符串。所有与配置的类别相关联的新闻记录将被标记为未读。如果不提供类别,则所有新闻记录都将被考虑。
  • feGroup:feUserGroup的uid。如果提供,则仅为此组中的用户设置未读信息。如果不设置,则考虑所有用户。

使用方法

一旦您安装并激活了扩展,它就会在保存新新闻记录的过程中挂钩。每次后端用户添加新记录时,都会为此记录和配置的feUsers添加未读信息。

列表插件

此扩展附带一个插件,该插件显示用户的全部未读新闻列表。在插件选项中,您可以设置到详细页面的链接。如果您不提供详细页面,则新闻记录将链接到第一个附加类别的页面。

显示通用未读计数器

此计数器将显示用户的未读项数量。要显示此信息,请在您的fluid模板中使用以下代码

<f:cObject typoscriptObjectPath="lib.mdAllUnreadCount" />

在列表视图中显示未读信息

在新闻扩展的fluid模板中使用以下代码来显示当前登录的feUser是否已阅读新闻。

<f:cObject typoscriptObjectPath="lib.mdIsUnread" data="{newsUid:'{newsItem.uid}'}" />

示例:将ext:news/Ressources/Private/Partials/List/Item.html复制到您的扩展中,并修改以下内容

<!-- header -->
<div class="header">
    <h3>
        <n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}">
            <span itemprop="headline">{newsItem.title}</span>
            <f:cObject typoscriptObjectPath="lib.mdIsUnread" data="{newsUid:'{newsItem.uid}'}" />
        </n:link>
    </h3>
</div>

显示类别未读信息

使用以下代码片段可以显示按类别划分的未读新闻数量

<f:cObject typoscriptObjectPath="lib.mdCategoryCount" data="{categoryUid:'{category.item.uid}'}" />

示例:将ext:news/Ressources/Private/Templates/Category/List.html复制到您的扩展中,并修改以下内容

<f:link.page title="{category.item.title}" pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">
    {category.item.title}
    <f:cObject typoscriptObjectPath="lib.mdCategoryCount" data="{categoryUid:'{category.item.uid}'}" />
</f:link.page>

删除未读信息

用户阅读新闻文章后,立即删除未读信息。因此,在新闻详细页面上添加以下代码

<f:cObject typoscriptObjectPath="lib.mdRemoveUnread" data="{newsUid:'{newsItem.uid}'}" />

示例:将ext:news/Ressources/Private/Templates/News/Detail.html复制到您的扩展中,并在模板末尾添加以下代码

<f:if condition="{newsItem}">
    <f:then>
        <f:cObject typoscriptObjectPath="lib.mdRemoveUnread" data="{newsUid:'{newsItem.uid}'}" />
    </f:then>
</f:if>

清理任务

此扩展附带一个调度任务,允许您删除超过一定天数的未读信息。通过以下步骤激活此任务

  • 切换到模块调度
  • 添加新任务并在选择字段中选择的选项执行控制台命令
  • 填写所有字段,如需要,并在字段Schedulable Command.中使用mdUnreadnews:cleanup: Remove old unread information
  • 保存任务后,您将能够填写字段 参数:天数。从那时起至删除所有未读信息的过去天数。(整数)。输入您希望保留未读信息的天数。默认为30天。

错误和已知问题

如果您发现错误,请在Github上添加一个问题。

谢谢

非常感谢所有让这个杰出的TYPO3项目成为可能的人们!

致谢

扩展图标是从ext:news复制的,然后进行了修改。