Страница без темы и разметки

Главные вкладки

Аватар пользователя mialpet mialpet 14 марта 2013 в 0:04

Здравствуйте!
Подскажите пожалуйста что нужно исправить в коде чтобы по адресу получать только результат работы коллбэка без разметки вообще (без doctype и т.д. в общем надпись 'Hello, world!' на белом фоне)

<?php
/**
* Implements hook_menu()
*/
function mialpet_taobao_project_menu()
    {
    
$items = array(); //return
    
    
$items['translator'] = array
        (
        
'access callback' => TRUE,
        
'description' => t('Переводчик запроса'),
        
'title' => '',
        
'page callback' => 'mialpet_taobao_project_page_callback',
        
'type' => MENU_CALLBACK,
        
'delivery callback' => 'mialpet_taobao_project_delivery_callback',
        );
    
    return 
$items;
    }
    
function 
mialpet_taobao_project_page_callback()
    {
    return 
'Hello, world!';
    }
    
function 
mialpet_taobao_project_delivery_callback($page_callback_result)
    {
    return 
$page_callback_result;
    }
?>

Сейчас он только белый лист выводит, а значит ошибка и связана она с delivery callback (если ее убрать то все выводится как обычно вместе с разметкой).

Комментарии

Аватар пользователя mialpet mialpet 14 марта 2013 в 16:23

"OldWarrior" wrote:
Не проще необходимые шаблоны tpl.php очистить? :-)

Не по фен-шую это, логика в представлении, короче тему поменял и лови косяки.
"deb" wrote:
print 'hello world';
drupal_exit();

А это и вовсе жесть Smile хотя вариант конечно, если ничего другого то так и сделаю, но хочется чтоб по технологии все. Я просто где-то видел что можно управлять выводом в друпале, вот как? (не шаблонами)

Вообще суть в том что мне нужно по определенному адресу получать результат работы скрипта чтобы хватать его ajax запросом.

Аватар пользователя OldWarrior OldWarrior 14 марта 2013 в 18:33

"mialpet" wrote:
Вообще суть в том что мне нужно по определенному адресу получать результат работы скрипта чтобы хватать его ajax запросом.

Дык есть же друпаловские функции для работы с ajax-ответами. Через hook_menu, если не ошибаюсь, это делается.

Аватар пользователя mialpet mialpet 14 марта 2013 в 19:09

Собственно в моем коде hook_menu и есть, но как я понимаю там строятся запросы, а мне нужна страница которая будет формировать ответ.

Аватар пользователя OldWarrior OldWarrior 14 марта 2013 в 23:09

"mialpet" wrote:
Собственно в моем коде hook_menu и есть, но как я понимаю там строятся запросы, а мне нужна страница которая будет формировать ответ.

Да всё равно делается через hook_menu. Только 'type' => MENU_CALLBACK, по-моему, заменяется на другой. Навскидку, к сожалению, не скажу - ajax'ом на друпале уже как-то давно не занимался. В общем, какие-то флаги/признаки коллбеков устанавливаются - т.е. что это именно ajax. В результате возвращается нетемизированный (какбэ - raw) ответ.

Зы. Рекомендую заглянуть в официальную часть, посвящённую ajax'у.
http://api.drupal.org/api/drupal/includes!ajax.inc/group/ajax/7

Аватар пользователя deb deb 25 марта 2013 в 10:05

"mialpet" wrote:
А это и вовсе жесть Smile хотя вариант конечно, если ничего другого то так и сделаю, но хочется чтоб по технологии все. Я просто где-то видел что можно управлять выводом в друпале, вот как? (не шаблонами)

Это не жесть, а патентованный способ вывести данные не дожидаясь вызова delivery callback.