В наше время уже не обойтись без ajax на сайте..
Это и красиво и удобно и более целесообразно чем постоянно грузить непонятные страницы..
Как же создать ajax приложение в drupal 7 ?
Необходимо создать модуль для drupal, который даст возможность доставить данные. Для упрощения данные у нас меняться особо не будут (за исключением того, что в них будет GET параметр передаваемый странице).
Создаём папку nloader в папке /site/all/modules
Это будет папка нашего приложения.
В ней создаём файл описания модуля nloader.info:
name = Node loader description = Allows load node's content using AJAX core = 7.x
Теперь сам модуль. Это самый низы (можно сказать плинтус) поэтому будет всего 2 функции.
Файл nloader.module :
<?php
function nloader_menu() {
// страница articles_ajax
$items['articles_ajax'] = array(
'page callback' => 'nloader_output', //функция для вывода данных
'type' => MENU_CALLBACK,
'access arguments' => array('access content'),
);
return $items;
}
function nloader_output() {
$nid = $_GET['nid']; // получаем переменную
// формируем данные
$data = array(
'title' => t('Your title'),
'body' => t('Your body'),
'nid' => $nid,
);
drupal_json_output($data);
}
?>
Думаю тут всё должно быть ясно. Данные формируем в формате json.
Теперь если вы пройдёте по адресу https://ваш_сайт/articles_ajax?nid=123 то увидите строку вроде:
{"title":"Your title","body":"Your body","nid":"123"}
Запросим её при помощи ajax. Пользоваться буду jquery, ибо так проще и быстрее.
$(document).ready(function () {
$.ajax({
url: 'https://localhost/drupal/articles_ajax?nid=123',
dataType: "json",
success: function(data) {
console.log(data);
console.log(data.title);
}
});
});
Теперь в консоли разработчика можно увидеть такое:
Object { title="Your title", body="Your body", nid="123"}
Your title






