Node_clone : paramétrer un clonage

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je souhaite cloner un gros webform pour en créer plusieurs instances dont le titre et plusieurs questions seront paramétrables.

Le but du jeu est de cloner le formulaire en mettant à jour un champ hidden.

J'ai donc créer un formulaire avec une liste de sélection des titres disponibles et j'ai également implémenté le submit handler de ce formulaire :

myModule_myform_form_submit($fom, &$form_state){
  $param = $form_state['values']['title'];
  module_load_include('inc', 'clone', 'clone.pages');
  clone_node_save(666);
  drupal_set_message(t("Webform $param généré."));
}

Mon problème, comme vous pouvez le lire, est que je ne peux pas passer de paramètre à la fonction clone_node_save, la signature étant seulement composée du node id.
Et il me semble que je ne peux modifier ce webform cloné qu'en interceptant le hook_clone_node_alter, hook dans lequel je n'ai aucune connaissance de ma variable $param car il s'éxécute A LA FIN de clone_node_save($nid).

Je sais que je peux régler ce problème en utilisant une variable globale ou en utilisant variable_set et variable_get, mais je trouve ces deux technique un peu barbares.

N'y a-t-il pas un moyen plus efficace de transmettre cette variable $param ?

JML

Forum : 
Version de Drupal : 
Tags :