Как прикрепить изображение и тег с узлом

Я работаю над проектом по импорту содержимого XML в Drupal 7. Я проанализировал все данные в PHP.

До сих пор мне удалось импортировать тело узла и его заголовок. Для Drupal 7 нет документации о том, как прикрепить изображение к узлу и тегам. Мне очень нужна помощь, так как я потратил два дня, пытаясь найти решение. Буду очень признателен, если кто-нибудь найдет решение. Пожалуйста, просто направьте меня куда-нибудь.

function make_nodes($nodes) {
  $new_node = $nodes[0];
  $node = new stdClass();
  $node->title = $new_node['title'];
  $node->body['und'][0]['value'] = $new_node['body'];
  $node->type = 'article';
  $node->created = $new_node['timestamp'];
  $node->changed = $new_node['timestamp'];
  $node->status = 1;
  $node->promote = 1;
  $node->sticky = 0;
  $node->body['und'][0]['format'] = 1;
  $node->uid = (isset($local_user->uid) && !empty($local_user->uid)?$local_user->uid:1);
  $node->language = 'en';
  $node->timestamp = $new_node['timestamp'];
  $node->revision = 0;
  node_submit($node);
  node_save($node);
}

person Zero Cool    schedule 26.08.2010    source источник
comment


Ответы (2)


Вам нужно добавить ImageField к вашему типу контента. Это был отдельный модуль в Drupal 6, но он был перемещен в ядро ​​​​в Drupal 7. На странице модуля есть ссылки на некоторые скрипты импорта, но API, вероятно, изменился в Drupal 7.

Вы также можете воспользоваться модулем Migrate, который предоставляет основу для импорта в Drupal.

person Mad Scientist    schedule 26.08.2010
comment
Привет. В drupal 7 уже есть ImageField в типе контента статьи. Вот где я хочу сохранить свои изображения, связанные с узлами. - person Zero Cool; 26.08.2010
comment
В Field API должна быть функция для этого (api.drupal.org/api/ group/field/7), но это область, которая значительно изменилась в Drupal 7, путь Drupal 6 больше не будет работать. - person Mad Scientist; 26.08.2010
comment
это правда, я уже пробовал drupa 6... это не работает.... я собираюсь попробовать кое-что, вижу, что тело узла также является полем, поэтому я получаю к нему доступ как node-›body['und'] [0]['значение'] = $new_node['тело']; вот как получить доступ к полям в drupal 7, поэтому я подумал, что я также могу получить доступ к полю изображения и полю тегов, например, аналогичным образом node-›field_tags['und'][0]['value'] = 'something'; я не уверен, но это что-то - person Zero Cool; 26.08.2010

ПРИВЕТ. Прочитав документацию в течение 10 часов, я, наконец, сделал это... я включаю сюда свой код.

$uri = 'bird/bird_image.jpg';
$files =  new stdClass();
$files->uid = (isset($local_user->uid) && !empty($local_user->uid)?$local_user->uid:1);
$files->filename = 'bird.jpg';
$files->uri = $uri; 
$files->filemime = file_get_mimetype($uri);
$files->status = 1;
$files->timestamp = $new_node['timestamp'];

file_copy($files);

вот как можно загрузить файл и в базу данных drupal 7

person Zero Cool    schedule 27.08.2010