Как обновить узел со страницы узла с помощью JavaScript в Drupal? - PullRequest
2 голосов
/ 30 мая 2011

Похоже, что возможно использовать пользовательский модуль с обратным вызовом меню, а затем функцию обратного вызова ajax со страницы. Но прежде чем тратить время на изучение, я уверен, что кто-то должен был сделать это раньше. Какие-нибудь советы?

Достаточно ли просто обновить переменную узла и вызвать field_attach_update()? А как насчет безопасности?

1 Ответ

2 голосов
/ 29 августа 2011

В целях безопасности:

Вы можете убедиться, что хук меню использует правильный доступ

В хуке меню:

 $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);
...