Paradise 20 апреля 2011 в 19:35 Каким образом можно в своем модуле сделать действие типа mysite.ru/get_my_ajax, чтобы оно выдавало json? Drupal7 Есть вопрос Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
olk 20 апреля 2011 в 19:51 Во первых надо определить хук menu <?php/** * implementation of hook_menu() */function my_module_name_menu() { $items = array(); $items['get_my_ajax'] = array( 'page callback' => 'my_module_name_get_my_ajax', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items;}?> Во вторых определить саму функцию возвращающую json <?phpfunction my_module_name_get_my_ajax() { if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { $data = 'тут какие то данные которые вы хатите вернуть'; drupal_json_output( array( 'status' => TRUE, 'data' => $data, )); exit(); } else { drupal_not_found(); }}?>
Paradise 20 апреля 2011 в 20:32 olk wrote: Во первых надо определить хук menu Во вторых определить саму функцию возвращающую json О, спасибо большое. Прям целый вечер мне спасли
Ильич Рамирес Санчес 20 апреля 2011 в 21:13 header"olk" wrote: drupal_json_output а ффффф шистйорке нед иво! moar!! вкусно )
olk 21 апреля 2011 в 9:39 "Ильич Рамирес Санчес" wrote: а ффффф шистйорке нед иво! moar!! вкусно ) В 6-ке есть drupal_json(), фактически то же самое
Ильич Рамирес Санчес 21 апреля 2011 в 10:53 "olk" wrote: В 6-ке есть drupal_json(), фактически то же самое фффффф шистьорге приходицо делать вод таг: <?php drupal_set_header('Content-type: text/javascript; charset=utf-8'); drupal_set_header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); drupal_set_header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT'); drupal_set_header('Cache-Control: no-store, no-cache, must-revalidate'); drupal_set_header('Pragma: no-cache');...... $result = array( 'result' => 'success', 'data' => array( 'path' => $path, 'objects' => $objects, 'current_nid' => $parent_nid, ), ); die(drupal_to_js($result) ); ?>
xxandeadxx 21 апреля 2011 в 11:49 "Ильич Рамирес Санчес" wrote: фффффф шистьорге приходицо делать вод таг: о боже о_О
Ильич Рамирес Санчес 21 апреля 2011 в 11:59 "xxandeadxx" wrote: о боже о_О ай щя бродилку па дереву нод пешу. это от нее.
Виктор Степаньк... 21 апреля 2011 в 12:16 "Ильич Рамирес Санчес" wrote: фффффф шистьорге приходицо делать вод таг: Санчес, да вроде не приходится писать так
xxandeadxx 21 апреля 2011 в 12:48 drupal_json(array( 'status' => TRUE, 'data' => array( 'path' => $path, 'objects' => $objects, 'current_nid' => $parent_nid, ), ));
Ильич Рамирес Санчес 21 апреля 2011 в 12:53 "xxandeadxx" wrote: drupal_json( ну да. у меня есть часть привычек с 5ки.
Brulik67 25 ноября 2012 в 11:35 если вы хотите поставить запрет на кэширование, то не проще вместо этого: "Ильич Рамирес Санчес" wrote: <?php drupal_set_header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); drupal_set_header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT'); drupal_set_header('Cache-Control: no-store, no-cache, must-revalidate'); drupal_set_header('Pragma: no-cache');?> написать просто: <?phpdrupal_set_header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');?> а то создаётся впечатление что вы сами не понимаете то чего делаете
Комментарии
Во первых надо определить хук menu
<?php
/**
* implementation of hook_menu()
*/
function my_module_name_menu() {
$items = array();
$items['get_my_ajax'] = array(
'page callback' => 'my_module_name_get_my_ajax',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
?>
Во вторых определить саму функцию возвращающую json
<?php
function my_module_name_get_my_ajax() {
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$data = 'тут какие то данные которые вы хатите вернуть';
drupal_json_output(
array(
'status' => TRUE,
'data' => $data,
));
exit();
}
else {
drupal_not_found();
}
}
?>
О, спасибо большое. Прям целый вечер мне спасли
'delivery callback' => 'ajax_deliver'
header
а ффффф шистйорке нед иво!
moar!!
вкусно )
В 6-ке есть drupal_json(), фактически то же самое
фффффф шистьорге приходицо делать вод таг:
<?php drupal_set_header('Content-type: text/javascript; charset=utf-8');
$result = array(
drupal_set_header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
drupal_set_header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT');
drupal_set_header('Cache-Control: no-store, no-cache, must-revalidate');
drupal_set_header('Pragma: no-cache');
......
'result' => 'success',
'data' => array(
'path' => $path,
'objects' => $objects,
'current_nid' => $parent_nid,
),
);
die(drupal_to_js($result) ); ?>
о боже о_О
ай щя бродилку па дереву нод пешу. это от нее.
Санчес, да вроде не приходится писать так
'status' => TRUE,
'data' => array(
'path' => $path,
'objects' => $objects,
'current_nid' => $parent_nid,
),
));
ну да. у меня есть часть привычек с 5ки.
если вы хотите поставить запрет на кэширование, то
не проще вместо этого:
написать просто:
<?php
drupal_set_header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
?>
а то создаётся впечатление что вы сами не понимаете то чего делаете