如何创建Facebook风格的用户通知?


14

使用心跳,我已经能够通过“规则”触发器有效地创建用户活动流。但是,我希望能够通知用户新活动,并保持新活动数量的计数,例如在Facebook中,甚至与大多数电子邮件系统中的新电子邮件计数相似。

在Drupal 6中,有一些模块可以很好地实现这一目标,但是在Drupal 7中如何做到这一点?

我对此进行了广泛的研究,但目前无法找到合适的模块:有User NotificationsNotifier模块,这是完美的解决方案,只有D6版本存在。有些通知无法与任何活动日志记录模块集成,因为它缺少适当的规则支持。两个有趣的实现是AppbarTaskbar,它们为下拉菜单提供活动列表,但不计算新活动的数量,并且不再与Rules集成。最后DLike作为动态计数器,它非常有用,即使目前它仅计数标志并提供指向标志用户列表的链接。可能经过一些调整,可以通过“标志规则”集成来使用它来跟踪最近(已标记)的活动并链接到这些最近活动的列表。

是否有可能在Drupal 7中实现类似于此的功能? 脸书


1
这不是答案,我有相同的要求,而所有模块都不适合功能。因此,我通过使用自定义块显示了带有下拉列表和详细信息的通知数量来实现了这一点。对于实时通知,我正在使用nodejs模块在其中添加新的通知.nodejs的事件将使用PHP代码从规则中调用。
j2r


Answers:


4

方法1:菜单徽章

使用菜单标志模块可将此类通知添加到您选择的任何菜单项和/或菜单选项卡。以下是有关它的一些详细信息(来自其项目页面):

提供一种将iOS样式的徽标添加到菜单项的方法。(请参见屏幕截图)

在此处输入图片说明

将徽章添加到菜单

启用后,转到Administration > Structure > Menus,然后单击包含目标项目的菜单旁边的“列表链接”。单击项目旁边的“编辑”,然后选择要与“显示菜单标志”选择框一起显示的标志。

向选项卡添加徽章

要将徽章添加到菜单选项卡,在Administration > Structure > Menus“标签菜单徽章” 下有一个选项卡。搜索要更改的选项卡的菜单路由器路径,然后从相应的选择框中选择一个标记。

徽章类型

该模块包括五个示例徽章,并且可以使用Views轻松创建新徽章。模块还可以通过挂钩实现提供自己的徽章。有关详细信息,请参见README.txt文件。

由于它是如何与“ 视图”模块集成的,因此您基本上可以将针对任何类型的通知的解决方案简化为“只需为其创建适当的视图”之类的方法。

影片教学课程:

方法2:消息堆栈

使用由以下模块组成的消息栈(引自该模块的项目页面):

  • 留言内容

    消息模块是消息堆栈的核心。它允许在许多不同的用例中记录和显示系统事件。随着时间的推移记录的事件有时称为呼叫活动流。可以使用自定义字段和显示(查看)模式针对不同用例创建可导出消息子类型。

  • 消息通知

    该模块提供了一种通过通告程序插件发送消息的方法。Message Notify随附电子邮件和SMS插件,可以根据需要扩展到其他传输机制。

  • 消息订阅

    使用此模块,当发生涉及该内容的事件时,将通知订阅该内容的用户。该模块利用了Flag模块,该模块为用户提供订阅功能。

这些是消息堆栈的基本组件和依赖项:

在此处输入图片说明

已经有很多流行的Drupal发行版已被此消息栈采用,例如Commerce KickstartDrupal CommonsERPALOpen Atrium

如果您想进一步了解自己环境中的消息堆栈,请尝试使用Answers模块(公开说明:我是共同维护者)以及Answers Notification子模块,该模块允许登录用户订阅选定的问题,以便他们在问题收到答案时收到通知(使用消息栈)。

消息堆栈也将使您在Drupal 8方面也处于有利位置(由于模块的面向对象架构)。即使还没有8.x-dev这样的东西,但消息代码存储库已经包含了某些东西(尽管其他两个模块还没有)。我假设wip分支名称的一部分代表“进行中的工作”。


will make you well positioned for Drupal 8 also.你的意思是将来?我没有看到任何消息模块具有Drupal 8版本,甚至没有开发人员。
2015年

1
嘿@NoSssweat ...我稍微扩展了(然后结束)我的答案,以澄清其中的D8部分。
Pierre.Vriens,2015年

非常感谢您的回信@ Pierre.Vriens,我将检查所有相关文档,希望我对消息栈有一个清晰的了解……
Charbel El Azzi 2015年

1
我的意思是,我熟悉如何使通知系统在我的网站上的用户之间运行,现在我了解到有关消息堆栈的更多信息,这让我感到高兴,但是我仍然对如何设计此类下拉通知菜单感到困惑。 。
Charbel萨尔瓦多‧赫兹

1
另一个可以进一步了解我的问题的示例:当您将鼠标悬停在Commerce kickstart 2网站上的购物车上时,请查看下拉菜单(如果您熟悉kickstart分发)...我正在寻找的此类下拉系统我的问题...再次感谢您的宝贵时间和精力@ Pierre.Vriens,上帝保佑您。
Charbel El Azzi 2015年

3

我认为有一对相对较新的模块可以用于此目的:MessageMessage-notify

消息基本上是用于创建“消息”的框架,在您的情况下,该消息将是通知项。一件很酷的事情是,它们实际上都是作为实体创建的,因此很容易在下拉框中显示出来,具有“所有通知”页面,并在其上具有一个自定义字段或标志来指示它们是否已见过(或是新的)。然后,您可以使用“ 消息通知”模块将其连接到电子邮件通知。

请注意,尽管将其集成到您的站点中将比站点构建任务更多的是开发任务。该模块具有良好的API,可以在需要的钩子等中使用该API,以便在需要时创建消息,但是我不确定“规则”集成的进展如何。


3

对于实时集成,您可以使用nodejs模块。

该模块将Node.js与Drupal集成在一起。

它提供了一个API,其他模块可以使用该API向Drupal添加实时功能,特别是允许将更新推送到打开的已连接客户端。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.