通过 Contact 联络表给用户发送消息后,如何为收件人显示留言列表?

启用内核联络表(contact模块)后,访客可以通过用户(如用户ID:2)主页的联络表给用户发送消息。我安装了 contact_storage 模块后管理员可以看到储存的消息了。

用户ID:2 的用户登录后如何让他看到访客给他的留言,并提示有新的消息呢?

Drupal contact 联络表
1
0

2 个回答

Contact 模块为 Drupal 站点提供联络表,在不暴露收件人邮箱地址的情况下提供邮件消息功能。联络表可以直接触发邮件给收件人,但默认并不保存发件内容。

楼主使用的 Contact Storage 功能将联络表消息保存在系统中,并通过一个管理视图(/admin/structure/contact/messages)显示所有联络表消息记录。但未提供面向用户的类似“收件箱”和“发件箱”的列表视图。

让用户看到留言列表

因为 Contact Storage 模块已经与 Views 整合,所以站长可以新建相关列表,实现类似“收件箱”和“发件箱”的列表页面。

“收件箱”列表页制作流程参考

  1. 前往视图管理页(/admin/structure/views),点击“新建视图(+ Add view)”(/admin/structure/views/add);
  2. 填写视图基本信息后进入下一步“保存并编辑(Save and edit)”
    1. 在“视图设置(View settings)”部分,选择“联络表消息(Contact message)
    2. 在“页面设置(Page settings)”部分,设置收件箱页面标题及路径(如 /my/inbox/user/%user/inbox 等);
  3. 将“格式(Format)”区域部分的“联络表消息”改为“字段”,并在“字段(Fields)”区域根据需要添加字段(如标题、发件人、发件时间、内容等);
  4. 在“上下文过滤器(Contextual filters)”区域添加“收件人ID(Recipient ID)”并进行配置
  5. 进行其它需要的配置后进行“预览”,完成后“保存”;
  6. 访问第 2 步中设置的页面地址查看实际效果。

提示新的消息

联络表信息会直接发送到用户邮箱,其实可以不用再提示用户有新的消息。网站提供消息列表更多是为了方便用户查看历史消息。

暂时未发现 Contact Storage 模块有内置的”新消息“功能,如需在站内提醒用户,可以看看是否有其它扩展模块。或自行开发一个小模块,当有新的消息实体创建时(hook_ENTITY_TYPE_insert()),记录用户有新消息,并在页面某处显示提示用户。

2
0

真的非常感谢,根据您的操作,实现了。
drupal 10第4步,还要再设置一下。
通过这个也学会了如何创建视图,再次感谢。
这二天的学习,觉得这个系统真的很灵活。

0
0
登录注册后添加答案