<?php /** * Public facing controller for handling an opensearch interface based on * the standard search form. * * @package docsviewer */ class DocumentationOpenSearchController extends Controller { private static $allowed_actions = array( 'description' ); public function index() { return $this->httpError(404); } public function description() { $viewer = new DocumentationViewer(); if(!$viewer->canView()) { return Security::permissionFailure($this); } if(!Config::inst()->get('DocumentationSearch', 'enabled')) { return $this->httpError('404'); } $data = DocumentationSearch::get_meta_data(); $link = Director::absoluteBaseUrl() . $data['SearchPageLink'] = Controller::join_links( $viewer->Link(), 'results/?Search={searchTerms}&start={startIndex}&length={count}&action_results=1' ); $data['SearchPageAtom'] = $data['SearchPageLink'] . '&format=atom'; return $this->customise( new ArrayData($data) )->renderWith(array( 'OpenSearchDescription' )); } }