如何在Drupal中使用javascript从节点页面更新节点?

问题描述

| 看起来可以使用带有菜单回调的自定义模块,然后使用页面中的ajax回调函数。 但是在我花时间探索之前,我确定有人必须做过。有小费吗? 仅更新节点变量并调用“ 0”就足够了吗?那么安全性呢?     

解决方法

        为了安全: 您可以确保菜单挂钩使用正确的权限访问 在菜单挂钩中:
 $items[\'/ajax/%/edit\'] = array(
    \'title\' => \'something\',\'page callback\' => \'your_edit_callback\',\'page arguments\' => array(1),\'access callback\' => \'node_access\',\'access arguments\' => array(\'update\',1),\'type\' => MENU_LOCAL_TASK,);

function your_edit_callback($node_id){
//something that edits the node here,only user(s) with node_access will be able to get here.
}
关于节点访问:  *在确定节点的访问权限时,node_access()首先检查  *用户是否具有“旁路节点访问”权限。这样的用户有  *对所有节点的访问不受限制。用户1将始终通过此检查。 我个人从未使用过field_attach,而是依靠node_save。
$node = node_load($node_id);
$node->field_fieldname[LANGUAGE_NONE][0][\'value\'] = \"monkeys\";
node_save($node);