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'}
9 <script data-relocate="true">
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};
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>
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>
31 {if JQUERY_SOURCE != 'local'}
32 <script data-relocate="true">
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>');
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">
46 WCF.User.init({@$__wcf->user->userID}, '{@$__wcf->user->username|encodeJS}');
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'}
56 {@$__wcf->getStyleHandler()->getStylesheet()}
57 {event name='stylesheets'}
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" />
64 <style type="text/css">
66 display: none !important;
70 display: block !important;
75 <script data-relocate="true">
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}'
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}'
145 {event name='javascriptLanguageImport'}
150 WCF.System.Mobile.UX.init();
153 new WCF.Effect.SmoothScroll();
154 new WCF.Effect.BalloonTooltip();
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();
162 {event name='javascriptInit'}
164 {if $executeCronjobs}
165 new WCF.Action.Proxy({
168 className: 'wcf\\data\\cronjob\\CronjobAction',
169 actionName: 'executeCronjobs'
171 showLoadingOverlay: false,
172 failure: function() {
177 {if $__sessionKeepAlive|isset}
178 new WCF.System.KeepAlive({@$__sessionKeepAlive});
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) */
190 <script data-relocate="true">
192 function fixButtonTypeIE9() {
193 $('button').each(function(index, button) {
194 var $button = $(button);
195 if (!$button.attr('type')) {
196 $button.attr('type', 'button');
201 WCF.DOMNodeInsertedHandler.addCallback('WCF.FixButtonTypeIE9', fixButtonTypeIE9);
207 {include file='imageViewer'}