diff --git a/module/fid/src/Helper/SearchTabs.php b/module/fid/src/Helper/SearchTabs.php new file mode 100644 index 0000000000000000000000000000000000000000..2a01a5397053850b24623d888f58a1d4ebb15ea8 --- /dev/null +++ b/module/fid/src/Helper/SearchTabs.php @@ -0,0 +1,98 @@ +<?php +/** + * "Search tabs" view helper + * + * PHP version 7 + * + * Copyright (C) Villanova University 2010. + * Copyright (C) The National Library of Finland 2015-2016. + * + * 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 + * + * @category VuFind + * @package View_Helpers + * @author Robert Lange <lange@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + */ +namespace fid\Helper; + + +/** + * "Search tabs" view helper + * + * @category VuFind + * @package View_Helpers + * @author Robert Lange <lange@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + */ +class SearchTabs extends \VuFind\View\Helper\Root\SearchTabs +{ + /** + * Create information representing a basic search tab. + * + * @param string $id Tab ID + * @param string $class Search class ID + * @param string $label Display text for tab + * @param string $newUrl Target search URL + * @param string $permissionName Name of a permissionrule + * + * @return array + */ + protected function createBasicTab($id, $class, $label, $newUrl, $permissionName) + { + $retval = parent::createBasicTab($id, $class, $label, $newUrl, $permissionName); + $retval['hiddenFilters'] = $this->helper->getTabFilterConfig()[$id] ?? null; + + return $retval; + } + + /** + * Create information representing a selected tab. + * + * @param string $id Tab ID + * @param string $class Search class ID + * @param string $label Display text for tab + * @param string $permissionName Name of a permissionrule + * + * @return array + */ + protected function createSelectedTab($id, $class, $label, $permissionName) + { + $retval = parent::createSelectedTab($id, $class, $label, $permissionName); + $retval['hiddenFilters'] = $this->helper->getTabFilterConfig()[$id] ?? null; + + return $retval; + } + + /** + * Create information representing a tab linking to "search home." + * + * @param string $id Tab ID + * @param string $class Search class ID + * @param string $label Display text for tab + * @param array $filters Tab filters + * @param string $permissionName Name of a permissionrule + * + * @return array + */ + protected function createHomeTab($id, $class, $label, $filters, $permissionName) + { + $retval = parent::createHomeTab($id, $class, $label, $filters, $permissionName); + $retval['hiddenFilters'] = $this->helper->getTabFilterConfig()[$id] ?? null; + + return $retval; + } +} diff --git a/themes/fid/theme.config.php b/themes/fid/theme.config.php index 2cd775bdcd442540fc1eb8808fdadca1fbe2a419..c0d626e98cc96fc9716e5634f5a86cdb4a9804ec 100644 --- a/themes/fid/theme.config.php +++ b/themes/fid/theme.config.php @@ -21,4 +21,12 @@ return [ 'extends' => 'finc', + 'helpers' => [ + 'factories' => [ + 'fid\Helper\SearchTabs' => 'VuFind\View\Helper\Root\SearchTabsFactory', + ], + 'aliases' => [ + 'searchTabs' => 'fid\Helper\SearchTabs', + ] + ] ]; \ No newline at end of file