diff --git a/composer.local.0.finc.json b/composer.local.0.finc.json index 87f48624f598df40c8c23365e728c7e1970d3b7c..4bc3bf8c419127ef97648a6a49be4b036b869eb8 100644 --- a/composer.local.0.finc.json +++ b/composer.local.0.finc.json @@ -5,7 +5,8 @@ "require": { "finc/rules-evaluator": "0.0.3", "sabre/vobject": "3.5.3", - "symfony/filesystem": "^3.4" + "symfony/filesystem": "^3.4", + "zendframework/zend-i18n-resources": "^2.6" }, "scripts": { "post-install-cmd": ["@copy-themes-force", "@dump-modules"], diff --git a/composer.lock b/composer.lock index 33c89be907c06555d72b30a797070c36918e393e..fea3811156d8408724bdb835ae0546d9209a9d2e 100644 --- a/composer.lock +++ b/composer.lock @@ -6802,6 +6802,7 @@ "rbac", "zf2" ], + "abandoned": true, "time": "2017-05-07T08:45:27+00:00" }, { diff --git a/local/config/vufind/facets.ini b/local/config/vufind/facets.ini index 133d784c552bfeb77f4208e6b24049b17271c6a3..fa1d561991f2009e3415d5c5385fc723d8768a43 100644 --- a/local/config/vufind/facets.ini +++ b/local/config/vufind/facets.ini @@ -241,12 +241,109 @@ hide_facets = "genre_facet,era_facet,geographic_facet" ; Special terms (key), which can't / shouldn't be translated but marked as other language (value) for BARF reasons [LanguageTags] -De Gruyter Journals / Social Sciences and Humanities = "en" -Free = "en" -JSTOR Music Archive = "en" -Local = "en" -Microform = "en" -Open Access = "en" -Online = "en" -Proceeding = "en" -Répertoire International des Sources Musicales = "fr" +en[] = "American Museum of Natural History" +en[] = "American Museum of Natural History Library" +en[] = "Article" +en[] = "Article, E-Article" +en[] = "BASE - Bielefeld Academic Search Engine" +en[] = "Biodiversity Heritage Library (BHL)" +en[] = "Bioregional Assessment Program (isOwnedBy)" +en[] = "Book, E-Book" +en[] = "CEEOL Central and Eastern European Online Library" +en[] = "Charles I King of England" +en[] = "Charles I, King of England," +en[] = "Charles II, King of England," +en[] = "Dance in Video" +en[] = "De Gruyter Journals / Social Sciences and Humanities" +en[] = "Department of Education (isOwnedBy)" +en[] = "DOAJ Directory of Open Access Journals" +en[] = "Early English Books Online" +en[] = "Early English Books Online EEBO" +en[] = "EconStor (German National Library of Economics, ZBW)" +en[] = "Eighteenth Century Collections Online / ECCO" +en[] = "Elsevier Journals" +en[] = "England and Wales Parliament" +en[] = "England and Wales Sovereign (1625-1649 : Charles I)" +en[] = "England and Wales. Parliament" +en[] = "England and Wales. Sovereign (1625-1649 : Charles I)" +en[] = "E-Article" +en[] = "E-Proceedings" +en[] = "Field Museum of Natural History Library" +en[] = "Free" +en[] = "Harvard University, Museum of Comparative Zoology, Ernst Mayr Library" +en[] = "IEEE Xplore Library" +en[] = "IMSLP (Petrucci Library)" +en[] = "JSTOR Arts & Sciences I Archive" +en[] = "JSTOR Arts & Sciences II Archive" +en[] = "JSTOR Arts & Sciences III Archive" +en[] = "JSTOR Arts & Sciences IV Archive" +en[] = "JSTOR Arts & Sciences V Archive" +en[] = "JSTOR Arts & Sciences VI Archive" +en[] = "JSTOR Arts & Sciences VII Archive" +en[] = "JSTOR Arts & Sciences VIII Archive" +en[] = "JSTOR Arts & Sciences IX Archive" +en[] = "JSTOR Arts & Sciences X Archive" +en[] = "JSTOR Arts & Sciences XO Archive" +en[] = "JSTOR Business & Economics" +en[] = "JSTOR Business I Archive" +en[] = "JSTOR Business II Archive" +en[] = "JSTOR Business III Archive" +en[] = "JSTOR Business IV Archive" +en[] = "JSTOR Business V Archive" +en[] = "JSTOR Life Sciences Archive" +en[] = "JSTOR Music" +en[] = "Kit" +en[] = "Local" +en[] = "Microform" +en[] = "Music Online Reference" +en[] = "NASA Technical Reports Server (NTRS)" +en[] = "National Bureau of Economic Research" +en[] = "Natural History Museum Library, London" +en[] = "Notated Music" +en[] = "not assigned" +en[] = "No linguistic content" +en[] = "Open Access" +en[] = "Online" +en[] = "Oxford University Research Archive (ORA)" +en[] = "PANGAEA - Data Publisher for Earth & Environmental Science (AWI Bremerhaven/MARUM Bremen)" +en[] = "Proceeding" +en[] = "Publication Server of Goethe University Frankfurt am Main" +en[] = "Rumsey Collection" +en[] = "Saskatchewan Natural History Society" +en[] = "Sheet" +en[] = "Smithsonian Institution Archives" +en[] = "Smithsonian Libraries" +en[] = "The Pennsylvania State University CiteSeerX Archives" +en[] = "Thesis" +en[] = "TwoDimensionalMovingImage" +en[] = "United States Congress House" +en[] = "United States Congress House Committee on Claims" +en[] = "United States Congress House Committee on Invalid Pensions" +en[] = "United States Congress Senate" +en[] = "United States Congress Senate Committee on Pensions" +en[] = "United States Congress House Committee on the Judiciary" +en[] = "United States War Dept" +en[] = "United States Dept. of the Treasury" +en[] = "United States Congress Senate Committee on Claims" +en[] = "United States Congress House Committee on Military Affairs" +en[] = "United States Court of Claims (1855-1982)" +en[] = "United States Congress Senate Committee on Military Affairs" +en[] = "United States Army Corps of Engineers" +en[] = "United States War Dept Engineer Dept" +en[] = "United States War Dept Ordnance Dept" +en[] = "United States Congress House Committee on War Claims" +en[] = "United States Congress House Committee on Interstate and Foreign Commerce" +en[] = "United States Congress Senate Committee on Commerce" +en[] = "United States Congress House Committee on Rules" +en[] = "United States Dept. of the Interior" +en[] = "United States Congress House Committee on Public Lands" +en[] = "United States Dept. of State" +en[] = "United States Congress House Committee on Pensions" +en[] = "United States Congress House Committee on the District of Columbia" +en[] = "United States Congress Senate Committee on the District of Columbia" +en[] = "United States Executive Office of the President Bureau of the Budget (1939-1970)" +en[] = "University Library, University of Illinois Urbana Champaign" +en[] = "University of California Libraries (archive.org)" +en[] = "Visual Media" +fr[] = "Persée" +fr[] = "Répertoire International des Sources Musicales" diff --git a/module/fid/config/fid-acquisition-digitization-form.php b/module/fid/config/fid-acquisition-digitization-form.php new file mode 100644 index 0000000000000000000000000000000000000000..c2f9852931be0c13ccdc473d97385e9b5b560593 --- /dev/null +++ b/module/fid/config/fid-acquisition-digitization-form.php @@ -0,0 +1,101 @@ +<?php +/** + * Copyright (C) 2019 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 Alexander Purr <purr@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2 + */ + +use fid\Hydrator\OrderHydrator; +use Zend\Filter\StringTrim; +use Zend\Form\Element\Submit; +use Zend\Form\Element\Text; +use Zend\Form\Element\Select; +use Zend\Validator\StringLength; + +return [ + 'name' => 'fid-acquisition-form', + 'hydrator' => OrderHydrator::class, + 'elements' => [ + 'format' => [ + 'spec' => [ + 'name' => 'format', + 'type' => Select::class, + 'options' => [ + 'label' => 'acquisition_label_format', + 'options' => [ + 'pdf' => [ + 'value' => 'pdf', + 'label' => 'PDF', + ], + 'jpg' => [ + 'value' => 'jpg', + 'label' => 'JPG', + ], + ], + ], + ], + ], + 'comment' => [ + 'spec' => [ + 'name' => 'comment', + 'type' => Text::class, + 'options' => [ + 'label' => 'acquisition_label_comment', + ], + 'attributes' => [ + 'required' => false, + ], + ], + ], + 'submit' => [ + 'spec' => [ + 'name' => 'submit', + 'type' => Submit::class, + 'attributes' => [ + 'value' => 'acquisition_label_submit', + ], + ], + ], + ], + 'input_filter' => [ + 'format' => [ + 'name' => 'format', + 'required' => true, + ], + 'comment' => [ + 'name' => 'comment', + 'required' => false, + 'filters' => [ + StringTrim::class => [ + 'name' => StringTrim::class, + ], + ], + 'validators' => [ + StringLength::class => [ + 'name' => StringLength::class, + 'options' => [ + 'max' => 5000 + ] + ], + ], + ], + 'submit' => [ + 'name' => 'submit', + 'required' => true, + ], + ], +]; \ No newline at end of file diff --git a/module/fid/config/module.config.php b/module/fid/config/module.config.php index a39af204e509adac7cc1f13dbcc531c630694e0d..bbddd14bde3704f6f28b3d15adfe0ab38af56726 100644 --- a/module/fid/config/module.config.php +++ b/module/fid/config/module.config.php @@ -70,6 +70,7 @@ $config = [ 'admin-edit-form' => require 'admin-edit-form.php', 'fid-acquisition-form' => require 'fid-acquisition-form.php', 'fid-acquisition-subito-partial-copy-form' => require 'fid-acquisition-subito-partial-copy-form.php', + 'fid-acquisition-digitization-form' => require 'fid-acquisition-digitization-form.php', PasswordResetModel::class => require 'password-reset-form.php', PasswordChangeModel::class => require 'password-change-form.php', UsernameChangeModel::class => require 'username-change-form.php', @@ -421,7 +422,8 @@ $config = [ $nonTabRecordActions = [ 'fidPDA', 'fidSubitoArticle', - 'fidSubitoPartialCopy' + 'fidSubitoPartialCopy', + 'fidDigitization', ]; // Define record view routes -- route name => controller diff --git a/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php b/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php index 2a8f31a86bb696b51616dbb636cc0d850ba699b2..bc8fcd0b39a06a86f2fe925d91a06ed66f3f59b3 100644 --- a/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php +++ b/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php @@ -81,6 +81,13 @@ trait FidAcquisitionTrait return $this->runAcquisition(); } + public function fidDigitizationAction() + { + $this->type = self::DIGITIZATION; + $this->formConfig = ('fid-acquisition-digitization-form'); + return $this->runAcquisition(); + } + protected function runAcquisition() { if (!($user = $this->getUser())) { @@ -199,6 +206,14 @@ trait FidAcquisitionTrait ] ]; } + if ($this->type == self::DIGITIZATION) { + $data += [ + 'digitization' => [ + 'format' => $form->getData()['format'], + 'comment' => $form->getData()['comment'] + ] + ]; + } return $data; } diff --git a/module/fid/src/Controller/RecordController.php b/module/fid/src/Controller/RecordController.php index 76d5d21c62a778bc181676ea991f49976e8a70ab..f559a6d5f181a2b4bb8936c80b373952712e1fcd 100644 --- a/module/fid/src/Controller/RecordController.php +++ b/module/fid/src/Controller/RecordController.php @@ -35,4 +35,5 @@ class RecordController extends \finc\Controller\RecordController const PDA = "pda"; const SUBITO_ARTICLE = "subito-article"; const SUBITO_PARTIAL_COPY = "subito-partial-copy"; + const DIGITIZATION = "digitization"; } diff --git a/module/fid/src/Hydrator/OrderHydrator.php b/module/fid/src/Hydrator/OrderHydrator.php index ba97e3975c2048f9839cda456b0b5fec99d83146..333c1367dfb70f9aa4b20cefc8ab3c0a81fabc9a 100644 --- a/module/fid/src/Hydrator/OrderHydrator.php +++ b/module/fid/src/Hydrator/OrderHydrator.php @@ -28,6 +28,7 @@ class OrderHydrator extends AbstractHydrator { $object->setUser($data['user']); $partialCopy = array_key_exists('subitoPartialCopy', $data) ? $data['subitoPartialCopy'] : null; + $digitization = array_key_exists('digitization', $data) ? $data['digitization'] : null; /* Collect needed record data */ $id = $driver->tryMethod('getUniqueID'); @@ -69,7 +70,7 @@ class OrderHydrator extends AbstractHydrator { 'url' ); - $object->setData(compact('record','partialCopy')); + $object->setData(compact('record','partialCopy','digitization')); $object->setLabel($data['label']); return; } diff --git a/module/finc/config/module.config.php b/module/finc/config/module.config.php index 515cee83dffde153dc95b8c1f5e2ee32ed7a3658..b0fa8ae795efd380c186b9d7e25e83b83ab7818f 100644 --- a/module/finc/config/module.config.php +++ b/module/finc/config/module.config.php @@ -20,8 +20,12 @@ $config = [ 'VuFindSearch\Service' => [ 'finc\Service\MungerInjectionDelegatorFactory', ], + 'Zend\Mvc\I18n\Translator' => [ + 'finc\I18n\Translator\ZendI18nResourcesInjector', + ], ], 'aliases' => [ + 'MvcTranslator' => 'Zend\Mvc\I18n\Translator', 'VuFind\Cache\Manager' => 'finc\Cache\Manager', 'VuFind\ILS\Connection' => 'finc\ILS\Connection', 'VuFind\ILS\Logic\Holds' => 'finc\ILS\Logic\Holds', @@ -58,6 +62,14 @@ $config = [ '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' => [ diff --git a/module/finc/src/finc/Bootstrapper.php b/module/finc/src/finc/Bootstrapper.php index 05b4796ae9b3eb8239812cfb2d2f8ea989c057cb..178435297e4ca91185668a0ba6af1a8a02416fc5 100644 --- a/module/finc/src/finc/Bootstrapper.php +++ b/module/finc/src/finc/Bootstrapper.php @@ -74,7 +74,11 @@ class Bootstrapper extends \VuFind\Bootstrapper return; } - $exceptionArray = explode('\\', get_class($e->getParam('exception'))); + if ($exception instanceof \VuFindSearch\Backend\Exception\BackendException && $exception->getPrevious()) { + $exception = $exception->getPrevious(); + } + + $exceptionArray = explode('\\', get_class($exception)); $exceptionName = end( $exceptionArray ); @@ -90,7 +94,7 @@ class Bootstrapper extends \VuFind\Bootstrapper $model = new \Zend\View\Model\ViewModel( [ 'display_exceptions' => APPLICATION_ENV == 'development', - 'exception' => $e->getParam('exception'), + 'exception' => $e->getParam('exception'), ] ); $model->setTemplate($template); diff --git a/module/finc/src/finc/Controller/AmslResourceController.php b/module/finc/src/finc/Controller/AmslResourceController.php index 07348329e9d5ef9032901c435e1b8022978416b5..278f3fd14af3da3584ccbb179ebb853cc92c43d1 100644 --- a/module/finc/src/finc/Controller/AmslResourceController.php +++ b/module/finc/src/finc/Controller/AmslResourceController.php @@ -111,8 +111,9 @@ class AmslResourceController extends AbstractBase // Make view $view = $this->createViewModel(); $view->setTemplate('amsl/sources-list'); + $cacheKey = "rendered-{$this->layout()->userLang}"; - if ($data = $this->getCacheData('rendered')) { + if ($data = $this->getCacheData($cacheKey)) { $view->rendered_html = $data; } else { try { @@ -124,7 +125,7 @@ class AmslResourceController extends AbstractBase ); } $rendered = $this->getViewRenderer()->render($view); - $this->setCacheData($rendered, 'rendered'); + $this->setCacheData($rendered, $cacheKey); $view->rendered_html = $rendered; } @@ -204,7 +205,7 @@ class AmslResourceController extends AbstractBase } if (!empty($mapping->sortBySourceLabel)) { - ksort($out); + uksort($out,'strcasecmp'); } return $out; diff --git a/module/finc/src/finc/Form/View/Helper/FormLabel.php b/module/finc/src/finc/Form/View/Helper/FormLabel.php new file mode 100644 index 0000000000000000000000000000000000000000..058f46dd7589b53e46ed5fb18b2b61d34f722247 --- /dev/null +++ b/module/finc/src/finc/Form/View/Helper/FormLabel.php @@ -0,0 +1,44 @@ +<?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 Robert Lange <lange@ub.uni-leipzig.de> + * @author Sebastian Kehr <kehr@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2 + */ + +namespace finc\Form\View\Helper; + +use Zend\Form\Element; +use Zend\Form\View\Helper\FormLabel as Base; + +class FormLabel extends Base +{ + public function openTag($element = null) + { + if ($element instanceof Element) { + $element->setLabelAttributes( + [ + 'data-type' => $element->getAttribute('type'), + 'data-name' => $element->getAttribute('name'), + 'data-required' => $element->getAttribute('required') + ? 'true' : 'false' + ] + $element->getLabelAttributes() + ); + } + return parent::openTag($element); + } +} \ No newline at end of file diff --git a/module/finc/src/finc/I18n/Translator/ZendI18nResourcesInjector.php b/module/finc/src/finc/I18n/Translator/ZendI18nResourcesInjector.php new file mode 100644 index 0000000000000000000000000000000000000000..f9b7b898402f45706a9343c74ce416c1781888b9 --- /dev/null +++ b/module/finc/src/finc/I18n/Translator/ZendI18nResourcesInjector.php @@ -0,0 +1,48 @@ +<?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 Robert Lange <lange@ub.uni-leipzig.de> + * @author Sebastian Kehr <kehr@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2 + */ +namespace finc\I18n\Translator; + +use Psr\Container\ContainerInterface; +use Zend\I18n\Translator\Resources; + +class ZendI18nResourcesInjector +{ + public function __invoke( + ContainerInterface $container, + $name, + callable $callback + ) { + $translator = call_user_func($callback); + + $translator->addTranslationFilePattern( + 'phpArray', + Resources::getBasePath(), + Resources::getPatternForValidator() + ); + $translator->addTranslationFilePattern( + 'phpArray', + Resources::getBasePath(), + Resources::getPatternForCaptcha() + ); + return $translator; + } +} \ No newline at end of file diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 219103baabbb5f9ef8d371f230536b27db727561..84838f47913e106156487e6a4de4131fe8c965f8 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -808,7 +808,7 @@ trait SolrMarcFincTrait $this->getLocalMarcFieldOfLibrary() ); if (!$fields) { - return null; + return []; } foreach ($fields as $key => $field) { if ($q = $field->getSubfield('q')) { @@ -1707,34 +1707,91 @@ trait SolrMarcFincTrait */ public function getAllSubjectHeadingsExtended() { - // define a false indicator - $firstindicator = 'x'; $retval = []; $fields = $this->getMarcRecord()->getFields('689'); foreach ($fields as $field) { - $subjectrow = $field->getIndicator('1'); - if ($subjectrow != $firstindicator) { - $key = (isset($key) ? $key + 1 : 0); - $firstindicator = $subjectrow; + $key = $field->getIndicator('1'); + $order = $field->getIndicator('2'); + if ("" === trim($order)) { + if ($subfield = $field->getSubfield('5')) { + $retval[$key]['source'] = $subfield->getData(); + } + foreach ($field->getSubfields() as $sf) { + $sf->getData(); + } } - // #5668 #5046 BSZ MARC may contain uppercase subfields but solrmarc set - // to lowercase them which introduces single char topics if ($subfields = $field->getSubfields('a')) { foreach ($subfields as $subfield) { if (strlen($subfield->getData()) > 1) { - $retval[$key]['subject'][] = $subfield->getData(); + $retval[$key]['subject'][$order] = $subfield->getData(); } } } if ($subfield = $field->getSubfield('t')) { - $retval[$key]['subject'][] = $subfield->getData(); + $retval[$key]['subject'][$order] = $subfield->getData(); } if ($subfield = $field->getSubfield('9')) { $retval[$key]['subsubject'] = $subfield->getData(); } } - return $retval; + if (empty($retval)) { + return $this->getTopicsField(); + } + foreach ([ + 'DE-627', //KXP + 'DE-576', //GBV + 'DE-101' //DNB + ] as $source) { + $return = []; + foreach ($retval as $entry) { + if (isset($entry['source']) && strpos($entry['source'],$source) !== false) { + $return[] = $entry; + } + } + if (!empty($return)) { + return $return; + } + } + return $retval; + } + + public function getTopicsField() + { + $retval = []; + + $fields = $this->getMarcRecord()->getFields('650'); + foreach ($fields as $field) { + $thesaurus = $field->getIndicator('2'); + if ($subfields = $field->getSubfields('a')) { + foreach ($subfields as $subfield) { + if (strlen($subfield->getData()) > 1) { + $retval[$thesaurus][]['subject'][] = $subfield->getData(); + } + } + } + } + + if (empty($retval)) { + return []; + } + + foreach ([ + '7', //'Source specified in subfield $2' + '4', //'Source not specified' + '0', //'Library of Congress Subject Headings' + '2', //'Medical Subject Headings' + ] as $thesaurus) { + if (isset($retval[$thesaurus])) { + return array_map( + 'unserialize', + array_unique( + array_map('serialize',$retval[$thesaurus]) + ) + ); + } + } + return current($retval); } /** diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php index c12efed09377fb0e62cd7f4866275eee5c228702..847bec98d2cfc4e5aa69fc6e1ff5c5f5ae2c254a 100644 --- a/module/finc/src/finc/View/Helper/Root/Record.php +++ b/module/finc/src/finc/View/Helper/Root/Record.php @@ -116,7 +116,7 @@ class Record extends \VuFind\View\Helper\Root\Record /** * Get the CSS class used to properly render an icon for given value * - * @param string $value Value to convert into CSS class + * @param string $value (identifier) Value to convert into CSS class * @param string $classfile Define alternative file for icon class without * suffix. Default: record-icon-class.phtml * @@ -130,6 +130,20 @@ class Record extends \VuFind\View\Helper\Root\Record ); } + /** + * Get the CSS class used to properly render an icon for given value + * + * @param string $classfile Define alternative file for icon text without + * + * @return string + */ + public function getRecordIconText($classfile = 'record-icon-text') + { + return $this->renderTemplate( + $classfile . '.phtml' + ); + } + /** * Returns if style based icons should be shown (if covers are disabled!) * @@ -338,7 +352,7 @@ class Record extends \VuFind\View\Helper\Root\Record } // is pattern set and matches so try rewrite url if (isset($r['pattern']) && 0 != preg_match('/' . $r['pattern'] . '/i', trim($link['url']))) { - // if function is set and available then perform on url + // if function is set and available then perform on url if (isset($r['function']) && is_callable($r['function'])) { $link['url'] = $r['function']($link['url']); } diff --git a/module/finc/src/finc/View/Helper/Root/SideFacet.php b/module/finc/src/finc/View/Helper/Root/SideFacet.php index 528bd3b3c2d1c9c989df33c63b3f5ca36c5ca677..fefb2febee6eec8cb6e087a493bd12edd40a63e2 100644 --- a/module/finc/src/finc/View/Helper/Root/SideFacet.php +++ b/module/finc/src/finc/View/Helper/Root/SideFacet.php @@ -50,15 +50,25 @@ class SideFacet extends AbstractHelper */ protected $config; + /** + * Language tags + * + * @var array + */ + protected $languageTags = []; + /** * Constructor * * @param \Zend\Config\Config $config VuFind configuration - * @access public */ public function __construct($config = null) { $this->config = $config; + + foreach ($this->config->LanguageTags ?? [] as $langOfTags => $tags) { + $this->languageTags[$langOfTags] = array_flip($tags->toArray()); + } } /** @@ -67,7 +77,6 @@ class SideFacet extends AbstractHelper * @param array $sideFacets List of side facets * * @return array Filtered side facets - * @access public */ public function displayAllowedFacetValues($sideFacets) { @@ -93,25 +102,37 @@ class SideFacet extends AbstractHelper /** * Get term with corresponding language tag within html element * - * @param string $term translation to decorate with language tag - * @param string $element wrapping html element - * @param string $language current language + * @param string $term translation to decorate with language tag + * @param string $element wrapping html element + * @param string $curLang current language + * @param array $attributes set additional attributes by key => value * * @return string * * @deprecated remove when there's a VuFind core solution */ - public function getLanguageTag(string $term, string $element, string $language) + public function getLanguageTag(string $term, string $element, string $curLang, array $attributes = []) { - $retval = $term; + $attributesString = ""; + foreach ($attributes as $attrKey => $attrVal) { + $attributesString .= "$attrKey=\"$attrVal\" "; + } - if (isset($this->config->LanguageTags[$term]) - && $this->config->LanguageTags[$term] !== $language - ) { - $retval = "<$element " . 'lang="' . $this->config->LanguageTags[$term] - . '">' . "$term</$element>"; + foreach ($this->languageTags as $langOfTags => $tags) { + if ($curLang === $langOfTags) { + // no tag needed for native terms + continue; + } + if (isset($tags["$term"])) { + $termLang = $langOfTags; + break; + } } - return $retval; + if (isset($termLang)) { + return "<$element lang=\"$termLang\" $attributesString>$term</$element>"; + } else { + return "<$element $attributesString>$term</$element>"; + } } } diff --git a/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/alpha/searchspecs.yaml b/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/alpha/searchspecs.yaml index 1e8bfdcad8d618d13d088011c0a10904df2be051..a83f224bf097e060f369fd988aaba22087c7a2e0 100644 --- a/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/alpha/searchspecs.yaml +++ b/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/alpha/searchspecs.yaml @@ -252,7 +252,7 @@ AllFields: - ord(publishDateSort)^10 - - bf - - 'if(exists(query({!v=''facet_avail:Local*''})),10,1)^1000' + - 'if(exists(query({!v=''facet_avail:Local''})),10,1)^1000' DismaxFields: - title_short^1000 - title_full_unstemmed^1000 diff --git a/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/searchspecs.yaml b/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/searchspecs.yaml index 1e8bfdcad8d618d13d088011c0a10904df2be051..a83f224bf097e060f369fd988aaba22087c7a2e0 100644 --- a/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/searchspecs.yaml +++ b/module/finc/tests/fixtures/configs/yaml/searchspecs/result/local/searchspecs.yaml @@ -252,7 +252,7 @@ AllFields: - ord(publishDateSort)^10 - - bf - - 'if(exists(query({!v=''facet_avail:Local*''})),10,1)^1000' + - 'if(exists(query({!v=''facet_avail:Local''})),10,1)^1000' DismaxFields: - title_short^1000 - title_full_unstemmed^1000 diff --git a/themes/fid/languages/fid/de.ini b/themes/fid/languages/fid/de.ini index f3ff9f4784d0945919f4986b8a9ae5fedb5c7d9c..9577bef62f5d5339c7077ac3ecf525d8cdbda8c2 100644 --- a/themes/fid/languages/fid/de.ini +++ b/themes/fid/languages/fid/de.ini @@ -139,6 +139,8 @@ acquisition_subito_article = "Artikelbestellung" acquisition_subito_article_info = "Auf Kosten von %%fidname%% können Sie sich Teile eines erschienenen Werkes sowie Beiträge aus Fachzeitschriften oder wissenschaftlichen Zeitschriften als Kopie bestellen. Wir können Ihnen aus urheberrechtlichen Gründen max. 10 Prozent des Umfangs eines Buches bzw. nur einzelne Zeitschriftenbeiträge vervielfältigen. Bitte überprüfen Sie daher bei Büchern ggf. die Anzahl der bestellten Seiten. Mit der Absendung der Bestellung bestätigen Sie, die Vervielfältigung ausschließlich zu nicht kommerziellen Zwecken zu verwenden." acquisition_subito_partial_copy = "Teilkopiebestellung" acquisition_subito_partial_copy_info = "Auf Kosten von %%fidname%% können Sie sich Teile eines erschienenen Werkes sowie Beiträge aus Fachzeitschriften oder wissenschaftlichen Zeitschriften als Kopie bestellen. Wir können Ihnen aus urheberrechtlichen Gründen max. 10 Prozent des Umfangs eines Buches bzw. nur einzelne Zeitschriftenbeiträge vervielfältigen. Bitte überprüfen Sie daher bei Büchern ggf. die Anzahl der bestellten Seiten. Mit der Absendung der Bestellung bestätigen Sie, die Vervielfältigung ausschließlich zu nicht kommerziellen Zwecken zu verwenden." +acquisition_digitization = "Digitization-on-Demand-Service" +acquisition_digitization_info = "Der Digitization-on-Demand-Service steht Nutzenden des %%fidname%% kostenlos zur Verfügung. Eine Prüfung des %%fidname%% entscheidet darüber, ob ein Werk digitalisiert werden kann. Sollte bereits ein lesbares Digitalisat vorhanden sein, wird das Werk nicht noch einmal digitalisiert. Aus restauratorischen Gründen kann eine Digitalisierung ebenfalls abgelehnt werden. Digitalisate werden als jpg oder pdf zur Verfügung gestellt. Sollten andere Formate (z.B. TIFF) gewünscht werden, kann dies im Kommentarfeld angegeben werden. Die dadurch entstehenden Kosten, werden von den Nutzenden selbst getragen." acquisition_order_delivery_name = "Name" acquisition_delivery_to = "Lieferung an" @@ -146,6 +148,7 @@ acquisition_info_requested_item = "Bestellung" acquisition_label_pages = "Seitenzahlen (von-bis)" acquisition_label_comment = "Bemerkungen" acquisition_label_submit = "Bestellen" +acquisition_label_format = "Format" acquisition_error_pages_too_short = "Ihre Eingabe hat zu wenige Zeichen. Bitte geben Sie mind. 3 Zeichen ein." acquisition_error_pages_too_long = "Ihre Eingabe hat zu viele Zeichen. Bitte geben Sie max. 13 Zeichen ein." acquisition_error_pages_pattern = "Falsches Format. Bitte geben Sie die gewünschten Seiten nur im Format VON-BIS ein, z. B. 23-30." diff --git a/themes/fid/templates/RecordTab/worldcat.phtml b/themes/fid/templates/RecordTab/worldcat.phtml index 38fb7af17c352a3f38213e8f216a792f6555a65b..a267b5f628c3643a174bd3178b3c850344792b4c 100644 --- a/themes/fid/templates/RecordTab/worldcat.phtml +++ b/themes/fid/templates/RecordTab/worldcat.phtml @@ -1,5 +1,5 @@ <!-- fid: recordtab - worldcat --> -<? $script = <<<JS +<?php $script = <<<JS $(document).ready(function() { var recordId = $('.hiddenId').val(); var recordSource = $('.hiddenSource').val(); diff --git a/themes/fid/templates/ajax/resolverLinks-button.phtml b/themes/fid/templates/ajax/resolverLinks-button.phtml index a25b35b62b382b11112b1717b9b8f6d8253742fa..62873ca852716d5f40de4fb2eb9503a3b9b4dbde 100644 --- a/themes/fid/templates/ajax/resolverLinks-button.phtml +++ b/themes/fid/templates/ajax/resolverLinks-button.phtml @@ -11,7 +11,7 @@ $controllerClass = 'controller:SolrMarcFincPDA'; <a class="btn btn-primary pda-button <?=$controllerClass?> full-order" data-lightbox href="<?=$this->url('record-fidsubitoarticle', array('id' => $this->recordId))?>" rel="nofollow"> <?=$this->transEsc('getit_order')?> </a> - <? $script = <<<JS + <?php $script = <<<JS $(document).ready(function() { // Use to register new lightbox window pda form VuFind.lightbox.bind(); diff --git a/themes/fid/templates/ajax/resolverLinks-print.phtml b/themes/fid/templates/ajax/resolverLinks-print.phtml index 45af2536d54f5ae8fb14f5e6376035dcfd4c569a..211079c3e742e1995389cfc3673b84d5ae37f128 100644 --- a/themes/fid/templates/ajax/resolverLinks-print.phtml +++ b/themes/fid/templates/ajax/resolverLinks-print.phtml @@ -18,7 +18,7 @@ $user = $account->isLoggedIn(); $url = '<a href="'.$this->url('myresearch-account').'?auth_method='.$account->getAuthMethod().'" target="_blank" data-lightbox>'.$this->transEsc('getit_text_3_2').'</a>'; ?> <?=sprintf($this->translate('getit_text_10'), $url)?> - <? $script = <<<JS + <?php $script = <<<JS $(document).ready(function() { // Use to register new lightbox window pda form VuFind.lightbox.bind(); @@ -52,7 +52,7 @@ JS; <?php /* finc-specific change #9274 - END */ ?> </div> <?php /* #17831 */ ?> -<? $script = <<<JS +<?php $script = <<<JS $(document).ready(function() { if ($(window).width() >= 1200) { var contentHeight = $('.media').height(); diff --git a/themes/fid/templates/fid/admin/edit.phtml b/themes/fid/templates/fid/admin/edit.phtml index e5451a2ecc335154914041286cfd38b360952c83..1acfdfedafe072d339aa6aebd29d8485f0df8d54 100644 --- a/themes/fid/templates/fid/admin/edit.phtml +++ b/themes/fid/templates/fid/admin/edit.phtml @@ -59,10 +59,10 @@ $this->headTitle($title = $this->translate("fid::user_edit_form_title", [ <?= $this->form()->openTag($form) ?> <br/> -<? /* id */ ?> +<?php /* id */ ?> <?= $this->formElement($form->get('id')) ?> -<? /* salutation */ ?> +<?php /* salutation */ ?> <?php /** @var Element\Select $elemSalutation */ $elemSalutation = $form->get('salutation'); @@ -74,7 +74,7 @@ $elemSalutation->setAttributes(['class' => 'form-control']); <?= $this->formSelect($elemSalutation) ?> </div> -<? /* academic title */ ?> +<?php /* academic title */ ?> <?php /** @var Element\Text $elemAcademicTitle */ $elemAcademicTitle = $form->get('academic_title'); @@ -86,7 +86,7 @@ $elemAcademicTitle->setAttributes(['class' => 'form-control']); <?= $this->formElement($elemAcademicTitle) ?> </div> -<? /* firstname */ ?> +<?php /* firstname */ ?> <?php /** @var Element\Text $elemFirstname */ $elemFirstname = $form->get('firstname'); @@ -99,7 +99,7 @@ $elemFirstname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemFirstname) ?> </div> -<? /* lastname */ ?> +<?php /* lastname */ ?> <?php /** @var Element\Text $elemLastname */ $elemLastname = $form->get('lastname'); @@ -112,7 +112,7 @@ $elemLastname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLastname) ?> </div> -<? /* home library */ ?> +<?php /* home library */ ?> <?php /** @var Element\Select $elemHomeLibrary */ $elemHomeLibrary = $form->get('home_library'); @@ -125,7 +125,7 @@ $elemHomeLibrary->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemHomeLibrary) ?> </div> -<? /* user group */ ?> +<?php /* user group */ ?> <?php /** @var Element\Radio $elemJobTitle */ $elemJobTitle = $form->get('job_title'); @@ -142,7 +142,7 @@ $elemJobTitle = $form->get('job_title'); </div> </div> -<? /* Permissions */ ?> +<?php /* Permissions */ ?> <?php /** @var Element\Collection $elemPermissions */ /** @var Element\Select[] $elemPermissionsElems */ @@ -166,10 +166,10 @@ foreach ($permissions as $permission) { </div> <?php endforeach; ?> -<? /* addresses */ ?> +<?php /* addresses */ ?> <?= $this->render('fid/user/address-collection.phtml') ?> -<? /* submit button */ ?> +<?php /* submit button */ ?> <?php /** @var Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/record/acquisition-address-details.phtml b/themes/fid/templates/fid/record/acquisition-address-details.phtml index b75e59f314bc72902245f4ca1f66a743de7fa9c5..b0d5843b5f03d30b540aaf46c0f9c318ccd7b7b7 100644 --- a/themes/fid/templates/fid/record/acquisition-address-details.phtml +++ b/themes/fid/templates/fid/record/acquisition-address-details.phtml @@ -13,8 +13,8 @@ <tr> <th><?= $this->translate("fid::order_delivery_address") ?></th> <td> - <?php if($user->deliveryAddressIsBusinessAddress()): ?> - <?= $user->getCollege() ?><br> + <?php if($user->deliveryAddressIsBusinessAddress() && !empty($college=$user->getCollege())): ?> + <?= $college ?><br> <?php endif ?> <?= $address->getLine1() ?><br> <?= !empty($address->getLine2()) ? $address->getLine2() . '<br>' : '' ?> diff --git a/themes/fid/templates/fid/record/acquisition-digitization.phtml b/themes/fid/templates/fid/record/acquisition-digitization.phtml new file mode 100644 index 0000000000000000000000000000000000000000..36a2e7921fce4e913e154fe77ed80c32854d7b91 --- /dev/null +++ b/themes/fid/templates/fid/record/acquisition-digitization.phtml @@ -0,0 +1,124 @@ +<?php +/** + * Copyright (C) 2021 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 Alexander Purr <purr@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2 + */ + +use Zend\Form\Element; +use Zend\Form\Form; +use Zend\Form\View\Helper\FormElementErrors; +use Zend\Form\View\Helper\FormLabel; +use Zend\Form\View\Helper\FormSelect; +use Zend\Form\View\Helper\FormSubmit; + +$driver = $this->driver; +/** @var Form $form */ +/** @var FormLabel $formLabel */ +/** @var FormSubmit $formSubmit */ +/** @var FormElementErrors $formElementErrors */ +$form = $this->form; +$formLabel = $this->formLabel(); +$formLabel->setTranslatorTextDomain('fid'); +$formSubmit = $this->formSubmit(); +$formSubmit->setTranslatorTextDomain('fid'); +$formElementErrors = $this->formElementErrors(); +$formElementErrors->setTranslatorTextDomain('fid'); +$this->headTitle($title = $this->translate("fid::acquisition_digitization")); +$form->setAttribute('class','fid-acquisition-form'); +?> + +<h1><?= $title ?></h1> +<?= $this->flashmessages() ?> + +<?= $this->form()->openTag($form) ?> + +<div class="row details"> + <div class="col col-md-6"> + <?=$this->render('fid/record/acquisition-address-details'); ?> + </div> + <div class="col col-md-6"> + <?php + $formatter = $this->recordDataFormatter(); + $this->coreFields = $formatter->getData($driver, $formatter->getDefaults('fid-acquisition-general')); + ?> + <?=$this->render('fid/record/acquisition-record-details'); ?> + </div> +</div> + +<div class="row information"> + <div class="col col-xs-12"> + <?= $this->translate("fid::acquisition_digitization_info", [ + '%%fidname%%' => $this->translate("fid::acquisition_fid_name") + ]); ?> + </div> +</div> + +<? /* format */ ?> +<?php +/** @var Element\Select $elemFormat */ +$elemFormat = $form->get('format'); +$elemFormat->setLabelAttributes(['class' => 'control-label']); +$elemFormat->setAttributes(['class' => 'form-control']); +?> + +<? /* comments */ ?> +<?php +/** @var Element\Text $elemComment */ +$elemComment = $form->get('comment'); +$elemComment->setLabelAttributes(['class' => 'control-label']); +$elemComment->setAttributes(['class' => 'form-control']); +?> + + <div class="row pages"> + <?php if ( ! ( $this->formElementErrors($elemComment) == "" && $this->formElementErrors($elemFormat) == "" ) ): ?> + <div class="col col-xs-12"> + <div class="form-group"> + <?= $this->formElementErrors($elemFormat) ?> + <?= $this->formElementErrors($elemComment) ?> + </div> + </div> + <?php endif; ?> + <div class="col col-xs-12 col-md-6"> + <div class="form-group"> + <?= $this->formLabel($elemFormat) ?> + <?= $this->formElement($elemFormat) ?> + </div> + </div> + <div class="col col-xs-12 col-md-6"> + <div class="form-group"> + <?= $this->formLabel($elemComment) ?> + <?= $this->formElement($elemComment) ?> + </div> + </div> + </div> + +<div class="row confirmation"> + <div class="col col-xs-12"> + <? /* submit button */ ?> + <?php + /** @var Element\Submit $elemSubmit */ + $elemSubmit = $form->get('submit'); + $elemSubmit->setAttributes(['class' => 'btn btn-primary']); + ?> + <div class="form-group right"> + <?= $this->formElement($elemSubmit) ?> + </div> + </div> +</div> + +<?= $this->form()->closeTag($form) ?> diff --git a/themes/fid/templates/fid/record/acquisition-pda.phtml b/themes/fid/templates/fid/record/acquisition-pda.phtml index a2b8db2e49575c862593c16b5bd39377a73e22bb..a5bc87b75cbaaada52ad39fc78f08c5dee238ca4 100644 --- a/themes/fid/templates/fid/record/acquisition-pda.phtml +++ b/themes/fid/templates/fid/record/acquisition-pda.phtml @@ -70,7 +70,7 @@ $form->setAttribute('class','fid-acquisition-form'); <div class="row confirmation"> <div class="col col-xs-12"> - <? /* submit button */ ?> + <?php /* submit button */ ?> <?php /** @var Element\Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/record/acquisition-subito-article.phtml b/themes/fid/templates/fid/record/acquisition-subito-article.phtml index 4743cbe09cdbbc9034360d8f5c208b7afeccc5a1..99612d70c71cf688692db30df042b094861f769e 100644 --- a/themes/fid/templates/fid/record/acquisition-subito-article.phtml +++ b/themes/fid/templates/fid/record/acquisition-subito-article.phtml @@ -69,7 +69,7 @@ $form->setAttribute('class','fid-acquisition-form'); <div class="row confirmation"> <div class="col col-xs-12"> - <? /* submit button */ ?> + <?php /* submit button */ ?> <?php /** @var Element\Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/record/acquisition-subito-partial-copy.phtml b/themes/fid/templates/fid/record/acquisition-subito-partial-copy.phtml index 264ff343009baa684bceb435ae45f0be6f295cb1..ddaf79bf8710641f061906237e76cf28f56407d3 100644 --- a/themes/fid/templates/fid/record/acquisition-subito-partial-copy.phtml +++ b/themes/fid/templates/fid/record/acquisition-subito-partial-copy.phtml @@ -59,7 +59,7 @@ $form->setAttribute('class','fid-acquisition-form'); </div> </div> -<? /* pages */ ?> +<?php /* pages */ ?> <?php /** @var Element\Text $elemPages */ $elemPages = $form->get('pages'); @@ -67,7 +67,7 @@ $elemPages->setLabelAttributes(['class' => 'control-label']); $elemPages->setAttributes(['class' => 'form-control']); ?> -<? /* comments */ ?> +<?php /* comments */ ?> <?php /** @var Element\Text $elemComment */ $elemComment = $form->get('comment'); @@ -108,7 +108,7 @@ $elemComment->setAttributes(['class' => 'form-control']); <div class="row confirmation"> <div class="col col-xs-12"> - <? /* submit button */ ?> + <?php /* submit button */ ?> <?php /** @var Element\Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/user/address-fieldset.phtml b/themes/fid/templates/fid/user/address-fieldset.phtml index 865287dfcacaa0a5062fa8bc7895ecd1bca9a7da..8d50ee05190ed45fa79cad9fa23dd0210c99bcf9 100644 --- a/themes/fid/templates/fid/user/address-fieldset.phtml +++ b/themes/fid/templates/fid/user/address-fieldset.phtml @@ -27,7 +27,7 @@ use Zend\Form\Element; $address = $this->address; ?> -<? /* id */ ?> +<?php /* id */ ?> <?php $elemId = $address->get('id'); if ($elemId->getValue()) { @@ -35,7 +35,7 @@ if ($elemId->getValue()) { } ?> -<? /* first line */ ?> +<?php /* first line */ ?> <?php /** @var Element\Text $elemLine1 */ $elemLine1 = $address->get('line1'); @@ -48,7 +48,7 @@ $elemLine1->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLine1) ?> </div> -<? /* second line */ ?> +<?php /* second line */ ?> <?php /** @var Element\Text $elemLine2 */ $elemLine2 = $address->get('line2'); @@ -61,7 +61,7 @@ $elemLine2->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLine2) ?> </div> -<? /* address zip */ ?> +<?php /* address zip */ ?> <?php /** @var Element\Text $elemZip */ $elemZip = $address->get('zip'); @@ -74,7 +74,7 @@ $elemZip->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemZip) ?> </div> -<? /* city */ ?> +<?php /* city */ ?> <?php /** @var Element\Text $elemCity */ $elemCity = $address->get('city'); @@ -87,7 +87,7 @@ $elemCity->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemCity) ?> </div> -<? /* country */ ?> +<?php /* country */ ?> <?php /** @var Element\Text $elemCountry */ $elemCountry = $address->get('country'); diff --git a/themes/fid/templates/fid/user/create.phtml b/themes/fid/templates/fid/user/create.phtml index 0db9f72cf4591ddfbff01dba0f2b3ffc52b2b255..e0433323de836ee83b0dfd50abb666e0b5569032 100644 --- a/themes/fid/templates/fid/user/create.phtml +++ b/themes/fid/templates/fid/user/create.phtml @@ -56,7 +56,7 @@ $this->headTitle($title = $this->translate("fid::user_create_form_title")); <?= $this->form()->openTag($form) ?> <br/> -<? /* username */ ?> +<?php /* username */ ?> <?php /** @var Element\Text $elemUsername */ $elemUsername = $form->get('username'); @@ -74,7 +74,7 @@ $elemUsername->setAttributes(['class' => 'form-control', 'disabled' => 1]); <?= $this->formElement($elemUsername) ?> </div> -<? /* password */ ?> +<?php /* password */ ?> <?php /** @var Element\Password $elemPassword */ $elemPassword = $form->get('password'); @@ -87,7 +87,7 @@ $elemPassword->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemPassword) ?> </div> -<? /* password confirmation */ ?> +<?php /* password confirmation */ ?> <?php /** @var Element\Password $elemPasswordConfirmation */ $elemPasswordConfirmation = $form->get('password_confirmation'); @@ -100,7 +100,7 @@ $elemPasswordConfirmation->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemPasswordConfirmation) ?> </div> -<? /* salutation */ ?> +<?php /* salutation */ ?> <?php /** @var Element\Select $elemSalutation */ $elemSalutation = $form->get('salutation'); @@ -112,7 +112,7 @@ $elemSalutation->setAttributes(['class' => 'form-control']); <?= $this->formSelect($elemSalutation) ?> </div> -<? /* academic title */ ?> +<?php /* academic title */ ?> <?php /** @var Element\Text $elemAcademicTitle */ $elemAcademicTitle = $form->get('academic_title'); @@ -124,7 +124,7 @@ $elemAcademicTitle->setAttributes(['class' => 'form-control']); <?= $this->formElement($elemAcademicTitle) ?> </div> -<? /* firstname */ ?> +<?php /* firstname */ ?> <?php /** @var Element\Text $elemFirstname */ $elemFirstname = $form->get('firstname'); @@ -137,7 +137,7 @@ $elemFirstname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemFirstname) ?> </div> -<? /* lastname */ ?> +<?php /* lastname */ ?> <?php /** @var Element\Text $elemLastname */ $elemLastname = $form->get('lastname'); @@ -150,7 +150,7 @@ $elemLastname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLastname) ?> </div> -<? /* home library */ ?> +<?php /* home library */ ?> <?php /** @var Element\Select $elemHomeLibrary */ $elemHomeLibrary = $form->get('home_library'); @@ -163,7 +163,7 @@ $elemHomeLibrary->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemHomeLibrary) ?> </div> -<? /* user group */ ?> +<?php /* user group */ ?> <?php /** @var Element\Radio $elemJobTitle */ $elemJobTitle = $form->get('job_title'); @@ -178,7 +178,7 @@ $elemJobTitle = $form->get('job_title'); <?= $this->formElementErrors($elemJobTitle) ?> </div> -<? /* college */ ?> +<?php /* college */ ?> <?php /** @var Element\Text $elemCollege */ $elemCollege = $form->get('college'); @@ -191,10 +191,10 @@ $elemCollege->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemCollege) ?> </div> -<? /* addresses */ ?> +<?php /* addresses */ ?> <?= $this->render('address-collection.phtml') ?> -<? /* eula privacy policy */ ?> +<?php /* eula privacy policy */ ?> <?php /** @var Checkbox $elemEulaAccepted */ $elemEulaAccepted = $form->get('eula_accepted'); @@ -217,7 +217,7 @@ $elemEulaAccepted->setAttribute('id', 'eula-accepted'); <?= $this->formElementErrors($elemEulaAccepted) ?> </div> -<? /* submit button */ ?> +<?php /* submit button */ ?> <?php /** @var Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/user/init.phtml b/themes/fid/templates/fid/user/init.phtml index 956fc87bf8de62668ee078a9355df280de38580c..9f1354b38623930bf85334fc424ff07c1e86192f 100644 --- a/themes/fid/templates/fid/user/init.phtml +++ b/themes/fid/templates/fid/user/init.phtml @@ -46,7 +46,7 @@ $this->headTitle($title = $this->translate("fid::user_init_form_title")); <?= $this->form()->openTag($form) ?> <br/> -<? /* username */ ?> +<?php /* username */ ?> <?php /** @var Element\Text $elemUsername */ $elemUsername = $form->get('username'); @@ -59,7 +59,7 @@ $elemUsername->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemUsername) ?> </div> -<? /* username confirmation */ ?> +<?php /* username confirmation */ ?> <?php /** @var Element\Text $elemUsernameConfirmation */ $elemUsernameConfirmation = $form->get('username_confirmation'); @@ -72,7 +72,7 @@ $elemUsernameConfirmation->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemUsernameConfirmation) ?> </div> -<? /* firstname */ ?> +<?php /* firstname */ ?> <?php /** @var Element\Text $elemFirstname */ $elemFirstname = $form->get('firstname'); @@ -85,7 +85,7 @@ $elemFirstname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemFirstname) ?> </div> -<? /* lastname */ ?> +<?php /* lastname */ ?> <?php /** @var Element\Text $elemLastname */ $elemLastname = $form->get('lastname'); @@ -98,7 +98,7 @@ $elemLastname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLastname) ?> </div> -<? /* eula privacy policy */ ?> +<?php /* eula privacy policy */ ?> <?php /** @var Element\Checkbox $elemEulaAccepted */ $elemEulaAccepted = $form->get('eula_accepted'); @@ -108,18 +108,18 @@ $elemEulaAccepted->setAttribute('id', 'eula-accepted'); <?= $this->formElement($elemEulaAccepted) ?> <?= $this->formLabel()->openTag($elemEulaAccepted) ?> <?= $this->translate("fid::policy_text") ?> - <? $url = $this->url('fid/user/policy') ?> + <?php $url = $this->url('fid/user/policy') ?> <a target="_blank" href="<?= $url ?>"> <?= $this->translate("fid::policy") ?> </a> <?= $this->translate("fid::terms_text") ?> - <? $url = $this->url('fid/user/terms') ?> + <?php $url = $this->url('fid/user/terms') ?> <a target="_blank" href="<?= $url ?>"> <?= $this->translate("fid::terms") ?></a>. <?= $this->formLabel()->closeTag($elemEulaAccepted) ?> <?= $this->formElementErrors($elemEulaAccepted) ?> </div> -<? /* submit button */ ?> +<?php /* submit button */ ?> <?php /** @var Element\Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/user/policy.phtml b/themes/fid/templates/fid/user/policy.phtml index e96cbc303f56bf16c28ee453f3afc9f5e03e3b48..0c7e00bbb9ec458cbcbd81f829d4dffea6d60e44 100644 --- a/themes/fid/templates/fid/user/policy.phtml +++ b/themes/fid/templates/fid/user/policy.phtml @@ -1,5 +1,5 @@ <!-- fid - policy begin --> -<? $lang = $this->layout()->userLang; ?> +<?php $lang = $this->layout()->userLang; ?> <?php if (isset($backUrl) && $this->layout()->getTemplate() == 'layout/lightbox') $backButton = '<div class="form-group"> <a class="back-to-login btn btn-primary" href="'.$backUrl.'"> diff --git a/themes/fid/templates/fid/user/terms.phtml b/themes/fid/templates/fid/user/terms.phtml index 2362b9271bad69769ddc8a8dc2d36b5ca2e34123..43abf76dd9eee770f640633dd245b0aa983ee6b4 100644 --- a/themes/fid/templates/fid/user/terms.phtml +++ b/themes/fid/templates/fid/user/terms.phtml @@ -1,6 +1,6 @@ <!-- fid - terms begin --> -<? $lang = $this->layout()->userLang; ?> -<? $fileExists = file_exists(dirname(__FILE__) . '/terms-'.$lang.'.phtml'); ?> +<?php $lang = $this->layout()->userLang; ?> +<?php $fileExists = file_exists(dirname(__FILE__) . '/terms-'.$lang.'.phtml'); ?> <?php if (isset($backUrl) && $this->layout()->getTemplate() == 'layout/lightbox') $backButton = '<div class="form-group"> <a class="back-to-login btn btn-primary" href="'.$backUrl.'"> diff --git a/themes/fid/templates/fid/user/update.phtml b/themes/fid/templates/fid/user/update.phtml index 3daf9ccf9a8be6ba8aab2e671d4c332aeab67d2c..31d6932cf00a015c0bdf422e8473f619b2c2a67a 100644 --- a/themes/fid/templates/fid/user/update.phtml +++ b/themes/fid/templates/fid/user/update.phtml @@ -55,10 +55,10 @@ $this->headTitle($title = $this->translate("fid::user_update_form_title")); <?= $this->form()->openTag($form) ?> <br/> -<? /* id */ ?> +<?php /* id */ ?> <?= $this->formElement($form->get('id')) ?> -<? /* salutation */ ?> +<?php /* salutation */ ?> <?php /** @var Element\Select $elemSalutation */ $elemSalutation = $form->get('salutation'); @@ -70,7 +70,7 @@ $elemSalutation->setAttributes(['class' => 'form-control']); <?= $this->formSelect($elemSalutation) ?> </div> -<? /* academic title */ ?> +<?php /* academic title */ ?> <?php /** @var Element\Text $elemAcademicTitle */ $elemAcademicTitle = $form->get('academic_title'); @@ -82,7 +82,7 @@ $elemAcademicTitle->setAttributes(['class' => 'form-control']); <?= $this->formElement($elemAcademicTitle) ?> </div> -<? /* firstname */ ?> +<?php /* firstname */ ?> <?php /** @var Element\Text $elemFirstname */ $elemFirstname = $form->get('firstname'); @@ -95,7 +95,7 @@ $elemFirstname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemFirstname) ?> </div> -<? /* lastname */ ?> +<?php /* lastname */ ?> <?php /** @var Element\Text $elemLastname */ $elemLastname = $form->get('lastname'); @@ -108,7 +108,7 @@ $elemLastname->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemLastname) ?> </div> -<? /* home library */ ?> +<?php /* home library */ ?> <?php /** @var Element\Select $elemHomeLibrary */ $elemHomeLibrary = $form->get('home_library'); @@ -121,7 +121,7 @@ $elemHomeLibrary->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemHomeLibrary) ?> </div> -<? /* college */ ?> +<?php /* college */ ?> <?php /** @var Element\Text $elemCollege */ $elemCollege = $form->get('college'); @@ -134,10 +134,10 @@ $elemCollege->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemCollege) ?> </div> -<? /* addresses */ ?> +<?php /* addresses */ ?> <?= $this->render('address-collection.phtml') ?> -<? /* submit button */ ?> +<?php /* submit button */ ?> <?php /** @var Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/fid/templates/fid/user/username-change.phtml b/themes/fid/templates/fid/user/username-change.phtml index c103e36f48ca1c5161b6655fea2a2d0bd46f088e..4f7830436e7c9822dc8caf38d97516437fadbdd1 100644 --- a/themes/fid/templates/fid/user/username-change.phtml +++ b/themes/fid/templates/fid/user/username-change.phtml @@ -58,7 +58,7 @@ $this->headTitle($this->translate("fid::username_change_form_title")); <?= $this->translate("fid::username_change_form_information") ?> <?= $this->form()->openTag($form) ?> <br/> -<? /* username */ ?> +<?php /* username */ ?> <?php /** @var Element\Text $elemUsername */ $elemUsername = $form->get('username'); @@ -71,7 +71,7 @@ $elemUsername->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemUsername) ?> </div> -<? /* username confirmation */ ?> +<?php /* username confirmation */ ?> <?php /** @var Element\Text $elemUsernameConfirmation */ $elemUsernameConfirmation = $form->get('usernameConfirmation'); @@ -84,7 +84,7 @@ $elemUsernameConfirmation->setAttributes(['class' => 'form-control']); <?= $this->formElementErrors($elemUsernameConfirmation) ?> </div> -<? /* submit button */ ?> +<?php /* submit button */ ?> <?php /** @var Element\Submit $elemSubmit */ $elemSubmit = $form->get('submit'); diff --git a/themes/finc-accessibility/templates/RecordDriver/EDS/result-list.phtml b/themes/finc-accessibility/templates/RecordDriver/EDS/result-list.phtml index a8ddccec426875e49ae2dc9914bcda25cc33a56d..ae136fa197ddb7af7a03746ba3ecb9ec2ce73423 100644 --- a/themes/finc-accessibility/templates/RecordDriver/EDS/result-list.phtml +++ b/themes/finc-accessibility/templates/RecordDriver/EDS/result-list.phtml @@ -37,7 +37,7 @@ if (!empty($item)): ?> <div class="resultItemLine1"> <?php if('Ti' == $item['Group']): ?> - <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull _record_link" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> + <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull _record_link" data-view="<?=$this->params->getOptions()->getListViewOption()?>" lang=""> <?=$item['Data']?> </a> <?php else:?> <p> diff --git a/themes/finc-accessibility/templates/RecordTab/toc.phtml b/themes/finc-accessibility/templates/RecordTab/toc.phtml new file mode 100644 index 0000000000000000000000000000000000000000..6e71822f85068fe2a473bbc3071afd496220f6f5 --- /dev/null +++ b/themes/finc-accessibility/templates/RecordTab/toc.phtml @@ -0,0 +1,35 @@ +<!-- finc-accessibility: RecordTab - toc --> +<?php /** + * copy of VuFind-version, adds empty lang-attribute to <li>s + */ +?> +?> +<?php + // Set page title. + $this->headTitle($this->translate('Table of Contents') . ': ' . $this->driver->getBreadcrumb()); + + $toc = $this->tab->getContent(); + if (empty($toc)) { + $driverToc = $this->driver->getTOC(); + if (!empty($driverToc)) { + $toc['RecordDriver'] = $driverToc; + } + } +?> +<?php if (!empty($toc)): ?> + <strong><?=$this->transEsc('Table of Contents')?>: </strong> + <?php foreach ($toc as $provider => $content): ?> + <?php if (!is_array($content)): // treat non-array content as raw HTML ?> + <?=$content?> + <?php else: ?> + <ul class="toc"> + <?php foreach ($content as $line): ?> + <li lang=""><?=$this->escapeHtml($line)?></li> + <?php endforeach; ?> + </ul> + <?php endif; ?> + <?php endforeach; ?> +<?php else: ?> + <?=$this->transEsc('Table of Contents unavailable')?>. +<?php endif; ?> +<!-- finc-accessibility: RecordTab - toc - END --> \ No newline at end of file diff --git a/themes/finc/js/advanced_search.js b/themes/finc/js/advanced_search.js new file mode 100644 index 0000000000000000000000000000000000000000..5dad9556167bd8b8b43e983a3b53e7b2f05d26a9 --- /dev/null +++ b/themes/finc/js/advanced_search.js @@ -0,0 +1,141 @@ +/* Copied from bootstrap3 to set focus on new group or field - FIXME: Remove after PR is effective - #17985 - RL */ +/* exported addGroup, addSearch, deleteGroup, deleteSearch */ +var nextGroup = 0; +var groupLength = []; + +function addSearch(group, _fieldValues) { + var fieldValues = _fieldValues || {}; + // Build the new search + var inputID = group + '_' + groupLength[group]; + var $newSearch = $($('#new_search_template').html()); + + $newSearch.attr('id', 'search' + inputID); + $newSearch.find('input.form-control') + .attr('id', 'search_lookfor' + inputID) + .attr('name', 'lookfor' + group + '[]') + .val(''); + $newSearch.find('select.adv-term-type option:first-child').attr('selected', 1); + $newSearch.find('select.adv-term-type') + .attr('id', 'search_type' + inputID) + .attr('name', 'type' + group + '[]'); + $newSearch.find('.adv-term-remove') + .attr('onClick', 'return deleteSearch(' + group + ',' + groupLength[group] + ')'); + // Preset Values + if (typeof fieldValues.term !== "undefined") { + $newSearch.find('input.form-control').val(fieldValues.term); + } + if (typeof fieldValues.field !== "undefined") { + $newSearch.find('select.adv-term-type option[value="' + fieldValues.field + '"]').attr('selected', 1); + } + if (typeof fieldValues.op !== "undefined") { + $newSearch.find('select.adv-term-op option[value="' + fieldValues.op + '"]').attr('selected', 1); + } + // Insert it + $("#group" + group + "Holder").before($newSearch); + // Individual search ops (for searches like EDS) + if (groupLength[group] === 0) { + $newSearch.find('.first-op') + .attr('name', 'op' + group + '[]') + .removeClass('hidden'); + $newSearch.find('select.adv-term-op').remove(); + } else { + $newSearch.find('select.adv-term-op') + .attr('id', 'search_op' + group + '_' + groupLength[group]) + .attr('name', 'op' + group + '[]') + .removeClass('hidden'); + $newSearch.find('.first-op').remove(); + $newSearch.find('label').remove(); + // Show x if we have more than one search inputs + $('#group' + group + ' .adv-term-remove').removeClass('hidden'); + } + groupLength[group]++; + + // #17985 finc barf + $newSearch.find('input.form-control').focus(); + + return false; +} + +function deleteSearch(group, sindex) { + for (var i = sindex; i < groupLength[group] - 1; i++) { + var $search0 = $('#search' + group + '_' + i); + var $search1 = $('#search' + group + '_' + (i + 1)); + $search0.find('input').val($search1.find('input').val()); + var select0 = $search0.find('select')[0]; + var select1 = $search1.find('select')[0]; + select0.selectedIndex = select1.selectedIndex; + } + if (groupLength[group] > 1) { + groupLength[group]--; + $('#search' + group + '_' + groupLength[group]).remove(); + if (groupLength[group] === 1) { + $('#group' + group + ' .adv-term-remove').addClass('hidden'); // Hide x + } + } + return false; +} + +function addGroup(_firstTerm, _firstField, _join) { + var firstTerm = _firstTerm || ''; + var firstField = _firstField || ''; + var join = _join || ''; + + var $newGroup = $($('#new_group_template').html()); + $newGroup.find('.adv-group-label') // update label + .attr('for', 'search_lookfor' + nextGroup + '_0'); + $newGroup.attr('id', 'group' + nextGroup); + $newGroup.find('.search_place_holder') + .attr('id', 'group' + nextGroup + 'Holder') + .removeClass('hidden'); + $newGroup.find('.add_search_link') + .attr('id', 'add_search_link_' + nextGroup) + .attr('onClick', 'return addSearch(' + nextGroup + ')') + .removeClass('hidden'); + $newGroup.find('.adv-group-close') + .attr('onClick', 'return deleteGroup(' + nextGroup + ')'); + $newGroup.find('select.form-control') + .attr('id', 'search_bool' + nextGroup) + .attr('name', 'bool' + nextGroup + '[]'); + $newGroup.find('.search_bool') + .attr('for', 'search_bool' + nextGroup); + if (join.length > 0) { + $newGroup.find('option[value="' + join + '"]').attr('selected', 1); + } + // Insert + $('#groupPlaceHolder').before($newGroup); + // Populate + groupLength[nextGroup] = 0; + addSearch(nextGroup, {term: firstTerm, field: firstField}); + // Show join menu + if (nextGroup > 0) { + $('#groupJoin').removeClass('hidden'); + // Show x + $('.adv-group-close').removeClass('hidden'); + } + + // #17985 finc barf + $newGroup.children('input.form-control').first().focus(); + + return nextGroup++; +} + +function deleteGroup(group) { + // Find the group and remove it + $("#group" + group).remove(); + // If the last group was removed, add an empty group + if ($('.adv-group').length === 0) { + addGroup(); + } else if ($('#advSearchForm .adv-group').length === 1) { + $('#groupJoin').addClass('hidden'); // Hide join menu + $('.adv-group .adv-group-close').addClass('hidden'); // Hide x + } + return false; +} + +$(document).ready(function advSearchReady() { + $('.clear-btn').click(function clearBtnClick() { + $('input[type="text"]').val(''); + $("option:selected").removeAttr("selected"); + $("#illustrated_-1").click(); + }); +}); diff --git a/themes/finc/js/covers.js b/themes/finc/js/covers.js index 1f150538799ab5778d7129604d192603de5761a5..f54f93b677c941e87ad4fc3a0406e43f54d20aba 100644 --- a/themes/finc/js/covers.js +++ b/themes/finc/js/covers.js @@ -1,3 +1,22 @@ +/* global Finc */ +// show picture in large size after click within a modal +function registerCoverForModal(anchor, url) { + if (anchor === null || anchor === undefined || url === null || url === undefined) { + return; + } + + anchor.click(function(event) { + event.preventDefault(); + VuFind.modal('show'); + var largeSizeUrl = url + '&size=large'; + $.get(largeSizeUrl).done(function() { + $('#modal').find('.modal-body').html('<img src="' + largeSizeUrl + '">'); + }).fail(function() { + $('#modal').find('.modal-body').html('<img src="' + url + '">'); + }); + }); +} + /* this is a backport from VF 7 core, remove on upgrade */ /* global VuFind */ function loadCoverByElement(data, element) { @@ -15,6 +34,7 @@ function loadCoverByElement(data, element) { anchor.show(); anchor.attr('href', response.data.url); anchor.removeClass('hidden'); // finc specific + registerCoverForModal(anchor, response.data.url); // finc specific } else { img.remove(); if (typeof response.data.html !== 'undefined') { @@ -45,5 +65,6 @@ function loadCovers() { loadCoverByElement(data, $(this)); }); } + // deactivated for finc - we load every single cover directly by itself in cover.phtml // $(document).ready(loadCovers); diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss index a67f2e0335aa26a3e91f61ef08ce58191d777d4c..79421497168e1b1eaf06068475fd9e8e037d41fd 100644 --- a/themes/finc/scss/compiled.scss +++ b/themes/finc/scss/compiled.scss @@ -2172,8 +2172,14 @@ footer { } span { - font-size: .8em; + font-size: 1rem; + padding-top: .75rem; + text-align: center; width: 100%; + + @media screen and (max-width: $screen-xs-max) { + display: block; + } } } @@ -2911,6 +2917,11 @@ footer ul { } } +// Favorites list description +.list-desc { + margin-top: 1rem; +} + // Result List - END // Translate feature (Admin panel) diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml index da6f1ba8e886185d7a21902dc4b8be2d31fbaeaf..9a632703f394087e73e9d4c8dc200cdaf71855c6 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml @@ -6,7 +6,7 @@ $cover = $coverDetails['html']; $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="<?=$cover?'true':'false'?>> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml index 53e91883a964fd80e73fbdfe44a6adc239dba54e..2fb24aa1bf328fb5013725bbcdce4c9de5d10252 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml @@ -9,7 +9,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> @@ -46,8 +46,7 @@ */ ?> <?php /* finc: add schema tags for title #13850 - VE */ ?> - <h1 - property="name"><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> + <h1 property="name" lang=""><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> <?php /* #18307 remove summary from core */ ?> @@ -70,7 +69,7 @@ <?php foreach ($coreFields as $current): ?> <tr> <th><?= $this->transEsc($current['label']) ?>:</th> - <td data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> + <td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> </tr> <?php endforeach; ?> </table> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml index 17ba1d06e62465f9c5e57c4dafaf26329d3fed73..88e85350234143aa2ebe142baeb50a484d81b021 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml @@ -2,11 +2,11 @@ <?php if (!empty($data)): ?> <?php if (is_array($data)): ?> <?php foreach ($data as $author): ?> - <? if(isset($author['name'])): ?> + <?php if(isset($author['name'])): ?> <a href="<?=$this->record($this->driver)->getLink('author', $author['name'])?>"> <?= $author['name'] ?> </a> - <? endif; ?> + <?php endif; ?> <?php if(isset($author['dates'])): ?> <?= $author['dates'] ?> <?php endif; ?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-bk.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-bk.phtml index d7b19e2baabb7bac815b1b162a44df6b6b7fbdac..7a2d568a59dde4f2be3ed01903270a3bb6ba8d43 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/data-bk.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-bk.phtml @@ -1,6 +1,6 @@ <!-- finc: RecordDriver - SolrMarc - data-bk --> -<? if (!(empty($data))): ?> -<? $i = 0; foreach ($data as $item): ?> +<?php if (!(empty($data))): ?> +<?php $i = 0; foreach ($data as $item): ?> <?= ($i++ == 0) ? '' : '<br>'; ?> <?php //ToDo: add link to embed bk notation search via search type on upcoming solr field /* @@ -21,6 +21,6 @@ echo $output; } ?> -<? endforeach; ?> -<? endif; ?> +<?php endforeach; ?> +<?php endif; ?> <!-- finc: RecordDriver - SolrMarc - data-bk - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/format-list.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/format-list.phtml index 6ad5245ee5917c53d98f7e91df7b59607bc4716b..b70be7192cb570010bced119d1eb8391fb35ca14 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/format-list.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/format-list.phtml @@ -1,8 +1,12 @@ <?php $formats = $this->driver->getFormats(); $translated_formats = []; foreach ($formats as $format): ?> - <?php $translated_formats[] = $translated_format = $this->transEsc($format); ?> - <span class="format <?=$this->record($this->driver)->getFormatClass($format)?>"><?=$translated_format?></span> + <?php + $translated_formats[] = $translated_format = $this->transEsc($format); + $formatClass = $this->record($this->driver)->getFormatClass($format); + ?> + <?php /* @deprecated: use SideFacets Helper to decorate language tags, remove when there's a VuFind core solution */ ?> + <?=$this->sideFacet()->getLanguageTag($translated_format, 'span', $this->layout()->userLang, ["class" => "format $formatClass"]);?> <?php endforeach; ?> <?php /* New genre string to display nxt to format in RESULT LIST and RECORD/Detail View, #11703, limit to SID 0 CK */ ?> <?php /* Removes (uncommented) new genre string to display with k10plus index in RESULT LIST and RECORD/Detail View, #14912 FM */ ?> @@ -17,6 +21,6 @@ foreach ($formats as $format): ?> ?> <span class="format"><?=$translated_genre?></span> <?php endif; ?> - <? endforeach; ?> + <?php endforeach; ?> <?php endif; ?> <?php endif; */ ?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml index 04e30ed779b6e49868cd3a8cc932f49b536accd8..3412cfef99ca6959911d15635e8671a04dcd5879 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml @@ -40,7 +40,7 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('list' <?php $missing = $this->driver instanceof \VuFind\RecordDriver\Missing; ?> <?php $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); ?> <?php if ($missing && $this->driver->isCachedRecord()): ?> - <span id="<?=$describedById?>" class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> + <span id="<?=$describedById?>" class="title" lang=""><?=$this->record($this->driver)->getTitleHtml()?></span> <p class="alert alert-info"> <?= $this->translate('record_from_cache')?> <?php if ($queryParams = $this->record($this->driver)->getAdvancedSearchQueryParams()): ?> @@ -49,7 +49,7 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('list' </p> <?php elseif (!$missing): ?> <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="getFull" data-view="<?=$this->params->getOptions()->getListViewOption() ?>"> - <span id="<?=$describedById?>" class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> + <span id="<?=$describedById?>" class="title" lang=""><?=$this->record($this->driver)->getTitleHtml()?></span> </a> <?php endif;?> </div> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml index 7e915e408fb9e2f4232268ae813cbf3cfc436696..c9db1eba1145a5242ff7bea91bad01fe2763c155 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml @@ -2,7 +2,6 @@ $normalizedValue = preg_replace('/[^a-z0-9]/', '', strtolower($this->value)); // Convert normalizedValue to styles -// finc: same list of states for icons like in de_15 #13704 - VE switch ($normalizedValue) { case 'local': echo 'fa-home'; diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml new file mode 100644 index 0000000000000000000000000000000000000000..50bd4d1b6e9856521d913ae9a4f4fbf9a5504ad1 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml @@ -0,0 +1,20 @@ +<!-- finc: recordDriver - DefaultRecord - record-icon-text --> +<?php + /* block copied from record-icon - RL */ + $recordType = $this->driver->getRecordType(); + if ($recordType == "marcfincpda") { + $type = $recordType; + } elseif ($recordType == "lido") { + $type = "object"; + } else { + $type = implode('', $this->driver->getFacetAvail()); + } +?> +<?php if ($iconClass = $this->record($this->driver)->getRecordIconClass($type)): ?> + <span class="access-icon hidden-print"> + <span> + <?=$this->translate("($iconClass)")?> + </span> + </span> +<?php endif; ?> +<!-- finc: recordDriver - DefaultRecord - record-icon-text - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml index b1326e3298090c15549f19039220c98795e1a4d3..b36f126e35c921bc00d91b93aa7b303a19c08382 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml @@ -1,30 +1,18 @@ <!-- finc: recordDriver - DefaultRecord - record-icon --> <?php -/* finc: template is identical with de_15 #13704 - VE */ - -/*$formats = []; -foreach ($this->driver->getFormats() as $format) { - $formats[] = $this->record($this->driver)->getRecordIconClass($format); -} -$formats = array_unique($formats); -asort($formats); -?> -<span class="record-icon"><img src="<?=$this->imageLink("small/".array_pop($formats).".png")?>" class="hidden-xs" alt="<?=$this->transEsc("record icon")?>" /></span> -*/ - -if ($this->driver->getRecordType() == "marcfincpda") { - $iconClass = $this->record($this->driver)->getRecordIconClass("marcfincpda"); -} elseif ($this->driver->getRecordType() == "lido") { - $iconClass = $this->record($this->driver)->getRecordIconClass("object"); -} else { - /* finc: solr field facet_avail instead of access_facet (field deprecated) #15375 - GG */ - $facetAvail = $this->driver->getFacetAvail(); - $facetAvail = implode('', $facetAvail); - $iconClass = $this->record($this->driver)->getRecordIconClass($facetAvail); -} + /* finc: template is NOT identical with de_15 - RL */ + $recordType = $this->driver->getRecordType(); + if ($recordType == "marcfincpda") { + $type = $recordType; + } elseif ($recordType == "lido") { + $type = "object"; + } else { + $type = implode('', $this->driver->getFacetAvail()); + } + $iconClass = $this->record($this->driver)->getRecordIconClass($type); ?> <span class="access-icon hidden-print"> - <i class="fa <?=$iconClass?>"></i> - <span class="hidden-xs"> <?=$this->transEsc("$this->escapeHtml($iconClass)")?></span> + <i aria-hidden="true" class="fa <?=$iconClass?>"></i> + <?php /* separate access text from icon - moved to cover.phtml */ ?> </span> -<!-- finc: recordDriver - DefaultRecord - record-icon - END --> +<!-- finc: recordDriver - DefaultRecord - record-icon - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml index 5be28ca9b03c5b5062c999a4e1214a44eebdde7d..767f185304e75b2ec54d4dad17025a4275a791ac 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml @@ -8,7 +8,7 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('resul $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover?> </div> <?php $thumbnail = ob_get_contents(); ?> @@ -18,6 +18,7 @@ if ($cover): <?php ob_start(); ?> <div class="media-<?=$thumbnailAlignment?> record-icon"> <?=$this->record($this->driver)->getRecordIcon()?> + <?=$this->record($this->driver)->getRecordIconText()?> </div> <?php $thumbnail = ob_get_contents(); ?> <?php ob_end_clean(); ?> @@ -33,7 +34,7 @@ if ($cover): <div class="media-body"> <div class="result-body"> <div> - <a id="<?=$describedById?>" href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> + <a id="<?=$describedById?>" href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>" lang=""> <?=$this->record($this->driver)->getTitleHtml()?> </a> </div> diff --git a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml index 4d6782043354e03aaba5a131f530df365700489c..d6edbf31147404a0e6ef590d9cebf01b682b780e 100644 --- a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml +++ b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml @@ -13,7 +13,7 @@ $thumbnail = false; $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('result'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover?> </div> <?php $thumbnail = ob_get_contents(); ?> @@ -39,7 +39,7 @@ if ($cover): <div class="result-body"> <div> <?php /* We don't use links for missing records as they would lead nowhere - CK */ ?> - <span href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> + <span href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>" lang=""> <?=$this->record($this->driver)->getTitleHtml()?> </span> </div> diff --git a/themes/finc/templates/RecordDriver/SolrAI/core.phtml b/themes/finc/templates/RecordDriver/SolrAI/core.phtml index 4408efacce9795b28a166f97b3f33cfbad1535af..8ff58d1fdd303d8224c46529e7c1677cd7e804fb 100644 --- a/themes/finc/templates/RecordDriver/SolrAI/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrAI/core.phtml @@ -10,7 +10,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> @@ -46,8 +46,7 @@ */ ?> <?php /* finc: add schema tags for title #13850 - VE */ ?> - <h1 - property="name"><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> + <h1 property="name" lang=""><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> <?php /* #18307 remove summary from core */ ?> @@ -73,7 +72,7 @@ <?php else: ?> <tr> <th><?= $this->transEsc($current['label']) ?>:</th> - <td data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> + <td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> </tr> <?php endif; ?> <?php endforeach; ?> diff --git a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml index 05bca21a2d7a77170d85f64787339b63e77f71c0..16be9bd855b86b1155ba70f51928ecab646d9b4d 100644 --- a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml +++ b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml @@ -16,6 +16,7 @@ if ($cover): <?php ob_start(); ?> <div class="media-<?=$thumbnailAlignment?> record-icon"> <?=$this->record($this->driver)->getRecordIcon()?> + <?=$this->record($this->driver)->getRecordIconText()?> </div> <?php $thumbnail = ob_get_contents(); ?> <?php ob_end_clean(); ?> @@ -31,7 +32,7 @@ if ($cover): <div class="media-body"> <div class="result-body"> <div> - <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> + <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>" lang=""> <?=$this->record($this->driver)->getTitleHtml()?> </a> </div> diff --git a/themes/finc/templates/RecordDriver/SolrLido/core.phtml b/themes/finc/templates/RecordDriver/SolrLido/core.phtml index 22041396bbf6639fc4e5803a47f737edebc48d6a..8eed15270f91375cb0d4162a57c86c12e0e8316d 100644 --- a/themes/finc/templates/RecordDriver/SolrLido/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrLido/core.phtml @@ -30,7 +30,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col"?>"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> @@ -63,7 +63,7 @@ <?php /* finc: We want to get rid of trailing special chars in the title and limit its length to 100 chars; in finc: keep schema name tag here!! #13861 CK */ ?> - <h1 property="name"><?=$this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100)))?></h1> + <h1 property="name" lang=""><?=$this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100)))?></h1> <?php $summary = $this->driver->getSummary(); $summary = isset($summary[0]) ? $this->escapeHtml($summary[0]) : false; ?> @@ -97,7 +97,7 @@ <?php else: ?> <tr> <th><?=$this->transEsc($current['label'])?>:</th> - <td data-title="<?= $this->transEsc($current['label']) ?>:"><?=$current['value']?></td> + <td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"><?=$current['value']?></td> </tr> <?php endif; ?> <?php endforeach; ?> diff --git a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml index 66c9a108e801f5978cfd5c7019085a804ed3e0b0..36078b3bbbd57eb88e6a9d5700798696e31f61e5 100644 --- a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml @@ -10,7 +10,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> @@ -46,8 +46,7 @@ */ ?> <?php /* finc: add schema tags for title #13850 - VE */ ?> - <h1 - property="name"><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> + <h1 property="name" lang=""><?= $this->escapeHtml(preg_replace('/(\s[\/\.:]\s*)*$/', '', $this->truncate($this->driver->getShortTitle() . ' ' . $this->driver->getSubtitle() . ' ' . $this->driver->getTitleSection(), 100))) ?></h1> <?php /* #18307 remove summary from core */ ?> @@ -73,7 +72,7 @@ <?php else: ?> <tr> <th><?= $this->transEsc($current['label']) ?>:</th> - <td data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> + <td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"><?= $current['value'] ?></td> </tr> <?php endif; ?> <?php endforeach; ?> diff --git a/themes/finc/templates/RecordTab/description.phtml b/themes/finc/templates/RecordTab/description.phtml index 98d59dfadd4b15dc09a30019bbd3990d0eaecdd4..48285ed3c4f6759364a15215453eb855c3b2b65c 100644 --- a/themes/finc/templates/RecordTab/description.phtml +++ b/themes/finc/templates/RecordTab/description.phtml @@ -16,9 +16,9 @@ $mainFields = $formatter->getData($driver, $formatter->getDefaults('description' <tr> <?php if (!empty($current['label'])): ?> <th><?=$this->transEsc($current['label'])?>:</th> - <td data-title="<?= $this->transEsc($current['label']) ?>:"> + <td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"> <?php else: ?> - <td colspan="2"> + <td lang="" colspan="2"> <?php endif; ?> <?=$current['value']?></td> </tr> diff --git a/themes/finc/templates/RecordTab/descriptionlido.phtml b/themes/finc/templates/RecordTab/descriptionlido.phtml index b02580e4ccefc1f15d7b189f08bfaae9300b555f..2afd501a844b9f748c06657c879536e79a3a6a3e 100644 --- a/themes/finc/templates/RecordTab/descriptionlido.phtml +++ b/themes/finc/templates/RecordTab/descriptionlido.phtml @@ -14,7 +14,7 @@ $mainFields = $formatter->getData($driver, $formatter->getDefaults('description- <caption class="sr-only"><?= $this->transEsc('Description') ?></caption> <?php if (!empty($mainFields)): ?> <?php foreach ($mainFields as $current): ?> - <tr><th><?=$this->transEsc($current['label'])?>:</th><td data-title="<?= $this->transEsc($current['label']) ?>:"><?=$current['value']?></td></tr> + <tr><th><?=$this->transEsc($current['label'])?>:</th><td lang="" data-title="<?= $this->transEsc($current['label']) ?>:"><?=$current['value']?></td></tr> <?php endforeach; ?> <?php else: ?> <tr><td><?=$this->transEsc('no_description')?></td></tr> diff --git a/themes/finc/templates/RecordTab/holdingsils.phtml b/themes/finc/templates/RecordTab/holdingsils.phtml index 90f4cd7d4eb475ccf493af3f106b895297376861..2a1b7d38980faea8decad659732d774738ea151a 100644 --- a/themes/finc/templates/RecordTab/holdingsils.phtml +++ b/themes/finc/templates/RecordTab/holdingsils.phtml @@ -155,7 +155,7 @@ if (!empty($holdingTitleHold)): ?> </td> </tr> <?php endforeach; endif; ?> - <? /* finc: we use call numbers after "Notes" - END */ ?> + <?php /* finc: we use call numbers after "Notes" - END */ ?> <?php if (!empty($holding['purchase_history'])): ?> <tr> <th><?=$this->transEsc("Most Recent Received Issues")?>:</th> diff --git a/themes/finc/templates/RecordTab/holdingsils/standard.phtml b/themes/finc/templates/RecordTab/holdingsils/standard.phtml index 5c1c993c792ce7817738e48ab2ff6f808a0f5156..edfcdba974eed2d95c2dd55a7b5729b135ca917a 100644 --- a/themes/finc/templates/RecordTab/holdingsils/standard.phtml +++ b/themes/finc/templates/RecordTab/holdingsils/standard.phtml @@ -51,7 +51,7 @@ <i class="fa fa-flag"></i> <?= $this->transEsc($checkEmailHold ? "EmailHold::email_hold_check_text" : "EmailHold::email_hold_place_text") ?> </a> <?php endif; ?> - <? /* finc-specific insert - #6096 - END */ ?> + <?php /* finc-specific insert - #6096 - END */ ?> <?php else: ?> <?php /* Begin Unavailable Items (Recalls) */ ?> <?php /* finc: use empty status and transEsc 'Unavailable', CK */ ?> diff --git a/themes/finc/templates/admin/i18n/home.phtml b/themes/finc/templates/admin/i18n/home.phtml index 754d5e61924cd7329055872eb5abddeefeadfb5a..1742553be46f6279e424f9c0e88134fbd2287e4d 100644 --- a/themes/finc/templates/admin/i18n/home.phtml +++ b/themes/finc/templates/admin/i18n/home.phtml @@ -1,5 +1,5 @@ <!-- finc: admin - i18n - home --> -<? $this->headTitle($this->translate('admin_i18n_menu_entry')); ?> +<?php $this->headTitle($this->translate('admin_i18n_menu_entry')); ?> <div class="<?= ($this->layoutClass('mainbody') . (!$this->config()->get('config')->Site->admin_enabled ? ' solo' : '')) ?>"> <h1><?= $this->transEsc('admin_i18n_menu_entry') ?></h1> @@ -13,22 +13,22 @@ <form id="change-language-form" action="<?= $this->url('admin/i18n') ?>"> <div class="form-group"> <p><strong><?= $this->transEsc('admin_i18n_select_languages') ?>:</strong></p> - <? foreach ($this->languages as $language): ?> - <? $checked = $language['selected'] ? 'checked' : ''; ?> + <?php foreach ($this->languages as $language): ?> + <?php $checked = $language['selected'] ? 'checked' : ''; ?> <label class="checkbox-inline"> <input type="radio" name="locale" <?= $checked ?> value="<?= $language['locale'] ?>"> <?= $language['name'] ?> </label> - <? endforeach; ?> + <?php endforeach; ?> </div> <div class="form-group"> <p><strong><?= $this->transEsc('admin_i18n_select_domains') ?>:</strong></p> - <? foreach ($domains as $domain): ?> + <?php foreach ($domains as $domain): ?> <label class="checkbox-inline"> <input type="radio" name="domain" value="<?= $domain['name'] ?>"<?= $domain['selected'] ? 'checked' : '' ?>> <?= $domain['name'] ?> </label> - <? endforeach; ?> + <?php endforeach; ?> </div> <button type="submit" form="change-language-form" class="btn btn-primary"> @@ -76,11 +76,11 @@ </table> </div> -<? if ($this->config()->get('config')->Site->admin_enabled): ?> +<?php if ($this->config()->get('config')->Site->admin_enabled): ?> <div class="<?= $this->layoutClass('sidebar') ?>"> <?= $this->render("admin/menu.phtml") ?> </div> -<? endif; ?> +<?php endif; ?> <?php $script = <<<JS @@ -108,9 +108,9 @@ $script = <<<JS JS; ?> <?=$this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?> -<? $this->headScript() +<?php $this->headScript() ->appendFile("vendor/datatables/jquery.dataTables.min.js"); ?> -<? $this->headScript() +<?php $this->headScript() ->appendFile("vendor/datatables/dataTables.bootstrap.min.js"); ?> <!-- finc: admin - i18n - home - END --> diff --git a/themes/finc/templates/browse/home.phtml b/themes/finc/templates/browse/home.phtml index 13445e78c6d1561295cea5999913b76b316ca8f0..d20402286c31d1e1cb1a62bc133202e76d32be3a 100644 --- a/themes/finc/templates/browse/home.phtml +++ b/themes/finc/templates/browse/home.phtml @@ -84,7 +84,7 @@ </div> <?php elseif (isset($this->query)): ?> <div class="browse-list" id="list4"> - <span class="browse-item"><?=$this->transEsc('nohit_heading') ?></span> + <span class="browse-item" lang=""><?=$this->transEsc('nohit_heading') ?></span> </div> <?php endif; ?> </div> diff --git a/themes/finc/templates/cart/contents.phtml b/themes/finc/templates/cart/contents.phtml index 1546577216b002f73c576f91678eea424fcd6b8a..1c9d62015243f20d3d9ba410f33c1b08575474a5 100644 --- a/themes/finc/templates/cart/contents.phtml +++ b/themes/finc/templates/cart/contents.phtml @@ -1,3 +1,4 @@ +<!-- finc: cart - contents --> <?php $records = $this->cart()->getRecordDetails(); if (!empty($records)): ?> <hr/> @@ -8,7 +9,7 @@ if (!empty($records)): ?> <label> <?=$this->record($record)->getCheckbox('cart')?> <?php $describedById = $record->getSourceIdentifier() . '|' . $record->getUniqueId(); ?> - <a id="<?=$describedById?>" title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>" data-lightbox-ignore><?=$this->escapeHtml($record->getBreadcrumb())?> + <a id="<?=$describedById?>" title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>" data-lightbox-ignore lang=""><?=$this->escapeHtml($record->getBreadcrumb())?> <?php // finc-specific: Collect citation data: $helper = $this->citation($record); @@ -27,4 +28,5 @@ if (!empty($records)): ?> </ul> <?php else: ?> <p class="alert alert-info"><?=$this->transEsc('bookbag_is_empty')?>.</p> -<?php endif; ?> \ No newline at end of file +<?php endif; ?> +<!-- finc: cart - contents - END --> diff --git a/themes/finc/templates/error/RuntimeException.phtml b/themes/finc/templates/error/RuntimeException.phtml index 0e8933ecf5a1fd6c08db0c8152ad4ae3d42b05dc..bbafe06af26110f42247b726b843bc74290f68e9 100644 --- a/themes/finc/templates/error/RuntimeException.phtml +++ b/themes/finc/templates/error/RuntimeException.phtml @@ -1,5 +1,5 @@ <!-- finc: RuntimeException --> -<?/* largely copied from /bootstrap3/templates/error/index.phtml #17035 - RL */?> +<?php /* largely copied from /bootstrap3/templates/error/index.phtml #17035 - RL */?> <?php // Set page title. $this->headTitle($this->translate('An error has occurred')); @@ -14,7 +14,7 @@ <?php else: ?> <p><?=$this->transEsc($this->message)?></p> <?=$this->transEsc('Please contact the Library Reference Department for assistance')?> - <?php $supportEmail = $this->escapeHtmlAttr($this->systememail()); ?> + <?php $supportEmail = $this->escapeHtmlAttr($this->systemEmail()); ?> <a href="mailto:<?=$supportEmail?>"><?=$supportEmail?></a> <?php endif; ?> <br/> diff --git a/themes/finc/templates/error/TimeoutException.phtml b/themes/finc/templates/error/TimeoutException.phtml index 825b115fa32be971509d5288848b43123d394367..d2f8a14686bd5aa9870db051e4471fa07d08a3a3 100644 --- a/themes/finc/templates/error/TimeoutException.phtml +++ b/themes/finc/templates/error/TimeoutException.phtml @@ -1,5 +1,5 @@ <!-- finc: TimeoutException --> -<?/* largely copied from /bootstrap3/templates/error/index.phtml #17035 - RL */?> +<?php /* largely copied from /bootstrap3/templates/error/index.phtml #17035 - RL */?> <?php // Set page title. $this->headTitle($this->translate('An error has occurred')); @@ -8,7 +8,7 @@ ?> <div class="alert alert-danger"> <p> - <?=sprintf($this->translate('error_timeout'), $this->systememail(), $this->systememail())?> + <?=sprintf($this->translate('error_timeout'), $this->systemEmail(), $this->systemEmail())?> <br/> </p> </div> diff --git a/themes/finc/templates/myresearch/checkedout.phtml b/themes/finc/templates/myresearch/checkedout.phtml index a0ae5b548244ab7d72d87af175ff79aedbb86724..a6b6773c1a96c29bef8e5892db1ffae744b4d08a 100644 --- a/themes/finc/templates/myresearch/checkedout.phtml +++ b/themes/finc/templates/myresearch/checkedout.phtml @@ -119,7 +119,7 @@ $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) . - '" class="title">' . $title . '</a>'; + '" class="title" lang="">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... echo $this->escapeHtml($ilsDetails['title']); diff --git a/themes/finc/templates/myresearch/fines.phtml b/themes/finc/templates/myresearch/fines.phtml index 32080215e7fcfcda8546320329019bd96d9514d2..a77e2fdcc7e3cc103fb8599f93cd7fbf34bf63bb 100644 --- a/themes/finc/templates/myresearch/fines.phtml +++ b/themes/finc/templates/myresearch/fines.phtml @@ -77,7 +77,7 @@ <?php for ($row = 0; $row < $rowCount; $row++): ?> <tr> <?php foreach ($columns as $column): ?> - <td data-title="<?=$this->transEsc($column)?>"><?=$tableData[$column][$row]?></td> + <td data-title="<?=$this->transEsc($column)?>" lang=""><?=$tableData[$column][$row]?></td> <?php endforeach; ?> </tr> <?php endfor; ?> diff --git a/themes/finc/templates/myresearch/historicloans.phtml b/themes/finc/templates/myresearch/historicloans.phtml index 2f73364f07ac9703c2240869447fb082bdf65d1d..44605abc8de8fafa023af8ba0b70903984ef3263 100644 --- a/themes/finc/templates/myresearch/historicloans.phtml +++ b/themes/finc/templates/myresearch/historicloans.phtml @@ -51,7 +51,7 @@ $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover ?> </div> <?php $thumbnail = ob_get_contents(); @@ -68,7 +68,7 @@ $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); echo '<a href="' . $this->recordLink()->getUrl($resource) . - '" class="title">' . $title . '</a>'; + '" class="title" lang="">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... echo $this->escapeHtml($ilsDetails['title']); diff --git a/themes/finc/templates/myresearch/holds.phtml b/themes/finc/templates/myresearch/holds.phtml index 67298804196e4d9e207e1ce0adfa587ddc096a96..6b584c7355cd127ed8e15dc3c689e737e098636d 100644 --- a/themes/finc/templates/myresearch/holds.phtml +++ b/themes/finc/templates/myresearch/holds.phtml @@ -82,10 +82,10 @@ $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) - . '" class="title">' . $title . '</a>'; + . '" class="title" lang="">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... - echo '<span class="title" id="' . $describedById . '">' . $this->escapeHtml($ilsDetails['title']) . '</span>'; + echo '<span class="title" id="' . $describedById . '" lang="">' . $this->escapeHtml($ilsDetails['title']) . '</span>'; } else { // Last resort -- indicate that no title could be found. echo $this->transEsc('Title not available'); diff --git a/themes/finc/templates/myresearch/illrequests.phtml b/themes/finc/templates/myresearch/illrequests.phtml index 086406fd81ddfa636e747aff995ef2e247820d06..6f87f860b07bdb742a7a115a18a82eabeb1a8a79 100644 --- a/themes/finc/templates/myresearch/illrequests.phtml +++ b/themes/finc/templates/myresearch/illrequests.phtml @@ -66,7 +66,7 @@ $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover ?> </div> <?php $thumbnail = ob_get_contents(); ?> @@ -83,7 +83,7 @@ $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) - . '" class="title">' . $title . '</a>'; + . '" class="title" lang="">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... echo $this->escapeHtml($ilsDetails['title']); diff --git a/themes/finc/templates/myresearch/mylist.phtml b/themes/finc/templates/myresearch/mylist.phtml index 95a00ff48f650d04520fec9938c064a6e59a9499..6354ae6aa1c7962981d456fc50ba0388082b6014 100644 --- a/themes/finc/templates/myresearch/mylist.phtml +++ b/themes/finc/templates/myresearch/mylist.phtml @@ -69,7 +69,7 @@ $user = $this->auth()->isLoggedIn(); </div> </nav> <?php if ($list && !empty($list->description)): ?> - <p><?=$this->escapeHtml($list->description)?></p> + <p class="list-desc"><?=$this->escapeHtml($list->description)?></p> <?php endif; ?> <?php if ($recordTotal > 0): ?> <form class="form-inline" method="post" name="bulkActionForm" action="<?=$this->url('cart-myresearchbulk')?>" data-lightbox data-lightbox-onsubmit="bulkFormHandler"> diff --git a/themes/finc/templates/myresearch/storageretrievalrequests.phtml b/themes/finc/templates/myresearch/storageretrievalrequests.phtml index 18bd7f3ca95305f8e741381b199fc031ffef1a69..a7ec9c253467e5a0395fceac4257cbfb79c20a62 100644 --- a/themes/finc/templates/myresearch/storageretrievalrequests.phtml +++ b/themes/finc/templates/myresearch/storageretrievalrequests.phtml @@ -82,7 +82,7 @@ $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) - . '" class="title">' . $title . '</a>'; + . '" class="title" lang="">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... echo $this->escapeHtml($ilsDetails['title']); diff --git a/themes/finc/templates/record/cover.phtml b/themes/finc/templates/record/cover.phtml index d528c97f6358d0cb62317dc0a7e8e359ddc0ba2b..ccc96247aef93c12b7ba2671726b0028e306ff52 100644 --- a/themes/finc/templates/record/cover.phtml +++ b/themes/finc/templates/record/cover.phtml @@ -3,22 +3,31 @@ <?php /* If you want to load covers in lightbox use .recordcover; the class .nocover prevents nocover images from loading in lightbox or can be used to hide the images */ ?> <?php $alt = $alt ?? $this->transEsc('Cover Image')?> +<?php $coverId = "cover-" . $driver->getUniqueID() . "-" . time(); ?> <?php if ($cover): ?> - <?php if ($this->link): ?><a href="<?=$this->escapeHtmlAttr($this->link)?>" target="_blank" tabindex="-1"><?php endif; ?> - <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" aria-hidden="true"/> - <?php if ($this->link): ?></a><?php endif; ?> + <?php if ($this->link): ?><a id="<?=$coverId?>" href="<?=$this->escapeHtmlAttr($this->link)?>" tabindex="-1" aria-hidden="true"><?php endif; ?> + <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" /> + <?php if ($this->link): ?> + </a> + <script> + registerCoverForModal($('#<?=$coverId?>'), '<?=$this->link?>'); + </script> + <?php endif; ?> <?php elseif ($cover === false): ?> - <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" /> + <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" tabindex="-1" /> <?php else: ?> - <div id="cover-<?=$driver->getUniqueID()?>" class="ajaxcover"> - <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div> - <div class="cover-container"> - <?=$this->render('record/coverReplacement')?> - <a class="coverlink hidden" tabindex="-1"> - <img src onerror="loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#cover-<?=$driver->getUniqueID()?>'))" - <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" /> - </a> - </div> - </div> + <div id="<?=$coverId?>" class="ajaxcover"> + <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div> + <div class="cover-container"> + <?=$this->render('record/coverReplacement')?> + <a class="coverlink hidden" aria-hidden="true" tabindex="-1"> + <img <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" /> + </a> + <script> + loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#<?=$coverId?>')); + </script> + </div> + </div> <?php endif; ?> +<?=$this->record($this->driver)->getRecordIconText()?> <!-- finc: record - cover - END --> diff --git a/themes/finc/templates/search/history-table.phtml b/themes/finc/templates/search/history-table.phtml index 57e38252ee5552e41c570bd68d39319af9a65105..ff9e0554e3200b859b4c7653449aedc013ad92c8 100644 --- a/themes/finc/templates/search/history-table.phtml +++ b/themes/finc/templates/search/history-table.phtml @@ -16,7 +16,7 @@ <td data-title="<?= $this->transEsc('history_search') ?>:"> <?= $this->historylabel($info->getParams()->getSearchClassId()) ?> - <a href="<?= $this->url($info->getOptions()->getSearchAction()) . $info->getUrlQuery()->getParams() ?>"><?php $desc = $info->getParams()->getDisplayQuery(); + <a href="<?= $this->url($info->getOptions()->getSearchAction()) . $info->getUrlQuery()->getParams() ?>" lang=""><?php $desc = $info->getParams()->getDisplayQuery(); echo empty($desc) ? $this->transEsc("history_empty_search") : $this->escapeHtml($desc); ?> </a>