我有一个cck自定义类型,它是由人员创建的,字段是填充的。然后其他人编辑这些节点并添加更多数据。我想将编辑内容的用户的用户名保存到一个隐藏字段中。
我知道我可以用这个得到用户:
global $user;
$a = $user->name;
return array(
0 => array('value' => $a)
);
我已经将其作为隐藏字段的默认代码,但该字段现在填充了节点的创建者,然后没有用编辑器替换。我该如何解决我的问题?
我对你的问题进行了研究,这里有一个解决方案!!!
创建一个自定义模块并使用以下代码。
//Implementation of hook_nodeapi()
function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch($op) {
case 'presave':
if($node->type == "Your content type name")
{
global $user;
//In my case
//$node->field_username[0]['value'] = $user->name;
//In your case it will be like
$node->hidden_field_name[0]['value'] = $user->name;
}
break;
}
}
当您自己测试编辑节点时,字段是否包含您自己的用户名或原始作者?
另一种解决方案是form_alter特定的节点编辑表单,在node_save中,用用户名填充隐藏字段。