Voici un exemple sur la façon de changer le contenu d'un nœud et comment envoyer un mail lors de la création d'un nœud (mais vous pouvez également envoyer un mail quand un formulaire est rempli). Vous devriez être capable de l'adapter pour travailler avec votre configuration.
Un noeud est créé et n'est pas publié par défaut. Ici, je vais définir le noeud comme publié lorsque quelqu'un clique sur un lien dans un mail.
Créer un module personnalisé qui parle au nodeapi:
function module_nodeapi($node, $op, $a3 = NULL, $a4 = NULL){
if($node->type == 'petition'){
switch ($op) {
case 'submit':
case 'insert':
$mail = $user->mail;
$nodeid = $node->nid;
// mail the user using the drupal_send_mail() function
// make the link something like: http://web.be/petition/validate/$nodeid/$mail
// drupal_set_message('thank you for validating the petition');
case 'update':
break;
}
}
Ainsi, un exemple du lien est http://web.be/petition/validate/20/[email protected]. La prochaine chose à faire est d'utiliser le hook_menu pour obtenir le lien et ses variables (également dans votre module personnalisé):
function module_menu(){
$items['petition/valid/%/%'] = array(
'title' => 'Validated your petition-entry',
'page callback' => 'module_validate_petition',
'page arguments' => array(1,2),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
}
function module_validate_petition($nid, $mail){
// load the node
$node = node_load($nid);
// set to published
$node->status = 1;
// save the node
node_save($node);
}