=$this->layout()->content ?>
=$this->doctype()?> layout()->searchbox)) { $this->layout()->searchbox = $this->context($this)->renderInContext('search/searchbox.phtml', []); } ?> layout()->rtl): ?> dir="rtl">
setupThemeResources(); ?> =$this->headMeta()?> =$this->googleTagManager()->getHeadCode()?> config()->get('config')->Site; // Disabled escaping of title temporarily so that we get it unescaped first: $this->headTitle()->setAutoEscape(false); $fullTitle = $this->translate( 'title_wrapper', [ '%%pageTitle%%' => $this->headTitle()->renderTitle(), '%%siteTitle%%' => $siteConfig->title, '%%titleSeparator%%' => $siteConfig->titleSeparator ?? '::', ] ); // Enable escaping again for proper output: $this->headTitle()->setAutoEscape(true); echo $this->headTitle($fullTitle, \Laminas\View\Helper\Placeholder\Container\AbstractContainer::SET); // Set up OpenSearch link: $this->headLink( [ 'href' => $this->url('search-opensearch') . '?method=describe', 'type' => 'application/opensearchdescription+xml', 'title' => $this->transEsc('Library Catalog Search'), 'rel' => 'search', ] ); // We need to generate the icons early, because they may add some stylesheets; // if we render them after the headLink / headStyle calls, some dependencies // may not load correctly. Thus, we render early, but use this later. $icons = !isset($this->renderingError) ? $this->render('js-icons.phtml') : '{}'; ?> layout()->rtl) { // RTL styling $this->headLink()->appendStylesheet('vendor/bootstrap-rtl.min.css'); } ?> =$this->headLink()?> =$this->headStyle()?> themeConfig()['stickyElements'])) { $this->headScript()->appendFile('sticky_elements.js'); } if (!isset($this->renderingError)) { // Deal with cart stuff: $cart = $this->cart(); if ($cart->isActive()) { $this->headScript()->appendFile('vendor/js.cookie.js'); $this->headScript()->appendFile('cart.js'); if ($domain = $cart->getCookieDomain()) { $appendScripts[] = 'VuFind.cart.setDomain("' . $domain . '");'; } if ($cookiePath = $cart->getCookiePath()) { $appendScripts[] = 'VuFind.cart.setCookiePath("' . $cookiePath . '");'; } if ($cookieSameSite = $cart->getCookieSameSite()) { $appendScripts[] = 'VuFind.cart.setCookieSameSite("' . $cookieSameSite . '");'; } } $this->headScript()->prependScript( 'var userIsLoggedIn = ' . ($this->auth()->getIdentity() ? 'true' : 'false') . ';' ); } // Session keep-alive if ($this->keepAlive()) { $appendScripts[] = 'var keepAliveInterval = ' . $this->keepAlive() . ';'; $this->headScript()->appendFile('keep_alive.js'); } // If account ajax is active, load script and add language strings $account = $this->auth()->getManager(); if ($account->ajaxEnabled()) { $this->headScript()->appendFile('account_ajax.js'); if ($this->session()->put('reset_account_status', null)) { $this->headScript()->setAllowArbitraryAttributes(true); $this->headScript()->appendScript('VuFind.account.clearAllCaches();', 'text/javascript', ['data-lightbox-run' => 'always']); } } $root = rtrim($this->url('home'), '/'); $jsConfig = !isset($this->renderingError) ? $this->render('js-configs.phtml') : '{}'; $translations = !isset($this->renderingError) ? $this->render('js-translations.phtml') : '{}'; $dsb = DEFAULT_SEARCH_BACKEND; $cspNonce = $this->csp()->getNonce(); $searchId = json_encode($this->layout()->searchId); $appendScripts[] = <<