Adds page object types
authorMatthias Schmidt <gravatronics@live.com>
Wed, 14 May 2014 19:00:39 +0000 (21:00 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Wed, 14 May 2014 19:00:39 +0000 (21:00 +0200)
com.woltlab.wcf/objectType.xml
com.woltlab.wcf/objectTypeDefinition.xml
wcfsetup/install/files/lib/system/option/MultiSelectOptionType.class.php
wcfsetup/install/files/lib/system/option/PageMultiSelectOptionType.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/option/PageSelectOptionType.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/option/RadioButtonOptionType.class.php
wcfsetup/install/files/lib/system/option/SelectOptionType.class.php
wcfsetup/install/files/lib/system/page/PageManager.class.php [new file with mode: 0644]
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 7e5123e4495d21ec25197d8275e5abe8fddea4fd..5940d050869a187a604a6bbc552febc145703743 100644 (file)
                        <conditiongroup>userOptions</conditiongroup>
                </type>
                <!-- /user group assignment conditions -->
+               
+               <!-- pages -->
+               <type>
+                       <name>com.woltlab.wcf.AccountManagementForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\AccountManagementForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.AvatarEditForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\AvatarEditForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.DisclaimerForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\DisclaimerForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.EmailActivationForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\EmailActivationForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.EmailNewActivationCodeForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\EmailNewActivationCodeForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.LoginForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\LoginForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.LostPasswordForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\LostPasswordForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.MailForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\MailForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.ModerationActivationForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\ModerationActivationForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.ModerationReportForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\ModerationReportForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.NewPasswordForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\NewPasswordForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.NotificationSettingsForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\NotificationSettingsForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.RegisterActivationForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\RegisterActivationForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.RegisterForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\RegisterForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.RegisterNewActivationCodeForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\RegisterNewActivationCodeForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.SearchForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\SearchForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.SettingsForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\SettingsForm]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.SignatureEditForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\SignatureEditForm]]></classname>
+                       <options>module_user_signature</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.UserSearchForm</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\form\UserSearchForm]]></classname>
+                       <options>module_members_list</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.DashboardPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\DashboardPage]]></classname>
+                       <options>module_dashboard_page</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.DeletedContentListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\DeletedContentListPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.FollowingPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\FollowingPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.IgnoredUsersPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\IgnoredUsersPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.MembersListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\MembersListPage]]></classname>
+                       <options>module_members_list</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.ModerationListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\ModerationListPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.NotificationListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\NotificationListPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.RecentActivityListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\RecentActivityListPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.SearchResultPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\SearchResultPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.TaggedPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\TaggedPage]]></classname>
+                       <options>module_tagging</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.TeamPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\TeamPage]]></classname>
+                       <options>module_team_page</options>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.UserPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\UserPage]]></classname>
+               </type>
+               <type>
+                       <name>com.woltlab.wcf.UsersOnlineListPage</name>
+                       <definitionname>com.woltlab.wcf.page</definitionname>
+                       <classname><![CDATA[wcf\page\UsersOnlineListPage]]></classname>
+               </type>
+               <!-- /pages -->
        </import>
 </data>
index 0f385cf5e24c56e6ae9a0ae29456917a707b7714..13663605962a3958d2f64538972d43c50d6f0e82 100644 (file)
                        <name>com.woltlab.wcf.condition.userGroupAssignment</name>
                        <interfacename><![CDATA[wcf\system\condition\IUserCondition]]></interfacename>
                </definition>
+               
+               <definition>
+                       <name>com.woltlab.wcf.page</name>
+               </definition>
        </import>
 </data>
index a5e9a23015d2199ae0b94d2c2046630bdbed26c5..65231a4f8547e07b041bef03b8e813c984061f12 100644 (file)
@@ -25,7 +25,7 @@ class MultiSelectOptionType extends SelectOptionType {
        public function getFormElement(Option $option, $value) {
                WCF::getTPL()->assign(array(
                        'option' => $option,
-                       'selectOptions' => $option->parseSelectOptions(),
+                       'selectOptions' => $this->getSelectOptions($option),
                        'value' => (!is_array($value) ? explode("\n", $value) : $value)
                ));
                return WCF::getTPL()->fetch('multiSelectOptionType');
@@ -38,7 +38,7 @@ class MultiSelectOptionType extends SelectOptionType {
                WCF::getTPL()->assign(array(
                        'option' => $option,
                        'searchOption' => $value !== $option->defaultValue || isset($_POST['searchOptions'][$option->optionName]),
-                       'selectOptions' => $option->parseSelectOptions(),
+                       'selectOptions' => $this->getSelectOptions($option),
                        'value' => (!is_array($value) ? explode("\n", $value) : $value)
                ));
                return WCF::getTPL()->fetch('multiSelectSearchableOptionType');
@@ -49,7 +49,7 @@ class MultiSelectOptionType extends SelectOptionType {
         */
        public function validate(Option $option, $newValue) {
                if (!is_array($newValue)) $newValue = array();
-               $options = $option->parseSelectOptions();
+               $options = $this->getSelectOptions($option);
                foreach ($newValue as $value) {
                        if (!isset($options[$value])) {
                                throw new UserInputException($option->optionName, 'validationFailed');
diff --git a/wcfsetup/install/files/lib/system/option/PageMultiSelectOptionType.class.php b/wcfsetup/install/files/lib/system/option/PageMultiSelectOptionType.class.php
new file mode 100644 (file)
index 0000000..6149b2a
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+namespace wcf\system\option;
+use wcf\data\option\Option;
+use wcf\system\page\PageManager;
+
+/**
+ * Option type implementation for selecting multiple pages.
+ * 
+ * @author     Matthias Schmidt
+ * @copyright  2001-2014 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.option
+ * @category   Community Framework
+ */
+class PageMultiSelectOptionType extends MultiSelectOptionType {
+       /**
+        * @see \wcf\system\option\RadioButtonOptionType::getSelectOptions()
+        */
+       protected function getSelectOptions(Option $option) {
+               return PageManager::getInstance()->getSelection($option->application);
+       }
+}
diff --git a/wcfsetup/install/files/lib/system/option/PageSelectOptionType.class.php b/wcfsetup/install/files/lib/system/option/PageSelectOptionType.class.php
new file mode 100644 (file)
index 0000000..e6e5db8
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+namespace wcf\system\option;
+use wcf\data\option\Option;
+use wcf\system\page\PageManager;
+
+/**
+ * Option type implementation for selecting pages.
+ * 
+ * @author     Matthias Schmidt
+ * @copyright  2001-2014 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.option
+ * @category   Community Framework
+ */
+class PageSelectOptionType extends SelectOptionType {
+       /**
+        * @see \wcf\system\option\RadioButtonOptionType::getSelectOptions()
+        */
+       protected function getSelectOptions(Option $option) {
+               return PageManager::getInstance()->getSelection($option->application);
+       }
+}
index 4179b0971f9d1478f2f7b4f3d06618548bcae74b..d58aea1202851c341e3f2bc88c6c34e4b6fa0a0a 100644 (file)
@@ -29,9 +29,6 @@ class RadioButtonOptionType extends AbstractOptionType implements ISearchableCon
         * @see \wcf\system\option\IOptionType::getFormElement()
         */
        public function getFormElement(Option $option, $value) {
-               // get options
-               $selectOptions = $option->parseSelectOptions();
-               
                $availableOptions = $option->parseMultipleEnableOptions();
                $options = array(
                        'disableOptions' => array(),
@@ -49,7 +46,7 @@ class RadioButtonOptionType extends AbstractOptionType implements ISearchableCon
                        'disableOptions' => $options['disableOptions'],
                        'enableOptions' => $options['enableOptions'],
                        'option' => $option,
-                       'selectOptions' => $selectOptions,
+                       'selectOptions' => $this->getSelectOptions($option),
                        'value' => $value
                ));
                return WCF::getTPL()->fetch($this->templateName);
@@ -60,7 +57,7 @@ class RadioButtonOptionType extends AbstractOptionType implements ISearchableCon
         */
        public function validate(Option $option, $newValue) {
                if (!empty($newValue)) {
-                       $options = $option->parseSelectOptions();
+                       $options = $this->getSelectOptions($option);
                        if (!isset($options[$newValue])) {
                                throw new UserInputException($option->optionName, 'validationFailed');
                        }
@@ -107,4 +104,14 @@ class RadioButtonOptionType extends AbstractOptionType implements ISearchableCon
        public function getConditionData(Option $option, $newValue) {
                return $newValue;
        }
+       
+       /**
+        * Returns the select options for the given option.
+        * 
+        * @param       \wcf\dat\option\Option          $option
+        * @return      array<string>
+        */
+       protected function getSelectOptions(Option $option) {
+               return $option->parseSelectOptions();
+       }
 }
index e95ce3b6ab62a09a949c785dd9ba9337c8df7007..64629ffcd5cade3c23a886b76954fc03498ee94c 100644 (file)
@@ -26,7 +26,7 @@ class SelectOptionType extends RadioButtonOptionType {
                        'disableOptions' => $options['disableOptions'],
                        'enableOptions' => $options['enableOptions'],
                        'option' => $option,
-                       'selectOptions' => $option->parseSelectOptions(),
+                       'selectOptions' => $this->getSelectOptions($option),
                        'value' => $value,
                        'allowEmptyValue' => ($this->allowEmptyValue || $option->allowEmptyValue)
                ));
@@ -44,7 +44,7 @@ class SelectOptionType extends RadioButtonOptionType {
                        'enableOptions' => $options['enableOptions'],
                        'option' => $option,
                        'searchOption' => ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
-                       'selectOptions' => $option->parseSelectOptions(),
+                       'selectOptions' => $this->getSelectOptions($option),
                        'value' => $value
                ));
                return WCF::getTPL()->fetch('selectSearchableOptionType');
diff --git a/wcfsetup/install/files/lib/system/page/PageManager.class.php b/wcfsetup/install/files/lib/system/page/PageManager.class.php
new file mode 100644 (file)
index 0000000..64c709d
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+namespace wcf\system\page;
+use wcf\data\object\type\ObjectTypeCache;
+use wcf\data\package\PackageCache;
+use wcf\system\application\ApplicationHandler;
+use wcf\system\exception\SystemException;
+use wcf\system\SingletonFactory;
+use wcf\system\WCF;
+
+/**
+ * Manages the available page object types.
+ * 
+ * @author     Matthias Schmidt
+ * @copyright  2001-2014 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.page
+ * @category   Community Framework
+ */
+class PageManager extends SingletonFactory {
+       /**
+        * list of available page object types
+        * @var array<\wcf\data\object\type\ObjectType>
+        */
+       protected $objectTypes = array();
+       
+       /**
+        * @see \wcf\system\SingletonFactory::init()
+        */
+       protected function init() {
+               $this->objectTypes = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.page');
+       }
+       
+       /**
+        * Returns a list of the available page object types.
+        * 
+        * @return      array<\wcf\data\object\type\ObjectType>
+        */
+       public function getObjectTypes() {
+               return $this->objectTypes;
+       }
+       
+       /**
+        * Returns an array used to build a page selection. If $application is given,
+        * only pages who belong to the application with the given abbreviation
+        * are returned.
+        * 
+        * @param       string          $application
+        * @return      array<string>
+        */
+       public function getSelection($application = null) {
+               $objectTypes = $this->objectTypes;
+               
+               // filter by application
+               if ($application !== null) {
+                       // validate application
+                       if ($application != 'wcf' && ApplicationHandler::getInstance()->getApplication($application) === null) {
+                               throw new SystemException("Unknown application with abbreviation '".$application."'");
+                       }
+                       
+                       foreach ($objectTypes as $objectTypeName => $objectType) {
+                               $classNamePieces = explode('\\', $objectType->className);
+                               
+                               if ($classNamePieces[0] != $application) {
+                                       unset($objectTypes[$objectTypeName]);
+                               }
+                       }
+               }
+               
+               // filter by options
+               foreach ($objectTypes as $objectTypeName => $objectType) {
+                       if ($objectType->options) {
+                               $options = explode(',', strtoupper($objectType->options));
+                               foreach ($options as $option) {
+                                       if (!defined($option) || !constant($option)) {
+                                               unset($objectTypes[$objectTypeName]);
+                                               break;
+                                       }
+                               }
+                       }
+               }
+               
+               $selection = array();
+               foreach ($objectTypes as $objectType) {
+                       $selection[$objectType->objectTypeID] = WCF::getLanguage()->get('wcf.page.'.$objectType->objectType);
+                       
+                       if ($application === null && substr($objectType->className, 0, 3) != 'wcf') {
+                               $classNamePieces = explode('\\', $objectType->className);
+                               
+                               $selection[$objectType->objectTypeID] .= ' ('.PackageCache::getInstance()->getPackage(ApplicationHandler::getInstance()->getApplication($classNamePieces[0])->packageID).')';
+                       }
+               }
+               
+               sort($selection);
+               
+               return $selection;
+       }
+}
index 7c8d0dd5bf26b4083f0fca1603f0a2e4110a1da7..d0ffc71cb813c65e7d1180b89ed8267dd1776a3b 100644 (file)
@@ -2028,6 +2028,39 @@ Fehler sind beispielsweise:
                <item name="wcf.page.pagePosition"><![CDATA[Seite {#$pageNo} von {#$pages}]]></item>
                <item name="wcf.page.sitemap.userAccount"><![CDATA[Benutzerkonto]]></item>
                <item name="wcf.page.javascriptDisabled"><![CDATA[In Ihrem Webbrowser ist JavaScript deaktiviert. Um alle Funktionen dieser Webseite nutzen zu können, muss JavaScript aktiviert sein.]]></item>
+               
+               <item name="wcf.page.com.woltlab.wcf.AccountManagementForm"><![CDATA[Benutzerkonto-Verwaltung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.AvatarEditForm"><![CDATA[Avatar-Verwaltung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DisclaimerForm"><![CDATA[Disclaimer]]></item>
+               <item name="wcf.page.com.woltlab.wcf.EmailActivationForm"><![CDATA[Aktivierung neuer E-Mail-Adresse]]></item>
+               <item name="wcf.page.com.woltlab.wcf.EmailNewActivationCodeForm"><![CDATA[E-Mail-Aktivierungscode-Anforderung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.LoginForm"><![CDATA[Anmeldung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.LostPasswordForm"><![CDATA[Kennwort vergessen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.MailForm"><![CDATA[E-Mail-Formular]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationActivationForm"><![CDATA[Inhaltsfreischaltung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationReportForm"><![CDATA[Inhaltsmeldung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NewPasswordForm"><![CDATA[Neues Kennwort]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NotificationSettingsForm"><![CDATA[Benachrichtigungseinstellungen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterActivationForm"><![CDATA[Registrierung abschließen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterForm"><![CDATA[Registrierung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterNewActivationCodeForm"><![CDATA[Aktivierungscode-Anforderung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SearchForm"><![CDATA[Suche]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SettingsForm"><![CDATA[Einstellungen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SignatureEditForm"><![CDATA[Signatur-Verwaltung]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UserSearchForm"><![CDATA[Mitgliedersuche]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DashboardPage"><![CDATA[Dashboard]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DeletedContentListPage"><![CDATA[Gelöschte Inhalte]]></item>
+               <item name="wcf.page.com.woltlab.wcf.FollowingPage"><![CDATA[Benutzer, denen Sie folgen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.IgnoredUsersPage"><![CDATA[Blockierte Benutzer]]></item>
+               <item name="wcf.page.com.woltlab.wcf.MembersListPage"><![CDATA[Mitglieder]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationListPage"><![CDATA[Moderation]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NotificationListPage"><![CDATA[Benachrichtigungen]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RecentActivityListPage"><![CDATA[Letzte Aktivitäten]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SearchResultPage"><![CDATA[Suchergebnisse]]></item>
+               <item name="wcf.page.com.woltlab.wcf.TaggedPage"><![CDATA[Inhalte mit bestimmtem Tag]]></item>
+               <item name="wcf.page.com.woltlab.wcf.TeamPage"><![CDATA[Team-Mitglieder]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UserPage"><![CDATA[Benutzerprofil]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UsersOnlineListPage"><![CDATA[Benutzer online]]></item>
        </category>
        
        <category name="wcf.poll">
index 335fd2413fb4e4064f6c23798cbc4ba12a85acc1..73d16ce621d7f5f9ae81bb27491aa3f1bb0a9363 100644 (file)
@@ -1998,6 +1998,39 @@ Errors are:
                <item name="wcf.page.pagePosition"><![CDATA[Page {#$pageNo} of {#$pages}]]></item>
                <item name="wcf.page.sitemap.userAccount"><![CDATA[User Account]]></item>
                <item name="wcf.page.javascriptDisabled"><![CDATA[Your browser has JavaScript disabled. If you would like to use all features of this site, it is mandatory to enable JavaScript.]]></item>
+               
+               <item name="wcf.page.com.woltlab.wcf.AccountManagementForm"><![CDATA[Account Management]]></item>
+               <item name="wcf.page.com.woltlab.wcf.AvatarEditForm"><![CDATA[Avatar Management]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DisclaimerForm"><![CDATA[Disclaimer]]></item>
+               <item name="wcf.page.com.woltlab.wcf.EmailActivationForm"><![CDATA[New Email Address Verification]]></item>
+               <item name="wcf.page.com.woltlab.wcf.EmailNewActivationCodeForm"><![CDATA[New Email Activation Code Request]]></item>
+               <item name="wcf.page.com.woltlab.wcf.LoginForm"><![CDATA[Login]]></item>
+               <item name="wcf.page.com.woltlab.wcf.LostPasswordForm"><![CDATA[Lost Password]]></item>
+               <item name="wcf.page.com.woltlab.wcf.MailForm"><![CDATA[Mail Form]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationActivationForm"><![CDATA[Content Approval]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationReportForm"><![CDATA[Content Report]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NewPasswordForm"><![CDATA[New Password Request]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NotificationSettingsForm"><![CDATA[Notification Settings]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterActivationForm"><![CDATA[Complete Registration]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterForm"><![CDATA[Registration]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RegisterNewActivationCodeForm"><![CDATA[New Activation Code Request]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SearchForm"><![CDATA[Search]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SettingsForm"><![CDATA[Settings]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SignatureEditForm"><![CDATA[Signature Management]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UserSearchForm"><![CDATA[Members Search]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DashboardPage"><![CDATA[Dashboard]]></item>
+               <item name="wcf.page.com.woltlab.wcf.DeletedContentListPage"><![CDATA[Deleted Content]]></item>
+               <item name="wcf.page.com.woltlab.wcf.FollowingPage"><![CDATA[Followed Users]]></item>
+               <item name="wcf.page.com.woltlab.wcf.IgnoredUsersPage"><![CDATA[Blocked Users]]></item>
+               <item name="wcf.page.com.woltlab.wcf.MembersListPage"><![CDATA[Members]]></item>
+               <item name="wcf.page.com.woltlab.wcf.ModerationListPage"><![CDATA[Moderation]]></item>
+               <item name="wcf.page.com.woltlab.wcf.NotificationListPage"><![CDATA[Notifications]]></item>
+               <item name="wcf.page.com.woltlab.wcf.RecentActivityListPage"><![CDATA[Recent Activities]]></item>
+               <item name="wcf.page.com.woltlab.wcf.SearchResultPage"><![CDATA[Search Results]]></item>
+               <item name="wcf.page.com.woltlab.wcf.TaggedPage"><![CDATA[Content With Particular Tag]]></item>
+               <item name="wcf.page.com.woltlab.wcf.TeamPage"><![CDATA[Staff Members]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UserPage"><![CDATA[User Profile]]></item>
+               <item name="wcf.page.com.woltlab.wcf.UsersOnlineListPage"><![CDATA[Users Online]]></item>
        </category>
        
        <category name="wcf.poll">