Fixed time zone calculation issue
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / headInclude.tpl
1 <base href="{$baseHref}" />
2 <meta charset="utf-8" />
3 <meta name="viewport" content="width=device-width, initial-scale=1" />
4 <meta name="format-detection" content="telephone=no" />
5 {if $allowSpidersToIndexThisPage|empty}<meta name="robots" content="noindex,nofollow" />{/if}
6 {implode from=$__wcf->getMetaTagHandler() item=__metaTag glue="\n"}{@$__metaTag}{/implode}
7 {event name='metaTags'}
8
9 <script data-relocate="true">
10 //<![CDATA[
11 var SID_ARG_2ND = '{@SID_ARG_2ND_NOT_ENCODED}';
12 var WCF_PATH = '{@$__wcf->getPath()}';
13 var SECURITY_TOKEN = '{@SECURITY_TOKEN}';
14 var LANGUAGE_ID = {@$__wcf->getLanguage()->languageID};
15 var TIME_NOW = {@TIME_NOW};
16 //]]>
17 </script>
18 {if JQUERY_SOURCE == 'google'}
19 <script data-relocate="true" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
20 <script data-relocate="true" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
21 {elseif JQUERY_SOURCE == 'microsoft'}
22 <script data-relocate="true" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.1.min.js"></script>
23 <script data-relocate="true" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script>
24 {elseif JQUERY_SOURCE == 'cloudflare'}
25 <script data-relocate="true" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
26 <script data-relocate="true" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
27 {else}
28 <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"></script>
29 <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"></script>
30 {/if}
31 {if JQUERY_SOURCE != 'local'}
32 <script data-relocate="true">
33 //<![CDATA[
34 if (!window.jQuery) {
35 document.write('<script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"><\/script>');
36 document.write('<script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"><\/script>');
37 }
38 //]]>
39 </script>
40 {/if}
41 <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.nestedSortable{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
42 <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.timepicker{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
43 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
44 <script data-relocate="true">
45 //<![CDATA[
46 WCF.User.init({@$__wcf->user->userID}, '{@$__wcf->user->username|encodeJS}');
47 //]]>
48 </script>
49 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Location{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
50 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
51 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
52 <script data-relocate="true" src="{@$__wcf->getPath('wcf')}js/WCF.Like{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
53 {event name='javascriptInclude'}
54
55 <!-- Stylesheets -->
56 {@$__wcf->getStyleHandler()->getStylesheet()}
57 {event name='stylesheets'}
58
59 <!-- Icons -->
60 <link rel="icon" href="{@$__wcf->getPath()}images/favicon.ico" type="image/x-icon" />
61 <link rel="apple-touch-icon" href="{@$__wcf->getPath()}images/apple-touch-icon.png" />
62
63 <noscript>
64 <style type="text/css">
65 .jsOnly {
66 display: none !important;
67 }
68
69 .noJsOnly {
70 display: block !important;
71 }
72 </style>
73 </noscript>
74
75 <script data-relocate="true">
76 //<![CDATA[
77 $(function() {
78 WCF.Language.addObject({
79 '__days': [ '{lang}wcf.date.day.sunday{/lang}', '{lang}wcf.date.day.monday{/lang}', '{lang}wcf.date.day.tuesday{/lang}', '{lang}wcf.date.day.wednesday{/lang}', '{lang}wcf.date.day.thursday{/lang}', '{lang}wcf.date.day.friday{/lang}', '{lang}wcf.date.day.saturday{/lang}' ],
80 '__daysShort': [ '{lang}wcf.date.day.sun{/lang}', '{lang}wcf.date.day.mon{/lang}', '{lang}wcf.date.day.tue{/lang}', '{lang}wcf.date.day.wed{/lang}', '{lang}wcf.date.day.thu{/lang}', '{lang}wcf.date.day.fri{/lang}', '{lang}wcf.date.day.sat{/lang}' ],
81 '__months': [ '{lang}wcf.date.month.january{/lang}', '{lang}wcf.date.month.february{/lang}', '{lang}wcf.date.month.march{/lang}', '{lang}wcf.date.month.april{/lang}', '{lang}wcf.date.month.may{/lang}', '{lang}wcf.date.month.june{/lang}', '{lang}wcf.date.month.july{/lang}', '{lang}wcf.date.month.august{/lang}', '{lang}wcf.date.month.september{/lang}', '{lang}wcf.date.month.october{/lang}', '{lang}wcf.date.month.november{/lang}', '{lang}wcf.date.month.december{/lang}' ],
82 '__monthsShort': [ '{lang}wcf.date.month.short.jan{/lang}', '{lang}wcf.date.month.short.feb{/lang}', '{lang}wcf.date.month.short.mar{/lang}', '{lang}wcf.date.month.short.apr{/lang}', '{lang}wcf.date.month.short.may{/lang}', '{lang}wcf.date.month.short.jun{/lang}', '{lang}wcf.date.month.short.jul{/lang}', '{lang}wcf.date.month.short.aug{/lang}', '{lang}wcf.date.month.short.sep{/lang}', '{lang}wcf.date.month.short.oct{/lang}', '{lang}wcf.date.month.short.nov{/lang}', '{lang}wcf.date.month.short.dec{/lang}' ],
83 'wcf.clipboard.item.unmarkAll': '{lang}wcf.clipboard.item.unmarkAll{/lang}',
84 'wcf.date.relative.now': '{lang}wcf.date.relative.now{/lang}',
85 'wcf.date.relative.minutes': '{capture assign=relativeMinutes}{lang}wcf.date.relative.minutes{/lang}{/capture}{@$relativeMinutes|encodeJS}',
86 'wcf.date.relative.hours': '{capture assign=relativeHours}{lang}wcf.date.relative.hours{/lang}{/capture}{@$relativeHours|encodeJS}',
87 'wcf.date.relative.pastDays': '{capture assign=relativePastDays}{lang}wcf.date.relative.pastDays{/lang}{/capture}{@$relativePastDays|encodeJS}',
88 'wcf.date.dateFormat': '{lang}wcf.date.dateFormat{/lang}',
89 'wcf.date.dateTimeFormat': '{lang}wcf.date.dateTimeFormat{/lang}',
90 'wcf.date.shortDateTimeFormat': '{lang}wcf.date.shortDateTimeFormat{/lang}',
91 'wcf.date.hour': '{lang}wcf.date.hour{/lang}',
92 'wcf.date.minute': '{lang}wcf.date.minute{/lang}',
93 'wcf.date.timeFormat': '{lang}wcf.date.timeFormat{/lang}',
94 'wcf.date.firstDayOfTheWeek': '{lang}wcf.date.firstDayOfTheWeek{/lang}',
95 'wcf.global.button.add': '{lang}wcf.global.button.add{/lang}',
96 'wcf.global.button.cancel': '{lang}wcf.global.button.cancel{/lang}',
97 'wcf.global.button.close': '{lang}wcf.global.button.close{/lang}',
98 'wcf.global.button.collapsible': '{lang}wcf.global.button.collapsible{/lang}',
99 'wcf.global.button.delete': '{lang}wcf.global.button.delete{/lang}',
100 'wcf.global.button.disable': '{lang}wcf.global.button.disable{/lang}',
101 'wcf.global.button.disabledI18n': '{lang}wcf.global.button.disabledI18n{/lang}',
102 'wcf.global.button.edit': '{lang}wcf.global.button.edit{/lang}',
103 'wcf.global.button.enable': '{lang}wcf.global.button.enable{/lang}',
104 'wcf.global.button.next': '{lang}wcf.global.button.next{/lang}',
105 'wcf.global.button.preview': '{lang}wcf.global.button.preview{/lang}',
106 'wcf.global.button.reset': '{lang}wcf.global.button.reset{/lang}',
107 'wcf.global.button.save': '{lang}wcf.global.button.save{/lang}',
108 'wcf.global.button.search': '{lang}wcf.global.button.search{/lang}',
109 'wcf.global.button.submit': '{lang}wcf.global.button.submit{/lang}',
110 'wcf.global.confirmation.cancel': '{lang}wcf.global.confirmation.cancel{/lang}',
111 'wcf.global.confirmation.confirm': '{lang}wcf.global.confirmation.confirm{/lang}',
112 'wcf.global.confirmation.title': '{lang}wcf.global.confirmation.title{/lang}',
113 'wcf.global.decimalPoint': '{capture assign=decimalPoint}{lang}wcf.global.decimalPoint{/lang}{/capture}{$decimalPoint|encodeJS}',
114 'wcf.global.error.timeout': '{lang}wcf.global.error.timeout{/lang}',
115 'wcf.global.error.title': '{lang}wcf.global.error.title{/lang}',
116 'wcf.global.form.error.empty': '{lang}wcf.global.form.error.empty{/lang}',
117 'wcf.global.form.error.greaterThan': '{lang}wcf.global.form.error.greaterThan.javaScript{/lang}',
118 'wcf.global.form.error.lessThan': '{lang}wcf.global.form.error.lessThan.javaScript{/lang}',
119 'wcf.global.language.noSelection': '{lang}wcf.global.language.noSelection{/lang}',
120 'wcf.global.loading': '{lang}wcf.global.loading{/lang}',
121 'wcf.global.page.jumpTo': '{lang}wcf.global.page.jumpTo{/lang}',
122 'wcf.global.page.jumpTo.description': '{lang}wcf.global.page.jumpTo.description{/lang}',
123 'wcf.global.page.pageNavigation': '{lang}wcf.global.page.pageNavigation{/lang}',
124 'wcf.global.page.next': '{capture assign=pageNext}{lang}wcf.global.page.next{/lang}{/capture}{@$pageNext|encodeJS}',
125 'wcf.global.page.previous': '{capture assign=pagePrevious}{lang}wcf.global.page.previous{/lang}{/capture}{@$pagePrevious|encodeJS}',
126 'wcf.global.pageDirection': '{lang}wcf.global.pageDirection{/lang}',
127 'wcf.global.sidebar.hideLeftSidebar': '{lang}wcf.global.sidebar.hideLeftSidebar{/lang}',
128 'wcf.global.sidebar.hideRightSidebar': '{lang}wcf.global.sidebar.hideRightSidebar{/lang}',
129 'wcf.global.sidebar.showLeftSidebar': '{lang}wcf.global.sidebar.showLeftSidebar{/lang}',
130 'wcf.global.sidebar.showRightSidebar': '{lang}wcf.global.sidebar.showRightSidebar{/lang}',
131 'wcf.global.success': '{lang}wcf.global.success{/lang}',
132 'wcf.global.success.add': '{lang}wcf.global.success.add{/lang}',
133 'wcf.global.success.edit': '{lang}wcf.global.success.edit{/lang}',
134 'wcf.global.thousandsSeparator': '{capture assign=thousandsSeparator}{lang}wcf.global.thousandsSeparator{/lang}{/capture}{@$thousandsSeparator|encodeJS}',
135 'wcf.page.sitemap': '{lang}wcf.page.sitemap{/lang}',
136 'wcf.style.changeStyle': '{lang}wcf.style.changeStyle{/lang}'
137 {if MODULE_LIKE}
138 ,'wcf.like.button.like': '{lang}wcf.like.button.like{/lang}',
139 'wcf.like.button.dislike': '{lang}wcf.like.button.dislike{/lang}',
140 'wcf.like.tooltip': '{lang}wcf.like.jsTooltip{/lang}',
141 'wcf.like.summary': '{lang}wcf.like.summary{/lang}',
142 'wcf.like.details': '{lang}wcf.like.details{/lang}'
143 {/if}
144
145 {event name='javascriptLanguageImport'}
146 });
147
148 WCF.Dropdown.init();
149
150 WCF.System.Mobile.UX.init();
151
152 new WCF.Date.Time();
153 new WCF.Effect.SmoothScroll();
154 new WCF.Effect.BalloonTooltip();
155 new WCF.Sitemap();
156 {if $__wcf->getStyleHandler()->countStyles() > 1}new WCF.Style.Chooser();{/if}
157 WCF.System.PageNavigation.init('.pageNavigation');
158 WCF.Date.Picker.init();
159 new WCF.User.ProfilePreview();
160 WCF.System.FlexibleMenu.init();
161
162 {event name='javascriptInit'}
163
164 {if $executeCronjobs}
165 new WCF.Action.Proxy({
166 autoSend: true,
167 data: {
168 className: 'wcf\\data\\cronjob\\CronjobAction',
169 actionName: 'executeCronjobs'
170 },
171 showLoadingOverlay: false,
172 failure: function() {
173 return false;
174 }
175 });
176 {/if}
177 {if $__sessionKeepAlive|isset}
178 new WCF.System.KeepAlive({@$__sessionKeepAlive});
179 {/if}
180
181 if ($.browser.msie) {
182 window.onbeforeunload = function() {
183 /* Prevent "Back navigation caching" (http://msdn.microsoft.com/en-us/library/ie/dn265017%28v=vs.85%29.aspx) */
184 };
185 }
186 });
187 //]]>
188 </script>
189 <!--[IF IE 9]>
190 <script data-relocate="true">
191 $(function() {
192 function fixButtonTypeIE9() {
193 $('button').each(function(index, button) {
194 var $button = $(button);
195 if (!$button.attr('type')) {
196 $button.attr('type', 'button');
197 }
198 });
199 }
200
201 WCF.DOMNodeInsertedHandler.addCallback('WCF.FixButtonTypeIE9', fixButtonTypeIE9);
202 fixButtonTypeIE9();
203 });
204 </script>
205 <![ENDIF]-->
206
207 {include file='imageViewer'}