2009-06-06 114 views
2

我正在尋找使用JavaScript創建一個drupal節點,來自同一網站,我不知道我應該去哪個方向。使用javascript創建一個Drupal節點

我知道你可以使用services/json來做到這一點,但肯定有一個更簡單的方法?

感謝

回答

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站點上的sites/all/modules/demo等文件夾中的demo.module文件中。您還需要一個demo.info文件看起來有點像這樣:

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

注意的節點模塊好一些不寫太清楚不會只是代碼工作。此外,即使這樣做,您可能也希望在node_save之前使用node_prepare對節點進行預處理,以應用您提供的代碼不會執行的內容過濾器。 – FGM 2009-06-07 16:50:18

相關問題