使用javascript创建Drupal节点

时间:2009-06-06 19:24:02

标签: jquery drupal

我正在寻找使用javascript从同一个站点创建一个drupal节点,我想知道我应该走哪个方向。

我知道你可以使用services / json来做到这一点,但肯定有一种更简单的方法吗?

由于

2 个答案:

答案 0 :(得分:4)

除了AJAX回调之外,你可能需要在Drupal中有一个menu callback来接受AJAX请求并将其转换为节点对象并用node_save保存。

在最简单的形式中,它看起来像这样(请注意这里没有访问检查,所以任何人都可以使用此回调创建节点):

<?php
/**
 * Implementation of hook_menu().
 */
function demo_menu() {
  $items = array();
  $items['demo/js'] = array(
    'title' => 'Demo page',
    'page callback' => 'demo_js_page',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * Page callback that saves a node.
 */
function demo_js_page() {
  if (isset($_REQUEST['title'])) {
    $node = new stdClass;
    $node->type = 'blog';
    $node->title = check_plain($_REQUEST['title']);
    node_save($node);
    drupal_set_message(t('Created node %title', array('%title' => $_REQUEST['title'])));
  }
  return t('Thanks for visiting');
}

显示的代码将插入Drupal站点上demo.module这样的文件夹中的sites/all/modules/demo文件中。您还需要一个看起来像这样的demo.info文件:

name = Demo module
description = Demo code.
core = 6.x

答案 1 :(得分:0)

我看到的第一个地方就在这里:

http://docs.jquery.com/Ajax

首先进入load()函数

http://docs.jquery.com/Ajax/load#urldatacallback

看看这是否足以满足您的需求。

从您可能需要的最简单的Ajax调用开始,很容易陷入更通用的$ .ajax()

的复杂性中。