materio-base-legacy/materio_search_api_ajax.pages.inc
bachy 3b4f1e024f big big big update
Signed-off-by: bachy <git@g-u-i.net>
2012-10-09 21:30:27 +02:00

60 lines
1.4 KiB
PHP

<?php
function materio_search_api_ajax_search($keys, $page = 0){
// TODO: set research path configurable
$debug = false;
$search_path = "explore";
$_GET['page'] = $page;
$path = $search_path . '/' . $keys ;//. ($page ? '?page='.$page : '');
// dsm($menuhandler, 'menuhandler');
// check if request is ajax, if not rediret to search_api_page page with right keys
if (!$debug && (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest')) {
drupal_goto($path, array(), 301);
exit ;
}
// get results
menu_set_active_item($path);
$return = menu_execute_active_handler($path, FALSE);
//dsm($return, '$return');
if (is_int($return)) {
switch ($return) {
case MENU_NOT_FOUND :
drupal_add_http_header('Status', '404 Not Found');
break;
case MENU_ACCESS_DENIED :
drupal_add_http_header('Status', '403 Forbidden');
break;
case MENU_SITE_OFFLINE :
drupal_add_http_header('Status', '503 Service unavailable');
break;
}
} elseif (isset($return)) {
if (is_array($return)) {
$return = drupal_render($return);
}
$rep = array(
// 'id'=>$id,
'keys'=>$keys,
'search_path'=>$search_path,
'return'=>$return,
);
if ($debug) {
dsm($rep, 'rep');
return "debug display";
}else{
drupal_json_output($rep);
}
}
}