<?php /** * Copyright (C) 2020 Leipzig University Library * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * @author Sebastian Kehr <kehr@ub.uni-leipzig.de> * @author Gregor Gawol <gawol@ub.uni-leipzig.de> * @author Alexander Purr <purr@ub.uni-leipzig.de> * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2 */ use VuFind\Db\Table\Tags as BaseTagsTable; use fid_bbi\Db\Table\Tags as BBITagsTable; use fid_bbi\Helper\Rss; use VuFind\Db\Row\Tags as BaseTagsRow; use VuFind\Db\Table\CaseSensitiveTagsFactory; use fid_bbi\Controller\RecordController; use fid_bbi\Controller\MyResearchController; use fid\Controller\RecordControllerDelegatorFactory; $config = [ 'forms' => [ 'user-init-form' => require 'user-init-form.php', 'user-create-form' => require 'user-create-form.php', 'user-update-form' => require 'user-update-form.php', 'fid-acquisition-form' => require 'fid-acquisition-form.php', ], 'controllers' => [ 'factories' => [ 'fid_bbi\Controller\FeedbackController' => 'VuFind\Controller\AbstractBaseFactory', 'fid_bbi\Controller\SearchController' => 'VuFind\Controller\AbstractBaseFactory', 'fid_bbi\Controller\MyResearchController' => \fid\Controller\MyResearchControllerFactory::class, 'fid_bbi\Controller\RecordController' => 'VuFind\Controller\AbstractBaseWithConfigFactory', 'fid_bbi\Controller\BrowseController' => 'VuFind\Controller\AbstractBaseWithConfigFactory', ], 'aliases' => [ 'feedback' => 'fid_bbi\Controller\FeedbackController', 'Feedback' => 'fid_bbi\Controller\FeedbackController', 'Search' => 'fid_bbi\Controller\SearchController', 'search' => 'fid_bbi\Controller\SearchController', 'Record' => 'fid_bbi\Controller\RecordController', 'record' => 'fid_bbi\Controller\RecordController', 'VuFind\Controller\MyResearchController' => 'fid_bbi\Controller\MyResearchController', 'VuFind\Controller\BrowseController' => 'fid_bbi\Controller\BrowseController', ], 'delegators' => [ RecordController::class => [ RecordControllerDelegatorFactory::class, ], ], ], 'router' => [ 'routes' => [ 'myresearch' => [ 'type' => Regex::class, 'options' => [ 'regex' => '/(?i)myresearch', 'spec' => '/myresearch' ], 'may_terminate' => true, 'child_routes' => [ 'databases' => [ 'type' => Regex::class, 'options' => [ 'regex' => '/(?i)(databases|dbis|licenses)', 'defaults' => [ 'controller' => MyResearchController::class, 'action' => 'databases', ], 'spec' => '/databases' ], ], ], ], ], ], 'view_helpers' => [ 'aliases' => [ 'rss' => Rss::class, ], 'factories' => [ Rss::class => 'fid_bbi\Helper\Factory::getRss', ], ], 'vufind' => [ 'plugin_managers' => [ 'recorddriver' => [ 'factories' => [ 'finc\RecordDriver\SolrMarcFinc' => 'fid_bbi\RecordDriver\Factory::getSolrMarcFinc', ], ], 'recordtab' => [ 'factories' => [ 'hierarchytree' => 'finc\RecordTab\Factory::getHierarchyTree', 'fid_bbi\RecordTab\Worldcat' => 'fid_bbi\RecordTab\WorldcatFactory::getWorldcat', ], 'aliases' => [ 'Worldcat' => 'fid_bbi\RecordTab\Worldcat', 'fid\RecordTab\Worldcat' => 'fid_bbi\RecordTab\Worldcat', ], 'invokables' => [ 'staffviewai' => 'finc\RecordTab\StaffViewAI', 'acquisitionpda' => 'finc\RecordTab\AcquisitionPDA', 'topics' => 'finc\RecordTab\Topics', 'descriptionlido' => 'finc\RecordTab\DescriptionLido', ], ], 'recommend' => [ 'factories' => [ 'fid_bbi\Recommend\FavoriteFacets' => 'fid_bbi\Recommend\Factory::getFavoriteFacets', ], 'aliases' => [ 'VuFind\Recommend\FavoriteFacets' => 'fid_bbi\Recommend\FavoriteFacets', ] ], 'db_table' => [ 'aliases' => [ BaseTagsTable::class => BBITagsTable::class, 'VuFind\Db\Table\ResourceTags' => 'fid_bbi\Db\Table\ResourceTags' ], 'factories' => [ BBITagsTable::class => CaseSensitiveTagsFactory::class, 'fid_bbi\Db\Table\ResourceTags' => CaseSensitiveTagsFactory::class ] ], 'db_row' => [ 'aliases' => [ 'fid_bbi\Db\Row\Tags' => BaseTagsRow::class, 'fid_bbi\Db\Row\ResourceTags' => 'VuFind\Db\Row\ResourceTags' ] ] ], 'recorddriver_tabs' => [ 'finc\RecordDriver\SolrDefault' => [ 'tabs' => [ 'Description' => 'Description', 'Worldcat' => 'Worldcat', 'Holdings' => null, 'TOC' => 'TOC', 'UserComments' => 'UserComments', 'Reviews' => 'Reviews', 'Excerpt' => 'Excerpt', 'Preview' => 'preview', 'HierarchyTree' => 'HierarchyTree', 'Map' => 'Map', 'Similar' => null, 'Details' => 'StaffViewArray', ], 'defaultTab' => 'Worldcat', ], 'finc\RecordDriver\SolrMarcFinc' => [ 'tabs' => [ 'Description' => 'Description', 'Worldcat' => 'Worldcat', 'TOC' => 'TOC', 'UserComments' => 'UserComments', 'Reviews' => 'Reviews', 'Excerpt' => 'Excerpt', 'Preview' => 'preview', 'HierarchyTree' => 'HierarchyTree', 'Map' => 'Map', 'Similar' => null, 'Details' => 'StaffViewMARC', ], 'defaultTab' => 'Worldcat', ], 'finc\RecordDriver\SolrAI' => [ 'tabs' => [ 'Description' => 'Description', 'Holdings' => 'null', 'TOC' => 'TOC', 'UserComments' => 'UserComments', 'Reviews' => 'Reviews', 'Excerpt' => 'Excerpt', 'Preview' => 'preview', 'HierarchyTree' => 'HierarchyTree', 'Map' => 'Map', 'Similar' => null, 'Details' => 'StaffViewAI', ], 'defaultTab' => 'Holdings', ], ], 'recorddriver_collection_tabs' => [ 'VuFind\RecordDriver\AbstractBase' => [ 'tabs' => [ 'CollectionList' => 'CollectionList', 'HierarchyTree' => 'CollectionHierarchyTree', 'Details' => 'StaffViewArray', ], 'defaultTab' => null, ], ], ], ]; $nonTabRecordActions = [ 'PDA', 'EmailHold', 'ReportErrors', 'Acquisition' ]; // Define record view routes -- route name => controller // Define record view routes once again to add new nonTabRecordActions $recordRoutes = [ 'record' => 'Record', 'export' => 'Export', 'resources' => 'Resources' ]; // Define static routes -- Controller/Action strings $staticRoutes = [ 'MyResearch/Acquisition', 'MyResearch/ResetPassword', 'MyResearch/Usertags', 'dds/Home', 'dds/Email', 'Record/EblLink', 'Search/Sources' ]; $routeGenerator = new \VuFind\Route\RouteGenerator($nonTabRecordActions); $routeGenerator->addRecordRoutes($config, $recordRoutes); $routeGenerator->addStaticRoutes($config, $staticRoutes); return $config;