2011-03-30 31 views
3

我试图设置自定义消息,在用户提交新节点后显示给用户。此消息将取代标准的“​​@type%标题已创建”。保存新节点后设置自定义消息

我试过使用hook_nodeapi与$ op的'插入',但无论我如何尝试和更改模块权重,我的自定义消息总是先出现在核心drupal消息之前。

这不会工作,因为我需要调用drupal_get_messages()来发送我自己的自定义之前删除原始消息。

这个工作流让我疯狂,任何人都可以帮助我指出正确的方向吗?

干杯。

回答

0

查看node_form_submit()功能。请注意,它在drupal_set_message(t('@type %title has been created.', $t_args));之前执行node_save($node);

如果您然后检出node_save(),您会看到'insert'$ op被调用的地方。因此,在您希望更改的消息获取输出之前,调用hook_nodeapi的'insert'操作。

您可以找到some workarounds described in this issue queue comment。您可能还想查看Custom Submit Messages module,这是发出队列线程始发的地方。

在情况下,它可能会帮助,在过去,我有时使出写一个小型模块实现hook_nodeapi,找出是多么的挂钩被解雇:

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    switch ($op) { 
    dpm('hook_nodeapi '. $op .' fired.'); 
    } 
}