我正在寻找使用javascript从同一个站点创建一个drupal节点,我想知道我应该走哪个方向。
我知道你可以使用services / json来做到这一点,但肯定有一种更简单的方法吗?
由于
答案 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)
我看到的第一个地方就在这里:
首先进入load()函数
http://docs.jquery.com/Ajax/load#urldatacallback
看看这是否足以满足您的需求。
从您可能需要的最简单的Ajax调用开始,很容易陷入更通用的$ .ajax()
的复杂性中。