Drupal消息控制?

Drupal消息控制?,drupal,drupal-6,drupal-modules,Drupal,Drupal 6,Drupal Modules,是否有管理Drupal消息的模块或方法。即,您在创建内容后看到的消息,例如“标题为bla的汽车列表已创建”。我想要一个中心点来控制这些信息。其中大部分我不想显示。如果您创建了一条错误消息,并且立即知道您不想显示它,您可以按如下方式从Drupal错误数组中删除它: array_pop($_SESSION['messages']['error']); 这将删除最近创建的错误消息,但会使窗体处于错误状态。这是一种有点粗糙的方法,但它可以避免您必须深入编写Drupal核心 您还可以在数组中查找特定条目

是否有管理Drupal消息的模块或方法。即,您在创建内容后看到的消息,例如“标题为bla的汽车列表已创建”。我想要一个中心点来控制这些信息。其中大部分我不想显示。

如果您创建了一条错误消息,并且立即知道您不想显示它,您可以按如下方式从Drupal错误数组中删除它:

array_pop($_SESSION['messages']['error']);
这将删除最近创建的错误消息,但会使窗体处于错误状态。这是一种有点粗糙的方法,但它可以避免您必须深入编写Drupal核心


您还可以在数组中查找特定条目并取消设置它们,但这需要更多的工作。

我认为您无法管理这样的消息。你不知道是哪个模块发布了消息或者为什么,你只会得到消息以及它的类型、警告、错误等

如果要更改消息,可以在消息可用的
preprocess\u页面
中进行更改,也可以通过修改存储消息的全局
$\u会话
变量在之前进行更改


但正如我所说,没有一种很好的方法来过滤消息,因此如果您想从模块Y中删除消息X,您将非常困难。如果您真的想,您可以使用正则表达式,但它很快就会变得无法管理。

我正在准备一篇关于它的博客文章,但我已经可以告诉您一些提示:

  • 使用模块替换消息(通过UI)。如果要隐藏它,请将其留空。这些替换项存储在全局变量中(不需要访问数据库,因此不会造成性能损失),但由于同样的原因,不建议对数百个字符串使用它,因此只有很少的字符串
  • 使用 这 模块是非常新的,但看起来 有希望。这可能是一个更大的挑战 为开发者提供强大的解决方案, 因为它允许您包含变量 在字符串、正则表达式等中
希望能有所帮助,我在本周写这篇文章时会在这里留下评论。

你可以删除

打印$messages

如果您根本不想显示主题,请使用fromm page.tpl.php

但是,一般来说,对可用性来说,最好是对用户的操作进行反馈。

您也可以尝试使用该模块来禁止向最终用户显示特定消息。以下是其项目页面中的引用:

为站点所有者提供选项,以禁用显示给最终用户的特定消息。drupal_set_message提供的核心drupal消息系统是模块向最终用户发送消息的极好方式。然而,并非所有drupal站点所有者都热衷于向用户展示drupal核心和所有模块发送的所有消息。此模块为站点管理员提供了一种功能相当强大的方式来过滤显示给最终用户的消息

它的一些特点是:

  • 筛选出与全文字符串完全匹配的邮件
  • 筛选出与正则表达式匹配的消息
  • 对任何角色专门隐藏给定类型的所有邮件的权限
  • 禁用特定用户的所有筛选
  • 禁用特定路径的所有筛选
  • 仅对特定路径应用筛选
  • 调试系统以获取HTML中的消息,而不向最终用户显示

创建一条消息并再次删除它有什么意义?如果您有自己的模块,首先不要创建消息。这对删除特定消息没有多大帮助。我在表单上看到过这种技术,例如,您一起验证两个字段,并希望它们都显示为错误,但只希望显示一条消息。还可以扫描阵列并删除重复的消息。诸如此类。你的文章写完了吗?;)