我目前有一个来自客户端的XML数据源,这个XML包含我们正在制作的网站所包含的所有页面的内容。现在解析并准备好所有这些内容后,有没有人知道我们如何(使用)PHP自动创建一个drupal节点(包括该节点的所有相关字段,即CCK字段,路径)。
理想情况下,我们可以将所有内容发送到节点并创建节点。现在我不介意把它直接放到数据库中,但我不太清楚db表的更新是什么(因为drupal设置有很多表)。
我搜索了谷歌和drupal文档,但我真的找不到这个(我认为这是一个简单且经常使用的功能,网络开发人员在drupal ...)
非常感谢您的意见!
提前致谢,
沙迪
答案 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。