Вам следует создать собственный модуль, как вы предлагаете, и отдельно поместить свое приложение HTML5 в подпапку модуля. При обращении к нему будут использоваться те же относительные пути, которые вы обычно ожидаете, поэтому javascript/app.js
будет работать, если файл существует в пути в папке вашего приложения HTML5.
Для данных JSON ваш пользовательский модуль будет выглядеть примерно так:
function mymodule_menu() {
$items['my/app/data'] = array(
'page callback' => 'mymodule_ajax_callback',
'access callback' => TRUE,
'type' => MENU_CALLBACK
);
return $items;
}
function mymodule_ajax_callback() {
$type = $_POST['type'];
$nodes = db_query("SELECT nid, title FROM {node} WHERE type = :type", array(':type' => $type))->fetchAllKeyed();
drupal_json_output($nodes);
drupal_exit();
}
Этот код определяет путь к меню (используя hook_menu()
) в mp/app/data
, который использует mymodule_ajax_callback()
в качестве обратного вызова страницы.
mymodule_ajax_callback()
просто захватывает все узлы из базы данных, которые соответствуют параметру type
, переданному в AJAX $_POST
, и выводит их идентификатор и заголовок в виде строки JSON на страницу (которая затем будет возвращена как ваш ответ AJAX когда вы запрашиваете /my/app/path
).
Надеюсь, что поможет