【发布时间】:2011-07-05 20:06:47
【问题描述】:
我正在构建一个批处理导入器模块,该模块将从一个数据库中获取数据并在 drupal 中创建节点。创建节点对象的代码是这样的:
$node = new stdClass();
$node->type = 'jobs';
$node->uid = 1;
$node->status = $row->J_Approved;
$node->title = $row->J_Title;
$node->comment = 0;
$node->revision = 1;
$node->promote = 0;
$node->sticky = 0;
$node->created = $row->J_DateTime_Mod;
$node->field_description = $row->J_Body;
$node->field_email = $row->J_MI_Email;
$node->field_jobs_fax = $row->J_MI_Phone;
$node->field_aia_firm = $row->J_AIA;
$node->field_name = $row->J_Sub_Name;
$node->field_phone = $row->J_Sub_Phone;
$node->field_jobs_email = $row->J_Sub_Email;
$node = node_submit($node);
node_save($node);
上面在我的调试窗口中输出了这个http://screencast.com/t/R5PhWZWraIR8 当我运行它时,它不会创建节点,但正如您从截屏视频中看到的那样,它将 $node->validates 设置为 1,所以我假设它是有效的。我花了大约 5 个小时试图调试它,但仍然无法弄清楚。任何帮助将不胜感激...
【问题讨论】:
-
好吧,似乎这样做并将 cck 字段包装在此函数中修复了它: function cck_val($val = 0, $key = 'value') { return array(array($key => $验证)); }
-
不幸的是,Drupal 在表单 API 中做了很多节点验证。