2011-05-30 4 views
2

Il semble que ce soit possible en utilisant un module personnalisé avec un rappel de menu, puis une fonction de rappel ajax à partir de la page. Mais avant de perdre du temps à explorer, je suis sûr que quelqu'un a déjà fait ça auparavant. Des conseils?Comment mettre à jour un noeud de la page de noeud avec javascript dans Drupal?

Est-il suffisant de simplement mettre à jour la variable de noeud et d'appeler field_attach_update()? Et qu'en est-il de la sécurité?

Répondre

2

Pour plus de sécurité:

Vous pouvez vous assurer que le crochet de menu utilise l'accès d'autorisation correcte

Dans crochet de menu:

$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. 
} 

sur l'accès au noeud: * Pour déterminer les droits d'accès un noeud, node_access() vérifie d'abord * si l'utilisateur a l'autorisation "bypass node access". Ces utilisateurs ont * un accès illimité à tous les nœuds. l'utilisateur 1 passera toujours cette vérification.

Personnellement, je n'ai jamais utilisé field_attach, mais je me suis appuyé sur node_save.

$node = node_load($node_id); 
$node->field_fieldname[LANGUAGE_NONE][0]['value'] = "monkeys"; 
node_save($node); 
Questions connexes