Drupal消息控制?
是否有管理Drupal消息的模块或方法。即,您在创建内容后看到的消息,例如“标题为bla的汽车列表已创建”。我想要一个中心点来控制这些信息。其中大部分我不想显示。如果您创建了一条错误消息,并且立即知道您不想显示它,您可以按如下方式从Drupal错误数组中删除它:Drupal消息控制?,drupal,drupal-6,drupal-modules,Drupal,Drupal 6,Drupal Modules,是否有管理Drupal消息的模块或方法。即,您在创建内容后看到的消息,例如“标题为bla的汽车列表已创建”。我想要一个中心点来控制这些信息。其中大部分我不想显示。如果您创建了一条错误消息,并且立即知道您不想显示它,您可以按如下方式从Drupal错误数组中删除它: array_pop($_SESSION['messages']['error']); 这将删除最近创建的错误消息,但会使窗体处于错误状态。这是一种有点粗糙的方法,但它可以避免您必须深入编写Drupal核心 您还可以在数组中查找特定条目
array_pop($_SESSION['messages']['error']);
这将删除最近创建的错误消息,但会使窗体处于错误状态。这是一种有点粗糙的方法,但它可以避免您必须深入编写Drupal核心
您还可以在数组中查找特定条目并取消设置它们,但这需要更多的工作。我认为您无法管理这样的消息。你不知道是哪个模块发布了消息或者为什么,你只会得到消息以及它的类型、警告、错误等 如果要更改消息,可以在消息可用的
preprocess\u页面
中进行更改,也可以通过修改存储消息的全局$\u会话
变量在之前进行更改
但正如我所说,没有一种很好的方法来过滤消息,因此如果您想从模块Y中删除消息X,您将非常困难。如果您真的想,您可以使用正则表达式,但它很快就会变得无法管理。我正在准备一篇关于它的博客文章,但我已经可以告诉您一些提示:
- 使用模块替换消息(通过UI)。如果要隐藏它,请将其留空。这些替换项存储在全局变量中(不需要访问数据库,因此不会造成性能损失),但由于同样的原因,不建议对数百个字符串使用它,因此只有很少的字符串
- 使用 这 模块是非常新的,但看起来 有希望。这可能是一个更大的挑战 为开发者提供强大的解决方案, 因为它允许您包含变量 在字符串、正则表达式等中
- 筛选出与全文字符串完全匹配的邮件
- 筛选出与正则表达式匹配的消息
- 对任何角色专门隐藏给定类型的所有邮件的权限
- 禁用特定用户的所有筛选
- 禁用特定路径的所有筛选
- 仅对特定路径应用筛选
- 调试系统以获取HTML中的消息,而不向最终用户显示
创建一条消息并再次删除它有什么意义?如果您有自己的模块,首先不要创建消息。这对删除特定消息没有多大帮助。我在表单上看到过这种技术,例如,您一起验证两个字段,并希望它们都显示为错误,但只希望显示一条消息。还可以扫描阵列并删除重复的消息。诸如此类。你的文章写完了吗?;)