From e2b34023cd4736327a04c74e341e49493e08dacc Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Tue, 10 Feb 2015 17:14:16 +0100 Subject: [PATCH] doc/lib: Add SearchController At the moment only Icinga Web 2's documentation is available for searching. refs #6630 --- .../controllers/SearchController.php | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 modules/doc/application/controllers/SearchController.php diff --git a/modules/doc/application/controllers/SearchController.php b/modules/doc/application/controllers/SearchController.php new file mode 100644 index 000000000..5ba223d00 --- /dev/null +++ b/modules/doc/application/controllers/SearchController.php @@ -0,0 +1,49 @@ +getPath()); + $search = new DocSearchRenderer( + new DocSearchIterator( + $parser->getDocTree()->getIterator(), + new DocSearch($this->params->get('q')) + ) + ); + $this->view->search = $search->setUrl('doc/icingaweb/chapter'); + } + + /** + * Get the path to Icinga Web 2's documentation + * + * @return string + * + * @throws Zend_Controller_Action_Exception If Icinga Web 2's documentation is not available + */ + protected function getPath() + { + $path = Icinga::app()->getBaseDir('doc'); + if (is_dir($path)) { + return $path; + } + if (($path = $this->Config()->get('documentation', 'icingaweb2')) !== null) { + if (is_dir($path)) { + return $path; + } + } + throw new Zend_Controller_Action_Exception( + $this->translate('Documentation for Icinga Web 2 is not available'), + 404 + ); + } +}