Newer
Older
<?=$this->doctype('HTML5')?>
<html lang="<?=$this->layout()->userLang?>"<?php if ($this->layout()->rtl): ?> dir="rtl"<?php endif; ?>>
<head>
<?php $this->headThemeResources(); ?>
<?php /* remove meta because of W3C Validator error - CK */
/* <meta charset="utf-8"> */
if (empty($this->headTitle()) || $this->headTitle()->toString() == "<title></title>") {
$this->headTitle($this->translate('adlr_head_title'));
}
?>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>
<? /* TODO: use TranslatorAwareTrait:translateString instead of using postfix [_locale]*/ ?>
<meta name="description" lang="de" content="<?=$this->translate('adlr_head_description_de')?>">
<meta name="description" lang="en" content="<?=$this->translate('adlr_head_description_en')?>">
<meta name="keywords" lang="de" content="<?=$this->translate('adlr_head_keywords_de')?>">
<meta name="keywords" lang="en" content="<?=$this->translate('adlr_head_keywords_en')?>">
<? /* END TODO */ ?>
<?=$this->headMeta()?>
<?=$this->headTitle()?>
<?php
// 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'
]
);
?>
<!-- RTL styling -->
<?php if ($this->layout()->rtl) {
$this->headLink()->appendStylesheet('vendor/bootstrap-rtl.min.css');
} ?>
<?=$this->headLink()?>
<?=$this->headStyle()?>
<?php
if (!isset($this->renderingError)) {
// Add translation strings
// PDA (BELOW) is a custom finc string - CK
$this->jsTranslations()->addStrings(
[
'pda_send_success' => 'PDA::pda_send_success',
'add_tag_success' => 'add_tag_success',
'bulk_email_success' => 'bulk_email_success',
'bulk_noitems_advice' => 'bulk_noitems_advice',
'bulk_save_success' => 'bulk_save_success',
'close' => 'close',
'collection_empty' => 'collection_empty',
'error_occurred' => 'An error has occurred',
'filter-All' => 'All',
'filter-AVMedia' => 'SearchTabs::AV Media',
'filter-Releases' => 'SearchTabs::Releases',
'filter-Texts' => 'Texts',
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
'go_to_list' => 'go_to_list',
'hold_available' => 'hold_available',
'libphonenumber_invalid' => 'libphonenumber_invalid',
'libphonenumber_invalidcountry' => 'libphonenumber_invalidcountry',
'libphonenumber_invalidregion' => 'libphonenumber_invalidregion',
'libphonenumber_notanumber' => 'libphonenumber_notanumber',
'libphonenumber_toolong' => 'libphonenumber_toolong',
'libphonenumber_tooshort' => 'libphonenumber_tooshort',
'libphonenumber_tooshortidd' => 'libphonenumber_tooshortidd',
'loading' => 'Loading',
'more' => 'more',
'number_thousands_separator' => [
'number_thousands_separator', null, ','
],
'sms_success' => 'sms_success'
]
);
// Add libphonenumber.js strings
$this->jsTranslations()->addStrings(
[
"Phone number invalid" => 'libphonenumber_invalid',
"Invalid country calling code" => 'libphonenumber_invalidcountry',
"Invalid region code" => 'libphonenumber_invalidregion',
"The string supplied did not seem to be a phone number" => 'libphonenumber_notanumber',
"The string supplied is too long to be a phone number" => 'libphonenumber_toolong',
"The string supplied is too short to be a phone number" => 'libphonenumber_tooshort',
"Phone number too short after IDD" => 'libphonenumber_tooshortidd'
]
);
// Deal with cart stuff:
$cart = $this->cart();
if ($cart->isActive()) {
$this->headScript()->appendFile("vendor/cookies.js");
$this->headScript()->appendFile("cart.js");
$domain = $cart->getCookieDomain();
if (!empty($domain)) {
$this->headScript()->appendScript(
'VuFind.cart.setDomain("' . $domain . '");'
);
}
$cookiePath = $cart->getCookiePath();
if (!empty($cookiePath)) {
$this->headScript()->appendScript(
'VuFind.cart.setCookiePath("' . $cookiePath . '");'
);
}
$this->jsTranslations()->addStrings(
[
'addBookBag' => 'Add to Book Bag',
'bookbagFull' => 'bookbag_full_msg',
'bookbagMax' => $cart->getMaxSize(),
'bookbagStatusFull' => 'bookbag_full',
'confirmDelete' => 'confirm_delete',
'confirmEmpty' => 'bookbag_confirm_empty',
'itemsAddBag' => 'items_added_to_bookbag',
'itemsInBag' => 'items_already_in_bookbag',
'removeBookBag' => 'Remove from Book Bag',
'viewBookBag' => 'View Book Bag'
]
);
}
$this->headScript()->prependScript(
'var userIsLoggedIn = ' . ($this->auth()->isLoggedIn() ? 'true' : 'false') . ';'
);
}
// Session keep-alive
if ($this->keepAlive()) {
$this->headScript()->appendScript('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");
$this->jsTranslations()->addStrings(
[
'account_has_alerts' => 'account_has_alerts',
'Checked Out Items' => 'Checked Out Items',
'ill_request_available' => 'ill_request_available',
'renew_item_due_tooltip' => 'renew_item_due_tooltip',
'renew_item_overdue_tooltip' => 'renew_item_overdue_tooltip',
'request_in_transit' => 'request_in_transit',
'storage_retrieval_request_available' => 'storage_retrieval_request_available'
]
);
}
$root = rtrim($this->url('home'), '/');
$translations = $this->jsTranslations()->getJSON();
$dsb = DEFAULT_SEARCH_BACKEND;
$setupJS = <<<JS
VuFind.path = '{$root}';
VuFind.defaultSearchBackend = '{$dsb}';
VuFind.addTranslations({$translations});
JS;
$this->headScript()->appendScript($setupJS);
?>
<?=$this->headScript()?>
</head>
<body class="template-dir-<?=$this->templateDir?> template-name-<?=$this->templateName?> <?=$this->layoutClass('offcanvas-row')?><?php if ($this->layout()->rtl): ?> rtl<?php endif; ?>">
<?php // Set up the search box -- there are three possible cases:
// 1. No search box was set; we should default to the normal box
// 2. It was set to false; we should display nothing
// 3. It is set to a custom string; we should display the provided version
// Set up default search box if no data was provided from the template;
// this covers case 1. Cases 2 and 3 are then covered by logic below.
if (!isset($this->layout()->searchbox)) {
$this->layout()->searchbox = $this->render('search/searchbox.phtml');
}
?>
<?php if (isset($this->layout()->srmessage)): // message for benefit of screen-reader users ?>
<span class="sr-only" role="heading" aria-level="1"><?=$this->layout()->srmessage?></span>
<?php endif; ?>
<a class="sr-only" href="#searchslots"><?=$this->transEsc('Skip to search')?></a>
<a class="sr-only" href="#content"><?=$this->transEsc('Skip to content')?></a>
<?php /* Start header here, not above, custom finc, CK */ ?>
<header class="hidden-print collapse in">
<?=$this->render('header.phtml')?>
</header>
<div role="main" class="main collapse in" id="main">
<div id="content" class="container">
<?=$this->layout()->content?>
</div>
</div>
<?=$this->render('footer.phtml')?>
<!-- MODAL IN CASE WE NEED ONE -->
<?php /* move X button to logical pos. in structure + make accessible via tab - CK */ ?>
<div id="modal" class="modal fade hidden-print" tabindex="-1" role="dialog" aria-modal="true" data-aria-labelledby="modalTitle" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body"><?=$this->transEsc('Loading')?> ...</div>
<button type="button" class="close" data-dismiss="modal" tabindex="0">
<span class="sr-only"><?=$this->transEsc('Close')?></span>
<i class="fa fa-times" aria-hidden="true"></i>
</button>
</div>
</div>
</div>
<div class="offcanvas-overlay" data-toggle="offcanvas"></div>
<?=$this->googleanalytics()?>
<?=$this->piwik()?>
<?php if ($this->recaptcha()->active()): ?>
<?=$this->inlineScript(\Zend\View\Helper\HeadScript::FILE, "https://www.google.com/recaptcha/api.js?onload=recaptchaOnLoad&render=explicit&hl=" . $this->layout()->userLang, 'SET')?>
<?php endif; ?>
<?php /* Enable Tooltips, finc-specific, CK */ ?>
<script>
$(document).ready(function () {
$("body").tooltip({selector: '[data-toggle=tooltip]'});
});
</script>
</body>
</html>