Drupal 7 API + Таксономия - PullRequest
       19

Drupal 7 API + Таксономия

0 голосов
/ 04 ноября 2011

Я пытаюсь создать небольшой инструмент с PHP для импорта контента из моей текущей CMS в Drupal 7, потому что у меня есть около 10k + статей для ввода. До сих пор я получил название, резюме, тело, автора и опубликовалдата прохождения, но когда дело доходит до категорий (тегов), я совершенно сбит с толку.

Каждая из моих текущих категорий / тегов хранится в таблице базы данных, каждая из которых имеет свой собственный идентификатор, имя и описание.Я могу извлечь это из каждой статьи и отсортировать по своему усмотрению (строка, массив и т. Д.).

Во время импорта я предполагаю, что мне следует сделать что-то вроде этого:

$node->field_tags = array(
    'und' => array(
        array(
            'Update',
            'News',
            'Report'
        )
    )
);

Я также пробовал:

$node->field_tags = array(
    'Update',
    'News',
    'Report'
);

Но эти слова, не поданные через запятую, не работают.Документация по API Drupal 7, кажется, не объясняет это нигде, что я нашел.

Какой формат для отправки тегов или какую страницу документации я не смог найти?Заранее спасибо!

1 Ответ

1 голос
/ 04 ноября 2011

Поля терминов в Drupal 7 связаны с терминами физической таксономии, поэтому вам необходимо создать термин для каждой категории, а затем добавить эту ссылку в качестве значения поля.

Этот код может помочь:

// Load the tags vocabulary
$vocab = taxonomy_vocabulary_machine_name_load('tags');

$term = new stdClass;
$term->vid = $vocab->vid; // Attach the vocab id to the new term
$term->name = 'Category Name'; // Give the term a name
taxonomy_term_save($term); // Save it

// Add the tags field
$node->field_tags = array(
  LANGUAGE_NONE => array(
    'tid' => $term->tid // Relate the field to the new category term using it's tid (term id)
  )
);
...