我被困在一个问题上,我已经研究了好几天没有运气,这里的答案通常都是现货。以编程方式设置位置数据
我有自定义模块的代码,从形式提供的数据添加一个节点:
$edit = array();
$edit['uid'] = $user->id;
$edit['name'] = $user->name;
$edit['status'] = 1;
$edit['taxonomy'] = array($term_id);
$edit['title'] = $Title;
$edit['body'] = $body;
等等
,然后保存:
node_invoke_nodeapi($edit, $nType);
node_validate($edit);
if ($errors = form_get_errors()) {
print_r($errors);
}
$node = node_submit($edit);
node_save($node);
这一切都完美。但我试图根据提供的(清理过的)zip字段将位置数据添加到每个节点。
我有gmap和位置模块安装和工作。当我使用drupal内容编辑器直接添加压缩文件时,它一切正常。甚至是gmap的观点。所以我知道版本和mod都是正确的。
我用这个:
$location = array(
'country' => 'US',
'postal_code' => $zip,
);
$locationID = location_save($location);
这:
$location['country'] = "US";
$location['postal_code'] = $zip;
$locationID = location_save($location);
有和没有国家的元素。 然后在节点数据初始化部分(上文)这样的:
$edit->locations[0]['lid'] = $locationID;
或
if($locationID) $edit['field_location'][0]['lid'] = $locationID;
或
if($locationID) $edit['location'][0]['lid'] = $locationID;
但没有的工作原理。提交将实际通过,但没有保存位置数据。并没有错误抛出。
任何帮助,这将不胜感激。