Автоматическое создание друпал-страниц (узлов) из другого (xml) контента - PullRequest
3 голосов
/ 11 июля 2009

У меня в настоящее время есть источник данных от клиента в форме XML, этот XML содержит контент для всех страниц, которые будет содержать созданный нами веб-сайт. Теперь, после анализа и подготовки всего этого контента, кто-нибудь знает, как мы можем (используя) PHP автоматизировать создание узла drupal (включая все связанные поля для этого узла, то есть поля CCK, пути).

В идеале - функция, в которую мы можем отправить весь контент и создать узлы. Теперь я не против поместить его прямо в БД, но я не совсем уверен, какие таблицы БД обновляются (так как у установки drupal есть таблицы gazillion).

Я искал в Google и Drupal Docs, но я не могу найти что-то для этого (что я предположил, будет простой и часто используемой функцией веб-разработчиков на Drupal ..)

Ваш вклад будет очень признателен!

Заранее спасибо,

Шади

Ответы [ 3 ]

5 голосов
/ 11 июля 2009

Вы можете использовать функцию Drupal node_save примерно так:

require 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$node = new stdClass();

$node->title = "My imported node";
$node->body = "The body of my imported node.";
$node->type = 'story'; 
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 1;
$node->uid = 1;

node_save($node);

См. Эту статью на сайте Acquia для получения дополнительной информации (включая поля CCK, если вы используете pathauto, который должен создавать пути для node_save): http://acquia.com/blog/migrating-drupal-way-part-i-creating-node

1 голос
/ 11 июля 2009

Вы должны быть в состоянии использовать node_save () для этой цели. Я не пробовал с полями cck, но если вы добавите поля, они должны быть сохранены с помощью запуска ловушек. Однако, если вы не создадите тип узла с полями через код, функция будет зависеть от настроек, которые вы делаете в интерфейсе администратора.

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

node_save работает для cck, если вы правильно установили поля типа и формата в структуре массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...