60
materio_search_api_ajax.pages.inc
Normal file
60
materio_search_api_ajax.pages.inc
Normal file
@@ -0,0 +1,60 @@
|
||||
<?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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user