Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
header.phtml 14.04 KiB
<!-- 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 ?>">
  <?php /* fid_adlr: navigation */ ?>
  <nav class="menubar">
    <?php /* fid_adlr: logo */ ?>
    <div class="navbar-header fill-flex">
      <a class="navbar-brand lang-<?= $this->layout()->userLang ?>" href="<?= $this->url('search-home') ?>" tabindex="0">adlr.link</a>
    </div>
    <?php /* fid_adlr: logo - END */ ?>

    <?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>
              <span class="decorate hidden-lg-only"><?= $this->transEsc('Create New Account') ?></span>
              <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()): ?>
        <div id="cartSummary" role="status">
          <a id="cartItems" class="bookmark" data-lightbox title="<?=$this->transEsc('View Book Bag')?>" href="<?=$this->url('cart-home')?>">
            <i class="icon icon-calendar" aria-hidden="true"></i>
            <span class="sr-only"><?=$this->transEsc('Book Bag')?>:</span>
            <strong class="cart-size"><?= count($cart->getItems()) ?></strong>
            <span class="cart-label"><?=$this->transEsc('items')?></span>
            <span class="cart-size full<?= !$cart->isFull() ? ' hidden' : '' ?>">(<?= $this->transEsc('bookbag_full') ?>)</span>
          </a>
        </div>
      <?php endif; ?>

      <?php if (isset($this->layout()->themeOptions) && count($this->layout()->themeOptions) > 1): ?>
        <div class="theme dropdown">
          <form method="post" name="themeForm" id="themeForm">
            <input type="hidden" name="ui"/>
          </form>
          <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?=$this->transEsc("Theme")?> <b class="icon icon-chevron-down"></b></a>
          <ul class="dropdown-menu">
            <?php foreach ($this->layout()->themeOptions as $current): ?>
              <li<?=$current['selected'] ? ' class="active"' : ''?>>
                <a href="#" onClick="document.themeForm.ui.value='<?=$this->escapeHtmlAttr($current['name'])?>';document.themeForm.submit()"><?=$this->transEsc($current['desc'])?></a>
              </li>
            <?php endforeach; ?>
          </ul>
        </div>
      <?php endif;?>
      */ ?>
      </div>
    <?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>
              </a>
            <?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 */ ?>
    </div>
    <?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>
            </a>
            <ul id="langmenu" class="dropdown-menu" 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"
           id="submenuToggler"
           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 */ ?>
    </div>
    <?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; ?>
          <li>
            <a href="<?= $this->url('myresearch/databases') ?>"><?= $this->transEsc('Specific Databases') ?></a>
          </li>
          <?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; ?>
          <li>
            <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>
          </li>
        </ul>
      </div>
    </div>
  </nav>
  <?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 ?>
              </nav>
            </li>
          </ul>
        </div>
      </div>
    </div>
  <?php endif; ?>
</div>

<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();
		}
	}
</script>
<!-- fid_adlr: header - END -->