Skip to content
Snippets Groups Projects
module.config.php 9.46 KiB
Newer Older
 * 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;
    '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',
            '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',
                    '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',
                    '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',
                    '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',
                    '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' => [
                    'CollectionList' => 'CollectionList',
                    'HierarchyTree'  => 'CollectionHierarchyTree',
                    'Details'        => 'StaffViewArray',
                ],
                'defaultTab' => null,
            ],
        ],
    ],
];

$nonTabRecordActions = [
];


// 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',
];

$routeGenerator = new \VuFind\Route\RouteGenerator($nonTabRecordActions);
$routeGenerator->addRecordRoutes($config, $recordRoutes);
$routeGenerator->addStaticRoutes($config, $staticRoutes);

return $config;