从其他(xml)内容自动创建drupal页面(节点)

时间:2009-07-10 20:48:17

标签: php xml drupal

我目前有一个来自客户端的XML数据源,这个XML包含我们正在制作的网站所包含的所有页面的内容。现在解析并准备好所有这些内容后,有没有人知道我们如何(使用)PHP自动创建一个drupal节点(包括该节点的所有相关字段,即CCK字段,路径)。

理想情况下,我们可以将所有内容发送到节点并创建节点。现在我不介意把它直接放到数据库中,但我不太清楚db表的更新是什么(因为drupal设置有很多表)。

我搜索了谷歌和drupal文档,但我真的找不到这个(我认为这是一个简单且经常使用的功能,网络开发人员在drupal ...)

非常感谢您的意见!

提前致谢,

沙迪

3 个答案:

答案 0 :(得分:5)

您可以使用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字段,如果您使用的是应在node_save创建路径的pathauto):http://acquia.com/blog/migrating-drupal-way-part-i-creating-node

答案 1 :(得分:1)

您应该能够将node_save()用于此目的。我没有尝试使用cck字段,但如果添加字段,则应通过hooks run保存。但是,如果不通过代码创建包含字段的nodetype,则该函数将取决于您在管理界面中执行的设置。

答案 2 :(得分:0)

如果你在数组结构中设置了正确的类型和格式字段,

node_save适用于cck。