2011-03-30 5 views
3

Je tente de définir un message personnalisé qui sera affiché aux utilisateurs après l'envoi d'un nouveau nœud. Ce message va remplacer le titre '@type% standard' créé.Définir un message personnalisé après l'enregistrement d'un nouveau nœud

J'ai essayé d'utiliser hook_nodeapi avec $ op de 'insert' mais peu importe comment j'essaie de changer les poids des modules, mon message personnalisé apparaît toujours avant le message drupal de base.

Cela ne fonctionnera pas, car j'ai besoin d'appeler drupal_get_messages() pour supprimer le message original avant d'envoyer mon propre message personnalisé.

Ce processus me rend fou, quelqu'un peut-il m'aider à me diriger dans la bonne direction?

Vive.

Répondre

0

Vérifiez la fonction node_form_submit(). Notez qu'il fait un node_save($node); avant drupal_set_message(t('@type %title has been created.', $t_args));.

Si vous vérifiez ensuite node_save(), vous verrez que c'est là que l'op $ 'insert' est appelé. Ainsi, l'opération 'insert' pour hook_nodeapi est appelée avant que le message que vous espérez changer devienne une sortie.

Vous pouvez trouver some workarounds described in this issue queue comment. Vous pouvez également vérifier le Custom Submit Messages module, qui est l'origine de ce thread de file d'attente de problèmes.

Dans le cas où il pourrait aider, dans le passé, je l'ai parfois eu recours à l'écriture d'un mini-module qui implémente hook_nodeapi, pour savoir à quel point les crochets sont tirés se:

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