2010-06-09 8 views
1
$form_state['values']['field_prx_mp3_labels'][0][value] = $mp3_labels; 
    $form_state['values']['taxonomy'][0][value] = array('tags'=>array('1'=>'Music')); 
    $errs = drupal_execute('prx_content_node_form', $form_state, (object) $nodeTmp); 

Ceci est un site Drupal 6. J'utilise drupal_execute pour créer un noeud par programmation. La première ligne travaille pour field_prx_mp3_labels. Le second (pour la taxonomie) ne l'est pas.Drupal 6 - J'utilise drupal_execute pour insérer un noeud CCK dans mon site. Tout fonctionne sauf la taxinomie

Voici ce que mon sélectionnez sur le nœud ajouter à mon CCK ressemble:

<select name="taxonomy[2][]" multiple="multiple" class="form-select" id="edit-taxonomy-2" size="9"><option value="">- None -</option><option value="5">Music</option><option value="6">-Rock/Pop</option><option value="7">-Jazz/Blues</option><option value="8">-Classical</option><option value="9">-Music Documentaries</option><option value="10">-Festivals/Concerts</option><option value="11">Arts</option><option value="19">-Literature</option><option value="12">Nature</option><option value="13">History</option><option value="15">-Music</option><option value="14">Culture</option><option value="17">-American Indian</option><option value="18">-Latino</option><option value="16">-Youth Perspective</option></select> 

J'ai essayé beaucoup de variations de la ligne 2 (relative à la taxonomie).

Ce commentaire semblait proche, mais il n'a pas fonctionné pour moi: http://drupal.org/node/178506#comment-1155576

Merci!

Répondre

1

Est-ce que [valeur] ne doit pas être entre guillemets?

Et avez-vous essayé ceci:

$form_state['values']['taxonomy'] = array('tags'=>array('1'=>'Music')); 
+0

Je l'ai essayé entre guillemets et pas de chance. La première ligne fonctionne et il n'y a pas de guillemets ici. Merci quand même! – rdurbin

+0

Mis à jour ma réponse. La taxonomie n'est pas un champ CCK et n'a donc pas besoin de [index] [valeur] comme vous le feriez pour les champs CCK. – Kevin

+0

Hmm. J'ai aussi essayé et je n'ai pas eu de chance. Bon point de ne pas faire partie de CCK. – rdurbin

0

J'ai fini par le faire d'une manière différente. Fondamentalement, je cours drupal_execute pour pousser le contenu CCK dans Drupal. Juste après cela, j'interroge la base de données pour obtenir l'identifiant du nœud que je viens d'insérer. Je prends alors cet ID et exécute une boucle qui insère les relations de taxonomie directement dans la table term_node.

Le problème éventuel que cela provoque est que les informations de taxonomie ne sont pas disponibles pendant le drupal_execute. Cela signifie que si vous comptez sur la taxonomie pour une partie de vos règles pathauto/alias, la taxonomie ne sera pas encore disponible.