123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?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);
- }
-
- }
- }
|