Drupal消息控件?

时间:2010-09-10 10:12:51

标签: drupal drupal-6 drupal-modules

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

5 个答案:

答案 0 :(得分:3)

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

  • 使用String Overrides模块替换消息(通过UI)。如果要隐藏它,请将其留空。这些替换存储在全局变量中(不需要访问数据库,因此没有性能损失),但是因为不建议将相同的原因用于数百个字符串,只有少数几个。
  • 使用 http://www.michaelbarton.name/2010/07/09/drupal-module-status-messages-alter/这个 模块很新但看起来 有希望。这可以是更多 开发者的强大解决方案 因为让你包含变量 在字符串,正则表达式等

希望它有所帮助,我将在本周写这篇文章时在这里发表评论。

答案 1 :(得分:2)

我认为你不能管理这样的消息。您不知道哪个模块发布了消息或为什么,您将获得的是消息,它的类型,警告,错误等。

如果要更改消息,可以在preprocess_page中显示消息,或者之前可以通过修改存储消息的全局$_SESSION变量来执行此操作。

但就像我说的那样,没有一种好方法可以过滤消息,所以如果你想从模块Y中删除消息X,你会很难。如果你真的想要,你可以使用RegEx,但是很快就会变得难以管理。

答案 2 :(得分:2)

您还可以尝试使用Disable Messages模块禁止向最终用户显示特定消息。以下是项目页面的引用:

  

为网站所有者提供选项,以禁用向最终用户显示的特定邮件。 drupal_set_message提供的核心drupal消息系统是模块向最终用户发送消息的绝佳方式。然而,并非所有drupal站点所有者都热衷于向他们的用户显示drupal核心和所有模块发出的所有消息。该模块为站点管理员提供了一种相当强大的方法来过滤掉向最终用户显示的消息。

它的一些功能是:

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

答案 3 :(得分:1)

如果您已创建错误消息并且您立即知道不想显示它,则可以将其从Drupal错误数组中删除,如下所示:

array_pop($_SESSION['messages']['error']);

这将删除最近创建的错误消息,但会使表单处于错误状态。这有点像hacky方式,但它可以节省你不得不深入编写Drupal核心的代码。

您还可以搜索阵列中的特定条目并取消设置,但这样做更多。

答案 4 :(得分:0)

您可以删除

  

打印$ messages

如果您不希望它们显示,请使用您主题的from.page.tpl.php。

但是,通常情况下,对用户的行为反馈可行性更好。