Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
module.config.php 14.42 KiB
<?php
namespace finc\Module\Configuration;

$config = [
    'forms' => [
        'dds-form' => require 'dds-form.php',
    ],
    'listeners' => [
        'finc\Listener\I18nDataDirListener',
    ],
    'service_manager' => [
        'factories' => [
            'finc\Auth\ILSAuthenticator' => 'finc\Auth\ILSAuthenticatorFactory',
            'finc\Cache\Manager' => 'VuFind\Cache\ManagerFactory',
            'finc\Config\BranchesReader' => 'VuFind\Config\YamlReaderFactory',
            'finc\ILS\Connection' => 'VuFind\ILS\ConnectionFactory',
            'finc\ILS\Logic\Holds' => 'VuFind\ILS\Logic\LogicFactory',
            'finc\Rewrite\EblRewrite' => 'finc\Rewrite\EblRewriteFactory',
            'finc\Listener\I18nDataDirListener' => 'Zend\ServiceManager\Factory\InvokableFactory',
            'finc\Cover\Loader' => 'VuFind\Cover\LoaderFactory',
            'finc\Cover\Router' => 'finc\Cover\RouterFactory',
        ],
        'delegators' => [
            'VuFindSearch\Service' => [
                'finc\Service\MungerInjectionDelegatorFactory',
            ],
            'Zend\Mvc\I18n\Translator' => [
                'finc\I18n\Translator\ZendI18nResourcesInjector',
            ],
        ],
        'aliases' => [
            'MvcTranslator' => 'Zend\Mvc\I18n\Translator',
            'VuFind\Auth\ILSAuthenticator' => 'finc\Auth\ILSAuthenticator',
            'VuFind\Cache\Manager' => 'finc\Cache\Manager',
            'VuFind\ILS\Connection' => 'finc\ILS\Connection',
            'VuFind\ILS\Logic\Holds' => 'finc\ILS\Logic\Holds',
            'VuFind\Cover\Loader' => 'finc\Cover\Loader',
            'VuFind\Cover\Router' => 'finc\Cover\Router',
        ]
    ],
    'controllers' => [
        'factories' => [
            'finc\Controller\MyResearchController' => 'VuFind\Controller\AbstractBaseFactory',
            'finc\Controller\RecordController' => 'VuFind\Controller\AbstractBaseWithConfigFactory',
            'finc\Controller\AmslResourceController' => 'finc\Controller\AmslResourceControllerFactory',
            'finc\Controller\DocumentDeliveryServiceController' => 'finc\Controller\DocumentDeliveryServiceControllerFactory',
            'finc\Controller\Admin\I18nController' => 'finc\Controller\Admin\I18nControllerFactory',
            'finc\Controller\RecordsController' => 'VuFind\Controller\AbstractBaseFactory',
            'finc\Controller\CartController' => 'VuFind\Controller\CartControllerFactory',
        ],
        'aliases' => [
            'AdminI18n' => 'finc\Controller\Admin\I18nController',
            'resources' => 'Resources',
            'Resources' => 'finc\Controller\AmslResourceController',
            'dds' => 'finc\Controller\DocumentDeliveryServiceController',
            'VuFind\Controller\MyResearchController' => 'finc\Controller\MyResearchController',
            'VuFind\Controller\RecordController' => 'finc\Controller\RecordController',
            'VuFind\Controller\RecordsController' => 'finc\Controller\RecordsController',
            'Cart' => 'finc\Controller\CartController',
            'cart' => 'finc\Controller\CartController'
        ],
    ],
    'controller_plugins' => [
        'factories' => [
            'finc\Controller\Plugin\EmailHold' => 'finc\Controller\Plugin\EmailHoldFactory',
            'finc\Controller\Plugin\NewItems' => 'finc\Controller\Plugin\NewItemsFactory'
        ],
        'aliases' => [
            'emailHold' => 'finc\Controller\Plugin\EmailHold',
            'newItems' => 'finc\Controller\Plugin\NewItems'
        ]
    ],
    'view_helpers'       => [
        'aliases'   => [
            'formLabel' => 'finc\Form\View\Helper\FormLabel',
        ],
        'factories' => [
            'finc\Form\View\Helper\FormLabel' => 'Zend\ServiceManager\Factory\InvokableFactory',
        ],
    ],
    'vufind' => [
        'plugin_managers' => [
            'ajaxhandler' => [
                'factories' => [
                    'finc\AjaxHandler\GetAdditionalAccountInfo' =>
                        'VuFind\AjaxHandler\AbstractIlsAndUserActionFactory',
                    'finc\AjaxHandler\GetIlsStatus' =>
                        'VuFind\AjaxHandler\GetIlsStatusFactory',
                    'finc\AjaxHandler\GetItemStatuses' =>
                        'VuFind\AjaxHandler\GetItemStatusesFactory',
                    'finc\AjaxHandler\GetResolverLinks' =>
                        'finc\AjaxHandler\GetResolverLinksFactory',
                    'finc\AjaxHandler\GetRecordCover' =>
                        'finc\AjaxHandler\GetRecordCoverFactory'
                ],
                'aliases' => [
                    'getAdditionalAccountInfo' =>
                        'finc\AjaxHandler\GetAdditionalAccountInfo',
                    'getIlsStatus' =>
                        'finc\AjaxHandler\GetIlsStatus',
                    'getItemStatuses' =>
                        'finc\AjaxHandler\GetItemStatuses',
                    'getResolverLinks' =>
                        'finc\AjaxHandler\GetResolverLinks',
                    'getRecordCover' =>
                        'finc\AjaxHandler\GetRecordCover',
                ]
            ],
            'auth' => [
                'factories' => [
                    'finc\Auth\ILS' => \finc\Auth\ILSFactory::class
                ],
                'aliases' => [
                    'VuFind\Auth\ILS' => 'finc\Auth\ILS',
                ]
            ],
            'ils_driver' => [
                'factories' => [
                    'finc\ILS\Driver\FincILS' => \finc\ILS\Driver\FincILSFactory::class,
                    'finc\ILS\Driver\PAIA' => \finc\ILS\Driver\PAIAFactory::class,
                    //finctheca is deprecated: Remove when Bibliotheca support ends
                    'finc\ILS\Driver\FincTheca' => \finc\ILS\Driver\FincILSFactory::class,
                    'finc\ILS\Driver\FincLibero' => \finc\ILS\Driver\FincILSFactory::class,
                ],
                'aliases' => [
                    'fincils' => 'finc\ILS\Driver\FincILS',
                    'paia' => 'finc\ILS\Driver\PAIA',
                    'finctheca' => 'finc\ILS\Driver\FincTheca',
                    'finclibero' => 'finc\ILS\Driver\FincLibero'
                ],
                'delegators' => [
                    'finc\ILS\Driver\FincLibero' => [
                        'finc\ILS\Driver\StaticStatusRulesDelegatorFactory'
                    ]
                ]
            ],
            'recommend' => [
                'factories' => [
                    'finc\Recommend\EbscoResults' => \finc\Recommend\EbscoResultsFactory::class
                ],
                'aliases' => [
                    'ebscoresults' => 'finc\Recommend\EbscoResults',
                    'interlibraryloan' => 'finc\Recommend\InterlibraryLoan',
                ]
            ],
            'recorddriver' => [
                'factories' => [
                    'finc\RecordDriver\SolrDefault' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrMarc' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrMarcFinc' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrMarcFincPDA' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrMarcRemote' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrMarcRemoteFinc' => 'VuFind\RecordDriver\SolrDefaultFactory',
                    'finc\RecordDriver\SolrAI' => 'finc\RecordDriver\SolrAIFactory',
                    'finc\RecordDriver\SolrIS' => 'VuFind\RecordDriver\AbstractBaseFactory',
                    'finc\RecordDriver\SolrLido' => 'finc\RecordDriver\SolrLidoFactory',
                    'finc\RecordDriver\SolrLidoNdl' => 'finc\RecordDriver\SolrLidoFactory',
                    'finc\RecordDriver\SolrDico' => 'VuFind\RecordDriver\SolrDefaultWithoutSearchServiceFactory',
                    'finc\RecordDriver\FincMissing' => 'VuFind\RecordDriver\AbstractBaseFactory',
                ],
                'aliases' => [
                    'VuFind\RecordDriver\SolrDefault' => 'finc\RecordDriver\SolrDefault',
                    'VuFind\RecordDriver\SolrMarc' => 'finc\RecordDriver\SolrMarc',
                    'solrmarcfinc' => 'finc\RecordDriver\SolrMarcFinc',
                    'solrmarcfincpda' => 'finc\RecordDriver\SolrMarcFincPDA',
                    'VuFind\RecordDriver\SolrMarcRemote' => 'finc\RecordDriver\SolrMarcRemote',
                    'solrmarcremotefinc' => 'finc\RecordDriver\SolrMarcRemoteFinc',
                    'solrai' => 'finc\RecordDriver\SolrAI',
                    'solris' => 'finc\RecordDriver\SolrIS',
                    'solrlido' => 'finc\RecordDriver\SolrLido',
                    'solrlidondl' => 'finc\RecordDriver\SolrLidoNdl',
                    'solrdico' => 'finc\RecordDriver\SolrDico',
                    'missing' => 'finc\RecordDriver\FincMissing'
                ],
                'delegators' => [
                    'finc\RecordDriver\SolrMarc' => [
                        'VuFind\RecordDriver\IlsAwareDelegatorFactory',
                    ],
                    'finc\RecordDriver\SolrMarcFinc' => [
                        'VuFind\RecordDriver\IlsAwareDelegatorFactory',
                        'finc\RecordDriver\SolrMarcUrlRulesDelegatorFactory',
                    ],
                    'finc\RecordDriver\SolrMarcFincPDA' => [
                        'VuFind\RecordDriver\IlsAwareDelegatorFactory',
                    ],
                    'finc\RecordDriver\SolrMarcRemote' => [
                        'VuFind\RecordDriver\IlsAwareDelegatorFactory',
                    ],
                    'finc\RecordDriver\SolrMarcRemoteFinc' => [
                        'VuFind\RecordDriver\IlsAwareDelegatorFactory',
                    ],
                ]
            ],
            'recordtab' => [
                'factories' => [
                    'finc\RecordTab\HierarchyTree' => 'finc\RecordTab\HierarchyTreeFactory',
                ],
                'aliases' => [
                    'VuFind\RecordTab\HierarchyTree' => 'finc\RecordTab\HierarchyTree',
                    'staffviewai' => 'finc\RecordTab\StaffViewAI',
                    'acquisitionpda' => 'finc\RecordTab\AcquisitionPDA',
                    'topics' => 'finc\RecordTab\Topics',
                    'descriptionlido' => 'finc\RecordTab\DescriptionLido',
                ],
            ],
            'resolver_driver' => [
                'factories' => [
                    'finc\Resolver\Driver\Ezb' => 'finc\Resolver\Driver\FincResolverDriverFactory',
                    'finc\Resolver\Driver\Redi' => 'finc\Resolver\Driver\FincResolverDriverFactory'
                ],
                'aliases' => [
                    'ezb' => 'finc\Resolver\Driver\Ezb',
                    'redi' => 'finc\Resolver\Driver\Redi'
                ]
            ],
            'hierarchy_treedataformatter' => [
                'factories' => [
                    'finc\Hierarchy\TreeDataFormatter\NoCollections' =>
                        'Zend\ServiceManager\Factory\InvokableFactory',
                ],
                'aliases' => [
                    'json' => 'finc\Hierarchy\TreeDataFormatter\NoCollections',
                ],
            ],
            'hierarchy_treedatasource' => [
                'factories' => [
                    'finc\Hierarchy\TreeDataSource\Solr' => 'VuFind\Hierarchy\TreeDataSource\SolrFactory',
                ],
                'aliases' => [
                    'solr' => 'finc\Hierarchy\TreeDataSource\Solr',
                ],
            ],
            'hierarchy_treerenderer' => [
                'factories' => [
                    'finc\Hierarchy\TreeRenderer\JSTree' => 'VuFind\Hierarchy\TreeRenderer\JSTreeFactory'
                ],
                'delegators' => [
                    'finc\Hierarchy\TreeRenderer\JSTree' => [
                        'finc\Hierarchy\TreeRenderer\JSTreeDelegatorFactory'
                    ]
                ],
                'aliases' => [
                    'jstree' => 'finc\Hierarchy\TreeRenderer\JSTree'
                ],
            ],
        ],
    ],
    // Authorization configuration:
    'zfc_rbac' => [
        'vufind_permission_provider_manager' => [
            'factories' => [
                'catUserType' => \finc\Role\PermissionProvider\CatUserTypeFactory::class,
                'ipRangeFoFor' => \finc\Role\PermissionProvider\IpRangeFoForFactory::class,
                'ipRegExFoFor' => \finc\Role\PermissionProvider\IpRegExFoForFactory::class,
                'finc\Role\PermissionProvider\CatUserType' =>
                    \finc\Role\PermissionProvider\CatUserTypeFactory::class,
                'finc\Role\PermissionProvider\IpRangeFoFor' =>
                    \finc\Role\PermissionProvider\IpRangeFoForFactory::class,
                'finc\Role\PermissionProvider\IpRegExFoFor' =>
                    \finc\Role\PermissionProvider\IpRegExFoForFactory::class,
            ],
            'aliases' => [
                'CatUserType' => 'finc\Role\PermissionProvider\CatUserType',
                'IpRangeFoFor' => 'finc\Role\PermissionProvider\IpRangeFoFor',
                'IpRegExFoFor' => 'finc\Role\PermissionProvider\IpRegExFoFor',
                'IpRange' => 'VuFind\Role\PermissionProvider\IpRange',
            ]
        ]
    ],
    'router' => [
        'routes' => [
            'admin' => [
                'child_routes' => [
                    'i18n' => [
                        'type' => 'Zend\Router\Http\Segment',
                        'options' => [
                            'route'    => '/I18n[/:action]',
                            'defaults' => [
                                'controller' => 'AdminI18n',
                                'action'     => 'Home',
                            ]
                        ]
                    ],
                ],
            ],
        ],
    ],
];

$nonTabRecordActions = [
    'PDA', 'EmailHold', 'ReportErrors'
];

// Define record view routes -- route name => controller
// Define record view routes once again to add new nonTabRecordActions
$recordRoutes = [
    'record' => 'Record',
    'resources' => 'Resources'
];

// Define static routes -- Controller/Action strings
$staticRoutes = [
    'MyResearch/Acquisition',
    'MyResearch/ResetPassword',
    'dds/Home',
    'Record/EblLink'
];

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

return $config;