From 2db1dd972e79a5b8e5871e71ec27b90f5cb7e36f Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 22 Dec 2016 14:24:12 -0500 Subject: [PATCH] DevTools improvements - Added router configuration - Added home page - Refactored deminifyAction for readability --- .../VuFindDevTools/config/module.config.php | 34 +++++++++++++++ .../Controller/DevtoolsController.php | 41 +++++++++++++++---- .../bootstrap3/templates/devtools/home.phtml | 10 +++++ 3 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 themes/bootstrap3/templates/devtools/home.phtml diff --git a/module/VuFindDevTools/config/module.config.php b/module/VuFindDevTools/config/module.config.php index a5c2b285d05..1a02dce2c45 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 752bb3eb3a1..6d257abe122 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 00000000000..c30e9909eb1 --- /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 -- GitLab