Overhauled page title management
authorMarcel Werk <burntime@woltlab.com>
Sat, 21 May 2016 16:05:32 +0000 (18:05 +0200)
committerMarcel Werk <burntime@woltlab.com>
Sat, 21 May 2016 16:05:39 +0000 (18:05 +0200)
39 files changed:
com.woltlab.wcf/page.xml
com.woltlab.wcf/templates/accountManagement.tpl
com.woltlab.wcf/templates/avatarEdit.tpl
com.woltlab.wcf/templates/cms.tpl
com.woltlab.wcf/templates/deletedContentList.tpl
com.woltlab.wcf/templates/disclaimer.tpl
com.woltlab.wcf/templates/emailActivation.tpl
com.woltlab.wcf/templates/emailNewActivationCode.tpl
com.woltlab.wcf/templates/following.tpl
com.woltlab.wcf/templates/header.tpl
com.woltlab.wcf/templates/ignoredUsers.tpl
com.woltlab.wcf/templates/login.tpl
com.woltlab.wcf/templates/lostPassword.tpl
com.woltlab.wcf/templates/mail.tpl
com.woltlab.wcf/templates/membersList.tpl
com.woltlab.wcf/templates/moderationActivation.tpl
com.woltlab.wcf/templates/moderationList.tpl
com.woltlab.wcf/templates/moderationReport.tpl
com.woltlab.wcf/templates/newPassword.tpl
com.woltlab.wcf/templates/notificationList.tpl
com.woltlab.wcf/templates/paidSubscriptionList.tpl
com.woltlab.wcf/templates/recentActivityList.tpl
com.woltlab.wcf/templates/register.tpl
com.woltlab.wcf/templates/registerActivation.tpl
com.woltlab.wcf/templates/registerNewActivationCode.tpl
com.woltlab.wcf/templates/search.tpl
com.woltlab.wcf/templates/searchResult.tpl
com.woltlab.wcf/templates/signatureEdit.tpl
com.woltlab.wcf/templates/team.tpl
com.woltlab.wcf/templates/user.tpl
com.woltlab.wcf/templates/userSearch.tpl
com.woltlab.wcf/templates/usersOnlineList.tpl
wcfsetup/install/files/acp/templates/pageAdd.tpl
wcfsetup/install/files/lib/acp/form/PageEditForm.class.php
wcfsetup/install/files/lib/data/page/PageCache.class.php
wcfsetup/install/files/lib/system/package/plugin/PagePackageInstallationPlugin.class.php
wcfsetup/install/files/style/ui/scrollableCheckboxList.scss
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 8d1df4f863911fc4beee0d5dd3e7a7d3004bb15e..81c60f48f0e4f3810b72fe97157bea4731e3dce7 100644 (file)
@@ -9,6 +9,13 @@
                        <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>
index aa02157a77faa3da6cc52898ec6f9894d7347af8..f59e151b55c69954c5b6ec9941f1291140bd4873 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index 1f4a0fa1093021d9e0314b207e124765ff57ad46..eba0a80bdbf21088001da50e32ab669c379de759 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index a5a7d030a9e5e32088a2f13d792290e85d64a26d..6d9651ea4ea3a1f6cb473487e6f5186adcc8b960 100644 (file)
@@ -1,44 +1,7 @@
-{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]}
index 4bdf6057998e183087d344c29d332ebcf3894dd4..faee7ebb50a1912d35857ed0aaee60094412ee04 100644 (file)
@@ -1,4 +1,4 @@
-{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'}
 
index 79b011bf4aa2e86d04a13c684a5b5eb0efbeac31..431668686cde2c864dc01efe9fbeb31ba5c8fd30 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index 37e68909674c49825616a13ef80a237004650ca5..aba48404f5ffcc268154e050b8b81a20136f79c4 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.user.emailActivation{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.emailActivation{/lang}{/capture}
-
 {include file='header'}
 
 {include file='formError'}
index 0758a09827cab4a98a37f5a42e77ee12987dd99e..fa8dae3257a93ebef3f474c23626454074e8ce08 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
 {include file='header'}
 
 {include file='formError'}
index 81860292dadbae189f7d89b4ee05ee974931bd09..d470183f19ac2d0076a0d664530ebbe84d77bb14 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index 630517eeef374df80ff2bb16f6921c90f4b640dd..0f4ab999aa22551f5f2efb5add259ef8e26d97fe 100644 (file)
@@ -1,7 +1,14 @@
 {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'}
index cf43c03b5562e523b0305a9304494d854bce1340..890c6e2ef0dd824577fda27365e5ed98b21b6074 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index d063a44db55e111183afd0d1d038dac6569ce95d..8f2bdffb0eb2375d445403200acc1f69d7939ea6 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index 4069e6480ca86b37939427922f290473f9052333..b46e4d96514e3ea543f8b3196da0e534aa3cdcc8 100644 (file)
@@ -1,7 +1,3 @@
-{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>
index 64a11a3d1ed656d9245b939d4ae8702a436666b6..35eb937c9788ed745ae0c31e39f2138983575953 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index 9627ffdb31e3afd3c9d5e919adec1ea6d04ae9a7..f59c6ada6a06d7f96dab5b150333b32631b3ee53 100644 (file)
@@ -1,6 +1,6 @@
-{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}
 
index 050b7a658e03f43b98e554a61eaa79b5d0aaaa0e..b626faa313324cd92623152d4c25a4ee012dc781 100644 (file)
@@ -1,9 +1,9 @@
-{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">
index 83aa2708f926b971a9f2fcd9540136dd642f970d..673fd91e3db7c645054e1346ede99b5d07c23528 100644 (file)
@@ -1,4 +1,4 @@
-{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}
 
index 2fe86cd73eb219e71cb078f1a493abfcd3857dfd..b008d52025dad55f2b46f3fbbb2ce6dbfffae6a7 100644 (file)
@@ -1,9 +1,9 @@
-{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">
index 4995bc57273f21c52250a6edfff590a1f9ad8099..770d83ddea0c8b878d260c37f4f8a9c0fb70646d 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.user.newPassword{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newPassword{/lang}{/capture}
-
 {include file='header'}
 
 {include file='formError'}
index d342195906563da4054b94fa747e505d61b2d8f1..e96652fcd36648d39ddd1fa81c05be012ba00b97 100644 (file)
@@ -1,9 +1,7 @@
-{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}
index b26a8a017f7398adcaa0309448833819ee6845cc..962d1b9f90b2a92d6a14eac749f5906ce9d96ad4 100644 (file)
@@ -1,7 +1,3 @@
-{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">
index 76930d77d70c9170fd690059591525c745cef072..82d1f5209439d30a13c48bf8a76071c254228b83 100644 (file)
@@ -1,7 +1,3 @@
-{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}
index 822549ea22c20d7247999bf99f3e7306429dc449..bb3cb46e8b1e92f053001a035f0be1b67e758b5d 100644 (file)
@@ -1,7 +1,3 @@
-{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 {
index d491ff20ada082fee847f962589416bf14f5f842..4f268c51f8bb4d1042b7b6ef66ba0ea0c5cfbf88 100644 (file)
@@ -1,7 +1,3 @@
-{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}
index 496dd4b1327d9218363897e3723b60b2a01dd66d..ee0e239f1c5b95d4db5257e6b7b8a247dfadd240 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.newActivationCode{/lang}{/capture}
-
 {include file='header'}
 
 {include file='formError'}
index 9388be48d2c5ea1a40a9dc97bfbe7fbbcb32f503..2a28ff89f028f32e5b0f0d21472ea35fd9892f86 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.search.title{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.search.title{/lang}{/capture}
-
 {include file='header'}
 
 {include file='formError'}
index d77769d110dab73eff152c2948cc80c7a9864d25..bcc79e718da12d3ce06a4b9bbdf743042334c780 100644 (file)
@@ -1,9 +1,7 @@
-{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>
                
index bc79d052bde4dd484ce698fe51b5685faa543b97..032bb9a64d2b7a5580ca29891d8b70e1d45d4ef7 100644 (file)
@@ -1,7 +1,3 @@
-{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'}
index a12a02fa83b119715ba98a9b5092f9a553fc0058..c90e74caa25616a8701ae937d708cd216061b170 100644 (file)
@@ -1,7 +1,3 @@
-{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}
index 1e1b2e2ee102c9f559e71cfddcbc9cc33df9000b..451deb62c55531cab0fbcedfe61ad94c0196711c 100644 (file)
@@ -1,5 +1,7 @@
 {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}" />
        
index 24d6a83b4200f72454bcfd9e808cc587943e7074..aa98a61098fb8c5211a766222383b580134c3971 100644 (file)
@@ -1,7 +1,3 @@
-{capture assign='pageTitle'}{lang}wcf.user.search{/lang}{/capture}
-
-{capture assign='contentTitle'}{lang}wcf.user.search{/lang}{/capture}
-
 {include file='header'}
 
 {if $errorField == 'search'}
index e2b72b6a9c97fa52793c4181ec9540310dd26e72..8688e758e0c386070b885aba838e57d15fe6c602 100644 (file)
@@ -1,7 +1,3 @@
-{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}" />
        
index 6b39aa48be19464d9c059029dd2735fb7ed1128f..a21a56526b18b798f85e8cdcf787c46a4caa8ff8 100644 (file)
 {/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}{@"&nbsp;&nbsp;&nbsp;&nbsp;"|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}{@"&nbsp;&nbsp;&nbsp;&nbsp;"|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">
index 1be97d78b09767652eb6e538b5c5dfbe77618451..a8b385c3b6276e012832687f1820dc73b92fc88c 100644 (file)
@@ -108,10 +108,22 @@ class PageEditForm extends PageAddForm {
                ];
                
                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();
                }
index 1bf70af7fa21f7e97095e2cf734019d17d597a22..6519363bbd25edad117c2e6252eb028fbe83e860 100644 (file)
@@ -82,7 +82,7 @@ class PageCache extends SingletonFactory {
        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];
                                }
index 9a45d007643d1df5fa74098249ef142956b30bb5..098eb76ffc3c069e50a5fe3d3aa7b09e60435f57 100644 (file)
@@ -88,23 +88,21 @@ class PagePackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin
         * @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']) : ''
                                ];
                        }
                        
@@ -141,14 +139,10 @@ class PagePackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin
                        $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) {
@@ -157,6 +151,18 @@ class PagePackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin
                                        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':
@@ -200,9 +206,9 @@ class PagePackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin
                
                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,
index f21f352a81b3a6a2eaf12c2b8b50ade90f34e3cd..c338e139a18691bb9416dcbbe4b9e5a06b30a8e1 100644 (file)
@@ -2,8 +2,8 @@
        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;
        
index 50a7703541ec08117b8bb7dcbeafd47b597cf410..dc1cbfb7f4f63dd675bf9ad048aca8cca9c6a10c 100644 (file)
@@ -2512,53 +2512,7 @@ Fehler sind beispielsweise:
                <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">
index 08208993bef0df5222206d940fc92b3ec9e40183..7ee57538f486bfc4586c57069c9124ce67b7d2a3 100644 (file)
@@ -2550,53 +2550,7 @@ Errors are:
                <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">