Acceder a los valores de un nodo con javascript


Una forma simple de hacer esto, es a través de Drupal.settings, que es un objeto siempre disponible.

Para agregar el nodo a Drupal.settings, lo hago en alguna función adecuada, por ejemplo en la implementación del hook_form_alter(), ya que allí se hacen las alteraciones de los formularios de edición de nodos.

Por ejemplo:

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'my_node_form':
      ...
      $node = node_load($form['nid']['#value']);

      // port to javascript
      if ($node) {
        drupal_add_js(array('node' => $node), 'setting');
      }

      ...
      break;
    ...
  }
}

Luego, en algún javascript que se invoque para el tipo my_node, se puede usar algo como:

  var node = Drupal.settings.node;

  var nid = Drupal.settings.node.nid;
  var node_my_field = node.field_my_field[0].value;


Si usa Firebug, podrá encontrar el objeto Drupal en la pestaña DOM y navegar por los otros elementos disponibles en node.

Comentarios

Entradas populares de este blog

Debug con Xdebug y Aptana (y Notepad++)

CSS3 para mejorar el breadcrumb de un tema Zen

Drupal sí, drupal no