'Facet API test', 'description' => 'Settings for the Facet API module.', 'page callback' => 'drupal_get_form', 'page arguments' => array('facetapi_test_admin_settings'), 'access arguments' => array('administer search'), ); $items['admin/config/search/facetapi_test/settings'] = array( 'title' => 'Settings', 'weight' => -10, 'type' => MENU_DEFAULT_LOCAL_TASK, ); $items['facetapi_test/search'] = array( 'title' => 'Search', 'description' => 'Fake search page callback.', 'page callback' => 'facetapi_test_search_callback', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); return $items; } /** * Implements hook_facetapi_adapters(). */ function facetapi_test_facetapi_adapters() { return array( 'facetapi_test' => array( 'handler' => array( 'class' => 'FacetapiTestAdapter', ), ), ); } /** * Implements hook_facetapi_query_types(). */ function facetapi_test_facetapi_query_types() { return array( 'facetapi_test_term' => array( 'handler' => array( 'class' => 'FacetapiTestTerm', 'adapter' => 'facetapi_test', ), ), ); } /** * Implements hook_facetapi_searcher_info(). */ function facetapi_test_facetapi_searcher_info() { $info = array(); $info['facetapi_test'] = array( 'label' => t('Facet API Test'), 'adapter' => 'facetapi_test', 'type' => 'test', 'path' => 'admin/config/search/facetapi_test', 'supports facet missing' => FALSE, ); return $info; } /** * Placeholder for the admin settings form. */ function facetapi_test_admin_settings($form, &$form_state) { $form['text'] = array('#markup' => FACETAPI_TEST_FORM_TEXT); return $form; } /** * Implements hook_facetapi_facet_info(). */ function facetapi_test_facetapi_facet_info($searcher_info) { $facets = array(); if ('test' == $searcher_info['type']) { $facets['enabled'] = array( 'label' => t('Enabled facet'), 'description' => t('Facet that tests enabling.'), 'dependency plugins' => array('role'), ); $facets['disabled'] = array( 'label' => t('Disabled facet'), 'description' => t('Facet that tests disabling.'), 'dependency plugins' => array('role'), ); $facets['colon:test'] = array( 'label' => t('Colon test'), 'description' => t('Test facets names with colonss.'), 'dependency plugins' => array('role'), ); } return $facets; } /** * Fake search page callback. */ function facetapi_test_search_callback() { $build = array(); if (!$adapter = facetapi_adapter_load('facetapi_test')) { throw new Exception(t('Error loading adapter.')); } $query = new stdClass(); $adapter->addActiveFilters($query); $keys = isset($_GET['keys']) ? $_GET['keys'] : arg(2); $adapter->setSearchKeys($keys); $build['placeholder'] = array( '#markup' => t('Placeholder'), ); return $build; }