Создание узла Drupal с помощью JavaScript - PullRequest
2 голосов
/ 06 июня 2009

Я хочу создать друпальный узел с javascript с того же сайта, и мне интересно, в каком направлении мне идти.

Я знаю, что вы можете использовать services / json для этого, но наверняка есть более простой способ?

Спасибо

Ответы [ 2 ]

4 голосов
/ 07 июня 2009

Помимо обратного вызова AJAX, вам, вероятно, понадобится обратный вызов меню в Drupal, который будет принимать запрос 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');
}

Показанный код должен быть вставлен в файл demo.module в папке, подобной sites/all/modules/demo на вашем сайте Drupal. Вам также понадобится файл demo.info, который выглядит примерно так:

name = Demo module
description = Demo code.
core = 6.x
0 голосов
/ 07 июня 2009

Первое место, которое я бы посмотрел, было бы здесь:

http://docs.jquery.com/Ajax

И сначала перейти к функции load ()

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

чтобы узнать, достаточно ли это для ваших нужд.

Начните с самой простой формы вызова Ajax, которая вам может понадобиться, легко увязнуть в сложности более универсального $ .ajax ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...