Drupal создает страницу, которая выводит JSON

Я хотел бы спросить, можно ли создать страницу, которая выводит данные JSON в ответ на запрос JQuery Ajax?

В не-drupal-способе я просто создал бы php файл, например mypage.php, а затем использовал бы http://example.com/mypage.php?foo=bar как URL-адрес моего запроса AJAX. Затем эта страница выводит данные JSON с помощью json_encode().

Как я могу сделать это с помощью Drupal?

Ответы

Ответ 1

Модуль сервера JSON дает вам вывод JSON для узлов.

Если вы хотите больше настраиваемого JSON, вы можете использовать hook_menu() для создания нового обратного вызова меню (в основном путь URL, указывающий на функцию), а затем используйте:

внутри этого обратного вызова для отправки вывода как JSON, а не по умолчанию HTML.

Ответ 2

Рабочий пример подсказки scott reynen: в drupal 7, в модуле, называемом mymodule, напишите

function mymodule_menu() {
    $items['fancystuff/json'] = array(
        'access callback'   => true, // available to all
        'page callback'     => 'mymodule_fancystuff_object', // defined below
        'delivery callback' => 'drupal_json_output' 
    );
    return $items;
}



function mymodule_fancystuff_object() {
    return array('test'=>true,'dummy'=>array(0,1));
}

очистить кеши, перейти http://example.com/fancystuff/json и посмотреть