<name language="en"><![CDATA[Members]]></name>
<permissions>user.profile.canViewMembersList</permissions>
<options>module_members_list</options>
+
+ <content language="en">
+ <title>Members</title>
+ </content>
+ <content language="de">
+ <title>Mitglieder</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.RecentActivityList">
<pageType>system</pageType>
<name language="de"><![CDATA[Letzte Aktivitäten]]></name>
<name language="en"><![CDATA[Recent Activities]]></name>
<parent>com.woltlab.wcf.MembersList</parent>
+
+ <content language="en">
+ <title>Recent Activities</title>
+ </content>
+ <content language="de">
+ <title>Letzte Aktivitäten</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.UsersOnlineList">
<pageType>system</pageType>
<controller>wcf\page\UsersOnlineListPage</controller>
- <name language="de"><![CDATA[Benutzer Online]]></name>
+ <name language="de"><![CDATA[Benutzer online]]></name>
<name language="en"><![CDATA[Users Online]]></name>
<parent>com.woltlab.wcf.MembersList</parent>
<permissions>user.profile.canViewUsersOnlineList</permissions>
<options>module_users_online</options>
+
+ <content language="en">
+ <title>Users Online</title>
+ </content>
+ <content language="de">
+ <title>Benutzer online</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Team">
<pageType>system</pageType>
<parent>com.woltlab.wcf.MembersList</parent>
<permissions>user.profile.canViewMembersList</permissions>
<options>module_team_page</options>
+
+ <content language="en">
+ <title>Team</title>
+ </content>
+ <content language="de">
+ <title>Team</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.UserSearch">
<pageType>system</pageType>
<parent>com.woltlab.wcf.MembersList</parent>
<permissions>user.profile.canViewMembersList</permissions>
<options>module_members_list</options>
+
+ <content language="en">
+ <title>Search Users</title>
+ </content>
+ <content language="de">
+ <title>Benutzer suchen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.AccountManagement">
<controller>wcf\form\AccountManagementForm</controller>
<name language="de"><![CDATA[Benutzerkonto-Verwaltung]]></name>
<name language="en"><![CDATA[Account Management]]></name>
+
+ <content language="en">
+ <title>Account Management</title>
+ </content>
+ <content language="de">
+ <title>Benutzerkonto-Verwaltung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.AvatarEdit">
<pageType>system</pageType>
<controller>wcf\form\AvatarEditForm</controller>
<name language="de"><![CDATA[Avatar-Verwaltung]]></name>
<name language="en"><![CDATA[Avatar Management]]></name>
+
+ <content language="en">
+ <title>Avatar Management</title>
+ </content>
+ <content language="de">
+ <title>Avatar-Verwaltung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Disclaimer">
<pageType>system</pageType>
<controller>wcf\form\DisclaimerForm</controller>
<name language="de"><![CDATA[Disclaimer]]></name>
<name language="en"><![CDATA[Disclaimer]]></name>
+
+ <content language="en">
+ <title>Disclaimer</title>
+ </content>
+ <content language="de">
+ <title>Disclaimer</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.EmailActivation">
<pageType>system</pageType>
<controller>wcf\form\EmailActivationForm</controller>
<name language="de"><![CDATA[Aktivierung neuer E-Mail-Adresse]]></name>
<name language="en"><![CDATA[New Email Address Verification]]></name>
+
+ <content language="en">
+ <title>New Email Address Verification</title>
+ </content>
+ <content language="de">
+ <title>Aktivierung neuer E-Mail-Adresse</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.EmailNewActivationCode">
<pageType>system</pageType>
<controller>wcf\form\EmailNewActivationCodeForm</controller>
<name language="de"><![CDATA[E-Mail-Aktivierungscode-Anforderung]]></name>
<name language="en"><![CDATA[New Email Activation Code Request]]></name>
+
+ <content language="en">
+ <title>New Email Activation Code Request</title>
+ </content>
+ <content language="de">
+ <title>E-Mail-Aktivierungscode-Anforderung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Login">
<pageType>system</pageType>
<controller>wcf\form\LoginForm</controller>
<name language="de"><![CDATA[Anmeldung]]></name>
<name language="en"><![CDATA[Login]]></name>
+
+ <content language="en">
+ <title>Login</title>
+ </content>
+ <content language="de">
+ <title>Anmeldung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.LostPassword">
<pageType>system</pageType>
<controller>wcf\form\LostPasswordForm</controller>
<name language="de"><![CDATA[Kennwort vergessen]]></name>
<name language="en"><![CDATA[Lost Password]]></name>
+
+ <content language="en">
+ <title>Lost Password</title>
+ </content>
+ <content language="de">
+ <title>Kennwort vergessen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Mail">
<pageType>system</pageType>
<controller>wcf\form\MailForm</controller>
<name language="de"><![CDATA[E-Mail-Formular]]></name>
<name language="en"><![CDATA[Mail Form]]></name>
+
+ <content language="en">
+ <title>Mail Form</title>
+ </content>
+ <content language="de">
+ <title>E-Mail-Formular</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.NewPassword">
<pageType>system</pageType>
<controller>wcf\form\NewPasswordForm</controller>
<name language="de"><![CDATA[Neues Kennwort]]></name>
<name language="en"><![CDATA[New Password Request]]></name>
+
+ <content language="en">
+ <title>New Password Request</title>
+ </content>
+ <content language="de">
+ <title>Neues Kennwort</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.NotificationSettings">
<pageType>system</pageType>
<controller>wcf\form\NotificationSettingsForm</controller>
<name language="de"><![CDATA[Benachrichtigungseinstellungen]]></name>
<name language="en"><![CDATA[Notification Settings]]></name>
+
+ <content language="en">
+ <title>Notification Settings</title>
+ </content>
+ <content language="de">
+ <title>Benachrichtigungseinstellungen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.RegisterActivation">
<pageType>system</pageType>
<controller>wcf\form\RegisterActivationForm</controller>
<name language="de"><![CDATA[Registrierung abschließen]]></name>
<name language="en"><![CDATA[Complete Registration]]></name>
+
+ <content language="en">
+ <title>Complete Registration</title>
+ </content>
+ <content language="de">
+ <title>Registrierung abschließen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Register">
<pageType>system</pageType>
<controller>wcf\form\RegisterForm</controller>
<name language="de"><![CDATA[Registrierung]]></name>
<name language="en"><![CDATA[Registration]]></name>
+
+ <content language="en">
+ <title>Registration</title>
+ </content>
+ <content language="de">
+ <title>Registrierung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.RegisterNewActivationCode">
<pageType>system</pageType>
<controller>wcf\form\RegisterNewActivationCodeForm</controller>
<name language="de"><![CDATA[Aktivierungscode-Anforderung]]></name>
<name language="en"><![CDATA[New Activation Code Request]]></name>
+
+ <content language="en">
+ <title>New Activation Code Request</title>
+ </content>
+ <content language="de">
+ <title>Aktivierungscode-Anforderung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Search">
<pageType>system</pageType>
<controller>wcf\form\SearchForm</controller>
<name language="de"><![CDATA[Suche]]></name>
<name language="en"><![CDATA[Search]]></name>
+
+ <content language="en">
+ <title>Search</title>
+ </content>
+ <content language="de">
+ <title>Suche</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Settings">
<pageType>system</pageType>
<controller>wcf\form\SettingsForm</controller>
<name language="de"><![CDATA[Einstellungen]]></name>
<name language="en"><![CDATA[Settings]]></name>
+
+ <content language="en">
+ <title>Settings</title>
+ </content>
+ <content language="de">
+ <title>Einstellungen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.SignatureEdit">
<pageType>system</pageType>
<name language="de"><![CDATA[Signatur-Verwaltung]]></name>
<name language="en"><![CDATA[Signature Management]]></name>
<options>module_user_signature</options>
+
+ <content language="en">
+ <title>Settings</title>
+ </content>
+ <content language="de">
+ <title>Einstellungen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.DeletedContentList">
<pageType>system</pageType>
<name language="de"><![CDATA[Gelöschte Inhalte]]></name>
<name language="en"><![CDATA[Deleted Content]]></name>
<permissions>mod.general.canUseModeration</permissions>
+
+ <content language="en">
+ <title>Deleted Content</title>
+ </content>
+ <content language="de">
+ <title>Gelöschte Inhalte</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.EditHistory">
<pageType>system</pageType>
<controller>wcf\page\EditHistoryPage</controller>
- <name language="de"><![CDATA[TODO]]></name>
- <name language="en"><![CDATA[TODO]]></name>
+ <name language="de"><![CDATA[Edit History TODO]]></name>
+ <name language="en"><![CDATA[Edit History]]></name>
<options>module_edit_history</options>
<requireObjectID>1</requireObjectID>
+
+ <content language="en">
+ <title>Edit History</title>
+ </content>
+ <content language="de">
+ <title>Edit History TODO</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Following">
<pageType>system</pageType>
<controller>wcf\page\FollowingPage</controller>
<name language="de"><![CDATA[Benutzer, denen Sie folgen]]></name>
<name language="en"><![CDATA[Followed Users]]></name>
+
+ <content language="en">
+ <title>Followed Users</title>
+ </content>
+ <content language="de">
+ <title>Benutzer, denen Sie folgen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.IgnoredUsers">
<pageType>system</pageType>
<controller>wcf\page\IgnoredUsersPage</controller>
<name language="de"><![CDATA[Blockierte Benutzer]]></name>
<name language="en"><![CDATA[Blocked Users]]></name>
+
+ <content language="en">
+ <title>Blocked Users</title>
+ </content>
+ <content language="de">
+ <title>Blockierte Benutzer</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.ModerationList">
<pageType>system</pageType>
<name language="de"><![CDATA[Moderation]]></name>
<name language="en"><![CDATA[Moderation]]></name>
<permissions>mod.general.canUseModeration</permissions>
+
+ <content language="en">
+ <title>Moderation</title>
+ </content>
+ <content language="de">
+ <title>Moderation</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.ModerationActivation">
<pageType>system</pageType>
<parent>com.woltlab.wcf.ModerationList</parent>
<permissions>mod.general.canUseModeration</permissions>
<requireObjectID>1</requireObjectID>
+
+ <content language="en">
+ <title>Content Approval</title>
+ </content>
+ <content language="de">
+ <title>Inhaltsfreischaltung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.ModerationReport">
<pageType>system</pageType>
<parent>com.woltlab.wcf.ModerationList</parent>
<permissions>mod.general.canUseModeration</permissions>
<requireObjectID>1</requireObjectID>
+
+ <content language="en">
+ <title>Content Report</title>
+ </content>
+ <content language="de">
+ <title>Inhaltsmeldung</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.NotificationList">
<pageType>system</pageType>
<controller>wcf\page\NotificationListPage</controller>
<name language="de"><![CDATA[Benachrichtigungen]]></name>
<name language="en"><![CDATA[Notifications]]></name>
+
+ <content language="en">
+ <title>Notifications</title>
+ </content>
+ <content language="de">
+ <title>Benachrichtigungen</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.PaidSubscriptionList">
<pageType>system</pageType>
<name language="de"><![CDATA[Bezahlte Mitgliedschaften]]></name>
<name language="en"><![CDATA[Paid Subscriptions]]></name>
<options>module_paid_subscription</options>
+
+ <content language="en">
+ <title>Paid Subscriptions</title>
+ </content>
+ <content language="de">
+ <title>Bezahlte Mitgliedschaften</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.SearchResult">
<pageType>system</pageType>
<name language="en"><![CDATA[Search Results]]></name>
<parent>com.woltlab.wcf.Search</parent>
<requireObjectID>1</requireObjectID>
+
+ <content language="en">
+ <title>Search Results</title>
+ </content>
+ <content language="de">
+ <title>Suchergebnisse</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.Tagged">
<pageType>system</pageType>
<name language="en"><![CDATA[Content With Particular Tag]]></name>
<permissions>user.tag.canViewTag</permissions>
<requireObjectID>1</requireObjectID>
+
+ <content language="en">
+ <title>Content With Particular Tag</title>
+ </content>
+ <content language="de">
+ <title>Inhalte mit bestimmtem Tag</title>
+ </content>
</page>
<page identifier="com.woltlab.wcf.User">
<pageType>system</pageType>
-{capture assign='pageTitle'}{lang}wcf.user.accountManagement{/lang} - {lang}wcf.user.usercp{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.accountManagement{/lang}{/capture}
-
{include file='userMenuSidebar'}
{include file='header'}
-{capture assign='pageTitle'}{lang}wcf.user.avatar.edit{/lang} - {lang}wcf.user.usercp{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.avatar.edit{/lang}{/capture}
-
{include file='userMenuSidebar'}
{include file='header'}
-{if !$__wcf->isLandingPage()}
- {capture assign='pageTitle'}{$content[title]}{/capture}
-{/if}
-
{capture assign='headContent'}
<link rel="canonical" href="{$canonicalURL}">
{/capture}
-{capture assign='contentHeader'}
- {if $__wcf->isLandingPage()}
- <header class="contentHeader">
- <div class="contentHeaderTitle">
- <h1 class="contentTitle">{PAGE_TITLE|language}</h1>
- {hascontent}<p class="contentHeaderDescription">{content}{PAGE_DESCRIPTION|language}{/content}</p>{/hascontent}
- </div>
-
- {hascontent}
- <nav class="contentHeaderNavigation">
- <ul>
- {content}{event name='contentHeaderNavigation'}{/content}
- </ul>
- </nav>
- {/hascontent}
- </header>
- {elseif $content[title]}
- <header class="contentHeader">
- <div class="contentHeaderTitle">
- <h1 class="contentTitle">{$content[title]}</h1>
- </div>
-
- {hascontent}
- <nav class="contentHeaderNavigation">
- <ul>
- {content}{event name='contentHeaderNavigation'}{/content}
- </ul>
- </nav>
- {/hascontent}
- </header>
- {/if}
-{/capture}
-
{include file='header'}
{if $content[content]}
-{capture assign='pageTitle'}{lang}wcf.moderation.deletedContent.objectType.{@$objectType}{/lang}{/capture}
+{capture assign='pageTitle'}{lang}wcf.moderation.deletedContent.{@$objectType}{/lang}{/capture}
{capture assign='sidebarLeft'}
<section class="box">
</section>
{/capture}
-{capture assign='contentHeader'}
- <header class="contentHeader">
- <div class="contentHeaderTitle">
- <h1 class="contentTitle">{lang}wcf.moderation.deletedContent.{@$objectType}{/lang}</h1>
- </div>
-
- {hascontent}
- <nav class="contentHeaderNavigation">
- <ul>
- {content}{event name='contentHeaderNavigation'}{/content}
- </ul>
- </nav>
- {/hascontent}
- </header>
-{/capture}
+{capture assign='contentTitle'}{lang}wcf.moderation.deletedContent.{@$objectType}{/lang}{/capture}
{include file='header'}
-{capture assign='pageTitle'}{lang}wcf.user.register.disclaimer{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.register.disclaimer{/lang}{/capture}
-
{include file='header' __disableAds=true}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.user.emailActivation{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.emailActivation{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.user.following{/lang} - {lang}wcf.user.usercp{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.following{/lang} <span class="badge">{#$items}</span>{/capture}
-
{include file='userMenuSidebar'}
{include file='header'}
{include file='documentHeader'}
<head>
- <title>{if $pageTitle|isset}{@$pageTitle} - {/if}{PAGE_TITLE|language}</title>
+ {if !$pageTitle|isset}
+ {assign var='pageTitle' value=''}
+ {if !$__wcf->isLandingPage() && $__wcf->getActivePage() != null && $__wcf->getActivePage()->getTitle()}
+ {capture assign='pageTitle'}{$__wcf->getActivePage()->getTitle()}{/capture}
+ {/if}
+ {/if}
+
+ <title>{if $pageTitle}{@$pageTitle} - {/if}{PAGE_TITLE|language}</title>
{include file='headInclude'}
{if !$contentHeader|empty}
{@$contentHeader}
- {elseif !$contentTitle|empty}
- <header class="contentHeader">
- <div class="contentHeaderTitle">
- <h1 class="contentTitle">{@$contentTitle}</h1>
- {if !$contentDescription|empty}<p class="contentHeaderDescription">{@$contentDescription}</p>{/if}
- </div>
-
- {hascontent}
- <nav class="contentHeaderNavigation">
- <ul>
- {content}
- {if !$contentHeaderNavigation|empty}{@$contentHeaderNavigation}{/if}
-
- {event name='contentHeaderNavigation'}
- {/content}
- </ul>
- </nav>
- {/hascontent}
- </header>
+ {else}
+ {if $contentTitle|empty}
+ {if $__wcf->isLandingPage()}
+ {capture assign='contentTitle'}{PAGE_TITLE|language}{/capture}
+ {capture assign='contentDescription'}{PAGE_DESCRIPTION|language}{/capture}
+ {elseif $__wcf->getActivePage() != null && $__wcf->getActivePage()->getTitle()}
+ {capture assign='contentTitle'}{$__wcf->getActivePage()->getTitle()}{/capture}
+ {/if}
+ {/if}
+
+ {if !$contentTitle|empty}
+ <header class="contentHeader">
+ <div class="contentHeaderTitle">
+ <h1 class="contentTitle">{@$contentTitle}</h1>
+ {if !$contentDescription|empty}<p class="contentHeaderDescription">{@$contentDescription}</p>{/if}
+ </div>
+
+ {hascontent}
+ <nav class="contentHeaderNavigation">
+ <ul>
+ {content}
+ {if !$contentHeaderNavigation|empty}{@$contentHeaderNavigation}{/if}
+
+ {event name='contentHeaderNavigation'}
+ {/content}
+ </ul>
+ </nav>
+ {/hascontent}
+ </header>
+ {/if}
{/if}
{include file='userNotice'}
-{capture assign='pageTitle'}{lang}wcf.user.ignoredUsers{/lang} - {lang}wcf.user.usercp{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.ignoredUsers{/lang} <span class="badge">{#$items}</span>{/capture}
-
{include file='userMenuSidebar'}
{include file='header'}
-{capture assign='pageTitle'}{lang}wcf.user.login{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.login{/lang}{/capture}
-
{include file='header' __disableLoginLink=true __disableAds=true}
{if !$errorField|empty && $errorField == 'cookie'}
-{capture assign='pageTitle'}{lang}wcf.user.lostPassword{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.lostPassword{/lang}{/capture}
-
{include file='header'}
<p class="info">{lang}wcf.user.lostPassword.description{/lang}</p>
-{capture assign='pageTitle'}{lang}wcf.user.mail.title{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.mail.title{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
+{capture assign='pageTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
-{capture assign='contentTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if} <span class="badge">{#$items}</span>{/capture}
+{capture assign='contentTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if} <span class="badge">{#$items}</span>{/capture}
{capture assign='canonicalURLParameters'}sortField={@$sortField}&sortOrder={@$sortOrder}{if $letter}&letter={@$letter|rawurlencode}{/if}{/capture}
-{capture assign='pageTitle'}{lang}wcf.moderation.activation{/lang}: {$queue->getTitle()}{/capture}
+{capture assign='pageTitle'}{$__wcf->getActivePage()->getTitle()}: {$queue->getTitle()}{/capture}
{capture assign='contentHeader'}
<header class="contentHeader">
<div class="contentHeaderTitle">
- <h1 class="contentTitle">{lang}wcf.moderation.activation{/lang}</h1>
+ <h1 class="contentTitle">{$__wcf->getActivePage()->getTitle()}</h1>
{if $queue->lastChangeTime}
<dl class="plain inlineDataList">
-{capture assign='pageTitle'}{lang}wcf.moderation.moderation{/lang}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
+{capture assign='pageTitle'}{if $status == 2}{lang}wcf.moderation.doneItems{/lang}{else}{lang}wcf.moderation.outstandingItems{/lang}{/if}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
{capture assign='contentTitle'}{if $status == 2}{lang}wcf.moderation.doneItems{/lang}{else}{lang}wcf.moderation.outstandingItems{/lang}{/if} <span class="badge">{#$items}</span>{/capture}
-{capture assign='pageTitle'}{lang}wcf.moderation.report{/lang}: {$queue->getTitle()}{/capture}
+{capture assign='pageTitle'}{$__wcf->getActivePage()->getTitle()}: {$queue->getTitle()}{/capture}
{capture assign='contentHeader'}
<header class="contentHeader">
<div class="contentHeaderTitle">
- <h1 class="contentTitle">{lang}wcf.moderation.report{/lang}</h1>
+ <h1 class="contentTitle">{$__wcf->getActivePage()->getTitle()}</h1>
{if $queue->lastChangeTime}
<dl class="plain inlineDataList">
-{capture assign='pageTitle'}{lang}wcf.user.newPassword{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newPassword{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.user.notification.notifications{/lang} - {lang}wcf.user.usercp{/lang}{/capture}
-
{capture assign='contentHeader'}
<header class="contentHeader">
<div class="contentHeaderTitle">
- <h1 class="contentTitle">{lang}wcf.user.notification.notifications{/lang} <span class="badge jsNotificationsBadge">{#$__wcf->getUserNotificationHandler()->countAllNotifications()}</span></h1>
+ <h1 class="contentTitle">{$__wcf->getActivePage()->getTitle()} <span class="badge jsNotificationsBadge">{#$__wcf->getUserNotificationHandler()->countAllNotifications()}</span></h1>
</div>
{hascontent}
-{capture assign='pageTitle'}{lang}wcf.user.menu.settings.paidSubscription{/lang} - {lang}wcf.user.menu.settings{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.menu.settings.paidSubscription{/lang}{/capture}
-
{capture assign='headContent'}
{if PAID_SUBSCRIPTION_ENABLE_TOS_CONFIRMATION}
<script data-relocate="true">
-{capture assign='pageTitle'}{lang}wcf.user.recentActivity{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.recentActivity{/lang}{/capture}
-
{capture assign='headContent'}
<link rel="canonical" href="{link controller='RecentActivityList'}{/link}" />
{/capture}
-{capture assign='pageTitle'}{lang}wcf.user.register{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.register{/lang}{/capture}
-
{capture assign='headContent'}
<style type="text/css">
#fieldset1 {
-{capture assign='pageTitle'}{lang}wcf.user.registerActivation{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.registerActivation{/lang}{/capture}
-
{include file='header'}
{if $__wcf->user->userID && $__wcf->user->activationCode}<p class="info">{lang}wcf.user.registerActivation.info{/lang}</p>{/if}
-{capture assign='pageTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.search.title{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.search.title{/lang}{/capture}
-
{include file='header'}
{include file='formError'}
-{capture assign='pageTitle'}{lang}wcf.search.results{/lang}{/capture}
-
{capture assign='contentHeader'}
<header class="contentHeader">
<div class="contentHeaderTitle">
- <h1 class="contentTitle">{if $query}<a href="{link controller='Search'}q={$query|urlencode}{/link}">{lang}wcf.search.results{/lang}</a>{else}{lang}wcf.search.results{/lang}{/if}</h1>
+ <h1 class="contentTitle">{if $query}<a href="{link controller='Search'}q={$query|urlencode}{/link}">{$__wcf->getActivePage()->getTitle()}</a>{else}{$__wcf->getActivePage()->getTitle()}{/if}</h1>
<p class="contentHeaderDescription">{lang}wcf.search.results.description{/lang}</p>
</div>
-{capture assign='pageTitle'}{lang}wcf.user.signature.edit{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.signature.edit{/lang}{/capture}
-
{include file='userMenuSidebar'}
{include file='header'}
-{capture assign='pageTitle'}{lang}wcf.user.team{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.team{/lang}{/capture}
-
{capture assign='headContent'}
<link rel="canonical" href="{link controller='Team'}{/link}" />
{/capture}
{capture assign='pageTitle'}{$user->username} - {lang}wcf.user.members{/lang}{/capture}
+{assign var='contentHeader' value=' '}{* necessary to hide default content header in heade.tpl *}
+
{capture assign='headContent'}
<link rel="canonical" href="{link controller='User' object=$user}{/link}" />
-{capture assign='pageTitle'}{lang}wcf.user.search{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.search{/lang}{/capture}
-
{include file='header'}
{if $errorField == 'search'}
-{capture assign='pageTitle'}{lang}wcf.user.usersOnline{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.usersOnline{/lang}{/capture}
-
{capture assign='headContent'}
<link rel="canonical" href="{link controller='UsersOnlineList'}{/link}" />
{/if}
<form method="post" action="{if $action == 'add'}{link controller='PageAdd'}{/link}{else}{link controller='PageEdit' id=$pageID}{/link}{/if}">
- <div class="section">
- <dl{if $errorField == 'name'} class="formError"{/if}>
- <dt><label for="name">{lang}wcf.global.name{/lang}</label></dt>
- <dd>
- <input type="text" id="name" name="name" value="{$name}" required="required" autofocus="autofocus" class="long" />
- {if $errorField == 'name'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.name.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'parentPageID'} class="formError"{/if}>
- <dt><label for="parentPageID">{lang}wcf.acp.page.parentPageID{/lang}</label></dt>
- <dd>
- <select name="parentPageID" id="parentPageID"{if $action == 'edit' && $page->originIsSystem} disabled="disabled"{/if}>
- <option value="0">{lang}wcf.acp.page.parentPageID.noParentPage{/lang}</option>
-
- {foreach from=$pageNodeList item=pageNode}
- <option value="{@$pageNode->pageID}"{if $pageNode->pageID == $parentPageID} selected="selected"{/if}>{if $pageNode->getDepth() > 1}{@" "|str_repeat:($pageNode->getDepth() - 1)}{/if}{$pageNode->name}</option>
- {/foreach}
- </select>
- {if $errorField == 'parentPageID'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.parentPageID.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'applicationPackageID'} class="formError"{/if}>
- <dt><label for="applicationPackageID">{lang}wcf.acp.page.applicationPackageID{/lang}</label></dt>
- <dd>
- <select name="applicationPackageID" id="applicationPackageID"{if $action == 'edit' && $page->originIsSystem} disabled="disabled"{/if}>
- {foreach from=$availableApplications item=availableApplication}
- <option value="{@$availableApplication->packageID}"{if $availableApplication->packageID == $applicationPackageID} selected="selected"{/if}>{$availableApplication->getAbbreviation()}: {$availableApplication->domainName}{$availableApplication->domainPath}</option>
- {/foreach}
- </select>
- {if $errorField == 'applicationPackageID'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.applicationPackageID.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- {if !$isMultilingual}
- <dl{if $errorField == 'customURL'} class="formError"{/if}>
- <dt><label for="customURL">{lang}wcf.acp.page.customURL{/lang}</label></dt>
- <dd>
- <input type="text" id="customURL" name="customURL[0]" value="{if !$customURL[0]|empty}{$customURL[0]}{/if}" class="long" />
- {if $errorField == 'customURL'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
- {/if}
-
- {if $action != 'edit' || !$page->requireObjectID}
- <dl>
- <dt></dt>
- <dd>
- <label><input type="checkbox" id="isLandingPage" name="isLandingPage" value="1" {if $isLandingPage}checked="checked" {/if}{if $action == 'edit' && $page->isLandingPage}disabled="disabled" {/if}/> {lang}wcf.acp.page.isLandingPage{/lang}</label>
- </dd>
- </dl>
- {/if}
-
- <dl>
- <dt></dt>
- <dd>
- <label><input type="checkbox" id="isDisabled" name="isDisabled" value="1" {if $isDisabled}checked="checked" {/if}/> {lang}wcf.acp.page.isDisabled{/lang}</label>
- </dd>
- </dl>
-
- <dl{if $errorField == 'boxIDs'} class="formError"{/if}>
- <dt>{lang}wcf.acp.page.boxIDs{/lang}</dt>
- <dd>
- <ul class="scrollableCheckboxList">
- {foreach from=$availableBoxes item=availableBox}
- <li>
- <label><input type="checkbox" name="boxIDs[]" value="{@$availableBox->boxID}"{if $availableBox->boxID|in_array:$boxIDs} checked="checked"{/if} /> {$availableBox->name}</label>
- </li>
- {/foreach}
- </ul>
- {if $errorField == 'boxIDs'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.boxIDs.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
+ <div class="section tabMenuContainer" data-active="{$activeTabMenuItem}" data-store="activeTabMenuItem" id="pageTabMenuContainer">
+ <nav class="tabMenu">
+ <ul>
+ <li><a href="{@$__wcf->getAnchor('general')}">{lang}wcf.acp.page.general{/lang}</a></li>
+ <li><a href="{@$__wcf->getAnchor('contents')}">{lang}wcf.acp.page.contents{/lang}</a></li>
+ <li><a href="{@$__wcf->getAnchor('boxes')}">{lang}wcf.acp.page.boxes{/lang}</a></li>
+ <li><a href="{@$__wcf->getAnchor('acl')}">{lang}wcf.acp.page.acl{/lang}</a></li>
+
+ {event name='tabMenuTabs'}
+ </ul>
+ </nav>
- {event name='dataFields'}
- </div>
-
- {if $action == 'add' || !$page->controller}
- {if !$isMultilingual}
- <section class="section">
- <h2 class="sectionTitle">content</h2>
-
- <dl{if $errorField == 'title'} class="formError"{/if}>
- <dt><label for="title">{lang}wcf.acp.page.title{/lang}</label></dt>
+ <div id="general" class="tabMenuContent">
+ <div class="section">
+ <dl{if $errorField == 'name'} class="formError"{/if}>
+ <dt><label for="name">{lang}wcf.global.name{/lang}</label></dt>
<dd>
- <input type="text" id="title" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" />
- {if $errorField == 'title'}
+ <input type="text" id="name" name="name" value="{$name}" required="required" autofocus="autofocus" class="long" />
+ {if $errorField == 'name'}
<small class="innerError">
{if $errorType == 'empty'}
{lang}wcf.global.form.error.empty{/lang}
{else}
- {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
+ {lang}wcf.acp.page.name.error.{@$errorType}{/lang}
{/if}
</small>
{/if}
</dd>
</dl>
- <dl{if $errorField == 'content'} class="formError"{/if}>
- <dt><label for="content0">{lang}wcf.acp.page.content{/lang}</label></dt>
+ <dl{if $errorField == 'parentPageID'} class="formError"{/if}>
+ <dt><label for="parentPageID">{lang}wcf.acp.page.parentPageID{/lang}</label></dt>
<dd>
- {include file='__pageAddContent' languageID=0}
-
- {if $errorField == 'content'}
+ <select name="parentPageID" id="parentPageID"{if $action == 'edit' && $page->originIsSystem} disabled="disabled"{/if}>
+ <option value="0">{lang}wcf.acp.page.parentPageID.noParentPage{/lang}</option>
+
+ {foreach from=$pageNodeList item=pageNode}
+ <option value="{@$pageNode->pageID}"{if $pageNode->pageID == $parentPageID} selected="selected"{/if}>{if $pageNode->getDepth() > 1}{@" "|str_repeat:($pageNode->getDepth() - 1)}{/if}{$pageNode->name}</option>
+ {/foreach}
+ </select>
+ {if $errorField == 'parentPageID'}
<small class="innerError">
{if $errorType == 'empty'}
{lang}wcf.global.form.error.empty{/lang}
{else}
- {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
+ {lang}wcf.acp.page.parentPageID.error.{@$errorType}{/lang}
{/if}
</small>
{/if}
</dd>
</dl>
- <dl{if $errorField == 'metaKeywords'} class="formError"{/if}>
- <dt><label for="metaKeywords">{lang}wcf.acp.page.metaKeywords{/lang}</label></dt>
+ <dl{if $errorField == 'applicationPackageID'} class="formError"{/if}>
+ <dt><label for="applicationPackageID">{lang}wcf.acp.page.applicationPackageID{/lang}</label></dt>
<dd>
- <textarea name="metaKeywords[0]" id="metaKeywords">{if !$metaKeywords[0]|empty}{$metaKeywords[0]}{/if}</textarea>
- {if $errorField == 'metaKeywords'}
+ <select name="applicationPackageID" id="applicationPackageID"{if $action == 'edit' && $page->originIsSystem} disabled="disabled"{/if}>
+ {foreach from=$availableApplications item=availableApplication}
+ <option value="{@$availableApplication->packageID}"{if $availableApplication->packageID == $applicationPackageID} selected="selected"{/if}>{$availableApplication->getAbbreviation()}: {$availableApplication->domainName}{$availableApplication->domainPath}</option>
+ {/foreach}
+ </select>
+ {if $errorField == 'applicationPackageID'}
<small class="innerError">
{if $errorType == 'empty'}
{lang}wcf.global.form.error.empty{/lang}
{else}
- {lang}wcf.acp.page.metaKeywords.error.{@$errorType}{/lang}
+ {lang}wcf.acp.page.applicationPackageID.error.{@$errorType}{/lang}
{/if}
</small>
{/if}
</dd>
</dl>
- <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
- <dt><label for="metaDescription">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
+ {if !$isMultilingual}
+ <dl{if $errorField == 'customURL'} class="formError"{/if}>
+ <dt><label for="customURL">{lang}wcf.acp.page.customURL{/lang}</label></dt>
+ <dd>
+ <input type="text" id="customURL" name="customURL[0]" value="{if !$customURL[0]|empty}{$customURL[0]}{/if}" class="long" />
+ {if $errorField == 'customURL'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ {else}
+ {foreach from=$availableLanguages item=availableLanguage}
+ <dl{if $errorField == 'customURL'} class="formError"{/if}>
+ <dt><label for="customURL{@$availableLanguage->languageID}">{lang}wcf.acp.page.customURL{/lang} ({$availableLanguage->languageName})</label></dt>
+ <dd>
+ <input type="text" id="customURL{@$availableLanguage->languageID}" name="customURL[{@$availableLanguage->languageID}]" value="{if !$customURL[$availableLanguage->languageID]|empty}{$customURL[$availableLanguage->languageID]}{/if}" class="long" />
+ {if $errorField == 'customURL'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ {/foreach}
+ {/if}
+
+ {if $action != 'edit' || !$page->requireObjectID}
+ <dl>
+ <dt></dt>
+ <dd>
+ <label><input type="checkbox" id="isLandingPage" name="isLandingPage" value="1" {if $isLandingPage}checked="checked" {/if}{if $action == 'edit' && $page->isLandingPage}disabled="disabled" {/if}/> {lang}wcf.acp.page.isLandingPage{/lang}</label>
+ </dd>
+ </dl>
+ {/if}
+
+ {if $action != 'edit' || $page->pageType != 'system'}
+ <dl>
+ <dt></dt>
+ <dd>
+ <label><input type="checkbox" id="isDisabled" name="isDisabled" value="1" {if $isDisabled}checked="checked" {/if}/> {lang}wcf.acp.page.isDisabled{/lang}</label>
+ </dd>
+ </dl>
+ {/if}
+
+ {event name='dataFields'}
+ </div>
+ </div>
+
+ <div id="contents" class="tabMenuContent">
+ {if !$isMultilingual && $pageType != 'system'}
+ <div class="section">
+ <dl{if $errorField == 'title'} class="formError"{/if}>
+ <dt><label for="title">{lang}wcf.acp.page.title{/lang}</label></dt>
+ <dd>
+ <input type="text" id="title" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" />
+ {if $errorField == 'title'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ <dl{if $errorField == 'content'} class="formError"{/if}>
+ <dt><label for="content0">{lang}wcf.acp.page.content{/lang}</label></dt>
+ <dd>
+ {include file='__pageAddContent' languageID=0}
+
+ {if $errorField == 'content'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ <dl{if $errorField == 'metaKeywords'} class="formError"{/if}>
+ <dt><label for="metaKeywords">{lang}wcf.acp.page.metaKeywords{/lang}</label></dt>
+ <dd>
+ <textarea name="metaKeywords[0]" id="metaKeywords">{if !$metaKeywords[0]|empty}{$metaKeywords[0]}{/if}</textarea>
+ {if $errorField == 'metaKeywords'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.metaKeywords.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
+ <dt><label for="metaDescription">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
+ <dd>
+ <textarea name="metaDescription[0]" id="metaDescription">{if !$metaDescription[0]|empty}{$metaDescription[0]}{/if}</textarea>
+ {if $errorField == 'metaDescription'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ </div>
+ {else}
+ <div class="tabMenuContainer">
+ <nav class="menu">
+ <ul>
+ {foreach from=$availableLanguages item=availableLanguage}
+ {assign var='containerID' value='language'|concat:$availableLanguage->languageID}
+ <li><a href="{@$__wcf->getAnchor($containerID)}">{$availableLanguage->languageName}</a></li>
+ {/foreach}
+ </ul>
+ </nav>
+
+ {foreach from=$availableLanguages item=availableLanguage}
+ <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
+ <div class="section">
+ <dl{if $errorField == 'title'} class="formError"{/if}>
+ <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.acp.page.title{/lang}</label></dt>
+ <dd>
+ <input type="text" id="title{@$availableLanguage->languageID}" name="title[{@$availableLanguage->languageID}]" value="{if !$title[$availableLanguage->languageID]|empty}{$title[$availableLanguage->languageID]}{/if}" class="long" />
+ {if $errorField == 'title'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ {if $pageType != 'system'}
+ <dl{if $errorField == 'content'} class="formError"{/if}>
+ <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.page.content{/lang}</label></dt>
+ <dd>
+ {include file='__pageAddContent' languageID=$availableLanguage->languageID}
+
+ {if $errorField == 'content'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ <dl{if $errorField == 'metaKeywords'} class="formError"{/if}>
+ <dt><label for="metaKeywords{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaKeywords{/lang}</label></dt>
+ <dd>
+ <textarea name="metaKeywords[{@$availableLanguage->languageID}]" id="metaKeywords{@$availableLanguage->languageID}">{if !$metaKeywords[$availableLanguage->languageID]|empty}{$metaKeywords[$availableLanguage->languageID]}{/if}</textarea>
+ {if $errorField == 'metaKeywords'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.metaKeywords.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+
+ <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
+ <dt><label for="metaDescription{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
+ <dd>
+ <textarea name="metaDescription[{@$availableLanguage->languageID}]" id="metaDescription{@$availableLanguage->languageID}">{if !$metaDescription[$availableLanguage->languageID]|empty}{$metaDescription[$availableLanguage->languageID]}{/if}</textarea>
+ {if $errorField == 'metaDescription'}
+ <small class="innerError">
+ {if $errorType == 'empty'}
+ {lang}wcf.global.form.error.empty{/lang}
+ {else}
+ {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
+ {/if}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ {/if}
+ </div>
+ </div>
+ {/foreach}
+ </div>
+ {/if}
+ </div>
+
+ <div id="boxes" class="tabMenuContent">
+ <div class="section">
+ <dl{if $errorField == 'boxIDs'} class="formError"{/if}>
+ <dt>{lang}wcf.acp.page.boxIDs{/lang}</dt>
<dd>
- <textarea name="metaDescription[0]" id="metaDescription">{if !$metaDescription[0]|empty}{$metaDescription[0]}{/if}</textarea>
- {if $errorField == 'metaDescription'}
+ <ul class="scrollableCheckboxList">
+ {foreach from=$availableBoxes item=availableBox}
+ <li>
+ <label><input type="checkbox" name="boxIDs[]" value="{@$availableBox->boxID}"{if $availableBox->boxID|in_array:$boxIDs} checked="checked"{/if} /> {$availableBox->name}</label>
+ </li>
+ {/foreach}
+ </ul>
+ {if $errorField == 'boxIDs'}
<small class="innerError">
{if $errorType == 'empty'}
{lang}wcf.global.form.error.empty{/lang}
{else}
- {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
+ {lang}wcf.acp.page.boxIDs.error.{@$errorType}{/lang}
{/if}
</small>
{/if}
</dd>
</dl>
- </section>
- {else}
- <div class="section tabMenuContainer">
- <nav class="tabMenu">
- <ul>
- {foreach from=$availableLanguages item=availableLanguage}
- {assign var='containerID' value='language'|concat:$availableLanguage->languageID}
- <li><a href="{@$__wcf->getAnchor($containerID)}">{$availableLanguage->languageName}</a></li>
- {/foreach}
- </ul>
- </nav>
-
- {foreach from=$availableLanguages item=availableLanguage}
- <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
- <div class="section">
- <dl{if $errorField == 'customURL'} class="formError"{/if}>
- <dt><label for="customURL{@$availableLanguage->languageID}">{lang}wcf.acp.page.customURL{/lang}</label></dt>
- <dd>
- <input type="text" id="customURL{@$availableLanguage->languageID}" name="customURL[{@$availableLanguage->languageID}]" value="{if !$customURL[$availableLanguage->languageID]|empty}{$customURL[$availableLanguage->languageID]}{/if}" class="long" />
- {if $errorField == 'customURL'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'title'} class="formError"{/if}>
- <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.acp.page.title{/lang}</label></dt>
- <dd>
- <input type="text" id="title{@$availableLanguage->languageID}" name="title[{@$availableLanguage->languageID}]" value="{if !$title[$availableLanguage->languageID]|empty}{$title[$availableLanguage->languageID]}{/if}" class="long" />
- {if $errorField == 'title'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'content'} class="formError"{/if}>
- <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.page.content{/lang}</label></dt>
- <dd>
- {include file='__pageAddContent' languageID=$availableLanguage->languageID}
-
- {if $errorField == 'content'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'metaKeywords'} class="formError"{/if}>
- <dt><label for="metaKeywords{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaKeywords{/lang}</label></dt>
- <dd>
- <textarea name="metaKeywords[{@$availableLanguage->languageID}]" id="metaKeywords{@$availableLanguage->languageID}">{if !$metaKeywords[$availableLanguage->languageID]|empty}{$metaKeywords[$availableLanguage->languageID]}{/if}</textarea>
- {if $errorField == 'metaKeywords'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.metaKeywords.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
- <dt><label for="metaDescription{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
- <dd>
- <textarea name="metaDescription[{@$availableLanguage->languageID}]" id="metaDescription{@$availableLanguage->languageID}">{if !$metaDescription[$availableLanguage->languageID]|empty}{$metaDescription[$availableLanguage->languageID]}{/if}</textarea>
- {if $errorField == 'metaDescription'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
- </div>
- </div>
- {/foreach}
</div>
- {/if}
- {/if}
-
- {event name='sections'}
+ </div>
+
+ <div id="acl" class="tabMenuContent">
+ </div>
+ </div>
<div class="formSubmit">
<input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
];
if ($this->pageType == 'system') {
+ $content = [];
+ foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
+ $content[$language->languageID] = [
+ 'customURL' => '',
+ 'title' => (!empty($_POST['title'][$language->languageID]) ? $_POST['title'][$language->languageID] : ''),
+ 'content' => '',
+ 'metaDescription' => '',
+ 'metaKeywords' => ''
+ ];
+ }
+
$data['controllerCustomURL'] = (!empty($_POST['customURL'][0]) ? $_POST['customURL'][0] : '');
$this->objectAction = new PageAction([$this->page], 'update', [
'data' => array_merge($this->additionalFields, $data),
- 'boxToPage' => $this->getBoxToPage()
+ 'boxToPage' => $this->getBoxToPage(),
+ 'content' => $content
]);
$this->objectAction->executeAction();
}
public function getPageTitle($pageID, $languageID = null) {
if (isset($this->cache['pageTitles'][$pageID])) {
$page = $this->getPage($pageID);
- if ($page->isMultilingual) {
+ if ($page->isMultilingual || $page->pageType == 'system') {
if ($languageID !== null && isset($this->cache['pageTitles'][$pageID][$languageID])) {
return $this->cache['pageTitles'][$pageID][$languageID];
}
* @throws SystemException
*/
protected function prepareImport(array $data) {
- $isStatic = false;
+ $pageType = $data['elements']['pageType'];
if (!empty($data['elements']['content'])) {
- $isStatic = true;
-
$content = [];
foreach ($data['elements']['content'] as $language => $contentData) {
- if (!RouteHandler::isValidCustomUrl($contentData['customURL'])) {
+ if ($pageType != 'system' && !RouteHandler::isValidCustomUrl($contentData['customURL'])) {
throw new SystemException("Invalid custom url for page content '" . $language . "', page identifier '" . $data['attributes']['identifier'] . "'");
}
$content[$language] = [
- 'content' => $contentData['content'],
- 'customURL' => $contentData['customURL'],
+ 'content' => (!empty($contentData['content'])) ? StringUtil::trim($contentData['content']) : '',
+ 'customURL' => (!empty($contentData['customURL'])) ? StringUtil::trim($contentData['customURL']) : '',
'metaDescription' => (!empty($contentData['metaDescription'])) ? StringUtil::trim($contentData['metaDescription']) : '',
'metaKeywords' => (!empty($contentData['metaKeywords'])) ? StringUtil::trim($contentData['metaKeywords']) : '',
- 'title' => $contentData['title']
+ 'title' => (!empty($contentData['title'])) ? StringUtil::trim($contentData['title']) : ''
];
}
$parentPageID = $row['pageID'];
}
- $controllerCustomURL = ($isStatic || empty($data['elements']['controllerCustomURL'])) ? '' : $data['elements']['controllerCustomURL'];
- if ($controllerCustomURL && !RouteHandler::isValidCustomUrl($controllerCustomURL)) {
- throw new SystemException("Invalid custom url for page identifier '" . $data['attributes']['identifier'] . "'");
- }
-
// validate page type
- $pageType = $data['elements']['pageType'];
$controller = '';
+ $handler = '';
+ $controllerCustomURL = '';
$identifier = $data['attributes']['identifier'];
$isMultilingual = 0;
switch ($pageType) {
throw new SystemException("Missing required element 'controller' for 'system'-type page '{$identifier}'");
}
$controller = $data['elements']['controller'];
+
+ if (!empty($data['elements']['handler'])) {
+ $handler = $data['elements']['handler'];
+ }
+
+ if (!empty($data['elements']['controllerCustomURL'])) {
+ $controllerCustomURL = $data['elements']['controllerCustomURL'];
+ if ($controllerCustomURL && !RouteHandler::isValidCustomUrl($controllerCustomURL)) {
+ throw new SystemException("Invalid custom url for page identifier '" . $data['attributes']['identifier'] . "'");
+ }
+ }
+
break;
case 'html':
return [
'pageType' => $pageType,
- 'content' => ($isStatic) ? $data['elements']['content'] : [],
+ 'content' => (!empty($data['elements']['content'])) ? $data['elements']['content'] : [],
'controller' => $controller,
- 'handler' => (!$isStatic && !empty($data['elements']['handler'])) ? $data['elements']['handler'] : '',
+ 'handler' => $handler,
'controllerCustomURL' => $controllerCustomURL,
'identifier' => $identifier,
'isMultilingual' => $isMultilingual,
background-color: $wcfInputBackground;
border: 1px solid $wcfInputBorder;
color: $wcfInputText;
- max-height: 250px;
- max-width: 400px;
+ max-height: 500px;
+ max-width: 500px;
overflow: auto;
padding: 5px;
<item name="wcf.page.category.com.woltlab.wcf.user"><![CDATA[Benutzer]]></item>
<item name="wcf.page.comments"><![CDATA[Kommentare]]></item>
- <!-- TODO: these variables are mostly irrelevant, but some are still of use, such as the custom phrase for the user profile -->
<item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[Benutzerprofil von <a href="{link controller='User' object=$user}{/link}" class="userLink" data-user-id="{@$user->userID}">{$user->username}</a>]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.UsersOnlineList"><![CDATA[Benutzer-Online-Liste]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.MembersList"><![CDATA[Mitgliederliste]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Team"><![CDATA[Liste der Team-Mitglieder]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Register"><![CDATA[Registrierung]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.LostPassword"><![CDATA[Kennwort vergessen]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Login"><![CDATA[Anmeldung]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.AccountManagement"><![CDATA[Benutzerkonto-Verwaltung]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.AvatarEdit"><![CDATA[Avatar-Verwaltung]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Settings"><![CDATA[Einstellungen]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.SignatureEdit"><![CDATA[Signatur-Verwaltung]]></item>
-
- <item name="wcf.page.com.woltlab.wcf.AccountManagement"><![CDATA[Benutzerkonto-Verwaltung]]></item>
- <item name="wcf.page.com.woltlab.wcf.AvatarEdit"><![CDATA[Avatar-Verwaltung]]></item>
- <item name="wcf.page.com.woltlab.wcf.Dashboard"><![CDATA[Dashboard]]></item>
- <item name="wcf.page.com.woltlab.wcf.DeletedContentList"><![CDATA[Gelöschte Inhalte]]></item>
- <item name="wcf.page.com.woltlab.wcf.Disclaimer"><![CDATA[Disclaimer]]></item>
- <item name="wcf.page.com.woltlab.wcf.EditHistory"><![CDATA[TODO]]></item>
- <item name="wcf.page.com.woltlab.wcf.EmailActivation"><![CDATA[Aktivierung neuer E-Mail-Adresse]]></item>
- <item name="wcf.page.com.woltlab.wcf.EmailNewActivationCode"><![CDATA[E-Mail-Aktivierungscode-Anforderung]]></item>
- <item name="wcf.page.com.woltlab.wcf.Following"><![CDATA[Benutzer, denen Sie folgen]]></item>
- <item name="wcf.page.com.woltlab.wcf.IgnoredUsers"><![CDATA[Blockierte Benutzer]]></item>
- <item name="wcf.page.com.woltlab.wcf.Login"><![CDATA[Anmeldung]]></item>
- <item name="wcf.page.com.woltlab.wcf.LostPassword"><![CDATA[Kennwort vergessen]]></item>
- <item name="wcf.page.com.woltlab.wcf.Mail"><![CDATA[E-Mail-Formular]]></item>
- <item name="wcf.page.com.woltlab.wcf.MembersList"><![CDATA[Mitglieder]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationActivation"><![CDATA[Inhaltsfreischaltung]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationList"><![CDATA[Moderation]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationReport"><![CDATA[Inhaltsmeldung]]></item>
- <item name="wcf.page.com.woltlab.wcf.NewPassword"><![CDATA[Neues Kennwort]]></item>
- <item name="wcf.page.com.woltlab.wcf.NotificationList"><![CDATA[Benachrichtigungen]]></item>
- <item name="wcf.page.com.woltlab.wcf.NotificationSettings"><![CDATA[Benachrichtigungseinstellungen]]></item>
- <item name="wcf.page.com.woltlab.wcf.PaidSubscriptionList"><![CDATA[Bezahlte Mitgliedschaften]]></item>
- <item name="wcf.page.com.woltlab.wcf.RecentActivityList"><![CDATA[Letzte Aktivitäten]]></item>
- <item name="wcf.page.com.woltlab.wcf.Register"><![CDATA[Registrierung]]></item>
- <item name="wcf.page.com.woltlab.wcf.RegisterActivation"><![CDATA[Registrierung abschließen]]></item>
- <item name="wcf.page.com.woltlab.wcf.RegisterNewActivationCode"><![CDATA[Aktivierungscode-Anforderung]]></item>
- <item name="wcf.page.com.woltlab.wcf.Search"><![CDATA[Suche]]></item>
- <item name="wcf.page.com.woltlab.wcf.SearchResult"><![CDATA[Suchergebnisse]]></item>
- <item name="wcf.page.com.woltlab.wcf.Settings"><![CDATA[Einstellungen]]></item>
- <item name="wcf.page.com.woltlab.wcf.SignatureEdit"><![CDATA[Signatur-Verwaltung]]></item>
- <item name="wcf.page.com.woltlab.wcf.Tagged"><![CDATA[Inhalte mit bestimmtem Tag]]></item>
- <item name="wcf.page.com.woltlab.wcf.Team"><![CDATA[Team]]></item>
- <item name="wcf.page.com.woltlab.wcf.User"><![CDATA[Benutzerprofil]]></item>
- <item name="wcf.page.com.woltlab.wcf.UserSearch"><![CDATA[Benutzer suchen]]></item>
- <item name="wcf.page.com.woltlab.wcf.UsersOnlineList"><![CDATA[Benutzer Online]]></item>
</category>
<category name="wcf.paidSubscription">
<item name="wcf.page.category.com.woltlab.wcf.user"><![CDATA[Users]]></item>
<item name="wcf.page.comments"><![CDATA[Comments]]></item>
- <!-- TODO: these variables are mostly irrelevant, but some are still of use, such as the custom phrase for the user profile -->
<item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[User profile of <a href="{link controller='User' object=$user}{/link}" class="userLink" data-user-id="{@$user->userID}">{$user->username}</a>]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.UsersOnlineList"><![CDATA[List of Users Online]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.MembersList"><![CDATA[Members List]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Team"><![CDATA[List of Staff Members]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Register"><![CDATA[Registration]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.LostPassword"><![CDATA[Lost Password]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Login"><![CDATA[Login]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.AccountManagement"><![CDATA[Account Management]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.AvatarEdit"><![CDATA[Avatar Management]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.Settings"><![CDATA[Settings]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.SignatureEdit"><![CDATA[Signature Management]]></item>
-
- <item name="wcf.page.com.woltlab.wcf.AccountManagement"><![CDATA[Account Management]]></item>
- <item name="wcf.page.com.woltlab.wcf.AvatarEdit"><![CDATA[Avatar Management]]></item>
- <item name="wcf.page.com.woltlab.wcf.Dashboard"><![CDATA[Dashboard]]></item>
- <item name="wcf.page.com.woltlab.wcf.DeletedContentList"><![CDATA[Deleted Content]]></item>
- <item name="wcf.page.com.woltlab.wcf.Disclaimer"><![CDATA[Disclaimer]]></item>
- <item name="wcf.page.com.woltlab.wcf.EditHistory"><![CDATA[TODO]]></item>
- <item name="wcf.page.com.woltlab.wcf.EmailActivation"><![CDATA[New Email Address Verification]]></item>
- <item name="wcf.page.com.woltlab.wcf.EmailNewActivationCode"><![CDATA[New Email Activation Code Request]]></item>
- <item name="wcf.page.com.woltlab.wcf.Following"><![CDATA[Followed Users]]></item>
- <item name="wcf.page.com.woltlab.wcf.IgnoredUsers"><![CDATA[Blocked Users]]></item>
- <item name="wcf.page.com.woltlab.wcf.Login"><![CDATA[Login]]></item>
- <item name="wcf.page.com.woltlab.wcf.LostPassword"><![CDATA[Lost Password]]></item>
- <item name="wcf.page.com.woltlab.wcf.Mail"><![CDATA[Mail Form]]></item>
- <item name="wcf.page.com.woltlab.wcf.MembersList"><![CDATA[Members]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationActivation"><![CDATA[Content Approval]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationList"><![CDATA[Moderation]]></item>
- <item name="wcf.page.com.woltlab.wcf.ModerationReport"><![CDATA[Content Report]]></item>
- <item name="wcf.page.com.woltlab.wcf.NewPassword"><![CDATA[New Password Request]]></item>
- <item name="wcf.page.com.woltlab.wcf.NotificationList"><![CDATA[Notifications]]></item>
- <item name="wcf.page.com.woltlab.wcf.NotificationSettings"><![CDATA[Notification Settings]]></item>
- <item name="wcf.page.com.woltlab.wcf.PaidSubscriptionList"><![CDATA[Paid Subscriptions]]></item>
- <item name="wcf.page.com.woltlab.wcf.RecentActivityList"><![CDATA[Recent Activities]]></item>
- <item name="wcf.page.com.woltlab.wcf.Register"><![CDATA[Registration]]></item>
- <item name="wcf.page.com.woltlab.wcf.RegisterActivation"><![CDATA[Complete Registration]]></item>
- <item name="wcf.page.com.woltlab.wcf.RegisterNewActivationCode"><![CDATA[New Activation Code Request]]></item>
- <item name="wcf.page.com.woltlab.wcf.Search"><![CDATA[Search]]></item>
- <item name="wcf.page.com.woltlab.wcf.SearchResult"><![CDATA[Search Results]]></item>
- <item name="wcf.page.com.woltlab.wcf.Settings"><![CDATA[Settings]]></item>
- <item name="wcf.page.com.woltlab.wcf.SignatureEdit"><![CDATA[Signature Management]]></item>
- <item name="wcf.page.com.woltlab.wcf.Tagged"><![CDATA[Content With Particular Tag]]></item>
- <item name="wcf.page.com.woltlab.wcf.Team"><![CDATA[Team]]></item>
- <item name="wcf.page.com.woltlab.wcf.User"><![CDATA[User Profile]]></item>
- <item name="wcf.page.com.woltlab.wcf.UserSearch"><![CDATA[Search Users]]></item>
- <item name="wcf.page.com.woltlab.wcf.UsersOnlineList"><![CDATA[Users Online]]></item>
</category>
<category name="wcf.paidSubscription">