Skip to content
Snippets Groups Projects
header.phtml 15.5 KiB
Newer Older
<!-- fid_adlr: header -->
<?php $account = $this->auth()->getManager(); ?>
<?php /* This nav element is the sticky element in the header
       - use affix and not navbar-fixed-top!
       - affix is applied to ALL .navbar elements via JS in layout.phtml - CK */ ?>
<?php $data_offset_top_affix = 85 ?>
<div role="navigation" class="banner container navbar affix-top" id="main-navigation" data-spy="affix" data-offset-top="<?= $data_offset_top_affix ?>">
  <nav class="menubar">
    <div class="navbar-header fill-flex">
      <a class="navbar-brand lang-<?= $this->layout()->userLang ?>" href="<?= $this->url('search-home') ?>" tabindex="0">adlr.link</a>
    <?php /* fid_adlr: header-menu-collapse for feedback (disabled?) / registering / card (disabled) */ ?>
    <?php if (!isset($this->layout()->renderingError)): ?>
      <div class="register collapse header-menu-collapse" id="register-menu">
        <span<?php if ($account->isLoggedIn()): ?> class="hidden"<?php endif ?>>
          <?php if ($account->supportsCreation()): ?>
            <a class="navbar-header-link no-margin-l"
              href="<?= $this->url('myresearch-account') ?>?auth_method=<?= $account->getAuthMethod() ?>"
              tabindex="1" data-lightbox>
              <?php /* fid_adlr: show register for smaller lg below in list with other list entries #20986 */ ?>
              <span class="hidden-xs hidden-sm hidden-md">
                <i class="icon icon-key" aria-hidden="true"></i>
              </span>
              <span class="sr-only-xs-sm-md"><?= $this->transEsc('Create New Account') ?></span>
            </a>
          <?php endif; ?>
        </span>
        <?php /* adlr currently doesn't use cart/bookbag, but accessibility of the following was already improved */ /*
          <?php $cart = $this->cart(); if ($cart->isActive()): ?>
            <li id="cartSummary">
              <a id="cartItems" class="btn" data-lightbox title="<?=$this->transEsc('View Book Bag')?>" href="<?=$this->url('cart-home')?>">
                <i class="fa fa-clipboard" aria-hidden="true"></i>
                <span role="status">
                  <span class="sr-only"><?=$this->transEsc('Book Bag')?>:</span> <strong><?=count($cart->getItems())?></strong> <span class="cart-label"><?=$this->transEsc('items')?></span>
                  <span class="sr-only full<?=!$cart->isFull() ? ' hidden' : '' ?>">(<?=$this->transEsc('bookbag_full_msg')?>)</span>
                </span>
              </a>
            </li>
          <?php endif; ?>
          <?php if (isset($this->layout()->themeOptions) && count($this->layout()->themeOptions) > 1): ?>
            <li class="theme dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?=$this->transEsc("Theme")?> <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <?php foreach ($this->layout()->themeOptions as $current): ?>
                  <li<?=$current['selected'] ? ' class="active"' : ''?>>
                    <a href="<?=$this->escapeHtmlAttr($this->url()->addQueryParameters(['ui' => $current['name']])) ?>" rel="nofollow">
                      <?=$this->transEsc($current['desc']) ?>
                    </a>
                  </li>
                <?php endforeach; ?>
              </ul>
            </li>
          <?php endif; ?>
    <?php endif; ?>
    <?php /* fid_adlr: header-menu-collapse for feedback (disabled?) / registering / card (disabled) - END */ ?>
    <?php /* fid_adlr: basic header menu for login */ ?>
    <div class="navbar-header">
      <?php /* login / logout */ ?>
      <?php if (is_object($account) && $account->loginEnabled()): // hide login/logout if unavailable?>
        <span class="logoutOptions<?php if (!$account->isLoggedIn()): ?> hidden<?php endif ?>">
          <a class="navbar-header-link logout" href="<?= $this->url('myresearch-logout') ?>" tabindex="3">
            <span class="decorate hidden-xs hidden-sm-lg"><?= $this->transEsc("Log Out") ?></span>
            <span class="sr-only-xs-sm-md"><?= $this->transEsc("Log Out") ?></span>
            <i class="icon icon-log-out" aria-hidden="true"></i>
          </a>
        </span>
        <span id="loginOptions" class="<?php if ($account->isLoggedIn()): ?>hidden<?php endif ?>">
          <?php if ($account->getSessionInitiator($this->serverUrl($this->url('myresearch-home')))): ?>
            <a href="<?= $this->url('myresearch-userlogin') ?>" tabindex="2">
              <span class="decorate hidden-xs hidden-sm hidden-md"><?= $this->transEsc("Institutional Login") ?></span>
              <span class="sr-only-xs-sm-md"><?= $this->transEsc("Institutional Login") ?></span>
              <i class="icon icon-log-in" aria-hidden="true"></i>
          <?php else: ?>
            <a class="navbar-header-link" href="<?= $this->url('myresearch-userlogin') ?>" data-lightbox tabindex="2">
              <span class="decorate hidden-xs hidden-sm-lg"><?= $this->transEsc("Login") ?></span>
              <span class="sr-only-xs-sm-md"><?= $this->transEsc("Login") ?></span>
                <i class="icon icon-log-in" aria-hidden="true"></i>
            </a>
          <?php endif; ?>
        </span>
        <span class="logoutOptions<?php if ($account->dropdownEnabled()): ?> with-dropdown<?php endif ?><?php if (!$account->isLoggedIn()): ?> hidden<?php endif ?>">
          <a tabindex="2" class="navbar-header-link" href="<?= $this->url('myresearch-home', [], ['query' => ['redirect' => 0]]) ?>">
            <span class="decorate hidden-sm-lg hidden-xs"><?= $this->transEsc("Your Account") ?></span>
            <span class="sr-only-xs-sm-md"><?= $this->transEsc("Your Account") ?></span>
              <i id="account-icon" class="icon icon-user" aria-hidden="true"></i>
          </a>
        </span>
        <?php if ($account->dropdownEnabled()): ?>
          <div id="login-dropdown" class="dropdown<?php if (!$account->isLoggedIn()): ?> hidden<?php endif ?>">
            <a href="#" data-toggle="dropdown"><i class="icon icon-chevron-down"></i></a>
              <div class="dropdown-menu">
                <?= $this->render('myresearch/menu'); ?>
              </div>
          </div>
        <?php endif; ?>
      <?php endif; ?>
      <?php /* login / logout - END */ ?>
    <?php /* fid_adlr: basic header menu for login - END */ ?>
    <?php /* fid_adlr: simple dropdown for language switch */ ?>
    <?php if (!isset($this->layout()->renderingError)): ?>
      <div class="collapse header-menu-collapse" id="language-dropdown">
        <?php if (isset($this->layout()->allLangs) && count($this->layout()->allLangs) > 1): ?>
          <div class="language dropdown">
            <form method="post" name="langForm" id="langForm">
              <input type="hidden" name="mylang"/>
            </form>
            <?php /* It is ok, to keep this hidden, as it shown on XS, SM, MD using other options, CK */ ?>
            <a class="navbar-header-link dropdown-toggle hidden-xs hidden-sm hidden-md" id="quickfilter-language" href="#"
               data-toggle="dropdown"
               tabindex="3"
               aria-controls="langmenu"
               aria-expanded="false"
               onkeydown="forceFocus('#langmenu li a')">
              <span class="sr-only">Toggle language</span>
              <span class="decorate"><?= $this->layout()->userLang ?></span>
              <i class="icon icon-chevron-down" aria-hidden="true"></i>
              <i class="icon icon-chevron-up" aria-hidden="true"></i>
            <?php /* fid_adlr: show language for smaller lg below in list with other list entries #20986 */ ?>
            <ul id="langmenu" class="dropdown-menu hidden-xs hidden-sm hidden-md" aria-labelledby="quickfilter-language">
              <?php foreach ($this->layout()->allLangs as $langCode => $langName): ?>
                <li<?= $this->layout()->userLang == $langCode ? ' class="active"' : '' ?>>
                  <?php $fullLangName = $this->displayLanguageOption($langName); ?>
                  <a class="btn" href="#"
                    <?= $this->layout()->userLang != $langCode ? 'onClick="document.langForm.mylang.value=\'' . $langCode . '\';document.langForm.submit()"' : '' ?>>
                    <?= $fullLangName ? ($this->layout()->userLang != $langCode ? $this->transEsc($fullLangName) : $fullLangName) : $langCode ?>
                  </a>
                </li>
              <?php endforeach; ?>
            </ul>
          </div>
        <?php endif; ?>
      </div>
    <?php endif; ?>
    <?php /* fid_adlr: simple dropdown for language switch - END*/ ?>
    <?php /* fid_adlr: basic header menu for submenu toggler */ ?>
    <div class="navbar-header">
      <?php /* navigation toggler - RL */ ?>
      <div>
        <a class="navbar-header-link collapsed"
           onkeydown='clickElementOnKeyDown(event, "#submenuToggler"); forceFocus(".submenu-collapse li a")'
           tabindex="4"
           data-toggle="collapse"
           data-target="header, #submenu, #language-dropdown, #register-menu">
          <span class="sr-only">Toggle navigation</span>
          <span class="text-open">
            <span class="decorate hidden-xs hidden-sm hidden-md"><?= $this->transEsc("Menu") ?></span>
            <span class="sr-only-xs-sm-md"><?= $this->transEsc("Menu") ?></span>
            <i class="icon icon-burger" aria-hidden="true"></i>
          </span>
          <span class="text-close">
            <span class="hidden-xs hidden-sm hidden-md"><?= $this->transEsc("Menu Close") ?></span>
            <span class="sr-only-xs-sm-md"><?= $this->transEsc("Menu Close") ?></span>
            <i class="icon icon-close" aria-hidden="true"></i>
          </span>
        </a>
      </div>
      <?php /* navigation toggler - END */ ?>
    <?php /* fid_adlr: basic header menu for submenu toggler - END */ ?>

    <div class="collapse header-menu-collapse" id="submenu">
      <div class="submenu-collapse-wrapper">
        <ul class="submenu-collapse">
          <?php $searchOptions = $this->searchOptions("Solr"); ?>
          <?php if (!empty($advSearch = $searchOptions->getAdvancedSearchAction())): ?>
            <li>
              <a href="<?= $this->url($advSearch) ?>"><?= $this->transEsc("Advanced Search") ?></a>
            </li>
          <?php endif; ?>
            <a href="<?= $this->url('myresearch/databases') ?>"><?= $this->transEsc('Specific Databases') ?></a>
          <?php if (!empty($this->config()->get('config')->RawQueries['new_releases'])): ?>
            <li>
              <a href="<?= $this->url('search-results') . $this->config()->get('config')->RawQueries['new_releases'] ?>"><?= $this->transEsc('new_print_publications') ?></a>
            </li>
          <?php endif; ?>
            <a href="<?= $this->config()->get('config')->RssConsumer['fallback_url'] ?? "" ?>"><?= $this->transEsc('Blog') ?></a>
          </li>
          <li>
            <a href="<?= $this->config()->get('config')->RssConsumer['fallback_url'] ?? "" ?>/team"><?= $this->transEsc('About Us') ?></a>
          </li>
          <li>
            <a href="<?= $this->config()->get('config')->RssConsumer['fallback_url'] ?? "" ?>/faq"><?= $this->transEsc('FAQs') ?></a>
          </li>
          <li>
            <a href="<?= $this->config()->get('config')->RssConsumer['fallback_url'] ?? "" ?>/service-fuer-fachreferate"><?= $this->translate('Services for subject specialists') ?></a>
          <?php /* fid_adlr: show register and language here for all sizes smaller lg #20986 */ ?>
          <li>
            <ul class="submenu-additionals">
              <li class="visible-xs visible-sm visible-md submenu-additionals-lang" >
               <?php foreach ($this->layout()->allLangs as $langCode => $langName): ?>
                <?php $fullLangName = $this->displayLanguageOption($langName); ?>
                <a href="#"
                  <?= $this->layout()->userLang != $langCode ? 'onClick="document.langForm.mylang.value=\'' . $langCode . '\';document.langForm.submit()"' : '' ?>>
                  <span <?= $this->layout()->userLang == $langCode ? ' class="active"' : '' ?>><?= $fullLangName ? ($this->layout()->userLang != $langCode ? $this->transEsc($fullLangName) : $fullLangName) : $langCode ?></span>
                </a>
                <?php endforeach; ?>
              </li>
              <?php if (!isset($this->layout()->renderingError)): ?>
                <?php if (!$account->isLoggedIn() && $account->supportsCreation() ): ?>
                  <li class="visible-xs visible-sm visible-md">
                    <a href="<?= $this->url('myresearch-account') ?>?auth_method=<?= $account->getAuthMethod() ?>" tabindex="1" data-lightbox>
                      <?= $this->transEsc('Create New Account') ?>
                    </a>
                  </li>
                <?php endif; ?>
              <?php endif; ?>
            </ul>
          </li>
  <?php /* fid_adlr: navigation - END */ ?>
  <?php /* adlr-specific header text on home page - END */ ?>
  
  <?php if ($this->layout()->searchbox !== false): ?>
    <div class="search-wrapper container">
      <div id="searchbox" class="search container navbar collapse in affix-top" data-spy="affix" data-offset-top="<?= $data_offset_top_affix ?>">
        <div class="dropdown sbox-dd">
          <?php /* no data-toggle: .open dropdown-menu of sbox manually to prevent interdependence-bug with dropdown quickfilter(s) within sbox - RL */ ?>
          <button class="btn btn-primary dropdown-toggle" type="button" id="search-main-dropdown">
            <span class="text-open"><?= $this->transEsc("Open Search") ?><span class="icon icon-chevron-down"></span></span>
            <span class="text-close"><?= $this->transEsc("Close Search") ?><span class="icon icon-chevron-up"></span></span>
          </button>
          <ul class="dropdown-menu-parent sbox-dd-menu">
            <li>
              <nav class="nav searchbox hidden-print">
                <?=$this->layout()->searchbox ?>
  <?php endif; ?>

<script type="text/javascript">
	$(document).ready(function () {
      <?php /* disable transitions and delay while collapsing completely */ ?>
		$.support.transition = false;
      
      <?php /* Bugfix for switching affix / affix-top on click */ ?>
		$('#main-navigation').on('affix.bs.affix', function () {
			if (!$(window).scrollTop()) return false;
		});
      
      <?php /* still needed in bootstrap 3 for dropdown within dropdown */ ?>
		$('#search-main-dropdown').on('click', function () {
			$('.dropdown.sbox-dd').toggleClass("open");
		});
      
      <?php /* close main menu after click on language menu or within search box */ ?>
		$(document).on('click', '#language-dropdown *, .nav *, #main', function () {
			if ($('#submenu') && $('#submenu').attr('aria-expanded') == 'true') {
				$('header').addClass('in')
				$('#submenu').collapse('hide');
				$('#register-menu').collapse('hide');
				$('#language-dropdown').collapse('hide');
			}
		});
	});
	function clickElementOnKeyDown(event, elementId) {
		if (event.keyCode == 13 || event.keyCode == 32) {
			var element = $(elementId);
			if (element && element.length) {
				element.click();
			}
		}
	}
	function forceFocus(elementId) {
		var element = $(elementId);
		if (element && element.length) {
			element.first().focus();
		}
	}
<!-- fid_adlr: header - END -->