В наше время уже не обойтись без 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