2010-09-21 5 views
3

J'ai un type de contenu (A) qui fait référence à un seul noeud d'un type de contenu différent (B). Le noeud référencé (B) peut être déterminé par programmation en utilisant les informations pour l'utilisateur créant ce nouveau noeud (A) ... Chaque utilisateur ne peut créer qu'un seul noeud du type de contenu référencé (B), donc ce noeud unique sera toujours référencé à partir des nœuds de type de contenu B que l'utilisateur crée. Comme le noeud référencé est toujours connu, je ne veux pas que l'utilisateur doive entrer la valeur de référence, je veux le définir en coulisse. J'ai trouvé un certain nombre de sujets à propos de cela, mais aucun ne semble être clair ou fonctionne réellement pour moi.Comment définir la valeur d'un champ de référence de noeud CCK automatiquement lorsque le formulaire de création soumet

Toute aide serait grandement appréciée.

Note: Drupal 6

Répondre

6

Vous pouvez essayer:

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    switch ($op) { 
     case 'insert': 
     if ($node->type == 'type_a') { 
      $node->field_of_reference[0]['nid'] = 'node reference value'; 
      node_save($node); 
     } 
     break; 
    } 
} 

Cela devrait ajouter de la valeur au nœud et l'enregistrer après qu'il a été créé.

http://api.drupal.org/api/function/hook_nodeapi

Note: Vous devez créer un module pour faciliter ce processus. Vous pouvez également essayer le module Règles, cependant, je ne suis pas sûr qu'il fera ce que vous demandez sans une règle personnalisée. Mais je sais que la méthode ci-dessus fonctionnera.

+0

Je ne l'ai pas encore essayé ... mais cela remplacera l'action de soumission par défaut correcte? Si le champ de référence de noeud est requis, le formulaire sera-t-il validé avant d'arriver à ce point? – Chaulky

+1

Ne pas faire le champ de formulaire requis, et cela complète l'action de soumission, pas remplacer. – Kevin

+0

Très bon point! – Chaulky

2

Sans aucune programmation - utilisez les modules "Règles", la mise à jour des nœuds d'événement, le champ action-set à une certaine valeur.

+0

Je devais encore besoin de programmation pour obtenir la valeur pour le champ de référence de noeud. Pouvez-vous utiliser des extraits PHP avec le module Rules/Action? Je suppose que vous pouvez. Merci pour le conseil, je pourrais essayer celui-ci. – Chaulky

Questions connexes