1 {include file='documentHeader'}
6 {assign var='pageTitle' value=''}
7 {if (!$__wcf->isLandingPage() || !USE_PAGE_TITLE_ON_LANDING_PAGE) && $__wcf->getActivePage() != null && $__wcf->getActivePage()->getTitle()}
8 {capture assign='pageTitle'}{$__wcf->getActivePage()->getTitle()}{/capture}
12 <title>{if $pageTitle}{@$pageTitle} - {/if}{PAGE_TITLE|phrase}</title>
14 {include file='headInclude'}
16 {if !$canonicalURL|empty}
17 <link rel="canonical" href="{$canonicalURL}">
20 {if !$headContent|empty}
25 <body id="tpl_{$templateNameApplication}_{$templateName}"
26 itemscope itemtype="http://schema.org/WebPage"{if !$canonicalURL|empty} itemid="{$canonicalURL}"{/if}
27 data-template="{$templateName}" data-application="{$templateNameApplication}"{if $__wcf->getActivePage() != null} data-page-id="{@$__wcf->getActivePage()->pageID}" data-page-identifier="{$__wcf->getActivePage()->identifier}"{/if}
28 {if !$__pageDataAttributes|empty}{@$__pageDataAttributes}{/if}
29 class="{if $__wcf->getActivePage() != null && $__wcf->getActivePage()->cssClassName}{$__wcf->getActivePage()->cssClassName}{/if}{if !$__pageCssClassName|empty} {$__pageCssClassName}{/if}">
31 <span id="top"></span>
33 <div id="pageContainer" class="pageContainer">
34 {event name='beforePageHeader'}
36 {include file='pageHeader'}
38 {event name='afterPageHeader'}
41 <div class="boxesHeaderBoxes">
42 <div class="layoutBoundary">
43 <div class="boxContainer">
45 {if !$headerBoxes|empty}
49 {foreach from=$__wcf->getBoxHandler()->getBoxes('headerBoxes') item=box}
58 {include file='pageNavbarTop'}
61 <div class="boxesTop">
62 <div class="boxContainer">
68 {foreach from=$__wcf->getBoxHandler()->getBoxes('top') item=box}
76 <section id="main" class="main" role="main"{if !$__mainItemScope|empty} {@$__mainItemScope}{/if}>
77 <div class="layoutBoundary">
79 {if !$__sidebarLeftShow|isset}{assign var='__sidebarLeftShow' value='wcf.global.button.showSidebarLeft'|phrase}{/if}
80 {if !$__sidebarLeftHide|isset}{assign var='__sidebarLeftHide' value='wcf.global.button.hideSidebar'|phrase}{/if}
82 <aside class="sidebar boxesSidebarLeft{if !$__sidebarLeftHasMenu|empty || $__wcf->getBoxHandler()->sidebarLeftHasMenu()} boxesSidebarLeftHasMenu{/if}" aria-label="{lang}wcf.page.sidebar.left{/lang}" data-show-sidebar="{$__sidebarLeftShow}" data-hide-sidebar="{$__sidebarLeftHide}" data-show-navigation="{lang}wcf.global.button.showNavigation{/lang}" data-hide-navigation="{lang}wcf.global.button.hideNavigation{/lang}">
83 <div class="boxContainer">
85 {event name='boxesSidebarLeftTop'}
89 {if !$sidebarOrientation|isset || $sidebarOrientation == 'left'}
94 {if !$sidebarLeft|empty}
98 {foreach from=$__wcf->getBoxHandler()->getBoxes('sidebarLeft') item=box}
102 {event name='boxesSidebarLeftBottom'}
108 {capture assign='__sidebarRightContent'}
109 {if MODULE_WCF_AD && $__disableAds|empty && $__wcf->getAdHandler()->getAds('com.woltlab.wcf.sidebar.top')}
110 <div class="box boxBorderless">
111 <div class="boxContent">
112 {@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.sidebar.top')}
117 {event name='boxesSidebarRightTop'}
119 {* WCF2.1 Fallback *}
121 {if !$sidebarOrientation|isset || $sidebarOrientation == 'right'}
126 {if !$sidebarRight|empty}
130 {foreach from=$__wcf->getBoxHandler()->getBoxes('sidebarRight') item=box}
134 {event name='boxesSidebarRightBottom'}
136 {if MODULE_WCF_AD && $__disableAds|empty && $__wcf->getAdHandler()->getAds('com.woltlab.wcf.sidebar.bottom')}
137 <div class="box boxBorderless">
138 <div class="boxContent">
139 {@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.sidebar.bottom')}
145 <div id="content" class="content{if $__sidebarRightContent|trim} content--sidebar-right{/if}">
146 {if MODULE_WCF_AD && $__disableAds|empty}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.header.content')}{/if}
148 {if $__disableContentHeader|empty}
149 {if !$contentHeader|empty}
152 {if $contentTitle|empty}
153 {if $__wcf->isLandingPage() && USE_PAGE_TITLE_ON_LANDING_PAGE}
154 {capture assign='contentTitle'}{PAGE_TITLE|phrase}{/capture}
155 {capture assign='contentDescription'}{PAGE_DESCRIPTION|phrase}{/capture}
156 {elseif $__wcf->getActivePage() != null && $__wcf->getActivePage()->getTitle()}
157 {capture assign='contentTitle'}{$__wcf->getActivePage()->getTitle()}{/capture}
161 {if !$contentTitle|empty}
162 <header class="contentHeader">
163 <div class="contentHeaderTitle">
164 <h1 class="contentTitle">{@$contentTitle}{if !$contentTitleBadge|empty} {@$contentTitleBadge}{/if}</h1>
165 {if !$contentDescription|empty}<p class="contentHeaderDescription">{@$contentDescription}</p>{/if}
169 <nav class="contentHeaderNavigation">
172 {if !$contentHeaderNavigation|empty}{@$contentHeaderNavigation}{/if}
174 {event name='contentHeaderNavigation'}
184 {include file='userNotice'}
187 <div class="boxesContentTop">
188 <div class="boxContainer">
190 {if !$boxesContentTop|empty}
194 {foreach from=$__wcf->getBoxHandler()->getBoxes('contentTop') item=box}
202 {event name='contents'}
204 {include file='contentInteraction'}