2011-03-30 42 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.'); 
    } 
}