diff --git a/module/VuFindDevTools/config/module.config.php b/module/VuFindDevTools/config/module.config.php index a5c2b285d05a16e31387ca9528e29069525d48a7..1a02dce2c45b8b321e0d74d07da362ed9d5d944e 100644 --- a/module/VuFindDevTools/config/module.config.php +++ b/module/VuFindDevTools/config/module.config.php @@ -7,6 +7,40 @@ $config = [ 'devtools' => 'VuFindDevTools\Controller\DevtoolsController', ], ], + 'router' => [ + 'routes' => [ + 'devtools-deminify' => [ + 'type' => 'Zend\Mvc\Router\Http\Literal', + 'options' => [ + 'route' => '/devtools/deminify', + 'defaults' => [ + 'controller' => 'DevTools', + 'action' => 'Deminify', + ] + ] + ], + 'devtools-home' => [ + 'type' => 'Zend\Mvc\Router\Http\Literal', + 'options' => [ + 'route' => '/devtools/home', + 'defaults' => [ + 'controller' => 'DevTools', + 'action' => 'Home', + ] + ] + ], + 'devtools-language' => [ + 'type' => 'Zend\Mvc\Router\Http\Literal', + 'options' => [ + 'route' => '/devtools/language', + 'defaults' => [ + 'controller' => 'DevTools', + 'action' => 'Language', + ] + ] + ], + ], + ], ]; return $config; diff --git a/module/VuFindDevTools/src/VuFindDevTools/Controller/DevtoolsController.php b/module/VuFindDevTools/src/VuFindDevTools/Controller/DevtoolsController.php index 752bb3eb3a175a122652088a64a90bd63f3736a3..6d257abe122251d73ddab328ae3c146b6aa3a9ad 100644 --- a/module/VuFindDevTools/src/VuFindDevTools/Controller/DevtoolsController.php +++ b/module/VuFindDevTools/src/VuFindDevTools/Controller/DevtoolsController.php @@ -42,6 +42,27 @@ use VuFindDevTools\LanguageHelper; */ class DevtoolsController extends \VuFind\Controller\AbstractBase { + /** + * Fetch the query builder for the specified search backend. Return null if + * unavailable. + * + * @param string $id Backend ID + * + * @return object + */ + protected function getQueryBuilder($id) + { + try { + $backend = $this->getServiceLocator() + ->get('VuFind\Search\BackendManager') + ->get($id); + } catch (\Exception $e) { + return null; + } + return is_callable([$backend, 'getQueryBuilder']) + ? $backend->getQueryBuilder() : null; + } + /** * Deminify action * @@ -66,21 +87,23 @@ class DevtoolsController extends \VuFind\Controller\AbstractBase $view->backendParams = $params->getBackendParameters() ->getArrayCopy(); } - try { - $backend = $this->getServiceLocator() - ->get('VuFind\Search\BackendManager') - ->get($params->getSearchClassId()); - } catch (\Exception $e) { - $backend = false; - } - if ($backend && is_callable([$backend, 'getQueryBuilder'])) { - $builder = $backend->getQueryBuilder(); + if ($builder = $this->getQueryBuilder($params->getSearchClassId())) { $view->queryParams = $builder->build($view->query)->getArrayCopy(); } } return $view; } + /** + * Home action + * + * @return \Zend\View\Model\ViewModel + */ + public function homeAction() + { + return $this->createViewModel(); + } + /** * Language action * diff --git a/themes/bootstrap3/templates/devtools/home.phtml b/themes/bootstrap3/templates/devtools/home.phtml new file mode 100644 index 0000000000000000000000000000000000000000..c30e9909eb16bbbcf71d4820aef55b3e03837635 --- /dev/null +++ b/themes/bootstrap3/templates/devtools/home.phtml @@ -0,0 +1,10 @@ +<? + $this->headTitle('Development Tools'); +?> + +<h2>Development Tools</h2> + +<ul> + <li><a href="<?=$this->url('devtools-deminify')?>">Deminifier</a> - Examine minified search data copied from the search database table.</li> + <li><a href="<?=$this->url('devtools-language')?>">Language Details</a> - Summarize status of translations in language files.</li> +</ul> \ No newline at end of file