Posted by cato on November 9, 2010 at 11:17am
Tjosan.
Jo, så här då, jag skapar ett gäng noder via ett externt batchskript. Noderna ska ha terms i två olika vokabulärer; Catalog och Tags; vilket blir lite klurigt. Den första termen (Catalog) sparas helt korrekt men den andra som är av formen fritaggar sparas inte alls. Så här ser koden ut
$node = new stdClass();
.........
// taxonomy
$tid = 0;
//echo "Varugrupp: " . $row['varugrupp'] . "\n";
if (!empty($row['varugrupp'])){
$termkey = $row['varugrupp'];
} else {
$termkey = '063 Övrigt';
}
$term = array_pop(taxonomy_get_term_by_name($termkey));
$node->taxonomy = array(
'Catalog' => $term,
'Tags' => array('2' => implode(',',$tags))
);
// save node
$node->op = t('Save');
content_presave($node);
content_insert($node);
if($node = node_submit($node)){
node_save($node);
echo "Saved.";
}$tags är en array som byggs ihop av olika ord som finns i ursprungsdatat som jag skapar noder från och orden ska alltså in i fritaggningsvokabulären 'Tags' med vid 2. Där inget av orden finns från början, behöver jag skapa dem i förväg?
$term kommer från en lookup som görs mot vokabulären Catalog där termerna är skapade i förväg.
Tags-biten funkar alltså inte medan Catalog-biten funkar, dock inte i den ovanstående tappningen utan snarare som $node->taxonomy = $term
Det jag vill göra är alltså att sätta Catalog och Tags på samma gång och jag undrar hur den koden ska se ut.
Tacksam för hjälp!
//Cato

Comments
Kan följande ge dig en hint?
Kan följande ge dig en hint?
För Drupal 6:
http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/func...
För Drupal 7:
http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/func...
Nu har jag inte gjort något för Drupal 7 än så där är jag ute på hal is...
/Thomas
Jovars
Tackar! Det gav en klar hint om vad Drupal förväntar sig i input iaf.
Gjort ett testcase som verkar fungera, tricket för mig är att inte göra en taxonomy_term_by_name($category) först utan låta Drupal hantera det på node_save-hooken själv.
Så:
$category = 'Testkategori';$tags = "apple,orange,pear,banana";
$node->taxonomy = array(
'category' => array('1' => $category),
'tags'=> array('2' => $tags)
);
Funkar klockrent.