我可以在常规字段上保存/更新,但我在保存/更新CCK字段时遇到问题。这是一个示例node.save()XML请求 - http://pastebin.com/m5ceca16
答案 0 :(得分:1)
我假设您的XML数据镜像了节点对象格式。
可以通过$node->field_custom
访问CCK字段“field_custom”。无论类型和条目数限制如何,字段始终是数组。如果CCK字段仅允许一个条目,则为$node->field_custom[0]
。
该级别以下的索引取决于字段类型。大多数,尤其是数字和文本字段,都是“值”(例如,$node->field_custom[0] = 'foo'
)。我使用了使用'nid'的Nodereference字段,我假设Userreference字段使用'uid'。
您的XML结构似乎是正确的。我会检查站点上节点对象的结构(使用var_dump()
或devel模块),以确保所有数组键和变量名都适用于您的字段和字段类型。
答案 1 :(得分:0)
要检查的两件事:
node_load()的结果的var_dump没有给出您应该使用的确切格式。您的XML必须模拟节点编辑表单的输入格式。因此,虽然var_dump可能会在数组中显示几个分类术语,但节点编辑表单可能希望用逗号分隔分类术语。副手我在你的例子中看不到这似乎适用的任何字段,但无论如何我都提到它。
您的“已更改”时间戳不得在将来,也不能过去太远。如果关闭的话,节点将不会保存。如果其中一台计算机上的时钟不是很准确,则可能会出现问题。我遇到了一个问题,我的服务服务器落后于我的服务客户端大约20秒,因此所有更新都被拒绝(服务器显然拒绝了他们,理由是他们来自未来)。