Fixed directory name 2.0.0_Beta_3
authorAlexander Ebert <ebert@woltlab.com>
Tue, 4 Jun 2013 20:04:09 +0000 (22:04 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Tue, 4 Jun 2013 20:04:09 +0000 (22:04 +0200)
261 files changed:
com.woltlab.wcf/package.xml
com.woltlab.wcf/template/__commentJavaScript.tpl [deleted file]
com.woltlab.wcf/template/__messageFormPoll.tpl [deleted file]
com.woltlab.wcf/template/__messageFormSmilies.tpl [deleted file]
com.woltlab.wcf/template/__messageQuoteManager.tpl [deleted file]
com.woltlab.wcf/template/__signatureMaxImageDimensions.tpl [deleted file]
com.woltlab.wcf/template/accountManagement.tpl [deleted file]
com.woltlab.wcf/template/aclPermissionJavaScript.tpl [deleted file]
com.woltlab.wcf/template/aclPermissions.tpl [deleted file]
com.woltlab.wcf/template/attachments.tpl [deleted file]
com.woltlab.wcf/template/authorSidebarBox.tpl [deleted file]
com.woltlab.wcf/template/avatarCropDialog.tpl [deleted file]
com.woltlab.wcf/template/avatarEdit.tpl [deleted file]
com.woltlab.wcf/template/benchmark.tpl [deleted file]
com.woltlab.wcf/template/birthdaySearchableOptionType.tpl [deleted file]
com.woltlab.wcf/template/booleanOptionType.tpl [deleted file]
com.woltlab.wcf/template/breadcrumbs.tpl [deleted file]
com.woltlab.wcf/template/categoryOptionList.tpl [deleted file]
com.woltlab.wcf/template/codeBBCodeTag.tpl [deleted file]
com.woltlab.wcf/template/commentList.tpl [deleted file]
com.woltlab.wcf/template/commentResponseList.tpl [deleted file]
com.woltlab.wcf/template/dashboard.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxContent.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxMostActiveMembers.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxMostLikedMembers.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxNewestMembers.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxRecentActivity.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxRecentActivitySidebar.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxRegisterButton.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxSidebar.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxSignedInAs.tpl [deleted file]
com.woltlab.wcf/template/dashboardBoxStatsSidebar.tpl [deleted file]
com.woltlab.wcf/template/detailedActivityPointList.tpl [deleted file]
com.woltlab.wcf/template/disclaimer.tpl [deleted file]
com.woltlab.wcf/template/documentHeader.tpl [deleted file]
com.woltlab.wcf/template/emailActivation.tpl [deleted file]
com.woltlab.wcf/template/emailNewActivationCode.tpl [deleted file]
com.woltlab.wcf/template/following.tpl [deleted file]
com.woltlab.wcf/template/footer.tpl [deleted file]
com.woltlab.wcf/template/footerMenu.tpl [deleted file]
com.woltlab.wcf/template/groupedUserList.tpl [deleted file]
com.woltlab.wcf/template/headInclude.tpl [deleted file]
com.woltlab.wcf/template/header.tpl [deleted file]
com.woltlab.wcf/template/ignoredUsers.tpl [deleted file]
com.woltlab.wcf/template/imageViewer.tpl [deleted file]
com.woltlab.wcf/template/integerOptionType.tpl [deleted file]
com.woltlab.wcf/template/login.tpl [deleted file]
com.woltlab.wcf/template/lostPassword.tpl [deleted file]
com.woltlab.wcf/template/mail.tpl [deleted file]
com.woltlab.wcf/template/mainMenu.tpl [deleted file]
com.woltlab.wcf/template/mainMenuSubMenu.tpl [deleted file]
com.woltlab.wcf/template/manageSubscription.tpl [deleted file]
com.woltlab.wcf/template/membersList.tpl [deleted file]
com.woltlab.wcf/template/messageFormAttachments.tpl [deleted file]
com.woltlab.wcf/template/messageFormMultilingualism.tpl [deleted file]
com.woltlab.wcf/template/messageFormPreviewButton.tpl [deleted file]
com.woltlab.wcf/template/messageFormSettings.tpl [deleted file]
com.woltlab.wcf/template/messageFormSmilies.tpl [deleted file]
com.woltlab.wcf/template/messageFormTabs.tpl [deleted file]
com.woltlab.wcf/template/messageOptionType.tpl [deleted file]
com.woltlab.wcf/template/messageQuoteList.tpl [deleted file]
com.woltlab.wcf/template/messageSidebar.tpl [deleted file]
com.woltlab.wcf/template/messageUserOptionOutput.tpl [deleted file]
com.woltlab.wcf/template/moderationActivation.tpl [deleted file]
com.woltlab.wcf/template/moderationComment.tpl [deleted file]
com.woltlab.wcf/template/moderationList.tpl [deleted file]
com.woltlab.wcf/template/moderationQueueList.tpl [deleted file]
com.woltlab.wcf/template/moderationReport.tpl [deleted file]
com.woltlab.wcf/template/moderationReportDialog.tpl [deleted file]
com.woltlab.wcf/template/multiSelectOptionType.tpl [deleted file]
com.woltlab.wcf/template/multipleLanguageInputJavascript.tpl [deleted file]
com.woltlab.wcf/template/newPassword.tpl [deleted file]
com.woltlab.wcf/template/notificationList.tpl [deleted file]
com.woltlab.wcf/template/notificationListOustanding.tpl [deleted file]
com.woltlab.wcf/template/notificationSettings.tpl [deleted file]
com.woltlab.wcf/template/offline.tpl [deleted file]
com.woltlab.wcf/template/permissionDenied.tpl [deleted file]
com.woltlab.wcf/template/poll.tpl [deleted file]
com.woltlab.wcf/template/pollResult.tpl [deleted file]
com.woltlab.wcf/template/pollVote.tpl [deleted file]
com.woltlab.wcf/template/quoteBBCodeTag.tpl [deleted file]
com.woltlab.wcf/template/radioButtonOptionType.tpl [deleted file]
com.woltlab.wcf/template/recaptcha.tpl [deleted file]
com.woltlab.wcf/template/recentActivities.tpl [deleted file]
com.woltlab.wcf/template/recentActivityList.tpl [deleted file]
com.woltlab.wcf/template/recentActivityListItem.tpl [deleted file]
com.woltlab.wcf/template/redirect.tpl [deleted file]
com.woltlab.wcf/template/register.tpl [deleted file]
com.woltlab.wcf/template/registerActivation.tpl [deleted file]
com.woltlab.wcf/template/registerNewActivationCode.tpl [deleted file]
com.woltlab.wcf/template/rssFeed.tpl [deleted file]
com.woltlab.wcf/template/search.tpl [deleted file]
com.woltlab.wcf/template/searchArea.tpl [deleted file]
com.woltlab.wcf/template/searchResult.tpl [deleted file]
com.woltlab.wcf/template/searchResultList.tpl [deleted file]
com.woltlab.wcf/template/selectOptionType.tpl [deleted file]
com.woltlab.wcf/template/settings.tpl [deleted file]
com.woltlab.wcf/template/shareButtons.tpl [deleted file]
com.woltlab.wcf/template/signatureEdit.tpl [deleted file]
com.woltlab.wcf/template/sitemap.tpl [deleted file]
com.woltlab.wcf/template/sitemapUserAccount.tpl [deleted file]
com.woltlab.wcf/template/spoilerBBCodeTag.tpl [deleted file]
com.woltlab.wcf/template/styleChooser.tpl [deleted file]
com.woltlab.wcf/template/tagCloudBox.tpl [deleted file]
com.woltlab.wcf/template/tagInput.tpl [deleted file]
com.woltlab.wcf/template/tagged.tpl [deleted file]
com.woltlab.wcf/template/team.tpl [deleted file]
com.woltlab.wcf/template/textI18nOptionType.tpl [deleted file]
com.woltlab.wcf/template/textOptionType.tpl [deleted file]
com.woltlab.wcf/template/textareaI18nOptionType.tpl [deleted file]
com.woltlab.wcf/template/textareaOptionType.tpl [deleted file]
com.woltlab.wcf/template/user.tpl [deleted file]
com.woltlab.wcf/template/userException.tpl [deleted file]
com.woltlab.wcf/template/userInformation.tpl [deleted file]
com.woltlab.wcf/template/userInformationButtons.tpl [deleted file]
com.woltlab.wcf/template/userInformationHeadline.tpl [deleted file]
com.woltlab.wcf/template/userInformationStatistics.tpl [deleted file]
com.woltlab.wcf/template/userListItem.tpl [deleted file]
com.woltlab.wcf/template/userMenuSidebar.tpl [deleted file]
com.woltlab.wcf/template/userNotice.tpl [deleted file]
com.woltlab.wcf/template/userOptionFieldList.tpl [deleted file]
com.woltlab.wcf/template/userPanel.tpl [deleted file]
com.woltlab.wcf/template/userProfileAbout.tpl [deleted file]
com.woltlab.wcf/template/userProfileAboutEditable.tpl [deleted file]
com.woltlab.wcf/template/userProfileCommentList.tpl [deleted file]
com.woltlab.wcf/template/userProfileOptionFieldList.tpl [deleted file]
com.woltlab.wcf/template/userProfilePreview.tpl [deleted file]
com.woltlab.wcf/template/userSearch.tpl [deleted file]
com.woltlab.wcf/template/userSidebar.tpl [deleted file]
com.woltlab.wcf/template/usersOnlineList.tpl [deleted file]
com.woltlab.wcf/template/wysiwyg.tpl [deleted file]
com.woltlab.wcf/templates/__commentJavaScript.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/__messageFormPoll.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/__messageFormSmilies.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/__messageQuoteManager.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/__signatureMaxImageDimensions.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/accountManagement.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/aclPermissionJavaScript.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/aclPermissions.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/attachments.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/authorSidebarBox.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/avatarCropDialog.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/avatarEdit.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/benchmark.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/birthdaySearchableOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/booleanOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/breadcrumbs.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/categoryOptionList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/codeBBCodeTag.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/commentList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/commentResponseList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboard.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxContent.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxMostActiveMembers.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxMostLikedMembers.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxNewestMembers.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxRecentActivity.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxRecentActivitySidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxRegisterButton.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxSidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxSignedInAs.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/dashboardBoxStatsSidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/detailedActivityPointList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/disclaimer.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/documentHeader.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/emailActivation.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/emailNewActivationCode.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/following.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/footer.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/footerMenu.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/groupedUserList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/headInclude.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/header.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/ignoredUsers.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/imageViewer.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/integerOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/login.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/lostPassword.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/mail.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/mainMenu.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/mainMenuSubMenu.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/manageSubscription.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/membersList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormAttachments.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormMultilingualism.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormPreviewButton.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormSettings.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormSmilies.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageFormTabs.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageQuoteList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageSidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/messageUserOptionOutput.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationActivation.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationComment.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationQueueList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationReport.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/moderationReportDialog.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/multiSelectOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/multipleLanguageInputJavascript.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/newPassword.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/notificationList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/notificationListOustanding.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/notificationSettings.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/offline.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/permissionDenied.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/poll.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/pollResult.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/pollVote.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/quoteBBCodeTag.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/radioButtonOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/recaptcha.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/recentActivities.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/recentActivityList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/recentActivityListItem.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/redirect.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/register.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/registerActivation.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/registerNewActivationCode.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/rssFeed.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/search.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/searchArea.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/searchResult.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/searchResultList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/selectOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/settings.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/shareButtons.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/signatureEdit.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/sitemap.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/sitemapUserAccount.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/spoilerBBCodeTag.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/styleChooser.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/tagCloudBox.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/tagInput.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/tagged.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/team.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/textI18nOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/textOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/textareaI18nOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/textareaOptionType.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/user.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userException.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userInformation.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userInformationButtons.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userInformationHeadline.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userInformationStatistics.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userListItem.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userMenuSidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userNotice.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userOptionFieldList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userPanel.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userProfileAbout.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userProfileAboutEditable.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userProfileCommentList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userProfileOptionFieldList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userProfilePreview.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userSearch.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/userSidebar.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/usersOnlineList.tpl [new file with mode: 0644]
com.woltlab.wcf/templates/wysiwyg.tpl [new file with mode: 0644]

index 3d35fd6028926141745c3b9bcee990793d5901e4..351e6242690be115c01e692b95bf2df6c013aa4e 100644 (file)
@@ -19,7 +19,7 @@
                <instruction type="acpMenu">acpMenu.xml</instruction>
                <instruction type="userGroupOption">userGroupOption.xml</instruction>
                <instruction type="option">option.xml</instruction>
-               <instruction type="template">template.tar</instruction>
+               <instruction type="template">templates.tar</instruction>
                <instruction type="eventListener">eventListener.xml</instruction>
                <instruction type="script">acp/install.php</instruction>
                <instruction type="cronjob">cronjob.xml</instruction>
diff --git a/com.woltlab.wcf/template/__commentJavaScript.tpl b/com.woltlab.wcf/template/__commentJavaScript.tpl
deleted file mode 100644 (file)
index 275474a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Comment{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.comment.add': '{lang}wcf.comment.add{/lang}',
-                       'wcf.comment.button.response.add': '{lang}wcf.comment.button.response.add{/lang}',
-                       'wcf.comment.delete.confirmMessage': '{lang}wcf.comment.delete.confirmMessage{/lang}',
-                       'wcf.comment.description': '{lang}wcf.comment.description{/lang}',
-                       'wcf.comment.more': '{lang}wcf.comment.more{/lang}',
-                       'wcf.comment.response.add': '{lang}wcf.comment.response.add{/lang}',
-                       'wcf.comment.response.more': '{lang}wcf.comment.response.more{/lang}',
-                       'wcf.moderation.report.reportContent': '{lang}wcf.moderation.report.reportContent{/lang}',
-                       'wcf.moderation.report.success': '{lang}wcf.moderation.report.success{/lang}'
-               });
-               
-               new {if $commentHandlerClass|isset}{@$commentHandlerClass}{else}WCF.Comment.Handler{/if}('{$commentContainerID}', '{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}');
-               {if MODULE_LIKE && $__wcf->getSession()->getPermission('user.like.canViewLike')}
-                       new WCF.Comment.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
-                       new WCF.Comment.Response.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
-               {/if}
-               
-               new WCF.Moderation.Report.Content('com.woltlab.wcf.comment.comment', '.jsReportCommentComment');
-               new WCF.Moderation.Report.Content('com.woltlab.wcf.comment.response', '.jsReportCommentResponse');
-       });
-       //]]>
-</script>
-
-{event name='javascriptInclude'}
diff --git a/com.woltlab.wcf/template/__messageFormPoll.tpl b/com.woltlab.wcf/template/__messageFormPoll.tpl
deleted file mode 100644 (file)
index 1296197..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-{if $__showPoll|isset && $__showPoll}
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Poll{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.poll.button.addOption': '{lang}wcf.poll.button.addOption{/lang}',
-                               'wcf.poll.button.removeOption': '{lang}wcf.poll.button.removeOption{/lang}'
-                       });
-                       
-                       new WCF.Poll.Management('pollOptionContainer', [ {implode from=$pollOptions item=pollOption}{ optionID: {@$pollOption[optionID]}, optionValue: '{$pollOption[optionValue]}' }{/implode} ]);
-               });
-               //]]>
-       </script>
-       
-       <div id="poll" class="jsOnly tabMenuContent container containerPadding">
-               <fieldset>
-                       <dl{if $errorField == 'pollOptions'} class="formError"{/if}>
-                               <dt>
-                                       <label for="pollQuestion">{lang}wcf.poll.question{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="text" name="pollQuestion" id="pollQuestion" value="{$pollQuestion}" class="long" />
-                               </dd>
-                               <dt>
-                                       <label>{lang}wcf.poll.options{/lang}</label>
-                               </dt>
-                               <dd id="pollOptionContainer" class="sortableListContainer">
-                                       <ol class="sortableList"></ol>
-                                       {if $errorField == 'pollOptions'}
-                                               <small class="innerError">
-                                                       {lang}wcf.global.form.error.empty{/lang}
-                                               </small>
-                                       {/if}
-                                       <small>{lang}wcf.poll.options.description{/lang}</small>
-                               </dd>
-                       </dl>
-                       <dl>
-                               <dt{if $errorField == 'pollEndTime'} class="formError"{/if}>
-                                       <label for="pollEndTime">{lang}wcf.poll.endTime{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="datetime" name="pollEndTime" id="pollEndTime" value="{if $pollEndTime}{@$pollEndTime|date:'Y-m-d H:i'}{/if}" />
-                                       {if $errorField == 'pollEndTime'}
-                                               <small class="innerError">
-                                                       {lang}wcf.poll.endTime.error.{@$errorType}{/lang}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       <dl{if $errorField == 'pollMaxVotes'} class="formError"{/if}>
-                               <dt>
-                                       <label for="pollMaxVotes">{lang}wcf.poll.maxVotes{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="number" name="pollMaxVotes" id="pollMaxVotes" value="{@$pollMaxVotes}" min="1" class="tiny" />
-                                       {if $errorField == 'pollMaxVotes'}
-                                               <small class="innerError">
-                                                       {lang}wcf.poll.maxVotes.error.{@$errorType}{/lang}
-                                               </small>
-                                       {/if}
-                               </dd>
-                               <dd>
-                                       <label><input type="checkbox" name="pollIsChangeable" value="1"{if $pollIsChangeable} checked="checked"{/if} /> {lang}wcf.poll.isChangeable{/lang}</label>
-                               </dd>
-                               {if !$pollID}
-                                       <dd>
-                                               <label><input type="checkbox" name="pollIsPublic" value="1"{if $pollIsPublic} checked="checked"{/if} /> {lang}wcf.poll.isPublic{/lang}</label>
-                                       </dd>
-                               {/if}
-                               <dd>
-                                       <label><input type="checkbox" name="pollResultsRequireVote" value="1"{if $pollResultsRequireVote} checked="checked"{/if} /> {lang}wcf.poll.resultsRequireVote{/lang}</label>
-                                       <small>{lang}wcf.poll.resultsRequireVote.description{/lang}</small>
-                               </dd>
-                               <dd>
-                                       <label><input type="checkbox" name="pollSortByVotes" value="1"{if $pollSortByVotes} checked="checked"{/if} /> {lang}wcf.poll.sortByVotes{/lang}</label>
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-               </fieldset>
-       </div>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/__messageFormSmilies.tpl b/com.woltlab.wcf/template/__messageFormSmilies.tpl
deleted file mode 100644 (file)
index 913276e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<ul class="smileyList">
-       {foreach from=$smilies item=smiley}
-               <li><a title="{lang}{$smiley->smileyTitle}{/lang}" class="jsTooltip jsSmiley" data-smiley-code="{$smiley->smileyCode}"><img src="{$smiley->getURL()}" alt="{$smiley->smileyCode}" class="icon24" /></a></li>
-       {/foreach}
-</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/__messageQuoteManager.tpl b/com.woltlab.wcf/template/__messageQuoteManager.tpl
deleted file mode 100644 (file)
index 62059c5..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-WCF.Language.addObject({
-       'wcf.message.quote.insertAllQuotes': '{lang}wcf.message.quote.insertAllQuotes{/lang}',
-       'wcf.message.quote.insertSelectedQuotes': '{lang}wcf.message.quote.insertSelectedQuotes{/lang}',
-       'wcf.message.quote.manageQuotes': '{lang}wcf.message.quote.manageQuotes{/lang}',
-       'wcf.message.quote.quoteSelected': '{lang}wcf.message.quote.quoteSelected{/lang}',
-       'wcf.message.quote.removeAllQuotes': '{lang}wcf.message.quote.removeAllQuotes{/lang}',
-       'wcf.message.quote.removeSelectedQuotes': '{lang}wcf.message.quote.removeSelectedQuotes{/lang}',
-       'wcf.message.quote.showQuotes': '{lang}wcf.message.quote.showQuotes{/lang}'
-});
-
-{if !$wysiwygSelector|isset}{assign var=wysiwygSelector value=''}{/if}
-{if !$supportPaste|isset}{assign var=supportPaste value=false}{/if}
-var $quoteManager = new WCF.Message.Quote.Manager({@$__quoteCount}, '{$wysiwygSelector|encodeJS}', {if $supportPaste}true{else}false{/if}, [ {implode from=$__quoteRemove item=quoteID}'{$quoteID}'{/implode} ]);
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/__signatureMaxImageDimensions.tpl b/com.woltlab.wcf/template/__signatureMaxImageDimensions.tpl
deleted file mode 100644 (file)
index 387a719..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{if SIGNATURE_MAX_IMAGE_HEIGHT}
-       <style type="text/css">
-               .messageSignature img {
-                       max-height: {@SIGNATURE_MAX_IMAGE_HEIGHT}px;
-               }
-       </style>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/accountManagement.tpl b/com.woltlab.wcf/template/accountManagement.tpl
deleted file mode 100644 (file)
index 36ab61d..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.accountManagement{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.accountManagement{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<p class="warning">{lang}wcf.user.accountManagement.warning{/lang}</p>
-
-{if $success|isset && $success|count > 0}
-       <div class="success">
-               {foreach from=$success item=successMessage}
-                       <p>{lang}{@$successMessage}{/lang}</p>
-               {/foreach}
-       </div>
-{/if}
-
-{assign var=__authProvider value=$__wcf->getUserProfileHandler()->getAuthProvider()}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='AccountManagement'}{/link}">
-       <div class="container containerPadding marginTop">
-               {if !$__authProvider}
-                       <fieldset>
-                               <legend><label for="password">{lang}wcf.user.password{/lang}</label></legend>
-                               
-                               <dl{if $errorField == 'password'} class="formError"{/if}>
-                                       <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
-                                       <dd>
-                                               <input type="password" id="password" name="password" value="" required="required" class="medium" />
-                                               {if $errorField == 'password'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType == 'false'}{lang}wcf.user.password.error.false{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                               <small>{lang}wcf.user.accountManagement.password.description{/lang}</small>
-                                       </dd>
-                               </dl>
-                               
-                               <dl>
-                                       <dd>
-                                               <ul class="buttonList">
-                                                       <li><a class="button small" href="{link controller='LostPassword'}{/link}"><span>{lang}wcf.user.lostPassword{/lang}</span></a></li>
-                                               </ul>
-                                       </dd>
-                               </dl>
-                               
-                               {event name='passwordFields'}
-                       </fieldset>
-               {/if}
-               
-               {if $__wcf->getSession()->getPermission('user.profile.canRename')}
-                       <fieldset>
-                               <legend><label for="username">{lang}wcf.user.changeUsername{/lang}</label></legend>
-                                       
-                               <dl{if $errorField == 'username'} class="formError"{/if}>
-                                       <dt><label for="username">{lang}wcf.user.newUsername{/lang}</label></dt>
-                                       <dd>
-                                               <input type="text" id="username" name="username" value="{$username}" required="required" pattern="^[^,]{ldelim}{REGISTER_USERNAME_MIN_LENGTH},{REGISTER_USERNAME_MAX_LENGTH}}$" class="medium" />
-                                                       
-                                               {if $errorField == 'username'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType == 'notValid'}{lang}wcf.user.username.error.notValid{/lang}{/if}
-                                                               {if $errorType == 'notUnique'}{lang}wcf.user.username.error.notUnique{/lang}{/if}
-                                                               {if $errorType == 'alreadyRenamed'}{lang}wcf.user.username.error.alreadyRenamed{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                               {if $renamePeriod > 0}
-                                                       <small>{lang}wcf.user.changeUsername.description{/lang}</small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               {event name='changeUsernameFields'}
-                       </fieldset>
-               {/if}
-               
-               {if !$__authProvider}
-                       <fieldset>
-                               <legend><label for="newPassword">{lang}wcf.user.changePassword{/lang}</label></legend>
-                               
-                               <dl{if $errorField == 'newPassword'} class="formError"{/if}>
-                                       <dt><label for="newPassword">{lang}wcf.user.newPassword{/lang}</label></dt>
-                                       <dd>
-                                               <input type="password" id="newPassword" name="newPassword" value="{$newPassword}" class="medium" />
-                                                       
-                                               {if $errorField == 'newPassword'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType == 'notSecure'}{lang}wcf.user.password.error.notSecure{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               <dl{if $errorField == 'confirmNewPassword'} class="formError"{/if}>
-                                       <dt><label for="confirmNewPassword">{lang}wcf.user.confirmPassword{/lang}</label></dt>
-                                       <dd>
-                                               <input type="password" id="confirmNewPassword" name="confirmNewPassword" value="{$confirmNewPassword}" class="medium" />
-                                                       
-                                               {if $errorField == 'confirmNewPassword'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType == 'notEqual'}{lang}wcf.user.confirmPassword.error.notEqual{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               {event name='changePasswordFields'}
-                       </fieldset>
-               {/if}
-               
-               {if $__wcf->getSession()->getPermission('user.profile.canChangeEmail')}
-                       <fieldset>
-                               <legend><label for="email">{lang}wcf.user.changeEmail{/lang}</label></legend>
-                               
-                               <dl{if $errorField == 'email'} class="formError"{/if}>
-                                       <dt><label for="email">{lang}wcf.user.newEmail{/lang}</label></dt>
-                                       <dd>
-                                               <input type="email" id="email" name="email" value="{$email}" class="medium" />
-                                                       
-                                               {if $errorField == 'email'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType == 'notValid'}{lang}wcf.user.email.error.notValid{/lang}{/if}
-                                                               {if $errorType == 'notUnique'}{lang}wcf.user.email.error.notUnique{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               <dl{if $errorField == 'confirmEmail'} class="formError"{/if}>
-                                       <dt><label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label></dt>
-                                       <dd>
-                                               <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" class="medium" />
-                                                       
-                                               {if $errorField == 'confirmEmail'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'notEqual'}{lang}wcf.user.confirmEmail.error.notEqual{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               {event name='changeEmailFields'}
-                               
-                               {if REGISTER_ACTIVATION_METHOD == 1 && $__wcf->getUser()->reactivationCode != 0}
-                                       <dl>
-                                               <dd>
-                                                       <ul class="buttonList">
-                                                               <li><a class="button small" href="{link controller='EmailActivation'}{/link}"><span>{lang}wcf.user.emailActivation{/lang}</span></a></li>
-                                                       </ul>
-                                               </dd>
-                                       </dl>
-                               {/if}
-                       </fieldset>
-               {/if}
-               
-               {if $__wcf->getSession()->getPermission('user.profile.canQuit')}
-                       <fieldset>
-                               <legend>{lang}wcf.user.quit{/lang}</legend>
-                               
-                               {if $quitStarted}
-                                       <dl>
-                                               <dd>
-                                                       <label><input type="checkbox" name="cancelQuit" value="1" {if $cancelQuit == 1}checked="checked" {/if}/> {lang}wcf.user.quit.cancel{/lang}</label>
-                                               </dd>
-                                       </dl>
-                               {else}
-                                       <dl>
-                                               <dd>
-                                                       <label><input type="checkbox" name="quit" value="1" {if $quit == 1}checked="checked" {/if}/> {lang}wcf.user.quit.sure{/lang}</label>
-                                                       <small>{lang}wcf.user.quit.description{/lang}</small>
-                                               </dd>
-                                       </dl>
-                               {/if}
-                               
-                               {event name='quitFields'}
-                       </fieldset>
-               {/if}
-               
-               {hascontent}
-                       <fieldset id="3rdParty">
-                               <legend>{lang}wcf.user.3rdparty{/lang}</legend>
-                               
-                               {content}
-                                       {if $__authProvider}
-                                               <dl>
-                                                       <dt>{lang}wcf.user.3rdparty.{@$__authProvider}{/lang}</dt>
-                                                       <dd>
-                                                               <label><input type="checkbox" name="{@$__authProvider}Disconnect" value="1" /> {lang}wcf.user.3rdparty.{@$__authProvider}.disconnect{/lang}</label>
-                                                       </dd>
-                                               </dl>
-                                       {else}
-                                               {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
-                                                       <dl>
-                                                               <dt>{lang}wcf.user.3rdparty.github{/lang}</dt>
-                                                               <dd>
-                                                                       {if $__wcf->getSession()->getVar('__githubToken')}
-                                                                               <label><input type="checkbox" name="githubConnect" value="1"{if $githubConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.github.connect{/lang}</label>
-                                                                       {else}
-                                                                               <a href="{link controller='GithubAuth'}{/link}" class="button small"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.connect{/lang}</span></a>
-                                                                       {/if}
-                                                               </dd>
-                                                       </dl>
-                                               {/if}
-                                               
-                                               {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}
-                                                       <dl>
-                                                               <dt>{lang}wcf.user.3rdparty.twitter{/lang}</dt>
-                                                               <dd>
-                                                                       {if $__wcf->getSession()->getVar('__twitterData')}
-                                                                               <label><input type="checkbox" name="twitterConnect" value="1"{if $twitterConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.twitter.connect{/lang}</label>
-                                                                       {else}
-                                                                               <a href="{link controller='TwitterAuth'}{/link}" class="button small"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.connect{/lang}</span></a>
-                                                                       {/if}
-                                                               </dd>
-                                                       </dl>
-                                               {/if}
-                                               
-                                               {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}
-                                                       <dl>
-                                                               <dt>{lang}wcf.user.3rdparty.facebook{/lang}</dt>
-                                                               <dd>
-                                                                       {if $__wcf->getSession()->getVar('__facebookData')}
-                                                                               <label><input type="checkbox" name="facebookConnect" value="1"{if $facebookConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.facebook.connect{/lang}</label>
-                                                                       {else}
-                                                                               <a href="{link controller='FacebookAuth'}{/link}" class="button small"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.connect{/lang}</span></a>
-                                                                       {/if}
-                                                               </dd>
-                                                       </dl>
-                                               {/if}
-                                               
-                                               {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}
-                                                       <dl>
-                                                               <dt>{lang}wcf.user.3rdparty.google{/lang}</dt>
-                                                               <dd>
-                                                                       {if $__wcf->getSession()->getVar('__googleData')}
-                                                                               <label><input type="checkbox" name="googleConnect" value="1"{if $googleConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.google.connect{/lang}</label>
-                                                                       {else}
-                                                                               <a href="{link controller='GoogleAuth'}{/link}" class="button small"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.connect{/lang}</span></a>
-                                                                       {/if}
-                                                               </dd>
-                                                       </dl>
-                                               {/if}
-                                       {/if}
-                                       
-                                       {event name='3rdpartyFields'}
-                               {/content}
-                       </fieldset>
-               {/hascontent}
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               {@SECURITY_TOKEN_INPUT_TAG}
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/aclPermissionJavaScript.tpl b/com.woltlab.wcf/template/aclPermissionJavaScript.tpl
deleted file mode 100644 (file)
index 897fd83..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               {if $aclValues[$objectTypeID]|isset}
-                       var initialPermissions = { 
-                               returnValues: {
-                                       options: {
-                                               {implode from=$aclValues[$objectTypeID][options] key='__optionID' item='__optionData'}
-                                                       {@$__optionID}: {
-                                                               categoryName: '{@$__optionData[categoryName]|encodeJS}',
-                                                               label: '{@$__optionData[label]|encodeJS}',
-                                                               optionName: '{@$__optionData[optionName]|encodeJS}'
-                                                       }
-                                               {/implode}
-                                       },
-                                       categories: {
-                                               {implode from=$aclValues[$objectTypeID][categories] key='__category' item='__categoryName'}
-                                                       '{@$__category|encodeJS}': '{@$__categoryName|encodeJS}'
-                                               {/implode}
-                                       },
-                                       user: {
-                                               {if $aclValues[$objectTypeID][user]|isset}
-                                                       option: {
-                                                               {implode from=$aclValues[$objectTypeID][user][option] key='__userID' item='__optionData'}
-                                                                       {@$__userID}: {
-                                                                               {implode from=$__optionData key='__optionID' item='__optionValue'}
-                                                                                       {@$__optionID}: {@$__optionValue}
-                                                                               {/implode}
-                                                                       }
-                                                               {/implode}
-                                                       },
-                                                       label: {
-                                                               {implode from=$aclValues[$objectTypeID][user][label] key='__userID' item='__label'}
-                                                                       {@$__userID}: '{@$__label|encodeJS}'
-                                                               {/implode}
-                                                       }
-                                               {/if}
-                                       },
-                                       group: {
-                                               {if $aclValues[$objectTypeID][group]|isset}
-                                                       option: {
-                                                               {implode from=$aclValues[$objectTypeID][group][option] key='__groupID' item='__optionData'}
-                                                                       {@$__groupID}: {
-                                                                               {implode from=$__optionData key='__optionID' item='__optionValue'}
-                                                                                       {@$__optionID}: {@$__optionValue}
-                                                                               {/implode}
-                                                                       }
-                                                               {/implode}
-                                                       },
-                                                       label: {
-                                                               {implode from=$aclValues[$objectTypeID][group][label] key='__groupID' item='__label'}
-                                                                       {@$__groupID}: '{@$__label|encodeJS}'
-                                                               {/implode}
-                                                       }
-                                               {/if}
-                                       }
-                               }
-                       };
-               {/if}
-               new {if $aclListClassName|isset}{@$aclListClassName}{else}WCF.ACL.List{/if}($('#{@$containerID}'), {@$objectTypeID}, {if $categoryName|isset}'{@$categoryName}'{else}null{/if}, {if $objectID|isset}{@$objectID}{else}0{/if}, {if !$includeUserGroups|isset || $includeUserGroups}true{else}false{/if}{if $aclValues[$objectTypeID]|isset}, initialPermissions{/if});
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/aclPermissions.tpl b/com.woltlab.wcf/template/aclPermissions.tpl
deleted file mode 100644 (file)
index 0175021..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.ACL{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.acl.option.deny': '{lang}wcf.acl.option.deny{/lang}',
-                       'wcf.acl.option.fullAccess': '{lang}wcf.acl.option.fullAccess{/lang}',
-                       'wcf.acl.option.grant': '{lang}wcf.acl.option.grant{/lang}',
-                       'wcf.acl.search.user.description': '{lang}wcf.acl.search.user.description{/lang}',
-                       'wcf.acl.search.description': '{lang}wcf.acl.search.description{/lang}'
-               });
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/attachments.tpl b/com.woltlab.wcf/template/attachments.tpl
deleted file mode 100644 (file)
index 7ab676e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-{if $attachmentList && $attachmentList->getGroupedObjects($objectID)|count}
-       {hascontent}
-               <div class="attachmentThumbnailList">
-                       <fieldset>
-                               <legend>{lang}wcf.attachment.images{/lang}</legend>
-                               
-                               <ul>
-                                       {content}
-                                               {foreach from=$attachmentList->getGroupedObjects($objectID) item=attachment}
-                                                       {if $attachment->showAsImage() && !$attachment->isEmbedded()}
-                                                               <li class="attachmentThumbnail">
-                                                                       {if $attachment->hasThumbnail()}
-                                                                               <a href="{link controller='Attachment' object=$attachment}{/link}"{if $attachment->canDownload()} class="jsImageViewer" title="{$attachment->filename}"{/if}><img src="{link controller='Attachment' object=$attachment}thumbnail=1{/link}" alt="" /></a>
-                                                                       {else}
-                                                                               <img src="{link controller='Attachment' object=$attachment}{/link}" alt="" style="margin-top: {@ATTACHMENT_THUMBNAIL_HEIGHT/2-$attachment->height/2}px; margin-left: {@ATTACHMENT_THUMBNAIL_WIDTH/2-$attachment->width/2}px" />
-                                                                       {/if}
-                                                                       
-                                                                       <div title="{lang}wcf.attachment.image.info{/lang}">
-                                                                               <p>{$attachment->filename}</p>
-                                                                               <small>{lang}wcf.attachment.image.info{/lang}</small>
-                                                                       </div>
-                                                               </li>
-                                                       {/if}
-                                               {/foreach}
-                                       {/content}
-                               </ul>
-                       </fieldset>
-               </div>
-       {/hascontent}
-               
-       {hascontent}
-               <div class="attachmentFileList">
-                       <fieldset>
-                               <legend>{lang}wcf.attachment.files{/lang}</legend>
-                               
-                               <ul>
-                                       {content}
-                                               {foreach from=$attachmentList->getGroupedObjects($objectID) item=attachment}
-                                                       {if $attachment->showAsFile() && !$attachment->isEmbedded()}
-                                                               <li class="box32">
-                                                                       <a href="{link controller='Attachment' object=$attachment}{/link}"><span class="icon icon32 icon-paper-clip"></span></a>
-                                                                       
-                                                                       <div>
-                                                                               <p><a href="{link controller='Attachment' object=$attachment}{/link}">{$attachment->filename}</a></p>
-                                                                               <small>{lang}wcf.attachment.file.info{/lang}</small>
-                                                                       </div>
-                                                               </li>
-                                                       {/if}
-                                               {/foreach}
-                                       {/content}
-                               </ul>
-                       </fieldset>
-               </div>
-       {/hascontent}
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/authorSidebarBox.tpl b/com.woltlab.wcf/template/authorSidebarBox.tpl
deleted file mode 100644 (file)
index 7dda73d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<fieldset>
-       <legend class="invisible">{lang}wcf.user.author{/lang}</legend>
-       
-       <div class="box96 framed">
-               {@$userProfile->getAvatar()->getImageTag(96)}
-               
-               <div>
-                       <div class="containerHeadline">
-                               <h3><a href="{link controller='User' object=$userProfile}{/link}" rel="author">{$userProfile->username}</a></h3>
-                               {if MODULE_USER_RANK && $userProfile->getUserTitle()}<p><span class="badge userTitleBadge{if $userProfile->getRank() && $userProfile->getRank()->cssClassName} {@$userProfile->getRank()->cssClassName}{/if}">{$userProfile->getUserTitle()}</span></p>{/if}
-                       </div>
-                       
-                       {include file='userInformationStatistics' user=$userProfile}
-               </div>
-       </div>
-</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/avatarCropDialog.tpl b/com.woltlab.wcf/template/avatarCropDialog.tpl
deleted file mode 100644 (file)
index 8dca628..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<dl class="wide">
-       <dt>{lang}wcf.user.avatar.type.custom.crop{/lang}</dt>
-       <dd>
-               <div id="userAvatarCropSelection">
-                       {@$avatar->getImageTag()}
-                       <div id="userAvatarCropOverlay"></div>
-                       <div id="userAvatarCropOverlaySelection"></div>
-               </div>
-               
-               <small>{lang}wcf.user.avatar.type.custom.crop.description{/lang}</small>
-       </dd>
-</dl>
-
-<div class="formSubmit">
-       <button data-type="save" class="buttonPrimary">{lang}wcf.global.button.save{/lang}</button>
-</div>
diff --git a/com.woltlab.wcf/template/avatarEdit.tpl b/com.woltlab.wcf/template/avatarEdit.tpl
deleted file mode 100644 (file)
index 694f626..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.avatar.edit{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.avatar.edit{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $__wcf->user->disableAvatar}
-       <p class="error">{lang}wcf.user.avatar.error.disabled{/lang}</p>
-{/if}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-{if $success|isset}
-       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='AvatarEdit'}{/link}" id="avatarForm">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.avatar{/lang}</legend>
-                               
-                       <dl>
-                               <dd>
-                                       <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
-                                       <small>{lang}wcf.user.avatar.type.none.description{/lang}</small>
-                               </dd>
-                       </dl>
-                       
-                       <dl class="jsOnly{if $errorField == 'custom'} formError{/if}" id="avatarUpload">
-                               <dt class="framed">
-                                       {if $avatarType == 'custom'}
-                                               {assign var='__customAvatar' value=$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
-                                               {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
-                                                       {assign var='__customAvatar' value=$__customAvatar|substr:0:-2}
-                                                       {assign var='__customAvatarTitle' value='wcf.user.avatar.type.custom.crop'|language}
-                                                       {append var='__customAvatar' value='class="userAvatarCrop jsTooltip" title="'|concat:$__customAvatarTitle:'" />'}
-                                               {/if}
-                                               {@$__customAvatar}
-                                       {else}
-                                               <img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon96" />
-                                       {/if}
-                               </dt>
-                               <dd>
-                                       <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
-                                       <small>{lang}wcf.user.avatar.type.custom.description{/lang}</small>
-                                       
-                                       {* placeholder for upload button: *}
-                                       <div></div>
-                                       
-                                       {if $errorField == 'custom'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {if MODULE_GRAVATAR}
-                               <dl{if $errorField == 'gravatar'} class="formError"{/if}>
-                                       <dt class="framed"><img src="http://www.gravatar.com/avatar/{@$__wcf->user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt>
-                                       <dd>
-                                               <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
-                                               {if $errorField == 'gravatar'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                               <small>{lang}wcf.user.avatar.type.gravatar.description{/lang}</small>
-                                       </dd>
-                               </dl>
-                       {/if}
-                       
-                       {event name='avatarFields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-       
-       {if !$__wcf->user->disableAvatar}
-               <div class="formSubmit">
-                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-               </div>
-       {/if}
-</form>
-
-{include file='footer'}
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.user.avatar.type.custom.crop': '{lang}wcf.user.avatar.type.custom.crop{/lang}',
-                       'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
-                       'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
-                       'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
-                       'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
-                       'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
-                       'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}',
-                       'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}'
-               });
-               
-               {if !$__wcf->user->disableAvatar}
-                       {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
-                               new WCF.User.Avatar.Upload(0, new WCF.User.Avatar.Crop({@$__wcf->getUserProfileHandler()->getAvatar()->avatarID}));
-                       {else}
-                               new WCF.User.Avatar.Upload();
-                       {/if}
-               {/if}
-       });
-       //]]>
-</script>
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/benchmark.tpl b/com.woltlab.wcf/template/benchmark.tpl
deleted file mode 100644 (file)
index a118ec3..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<p class="marginTop" id="benchmark"><small>Execution time: {@$__wcf->getBenchmark()->getExecutionTime()}s ({#($__wcf->getBenchmark()->getExecutionTime()-$__wcf->getBenchmark()->getQueryExecutionTime())/$__wcf->getBenchmark()->getExecutionTime()*100}% PHP, {#$__wcf->getBenchmark()->getQueryExecutionTime()/$__wcf->getBenchmark()->getExecutionTime()*100}% SQL) | SQL queries: {#$__wcf->getBenchmark()->getQueryCount()} | Memory-Usage: {$__wcf->getBenchmark()->getMemoryUsage()}</small></p>
-
-{if ENABLE_DEBUG_MODE} 
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       $('#benchmarkDetails > li > span').click(function() {
-                               $(this).parent().children('pre').toggle();
-                       });
-               });
-               //]]>
-       </script>
-       <ul id="benchmarkDetails" style="display: none;">
-               {foreach from=$__wcf->getBenchmark()->getItems() key=benchmarkIndex item=item}
-                       <li id="benchmarkItem{@$benchmarkIndex}" style="margin-bottom: 8px;"{if $item.use >= 0.01} class="hot"{/if}>
-                               <span>{if $item.type == 1}(SQL Query) {/if}{$item.text}</span><br />
-                               <small style="font-size: .85em">Execution time: {@$item.use}s</small>
-                               
-                               <pre style="display: none">{foreach from=$item.trace key=traceNo item=traceItem}#{#$traceNo} {if !$traceItem.class|empty}{$traceItem.class}{$traceItem.type}{else}{if !$traceItem.file|empty}{$traceItem.file}: {/if}{/if}{$traceItem.function}() {if !$traceItem.line|empty}(line {#$traceItem.line}){/if} 
-{/foreach}</pre>
-                               
-                       </li>
-               {/foreach}
-       </ul>
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       $('#benchmark').click(function() {
-                               $('#benchmarkDetails').wcfDialog({
-                                       title: 'Log'
-                               });
-                       });
-               });
-               //]]>
-       </script>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/birthdaySearchableOptionType.tpl b/com.woltlab.wcf/template/birthdaySearchableOptionType.tpl
deleted file mode 100644 (file)
index 29760df..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<input type="number" id="{$option->optionName}" name="values[{$option->optionName}][ageFrom]" value="{@$valueAgeFrom}" placeholder="{lang}wcf.user.birthday.age.from{/lang}" min="0" max="120" class="tiny" />
-<input type="number" id="{$option->optionName}_age_to" name="values[{$option->optionName}][ageTo]" value="{@$valueAgeTo}" placeholder="{lang}wcf.user.birthday.age.to{/lang}" min="0" max="120" class="tiny" />
-
-<script type="text/javascript">
-//<![CDATA[
-$(function() {
-       $('#{$option->optionName}').parents('dl:eq(0)').find('> dt > label').text('{lang}wcf.user.birthday.age{/lang}');
-});
-//]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/booleanOptionType.tpl b/com.woltlab.wcf/template/booleanOptionType.tpl
deleted file mode 100644 (file)
index 532f54a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<input type="checkbox" id="{$option->optionName}" {if $value} checked="checked"{/if} name="values[{$option->optionName}]" value="1" {if $disableOptions || $enableOptions}class="jsEnablesOptions" data-disable-options="[ {@$disableOptions}]" data-enable-options="[ {@$enableOptions}]" {/if} />
diff --git a/com.woltlab.wcf/template/breadcrumbs.tpl b/com.woltlab.wcf/template/breadcrumbs.tpl
deleted file mode 100644 (file)
index 7dedaf8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-{if !$__microdata|isset}{assign var=__microdata value=true}{/if}
-{hascontent}
-       <nav class="breadcrumbs marginTop">
-               <ul>
-                       {content}
-                               {foreach from=$__wcf->getBreadcrumbs() item=$breadcrumb}
-                                       <li title="{$breadcrumb->getLabel()}"{if $__microdata} itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"{/if}>
-                                               <a href="{$breadcrumb->getURL()}"{if $__microdata} itemprop="url"{/if}><span{if $__microdata} itemprop="title"{/if}>{$breadcrumb->getLabel()}</span></a> <span class="pointer"><span>&raquo;</span></span>
-                                       </li>
-                               {/foreach}
-                               
-                               {event name='breadcrumbs'}
-                       {/content}
-               </ul>
-       </nav>
-{/hascontent}
diff --git a/com.woltlab.wcf/template/categoryOptionList.tpl b/com.woltlab.wcf/template/categoryOptionList.tpl
deleted file mode 100644 (file)
index f362f14..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-{foreach from=$categoryNodeList item='category'}
-       {if !$maximumNestingLevel|isset || $maximumNestingLevel == -1 || $categoryNodeList->getDepth() <= $maximumNestingLevel}
-               <option value="{$category->categoryID}"{if $categoryID|isset && $categoryID == $category->categoryID} selected="selected"{/if}>{section name=i loop=$categoryNodeList->getDepth()}&nbsp;&nbsp;&nbsp;&nbsp;{/section}{$category->getTitle()}</option>
-       {/if}
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/codeBBCodeTag.tpl b/com.woltlab.wcf/template/codeBBCodeTag.tpl
deleted file mode 100644 (file)
index d2f6f25..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<div class="container codeBox {$highlighter|get_class|substr:30|lcfirst}">
-       <div>
-               <div>
-                       <h3>{@$highlighter->getTitle()}{if $filename}: {@$filename}{/if}</h3>
-               </div>
-               
-               <ol start="{$startLineNumber}">
-                       {assign var='lineNumber' value=$startLineNumber}
-                       {foreach from=$content item=line}
-                               {if $lineNumbers[$lineNumber]|isset}
-                                       <li id="{@$lineNumbers[$lineNumber]}"><a href="{@$__wcf->getAnchor($lineNumbers[$lineNumber])}" class="lineAnchor"></a>{@$line}</li>
-                               {else}
-                                       <li>{@$line}</li>
-                               {/if}
-                               
-                               {assign var='lineNumber' value=$lineNumber+1}
-                       {/foreach}
-               </ol>
-       </div>
-</div>
diff --git a/com.woltlab.wcf/template/commentList.tpl b/com.woltlab.wcf/template/commentList.tpl
deleted file mode 100644 (file)
index 38814db..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-{foreach from=$commentList item=comment}
-       <li class="comment jsComment" data-comment-id="{@$comment->commentID}" data-object-type="com.woltlab.wcf.comment" data-like-liked="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->liked}{/if}" data-like-likes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[comment][$comment->commentID]|isset}{ {implode from=$likeData[comment][$comment->commentID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $comment->isEditable()}true{else}false{/if}" data-can-delete="{if $comment->isDeletable()}true{else}false{/if}" data-responses="{@$comment->responses}" data-last-response-time="{@$comment->getLastResponseTime()}" data-user-id="{@$comment->userID}">
-               <div class="box32">
-                       {if $comment->userID}
-                               <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" title="{$comment->getUserProfile()->username}" class="framed">
-                                       {@$comment->getUserProfile()->getAvatar()->getImageTag(32)}
-                               </a>
-                       {else}
-                               <span class="framed">{@$comment->getUserProfile()->getAvatar()->getImageTag(32)}</span>
-                       {/if}
-                       
-                       <div>
-                               <div class="commentContent">
-                                       <div class="containerHeadline">
-                                               <h3>
-                                                       {if $comment->userID}
-                                                               <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" class="userLink" data-user-id="{@$comment->userID}">{$comment->username}</a>
-                                                       {else}
-                                                               {$comment->username}
-                                                       {/if}
-                                                       
-                                                       <small> - {@$comment->time|time}</small>
-                                               </h3>
-                                       </div>
-                                       
-                                       <p class="userMessage">{@$comment->getFormattedMessage()}</p>
-                                       
-                                       <nav class="jsMobileNavigation buttonGroupNavigation">
-                                               <ul class="commentOptions">
-                                                       <li class="jsReportCommentComment jsOnly" data-object-id="{@$comment->commentID}"><a title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 icon-warning-sign"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
-                                                       
-                                                       {event name='commentOptions'}
-                                               </ul>
-                                       </nav>
-                               </div>
-                               
-                               <ul data-responses="{@$comment->responses}" class="commentResponseList">
-                                       {if $comment|count}
-                                               {include file='commentResponseList' responseList=$comment}
-                                       {/if}
-                               </ul>
-                       </div>
-               </div>
-       </li>
-{/foreach}
diff --git a/com.woltlab.wcf/template/commentResponseList.tpl b/com.woltlab.wcf/template/commentResponseList.tpl
deleted file mode 100644 (file)
index 458140a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-{foreach from=$responseList item=response}
-       <li class="commentResponse jsCommentResponse" data-response-id="{@$response->responseID}" data-object-type="com.woltlab.wcf.comment.response" data-like-liked="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->liked}{/if}" data-like-likes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[response][$response->responseID]|isset}{ {implode from=$likeData[response][$response->responseID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $response->isEditable()}true{else}false{/if}" data-can-delete="{if $response->isDeletable()}true{else}false{/if}" data-user-id="{@$response->userID}">
-               <div class="box32">
-                       {if $response->userID}
-                               <a href="{link controller='User' object=$response->getUserProfile()}{/link}" title="{$response->getUserProfile()->username}" class="framed">
-                                       {@$response->getUserProfile()->getAvatar()->getImageTag(32)}
-                               </a>
-                       {else}
-                               <span class="framed">{@$response->getUserProfile()->getAvatar()->getImageTag(32)}</span>
-                       {/if}
-                       
-                       <div class="commentContent commentResponseContent">
-                               <div class="containerHeadline">
-                                       <h3>
-                                               {if $response->userID}
-                                                       <a href="{link controller='User' object=$response->getUserProfile()}{/link}" class="userLink" data-user-id="{@$response->userID}">{$response->username}</a>
-                                               {else}
-                                                       {$response->username}
-                                               {/if}
-                                               
-                                               <small> - {@$response->time|time}</small>
-                                       </h3>
-                               </div>
-                               
-                               <p class="userMessage">{@$response->getFormattedMessage()}</p>
-                               
-                               <nav class="jsMobileNavigation buttonGroupNavigation">
-                                       <ul class="commentOptions">
-                                               <li class="jsReportCommentResponse jsOnly" data-object-id="{@$response->responseID}"><a title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 icon-warning-sign"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
-                                               
-                                               {event name='commentOptions'}
-                                       </ul>
-                               </nav>
-                       </div>
-               </div>
-       </li>
-{/foreach}
diff --git a/com.woltlab.wcf/template/dashboard.tpl b/com.woltlab.wcf/template/dashboard.tpl
deleted file mode 100644 (file)
index 4bef0a4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{if $__wcf->getPageMenu()->getLandingPage()->menuItem != 'wcf.user.dashboard'}{lang}wcf.user.dashboard{/lang} - {/if}{PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <link rel="canonical" href="{link controller='Dashboard'}{/link}" />
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{if $__boxSidebar|isset && $__boxSidebar}
-       {capture assign='sidebar'}
-               {@$__boxSidebar}
-       {/capture}
-{/if}
-
-{include file='header' sidebarOrientation='right'}
-
-{if $__wcf->getPageMenu()->getLandingPage()->menuItem == 'wcf.user.dashboard'}
-       <header class="boxHeadline">
-               <h1>{PAGE_TITLE|language}</h1>
-               {hascontent}<p>{content}{PAGE_DESCRIPTION|language}{/content}</p>{/hascontent}
-       </header>
-{else}
-       <header class="boxHeadline">
-               <h1>{lang}wcf.user.dashboard{/lang}</h1>
-       </header>
-{/if}
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<section id="dashboard">
-       {if $__boxContent|isset}{@$__boxContent}{/if}
-</section>
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/dashboardBoxContent.tpl b/com.woltlab.wcf/template/dashboardBoxContent.tpl
deleted file mode 100644 (file)
index 7cc1bb2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="dashboardBox">
-       {@$template}
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxMostActiveMembers.tpl b/com.woltlab.wcf/template/dashboardBoxMostActiveMembers.tpl
deleted file mode 100644 (file)
index d0d5c45..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<ul class="sidebarBoxList">
-       {foreach from=$mostActiveMembers item=activeMember}
-               <li class="box24">
-                       <a href="{link controller='User' object=$activeMember}{/link}" class="framed">{@$activeMember->getAvatar()->getImageTag(24)}</a>
-                       
-                       <div class="sidebarBoxHeadline">
-                               <h3><a href="{link controller='User' object=$activeMember}{/link}" class="userLink" data-user-id="{@$activeMember->userID}">{$activeMember->username}</a></h3>
-                               <small>{lang}wcf.dashboard.box.mostActiveMembers.points{/lang}</small>
-                       </div>
-               </li>
-       {/foreach}
-</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxMostLikedMembers.tpl b/com.woltlab.wcf/template/dashboardBoxMostLikedMembers.tpl
deleted file mode 100644 (file)
index 20b55ba..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<ul class="sidebarBoxList">
-       {foreach from=$mostLikedMembers item=likedMember}
-               <li class="box24">
-                       <a href="{link controller='User' object=$likedMember}{/link}" class="framed">{@$likedMember->getAvatar()->getImageTag(24)}</a>
-                       
-                       <div class="sidebarBoxHeadline">
-                               <h3><a href="{link controller='User' object=$likedMember}{/link}" class="userLink" data-user-id="{@$likedMember->userID}">{$likedMember->username}</a></h3>
-                               <small>{lang}wcf.dashboard.box.mostLikedMembers.likes{/lang}</small>
-                       </div>
-               </li>
-       {/foreach}
-</ul>
diff --git a/com.woltlab.wcf/template/dashboardBoxNewestMembers.tpl b/com.woltlab.wcf/template/dashboardBoxNewestMembers.tpl
deleted file mode 100644 (file)
index b9f6cea..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<ul class="sidebarBoxList">
-       {foreach from=$newestMembers item=newMember}
-               <li class="box24">
-                       <a href="{link controller='User' object=$newMember}{/link}" class="framed">{@$newMember->getAvatar()->getImageTag(24)}</a>
-                       
-                       <div class="sidebarBoxHeadline">
-                               <h3><a href="{link controller='User' object=$newMember}{/link}" class="userLink" data-user-id="{@$newMember->userID}">{$newMember->username}</a></h3>
-                               <small>{@$newMember->registrationDate|time}</small>
-                       </div>
-               </li>
-       {/foreach}
-</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxRecentActivity.tpl b/com.woltlab.wcf/template/dashboardBoxRecentActivity.tpl
deleted file mode 100644 (file)
index fa9d923..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<header class="boxHeadline boxSubHeadline">
-       <h2>{lang}wcf.user.recentActivity{/lang}</h2>
-       {if $filteredByFollowedUsers}<p>{lang}wcf.user.recentActivity.filteredByFollowedUsers{/lang}</p>{/if}
-</header>
-
-<div class="container marginTop">
-       <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
-               {include file='recentActivityListItem'}
-       </ul>
-</div>
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
-                       'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
-               });
-               
-               new WCF.User.RecentActivityLoader(null, {if $filteredByFollowedUsers}true{else}false{/if});
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxRecentActivitySidebar.tpl b/com.woltlab.wcf/template/dashboardBoxRecentActivitySidebar.tpl
deleted file mode 100644 (file)
index 85bec82..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<ul class="sidebarBoxList">
-       {foreach from=$eventList item=event}
-               <li class="box24">
-                       <a href="{link controller='User' object=$event->getUserProfile()}{/link}" title="{$event->getUserProfile()->username}" class="framed">{@$event->getUserProfile()->getAvatar()->getImageTag(24)}</a>
-                       
-                       <div class="sidebarBoxHeadline">
-                               <h3><a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3> 
-                               <small>{@$event->getTitle()}</small>
-                       </div>
-               </li>
-       {/foreach}
-</ul>
diff --git a/com.woltlab.wcf/template/dashboardBoxRegisterButton.tpl b/com.woltlab.wcf/template/dashboardBoxRegisterButton.tpl
deleted file mode 100644 (file)
index 3e1e54a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<fieldset class="dashboardBox dashboardBoxRegisterButton">
-       <div>
-               <a href="{link controller='Register'}{/link}" class="button">{lang}wcf.user.button.registerNow{/lang}</a>
-       </div>
-</fieldset>
diff --git a/com.woltlab.wcf/template/dashboardBoxSidebar.tpl b/com.woltlab.wcf/template/dashboardBoxSidebar.tpl
deleted file mode 100644 (file)
index f219f08..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<fieldset class="dashboardBox">
-       <legend>{lang}wcf.dashboard.box.{$box->boxName}{/lang}</legend>
-       
-       <div>
-               {@$template}
-       </div>
-</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxSignedInAs.tpl b/com.woltlab.wcf/template/dashboardBoxSignedInAs.tpl
deleted file mode 100644 (file)
index a6052a5..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<fieldset class="dashboardBox dashboardBoxSignedInAs">
-       <legend class="invisible">{lang}wcf.dashboard.box.{$box->boxName}{/lang}</legend>
-       
-       <div class="box96 framed">
-               {@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
-               
-               <div>
-                       <div class="containerHeadline">
-                               <h3><a href="{link controller='User' object=$__wcf->user}{/link}">{$__wcf->user->username}</a></h3>
-                               {if MODULE_USER_RANK && $__wcf->getUserProfileHandler()->getUserTitle()}<p><span class="badge userTitleBadge{if $__wcf->getUserProfileHandler()->getRank() && $__wcf->getUserProfileHandler()->getRank()->cssClassName} {@$__wcf->getUserProfileHandler()->getRank()->cssClassName}{/if}">{$__wcf->getUserProfileHandler()->getUserTitle()}</span></p>{/if}
-                       </div>
-                       
-                       {include file='userInformationStatistics' user=$__wcf->user}
-               </div>
-       </div>
-</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/dashboardBoxStatsSidebar.tpl b/com.woltlab.wcf/template/dashboardBoxStatsSidebar.tpl
deleted file mode 100644 (file)
index a6809a5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<dl class="plain inlineDataList">
-       <dt>{lang}wcf.user.members{/lang}</dt>
-       <dd>{#$dashboardStats[members]}</dd>
-       
-       {event name='stats'}
-       
-       <dt>{lang}wcf.user.newestMember{/lang}</dt>
-       <dd><a href="{link controller='User' object=$dashboardStats[newestMember]}{/link}" class="userLink" data-user-id="{$dashboardStats[newestMember]->userID}">{$dashboardStats[newestMember]}</a></dd>
-</dl>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/detailedActivityPointList.tpl b/com.woltlab.wcf/template/detailedActivityPointList.tpl
deleted file mode 100644 (file)
index 7ac15a9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<div id="userActivityPointListContainer" class="tabularBox marginTop">
-       <table class="table">
-               <thead>
-                       <tr>
-                               <th>{lang}wcf.user.activityPoint.objectType{/lang}</th>
-                               <th>{lang}wcf.user.activityPoint.objects{/lang}</th>
-                               <th>{lang}wcf.user.activityPoint.pointsPerObject{/lang}</th>
-                               <th>{lang}wcf.user.activityPoint.sum{/lang}</th>
-                       </tr>
-               </thead>
-               
-               <tbody>
-                       {assign var='activityPointSum' value=0}
-                       {foreach from=$activityPointObjectTypes item='objectType'}
-                               {if $objectType->activityPoints > 0 && $objectType->points > 0}
-                                       <tr>
-                                               <td class="columnTitle">
-                                                       {lang}wcf.user.activityPoint.objectType.{$objectType->objectType}{/lang}
-                                               </td>
-                                               <td class="columnDigits">
-                                                       {#$objectType->activityPoints/$objectType->points}
-                                               </td>
-                                               <td class="columnDigits">
-                                                       {#$objectType->points}
-                                               </td>
-                                               <td class="columnDigits">
-                                                       {#$objectType->activityPoints}
-                                               </td>
-                                               {assign var='activityPointSum' value=$activityPointSum + $objectType->activityPoints}
-                                       </tr>
-                               {/if}
-                       {/foreach}
-                       
-                       <tr>
-                               <td class="columnTitle focus right" colspan="3">&sum;</td>
-                               <td class="columnDigits focus"><span class="badge">{#$user->activityPoints}</span></td>
-                       </tr>
-               </tbody>
-       </table>
-</div>
diff --git a/com.woltlab.wcf/template/disclaimer.tpl b/com.woltlab.wcf/template/disclaimer.tpl
deleted file mode 100644 (file)
index 76d55ca..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.register.disclaimer{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.register.disclaimer{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='Disclaimer'}{/link}">
-       <div class="container containerPadding marginTop htmlContent">
-               {lang}wcf.user.register.disclaimer.text{/lang}
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" name="accept" value="{lang}wcf.user.register.disclaimer.accept{/lang}" accesskey="s" />
-               <a class="button" href="{link}{/link}">{lang}wcf.user.register.disclaimer.decline{/lang}</a>
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/documentHeader.tpl b/com.woltlab.wcf/template/documentHeader.tpl
deleted file mode 100644 (file)
index 2761da7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<!DOCTYPE html>
-<html dir="{lang}wcf.global.pageDirection{/lang}" lang="{@$__wcf->language->getFixedLanguageCode()}">
diff --git a/com.woltlab.wcf/template/emailActivation.tpl b/com.woltlab.wcf/template/emailActivation.tpl
deleted file mode 100644 (file)
index 0dec76c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.emailActivation{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.emailActivation{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='EmailActivation'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend><label for="userID">{lang}wcf.user.emailActivation{/lang}</label></legend>
-                       
-                       <dl{if $errorField == 'u'} class="formError"{/if}>
-                               <dt><label for="userID">{lang}wcf.user.userID{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="userID" name="u" value="{@$u}" required="required" class="medium" />
-                                       {if $errorField == 'u'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'notValid'}{lang}wcf.user.userID.error.invalid{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'a'} class="formError"{/if}>
-                               <dt><label for="activationCode">{lang}wcf.user.activationCode{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="activationCode" maxlength="9" name="a" value="{@$a}" required="required" class="medium" />
-                                       {if $errorField == 'a'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'notValid'}{lang}wcf.user.activationCode.error.notValid{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-                       
-                       <dl>
-                               <dd>
-                                       <ul class="buttonList">
-                                               <li><a class="button small" href="{link controller='EmailNewActivationCode'}{/link}"><span>{lang}wcf.user.newActivationCode{/lang}</span></a></li>
-                                               {event name='buttons'}
-                                       </ul>
-                               </dd>
-                       </dl>
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/emailNewActivationCode.tpl b/com.woltlab.wcf/template/emailNewActivationCode.tpl
deleted file mode 100644 (file)
index 46546ea..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.newActivationCode{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.newActivationCode{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='EmailNewActivationCode'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.newActivationCode{/lang}</legend>
-                       
-                       <dl{if $errorField == 'username'} class="formError"{/if}>
-                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
-                                       {if $errorField == 'username'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {elseif $errorType == 'alreadyEnabled'}
-                                                               {lang}wcf.user.registerActivation.error.userAlreadyEnabled{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'password'} class="formError"{/if}>
-                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
-                               <dd>
-                                       <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
-                                       {if $errorField == 'password'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                               
-                       {event name='fields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/following.tpl b/com.woltlab.wcf/template/following.tpl
deleted file mode 100644 (file)
index bea4d63..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.following{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Action.Delete('wcf\\data\\user\\follow\\UserFollowAction', '.jsFollowing');
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline"> 
-       <h1>{lang}wcf.user.following{/lang} <span class="badge">{#$items}</span></h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {pages print=true assign=pagesLinks controller='Following' link="pageNo=%d"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $objects|count}
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned userList">
-                       {foreach from=$objects item=user}
-                               <li class="jsFollowing">
-                                       <div class="box48">
-                                               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
-                                                       
-                                               <div class="details userInformation">
-                                                       {include file='userInformationHeadline'}
-                                                       
-                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
-                                                               <ul class="buttonList jsOnly">
-                                                                       <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton" title="{lang}wcf.user.button.unfollow{/lang}" data-object-id="{@$user->followID}"></span></li>
-                                                                       {event name='userButtons'}
-                                                               </ul>
-                                                       </nav>
-                                                       
-                                                       {include file='userInformationStatistics'}
-                                               </div>
-                                       </div>
-                               </li>
-                       {/foreach}
-               </ol>
-       </div>
-       
-       <div class="contentNavigation">
-               {@$pagesLinks}
-               
-               {hascontent}
-                       <nav>
-                               <ul>
-                                       {content}
-                                               {event name='contentNavigationButtonsBottom'}
-                                       {/content}
-                               </ul>
-                       </nav>
-               {/hascontent}
-       </div>
-{else}
-       <p class="info">{lang}wcf.user.following.noUsers{/lang}</p>
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/footer.tpl b/com.woltlab.wcf/template/footer.tpl
deleted file mode 100644 (file)
index fc07a66..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-                               {event name='contents'}
-                               
-                               {if $skipBreadcrumbs|empty}{include file='breadcrumbs' __microdata=false}{/if}
-                               
-                       </section>
-                       
-                       {if $sidebarOrientation|isset && $sidebarOrientation == 'right'}
-                               {@$__sidebar}
-                       {/if}
-               </div>
-       </div>
-</div>
-
-<footer id="pageFooter" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if} footer">
-       <div>
-               <nav id="footerNavigation" class="navigation navigationFooter">
-                       {include file='footerMenu'}
-                       
-                       <ul class="navigationIcons">
-                               <li id="toTopLink" class="toTopLink"><a href="{$__wcf->getAnchor('top')}" title="{lang}wcf.global.scrollUp{/lang}" class="jsTooltip"><span class="icon icon16 icon-arrow-up"></span> <span class="invisible">{lang}wcf.global.scrollUp{/lang}</span></a></li>
-                               {event name='navigationIcons'}
-                       </ul>
-                       
-                       <ul class="navigationItems">
-                               {if SHOW_CLOCK}
-                                       <li title="{lang}wcf.date.timezone.{@'/'|str_replace:'.':$__wcf->getUser()->getTimeZone()->getName()|strtolower}{/lang}"><p><span class="icon icon16 icon-time"></span> <span>{@TIME_NOW|plainTime}</span></p></li>
-                               {/if}
-                               {event name='navigationItems'}
-                       </ul>
-               </nav>
-               
-               <div class="footerContent">
-                       {event name='footerContents'}
-                       
-                       {if ENABLE_BENCHMARK}{include file='benchmark'}{/if}
-               
-                       {event name='copyright'}
-               </div>
-       </div>
-</footer>
-
-{event name='footer'}
-
-<a id="bottom"></a>
diff --git a/com.woltlab.wcf/template/footerMenu.tpl b/com.woltlab.wcf/template/footerMenu.tpl
deleted file mode 100644 (file)
index 22548bd..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{if $__wcf->getPageMenu()->getMenuItems('footer')|count > 0}
-       <ul class="navigationMenuItems">
-               {foreach from=$__wcf->getPageMenu()->getMenuItems('footer') item=menuItem}
-                       <li><a href="{$menuItem->getProcessor()->getLink()}">{lang}{$menuItem->menuItem}{/lang}{if $menuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$menuItem->getProcessor()->getNotifications()}</span>{/if}</a></li>
-               {/foreach}
-       </ul>
-{/if}
diff --git a/com.woltlab.wcf/template/groupedUserList.tpl b/com.woltlab.wcf/template/groupedUserList.tpl
deleted file mode 100644 (file)
index a54accc..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-{foreach from=$groupedUsers item=group}
-       {if $group}
-               <header class="boxHeadline">
-                       <h1>{$group}</h1>
-               </header>
-       {/if}
-       
-       {if $group|count}
-               <div class="container marginTop">
-                       <ol class="containerList jsGroupedUserList">
-                               {foreach from=$group item=user}
-                                       {include file='userListItem'}
-                               {/foreach}
-                       </ol>
-               </div>
-       {else}
-               <p class="marginTop">{$group->getNoUsersMessage()}</p>
-       {/if}
-{/foreach}
-
-<div class="contentNavigation"><div class="jsPagination"></div></div>
-
-<script type="text/javascript">
-       //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                               'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                               'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                               'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                       });
-                       
-                       new WCF.User.Action.Follow($('.jsGroupedUserList > li'));
-                       new WCF.User.Action.Ignore($('.jsGroupedUserList > li'));
-               });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/headInclude.tpl b/com.woltlab.wcf/template/headInclude.tpl
deleted file mode 100644 (file)
index 3459bbe..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<base href="{$baseHref}" />
-<meta charset="utf-8" />
-<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1" />
-<meta name="format-detection" content="telephone=no" />
-{if $allowSpidersToIndexThisPage|empty}<meta name="robots" content="noindex,nofollow" />{/if} 
-{implode from=$__wcf->getMetaTagHandler() item=__metaTag glue="\n"}{@$__metaTag}{/implode}
-{event name='metaTags'}
-
-<script type="text/javascript">
-       //<![CDATA[
-       var SID_ARG_2ND = '{@SID_ARG_2ND_NOT_ENCODED}';
-       var WCF_PATH = '{@$__wcf->getPath()}';
-       var SECURITY_TOKEN = '{@SECURITY_TOKEN}';
-       var LANGUAGE_ID = {@$__wcf->getLanguage()->languageID};
-       var TIME_NOW = {@TIME_NOW};
-       //]]>
-</script>
-{if JQUERY_SOURCE == 'google'}
-<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
-<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
-{elseif JQUERY_SOURCE == 'microsoft'}
-<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.1.min.js"></script>
-<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script>
-{elseif JQUERY_SOURCE == 'cloudflare'}
-<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
-<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
-{else}
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"></script>
-{/if}
-{if JQUERY_SOURCE != 'local'}
-<script type="text/javascript">
-       //<![CDATA[
-       if (!window.jQuery) {
-               document.write('<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"><\/script>');
-               document.write('<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"><\/script>');
-       }
-       //]]>
-</script>
-{/if}
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.nestedSortable.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.timepicker.min.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       WCF.User.init({@$__wcf->user->userID}, '{@$__wcf->user->username|encodeJS}');
-       //]]>
-</script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.Like{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-{event name='javascriptInclude'}
-
-<!-- Stylesheets -->
-{@$__wcf->getStyleHandler()->getStylesheet()}
-{event name='stylesheets'}
-
-<noscript>
-       <style type="text/css">
-               .jsOnly {
-                       display: none !important;
-               }
-               
-               .noJsOnly {
-                       display: block !important;
-               }
-       </style>
-</noscript>
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       '__days': [ '{lang}wcf.date.day.sunday{/lang}', '{lang}wcf.date.day.monday{/lang}', '{lang}wcf.date.day.tuesday{/lang}', '{lang}wcf.date.day.wednesday{/lang}', '{lang}wcf.date.day.thursday{/lang}', '{lang}wcf.date.day.friday{/lang}', '{lang}wcf.date.day.saturday{/lang}' ],
-                       '__daysShort': [ '{lang}wcf.date.day.sun{/lang}', '{lang}wcf.date.day.mon{/lang}', '{lang}wcf.date.day.tue{/lang}', '{lang}wcf.date.day.wed{/lang}', '{lang}wcf.date.day.thu{/lang}', '{lang}wcf.date.day.fri{/lang}', '{lang}wcf.date.day.sat{/lang}' ],
-                       '__months': [ '{lang}wcf.date.month.january{/lang}', '{lang}wcf.date.month.february{/lang}', '{lang}wcf.date.month.march{/lang}', '{lang}wcf.date.month.april{/lang}', '{lang}wcf.date.month.may{/lang}', '{lang}wcf.date.month.june{/lang}', '{lang}wcf.date.month.july{/lang}', '{lang}wcf.date.month.august{/lang}', '{lang}wcf.date.month.september{/lang}', '{lang}wcf.date.month.october{/lang}', '{lang}wcf.date.month.november{/lang}', '{lang}wcf.date.month.december{/lang}' ], 
-                       '__monthsShort': [ '{lang}wcf.date.month.jan{/lang}', '{lang}wcf.date.month.feb{/lang}', '{lang}wcf.date.month.mar{/lang}', '{lang}wcf.date.month.apr{/lang}', '{lang}wcf.date.month.may{/lang}', '{lang}wcf.date.month.jun{/lang}', '{lang}wcf.date.month.jul{/lang}', '{lang}wcf.date.month.aug{/lang}', '{lang}wcf.date.month.sep{/lang}', '{lang}wcf.date.month.oct{/lang}', '{lang}wcf.date.month.nov{/lang}', '{lang}wcf.date.month.dec{/lang}' ],
-                       'wcf.clipboard.item.unmarkAll': '{lang}wcf.clipboard.item.unmarkAll{/lang}',
-                       'wcf.date.relative.now': '{lang}wcf.date.relative.now{/lang}',
-                       'wcf.date.relative.minutes': '{capture assign=relativeMinutes}{lang}wcf.date.relative.minutes{/lang}{/capture}{@$relativeMinutes|encodeJS}',
-                       'wcf.date.relative.hours': '{capture assign=relativeHours}{lang}wcf.date.relative.hours{/lang}{/capture}{@$relativeHours|encodeJS}',
-                       'wcf.date.relative.pastDays': '{capture assign=relativePastDays}{lang}wcf.date.relative.pastDays{/lang}{/capture}{@$relativePastDays|encodeJS}',
-                       'wcf.date.dateFormat': '{lang}wcf.date.dateFormat{/lang}',
-                       'wcf.date.dateTimeFormat': '{lang}wcf.date.dateTimeFormat{/lang}',
-                       'wcf.date.hour': '{lang}wcf.date.hour{/lang}',
-                       'wcf.date.minute': '{lang}wcf.date.minute{/lang}',
-                       'wcf.date.timeFormat': '{lang}wcf.date.timeFormat{/lang}',
-                       'wcf.global.button.add': '{lang}wcf.global.button.add{/lang}',
-                       'wcf.global.button.cancel': '{lang}wcf.global.button.cancel{/lang}',
-                       'wcf.global.button.close': '{lang}wcf.global.button.close{/lang}',
-                       'wcf.global.button.collapsible': '{lang}wcf.global.button.collapsible{/lang}',
-                       'wcf.global.button.delete': '{lang}wcf.global.button.delete{/lang}',
-                       'wcf.global.button.disable': '{lang}wcf.global.button.disable{/lang}',
-                       'wcf.global.button.disabledI18n': '{lang}wcf.global.button.disabledI18n{/lang}',
-                       'wcf.global.button.edit': '{lang}wcf.global.button.edit{/lang}',
-                       'wcf.global.button.enable': '{lang}wcf.global.button.enable{/lang}',
-                       'wcf.global.button.next': '{lang}wcf.global.button.next{/lang}',
-                       'wcf.global.button.preview': '{lang}wcf.global.button.preview{/lang}',
-                       'wcf.global.button.reset': '{lang}wcf.global.button.reset{/lang}',
-                       'wcf.global.button.save': '{lang}wcf.global.button.save{/lang}',
-                       'wcf.global.button.search': '{lang}wcf.global.button.search{/lang}',
-                       'wcf.global.button.submit': '{lang}wcf.global.button.submit{/lang}',
-                       'wcf.global.confirmation.cancel': '{lang}wcf.global.confirmation.cancel{/lang}',
-                       'wcf.global.confirmation.confirm': '{lang}wcf.global.confirmation.confirm{/lang}',
-                       'wcf.global.confirmation.title': '{lang}wcf.global.confirmation.title{/lang}',
-                       'wcf.global.decimalPoint': '{capture assign=decimalPoint}{lang}wcf.global.decimalPoint{/lang}{/capture}{$decimalPoint|encodeJS}',
-                       'wcf.global.error.timeout': '{lang}wcf.global.error.timeout{/lang}',
-                       'wcf.global.error.title': '{lang}wcf.global.error.title{/lang}',
-                       'wcf.global.form.error.empty': '{lang}wcf.global.form.error.empty{/lang}',
-                       'wcf.global.language.noSelection': '{lang}wcf.global.language.noSelection{/lang}',
-                       'wcf.global.loading': '{lang}wcf.global.loading{/lang}',
-                       'wcf.global.page.jumpTo': '{lang}wcf.global.page.jumpTo{/lang}',
-                       'wcf.global.page.jumpTo.description': '{lang}wcf.global.page.jumpTo.description{/lang}',
-                       'wcf.global.page.pageNavigation': '{lang}wcf.global.page.pageNavigation{/lang}',
-                       'wcf.global.page.next': '{capture assign=pageNext}{lang}wcf.global.page.next{/lang}{/capture}{@$pageNext|encodeJS}',
-                       'wcf.global.page.previous': '{capture assign=pagePrevious}{lang}wcf.global.page.previous{/lang}{/capture}{@$pagePrevious|encodeJS}',
-                       'wcf.global.success': '{lang}wcf.global.success{/lang}',
-                       'wcf.global.success.add': '{lang}wcf.global.success.add{/lang}',
-                       'wcf.global.success.edit': '{lang}wcf.global.success.edit{/lang}',
-                       'wcf.global.thousandsSeparator': '{capture assign=thousandsSeparator}{lang}wcf.global.thousandsSeparator{/lang}{/capture}{@$thousandsSeparator|encodeJS}',
-                       'wcf.page.sitemap': '{lang}wcf.page.sitemap{/lang}',
-                       'wcf.style.changeStyle': '{lang}wcf.style.changeStyle{/lang}'
-                       {if MODULE_LIKE}
-                               ,'wcf.like.button.like': '{lang}wcf.like.button.like{/lang}',
-                               'wcf.like.button.dislike': '{lang}wcf.like.button.dislike{/lang}',
-                               'wcf.like.tooltip': '{lang}wcf.like.jsTooltip{/lang}',
-                               'wcf.like.summary': '{lang}wcf.like.summary{/lang}',
-                               'wcf.like.details': '{lang}wcf.like.details{/lang}'
-                       {/if}
-                       
-                       {event name='javascriptLanguageImport'}
-               });
-               
-               if (jQuery.browser.touch) $('html').addClass('touch');
-               new WCF.Date.Time();
-               new WCF.Effect.SmoothScroll();
-               new WCF.Effect.BalloonTooltip();
-               new WCF.Sitemap();
-               {if $__wcf->getStyleHandler()->countStyles() > 1}new WCF.Style.Chooser();{/if}
-               WCF.Dropdown.init();
-               WCF.System.PageNavigation.init('.pageNavigation');
-               WCF.Date.Picker.init();
-               WCF.System.MobileNavigation.init();
-               new WCF.User.ProfilePreview();
-               
-               {event name='javascriptInit'}
-               
-               {if $executeCronjobs}
-                       new WCF.Action.Proxy({
-                               autoSend: true,
-                               data: {
-                                       className: 'wcf\\data\\cronjob\\CronjobAction',
-                                       actionName: 'executeCronjobs'
-                               },
-                               showLoadingOverlay: false,
-                               failure: function() {
-                                       return false;
-                               }
-                       });
-               {/if}
-               {if $__sessionKeepAlive|isset}
-                       new WCF.System.KeepAlive({@$__sessionKeepAlive});
-               {/if}
-       });
-       //]]>
-</script>
-
-{include file='imageViewer'}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/header.tpl b/com.woltlab.wcf/template/header.tpl
deleted file mode 100644 (file)
index 7559b88..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<a id="top"></a>
-
-<header id="pageHeader" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}">
-       <div>
-               <nav id="topMenu" class="userPanel">
-                       <div class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}">
-                               {hascontent}
-                                       <ul class="userPanelItems">
-                                               {content}
-                                                       {include file='userPanel'}
-                                                       {event name='topMenu'}
-                                               {/content}
-                                       </ul>
-                               {/hascontent}
-                               
-                               {include file='searchArea'}
-                       </div>
-               </nav>
-               
-               <div id="logo" class="logo">
-                       <a href="{link}{/link}">
-                               {if $__wcf->getStyleHandler()->getStyle()->getPageLogo()}
-                                       <img src="{$__wcf->getStyleHandler()->getStyle()->getPageLogo()}" alt="" />
-                               {/if}
-                               {event name='headerLogo'}
-                       </a>
-               </div>
-               
-               {event name='headerContents'}
-               
-               {include file='mainMenu'}
-               
-               <nav class="navigation navigationHeader">
-                       {include file='mainMenuSubMenu'}
-                       
-                       <ul class="navigationIcons">
-                               <li id="toBottomLink"><a href="{$__wcf->getAnchor('bottom')}" title="{lang}wcf.global.scrollDown{/lang}" class="jsTooltip"><span class="icon icon16 icon-arrow-down"></span> <span class="invisible">{lang}wcf.global.scrollDown{/lang}</span></a></li>
-                               <li id="sitemap" class="jsOnly"><a title="{lang}wcf.page.sitemap{/lang}" class="jsTooltip"><span class="icon icon16 icon-sitemap"></span> <span class="invisible">{lang}wcf.page.sitemap{/lang}</span></a></li>
-                               {if $headerNavigation|isset}{@$headerNavigation}{/if}
-                               {event name='navigationIcons'}
-                       </ul>
-               </nav>
-       </div>
-</header>
-
-<div id="main" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}{if $sidebarOrientation|isset && $sidebar|isset} sidebarOrientation{@$sidebarOrientation|ucfirst}{if $sidebarOrientation == 'right' && $sidebarCollapsed} sidebarCollapsed{/if}{/if}">
-       <div>
-               <div>
-                       {capture assign='__sidebar'}
-                               {if $sidebar|isset}
-                                       <aside class="sidebar"{if $sidebarOrientation|isset && $sidebarOrientation == 'right'} data-is-open="{if $sidebarCollapsed}false{else}true{/if}" data-sidebar-name="{$sidebarName}"{/if}>
-                                               <div>
-                                                       {event name='sidebarBoxesTop'}
-                                                       
-                                                       {@$sidebar}
-                                                       
-                                                       {event name='sidebarBoxesBottom'}
-                                               </div>
-                                       </aside>
-                                       
-                                       {if $sidebarOrientation|isset && $sidebarOrientation == 'right'}
-                                               <script type="text/javascript">
-                                                       //<![CDATA[
-                                                       $(function() {
-                                                               new WCF.Collapsible.Sidebar();
-                                                       });
-                                                       //]]>
-                                               </script>
-                                       {/if}
-                               {/if}
-                       {/capture}
-                       
-                       {if !$sidebarOrientation|isset || $sidebarOrientation == 'left'}
-                               {@$__sidebar}
-                       {/if} 
-                                       
-                       <section id="content" class="content">
-                               
-                               {event name='contents'}
-                               
-                               {if $skipBreadcrumbs|empty}{include file='breadcrumbs'}{/if}
-                       
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/ignoredUsers.tpl b/com.woltlab.wcf/template/ignoredUsers.tpl
deleted file mode 100644 (file)
index f70ad26..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.ignoredUsers{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Action.Delete('wcf\\data\\user\\ignore\\UserIgnoreAction', '.jsIgnoredUser');
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.ignoredUsers{/lang} <span class="badge">{#$items}</span></h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {pages print=true assign=pagesLinks controller='IgnoredUsers' link="pageNo=%d"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $objects|count}
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned userList">
-                       {foreach from=$objects item=user}
-                               <li class="jsIgnoredUser">
-                                       <div class="box48">
-                                               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
-                                                       
-                                               <div class="details userInformation">
-                                                       {include file='userInformationHeadline'}
-                                                       
-                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
-                                                               <ul class="buttonList jsOnly">
-                                                                       <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton" title="{lang}wcf.user.button.unignore{/lang}" data-object-id="{@$user->ignoreID}"></span></li>
-                                                                       {event name='userButtons'}
-                                                               </ul>
-                                                       </nav>
-                                                       
-                                                       {include file='userInformationStatistics'}
-                                               </div>
-                                       </div>
-                               </li>
-                       {/foreach}
-               </ol>
-       </div>
-       
-       <div class="contentNavigation">
-               {@$pagesLinks}
-               
-               {hascontent}
-                       <nav>
-                               <ul>
-                                       {content}
-                                               {event name='contentNavigationButtonsBottom'}
-                                       {/content}
-                               </ul>
-                       </nav>
-               {/hascontent}
-       </div>
-{else}
-       <p class="info">{lang}wcf.user.ignoredUsers.noUsers{/lang}</p>
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/imageViewer.tpl b/com.woltlab.wcf/template/imageViewer.tpl
deleted file mode 100644 (file)
index b59ffd6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{if !$__imageViewerLoaded|isset}
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/slimbox2.min.js"></script>
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.ImageViewer{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               var $imageViewer = null;
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.imageViewer.counter': '{lang}wcf.imageViewer.counter{/lang}',
-                               'wcf.imageViewer.close': '{lang}wcf.imageViewer.close{/lang}',
-                               'wcf.imageViewer.enlarge': '{lang}wcf.imageViewer.enlarge{/lang}',
-                               'wcf.imageViewer.next': '{lang}wcf.imageViewer.next{/lang}',
-                               'wcf.imageViewer.previous': '{lang}wcf.imageViewer.previous{/lang}'
-                       });
-                       
-                       $imageViewer = new WCF.ImageViewer();
-               });
-               //]]>
-       </script>
-       
-       {assign var=__imageViewerLoaded value=true}
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/integerOptionType.tpl b/com.woltlab.wcf/template/integerOptionType.tpl
deleted file mode 100644 (file)
index 466d77b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<input type="number" id="{$option->optionName}" name="values[{$option->optionName}]" value="{$value}"{if $option->minvalue !== null} min="{$option->minvalue}"{/if}{if $option->maxvalue !== null} max="{$option->maxvalue}"{/if}{if $inputClass} class="{@$inputClass}"{/if} />
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/login.tpl b/com.woltlab.wcf/template/login.tpl
deleted file mode 100644 (file)
index 577656b..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.login{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.User.Login(false);
-               })
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-{include file='header' __disableLoginLink=true}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.login{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='Login'}{/link}" id="loginForm">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.login.data{/lang}</legend>
-                       
-                       <dl{if $errorField == 'username'} class="formError"{/if}>
-                               <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="long" />
-                                       {if $errorField == 'username'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {if !REGISTER_DISABLED}
-                               <dl>
-                                       <dt>{lang}wcf.user.login.action{/lang}</dt>
-                                       <dd><label><input type="radio" name="action" value="register" /> {lang}wcf.user.login.action.register{/lang}</label></dd>
-                                       <dd><label><input type="radio" name="action" value="login" checked="checked" /> {lang}wcf.user.login.action.login{/lang}</label></dd>
-                               </dl>
-                       {/if}
-                       
-                       <dl{if $errorField == 'password'} class="formError"{/if}>
-                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
-                               <dd>
-                                       <input type="password" id="password" name="password" value="{$password}" class="long" />
-                                       {if $errorField == 'password'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {if $supportsPersistentLogins}
-                               <dl>
-                                       <dd>
-                                               <label for="useCookies"><input type="checkbox" id="useCookies" name="useCookies" value="1" {if $useCookies}checked="checked" {/if}/> {lang}wcf.user.useCookies{/lang}</label>
-                                       </dd>
-                               </dl>
-                       {/if}
-                       
-                       {event name='fields'}
-                       
-                       <dl>
-                               <dd>
-                                       <ul class="buttonList">
-                                               <li><a class="button small" href="{link controller='LostPassword'}{/link}"><span>{lang}wcf.user.lostPassword{/lang}</span></a></li>
-                                               {if !REGISTER_DISABLED && REGISTER_ACTIVATION_METHOD == 1}<li><a class="button small" href="{link controller='RegisterActivation'}{/link}"><span>{lang}wcf.user.registerActivation{/lang}</span></a></li>{/if}
-                                               {event name='buttons'}
-                                       </ul>
-                               </dd>
-                       </dl>
-               </fieldset>
-               
-               {capture assign='__3rdPartyButtons'}
-                       
-               {/capture}
-               
-               {hascontent}
-                       <fieldset>
-                               <legend>{lang}wcf.user.login.3rdParty{/lang}</legend>
-                               
-                               <dl>
-                                       <dd>
-                                               <ul class="buttonList">
-                                                       {content}
-                                                               {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
-                                                                       <li id="githubAuth" class="3rdPartyAuth">
-                                                                               <a href="{link controller='GithubAuth'}{/link}" class="button small"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a>
-                                                                       </li>
-                                                               {/if}
-                                                               
-                                                               {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}
-                                                                       <li id="twitterAuth" class="3rdPartyAuth">
-                                                                               <a href="{link controller='TwitterAuth'}{/link}" class="button small"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a>
-                                                                       </li>
-                                                               {/if}
-                                                               
-                                                               {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}
-                                                                       <li id="facebookAuth" class="3rdPartyAuth">
-                                                                               <a href="{link controller='FacebookAuth'}{/link}" class="button small"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a>
-                                                                       </li>
-                                                               {/if}
-                                                               
-                                                               {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}
-                                                                       <li id="googleAuth" class="3rdPartyAuth">
-                                                                               <a href="{link controller='GoogleAuth'}{/link}" class="button small"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a>
-                                                                       </li>
-                                                               {/if}
-                                                       {/content}      
-                                               </ul>
-                                       </dd>
-                               </dl>
-                       </fieldset>
-               {/hascontent}
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-               <input type="hidden" name="url" value="{@$url}" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/lostPassword.tpl b/com.woltlab.wcf/template/lostPassword.tpl
deleted file mode 100644 (file)
index 7be49bf..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-{include file="documentHeader"}
-
-<head>
-       <title>{lang}wcf.user.lostPassword{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-       
-       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.User.Registration.LostPassword();
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.lostPassword{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<p class="info">{lang}wcf.user.lostPassword.description{/lang}</p>
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='LostPassword'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.lostPassword{/lang}</legend>
-                       
-                       <dl id="usernameDiv"{if $errorField == 'username'} class="formError"{/if}>
-                               <dt>
-                                       <label for="usernameInput">{lang}wcf.user.username{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="text" id="usernameInput" name="username" value="{$username}" class="medium" />
-                                       {if $errorField == 'username'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                       {if $errorType == 'notFound'}{lang}wcf.user.error.username.notFound{/lang}{/if}
-                                                       {if $errorType == '3rdParty'}{lang}wcf.user.error.username.3rdParty{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl id="emailDiv"{if $errorField == 'email'} class="formError"{/if}>
-                               <dt>
-                                       <label for="emailInput">{lang}wcf.user.email{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="email" id="emailInput" name="email" value="{$email}" class="medium" />
-                                       {if $errorField == 'email'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                       {if $errorType == 'notFound'}{lang}wcf.user.lostPassword.error.email.notFound{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-               
-               {if $useCaptcha}{include file='recaptcha'}{/if}
-       </div>
-               
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/mail.tpl b/com.woltlab.wcf/template/mail.tpl
deleted file mode 100644 (file)
index fce68ee..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.mail.title{/lang} - {lang}wcf.user.profile{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.mail.title{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='Mail' object=$user}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.mail.information{/lang}</legend>
-                       
-                       <dl{if $errorField == 'subject'} class="formError"{/if}>
-                               <dt><label for="subject">{lang}wcf.user.mail.subject{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="subject" name="subject" value="{$subject}" required="required" class="long" />
-                                       {if $errorField == 'subject'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.mail.subject.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {if $__wcf->user->userID}
-                               <dl>
-                                       <dd><label><input type="checkbox" name="showAddress" value="1" {if $showAddress == 1} checked="checked"{/if}/> {lang}wcf.user.mail.showAddress{/lang}</label></dd>
-                               </dl>
-                       {else}
-                               <dl{if $errorField == 'email'} class="formError"{/if}>
-                                       <dt><label for="email">{lang}wcf.user.mail.senderEmail{/lang}</label></dt>
-                                       <dd>
-                                               <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
-                                               {if $errorField == 'email'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}
-                                                                       {lang}wcf.global.form.error.empty{/lang}
-                                                               {elseif $errorType == 'invalid'}
-                                                                       {lang}wcf.user.email.error.notValid{/lang}
-                                                               {else}
-                                                                       {lang}wcf.user.mail.senderEmail.error.{@$errorType}{/lang}
-                                                               {/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                       {/if}
-                       
-                       {event name='informationFields'}
-               </fieldset>
-               
-               <fieldset>
-                       <legend><label for="message">{lang}wcf.user.mail.message{/lang}</label></legend>
-                       
-                       <dl class="wide{if $errorField == 'message'} formError{/if}">
-                               <dd>
-                                       <textarea rows="15" cols="40" name="message" id="message" required="required">{$message}</textarea>
-                                       {if $errorField == 'message'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.mail.message.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='messageFields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-               
-               {if $useCaptcha}
-                       {include file='recaptcha'}
-               {/if}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/mainMenu.tpl b/com.woltlab.wcf/template/mainMenu.tpl
deleted file mode 100644 (file)
index 86680de..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{if $__wcf->getPageMenu()->getMenuItems('header')|count > 0}
-       <nav id="mainMenu" class="mainMenu jsMobileNavigation" data-button-label="{lang}wcf.page.mainMenu{/lang}">
-               <ul>{foreach from=$__wcf->getPageMenu()->getMenuItems('header') item=menuItem}<li{if $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem} class="active"{/if}>{*
-                       *}<a href="{$menuItem->getProcessor()->getLink()}">{lang}{$menuItem->menuItem}{/lang}{if $menuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$menuItem->getProcessor()->getNotifications()}</span>{/if}</a>{*
-               *}{if $__wcf->getPageMenu()->getMenuItems($menuItem->menuItem)|count > 0 && $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem}<ul class="invisible">{*
-                               *}{foreach from=$__wcf->getPageMenu()->getMenuItems($menuItem->menuItem) item=subMenuItem}{*
-                                       *}<li{if $__wcf->getPageMenu()->getActiveMenuItem(1) == $subMenuItem->menuItem} class="active"{/if}><a href="{$subMenuItem->getProcessor()->getLink()}"><span>{lang}{$subMenuItem->menuItem}{/lang}</span></a>{if $subMenuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$subMenuItem->getProcessor()->getNotifications()}</span>{/if}</li>{*
-                               *}{/foreach}{*
-               *}{event name='items'}</ul>{/if}</li>{/foreach}</ul>
-       </nav>
-{/if}
diff --git a/com.woltlab.wcf/template/mainMenuSubMenu.tpl b/com.woltlab.wcf/template/mainMenuSubMenu.tpl
deleted file mode 100644 (file)
index afe520a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{foreach from=$__wcf->getPageMenu()->getMenuItems('header') item=menuItem}
-       {if $__wcf->getPageMenu()->getMenuItems($menuItem->menuItem)|count > 0 && $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem}
-               <ul class="navigationMenuItems">
-                       {foreach from=$__wcf->getPageMenu()->getMenuItems($menuItem->menuItem) item=subMenuItem}
-                               <li{if $__wcf->getPageMenu()->getActiveMenuItem(1) == $subMenuItem->menuItem} class="active"{/if}><a href="{$subMenuItem->getProcessor()->getLink()}"><span>{lang}{$subMenuItem->menuItem}{/lang}</span></a>{if $subMenuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$subMenuItem->getProcessor()->getNotifications()}</span>{/if}</li>
-                       {/foreach}
-                       {event name='items'}
-               </ul>
-       {/if}
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/manageSubscription.tpl b/com.woltlab.wcf/template/manageSubscription.tpl
deleted file mode 100644 (file)
index a6523d9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<fieldset>
-       <dl class="wide">
-               <dd>
-                       <label><input type="radio" name="subscribe" value="1"{if $userObjectWatch} checked="checked"{/if} /> {lang}wcf.user.objectWatch.subscribe.{@$objectType->objectType}{/lang}</label>
-                       
-                       <small><label><input type="checkbox" name="enableNotification" value="1"{if $userObjectWatch && $userObjectWatch->notification} checked="checked"{/if} /> {lang}wcf.user.objectWatch.enableNotification.{@$objectType->objectType}{/lang}</label></small>
-               </dd>
-       </dl>
-       <dl class="wide">
-               <dd>
-                       <label><input type="radio" name="subscribe" value="0"{if !$userObjectWatch} checked="checked"{/if} /> {lang}wcf.user.objectWatch.unsubscribe.{@$objectType->objectType}{/lang}</label>
-               </dd>
-       </dl>
-       
-       {event name='fields'}
-</fieldset>
-
-<div class="formSubmit">
-       <button class="jsButtonSave buttonPrimary">{lang}wcf.global.button.save{/lang}</button>
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/membersList.tpl b/com.woltlab.wcf/template/membersList.tpl
deleted file mode 100644 (file)
index 91cd066..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if} {if $pageNo > 1}- {lang}wcf.page.pageNo{/lang} {/if}- {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       {capture assign='canonicalURLParameters'}sortField={@$sortField}&sortOrder={@$sortOrder}{if $letter}&letter={@$letter|rawurlencode}{/if}{/capture}
-       {if $pageNo < $pages}
-               <link rel="next" href="{link controller='MembersList'}pageNo={@$pageNo+1}&{@$canonicalURLParameters}{/link}" />
-       {/if}
-       {if $pageNo > 1}
-               <link rel="prev" href="{link controller='MembersList'}{if $pageNo > 2}pageNo={@$pageNo-1}&{/if}{@$canonicalURLParameters}{/link}" />
-       {/if}
-       <link rel="canonical" href="{link controller='MembersList'}{if $pageNo > 1}pageNo={@$pageNo}&{/if}{@$canonicalURLParameters}{/link}" />
-       
-       <script type="text/javascript">
-               //<![CDATA[
-                       $(function() {
-                               WCF.Language.addObject({
-                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                               });
-                               
-                               new WCF.User.Action.Follow($('.userList > li'));
-                               new WCF.User.Action.Ignore($('.userList > li'));
-                               
-                               new WCF.Search.User('#searchUsername', function(data) {
-                                       var $link = '{link controller='User' id=2147483646 title='wcfTitlePlaceholder' encode=false}{/link}';
-                                       window.location = $link.replace('2147483646', data.objectID).replace('wcfTitlePlaceholder', data.label);
-                               }, false, [ ], false);
-                       });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       {assign var=encodedLetter value=$letter|rawurlencode}
-       <div class="jsOnly">
-               <form method="get" action="{if $searchID}{link controller='MembersList' id=$searchID}{/link}{else}{link controller='MembersList'}{/link}{/if}">
-                       <fieldset>
-                               <legend><label for="searchUsername">{lang}wcf.user.search{/lang}</label></legend>
-                               
-                               <dl>
-                                       <dd>
-                                               <input type="text" id="searchUsername" name="username" class="long" placeholder="{lang}wcf.user.username{/lang}" />
-                                       </dd>
-                               </dl>
-                       </fieldset>
-               </form>
-       </div>
-       
-       <fieldset>
-               <legend>{lang}wcf.user.members.sort.letters{/lang}</legend>
-                               
-               <ul class="buttonList letters">
-                       {foreach from=$letters item=__letter}
-                               <li><a href="{if $searchID}{link controller='MembersList' id=$searchID}sortField={$sortField}&sortOrder={$sortOrder}&letter={$__letter|rawurlencode}{/link}{else}{link controller='MembersList'}sortField={$sortField}&sortOrder={$sortOrder}&letter={$__letter|rawurlencode}{/link}{/if}" class="button small{if $letter == $__letter} active{/if}">{$__letter}</a></li>
-                       {/foreach}
-                       {if !$letter|empty}<li><a href="{if $searchID}{link controller='MembersList' id=$searchID}sortField={$sortField}&sortOrder={$sortOrder}{/link}{else}{link controller='MembersList'}sortField={$sortField}&sortOrder={$sortOrder}{/link}{/if}" class="button small">{lang}wcf.user.members.sort.letters.all{/lang}</a></li>{/if}
-               </ul>
-       </fieldset>
-               
-       <div>
-               <form method="get" action="{if $searchID}{link controller='MembersList' id=$searchID}{/link}{else}{link controller='MembersList'}{/link}{/if}">
-                       <fieldset>
-                               <legend><label for="sortField">{lang}wcf.user.members.sort{/lang}</label></legend>
-                               
-                               <dl>
-                                       <dd>
-                                               <select id="sortField" name="sortField">
-                                                       <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
-                                                       <option value="registrationDate"{if $sortField == 'registrationDate'} selected="selected"{/if}>{lang}wcf.user.registrationDate{/lang}</option>
-                                                       <option value="activityPoints"{if $sortField == 'activityPoints'} selected="selected"{/if}>{lang}wcf.user.activityPoint{/lang}</option>
-                                                       <option value="likesReceived"{if $sortField == 'likesReceived'} selected="selected"{/if}>{lang}wcf.like.likesReceived{/lang}</option>
-                                                       {event name='sortField'}
-                                               </select>
-                                               <select name="sortOrder">
-                                                       <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
-                                                       <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
-                                               </select>
-                                       </dd>
-                               </dl>
-                       </fieldset>
-                       
-                       <div class="formSubmit">
-                               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-                               <input type="hidden" name="letter" value="{$letter}" />
-                       </div>
-               </form>
-       </div>
-       
-       {@$__boxSidebar}
-{/capture}
-
-{include file='header' sidebarOrientation='right'}
-
-<header class="boxHeadline">
-       <h1>{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if} <span class="badge">{#$items}</span></h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {if $searchID}
-               {pages print=true assign=pagesLinks controller='MembersList' id=$searchID link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
-       {else}
-               {pages print=true assign=pagesLinks controller='MembersList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
-       {/if}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $items}
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned userList">
-                       {foreach from=$objects item=user}
-                               {include file='userListItem'}
-                       {/foreach}
-               </ol>
-       </div>
-{else}
-       <p class="info">{lang}wcf.user.members.noMembers{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {@$pagesLinks}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/messageFormAttachments.tpl b/com.woltlab.wcf/template/messageFormAttachments.tpl
deleted file mode 100644 (file)
index 6c97a96..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<div id="attachments" class="jsOnly formAttachmentContent tabMenuContent container containerPadding">
-       <ul class="formAttachmentList clearfix"{if !$attachmentHandler->getAttachmentList()|count} style="display: none"{/if}>
-               {foreach from=$attachmentHandler->getAttachmentList() item=$attachment}
-                       <li class="box48">
-                               {if $attachment->tinyThumbnailType}
-                                       <img src="{link controller='Attachment' object=$attachment}tiny=1{/link}" alt="" class="attachmentTinyThumbnail" />
-                               {else}
-                                       <span class="icon icon48 icon-paper-clip"></span>
-                               {/if}
-                               
-                               <div>
-                                       <div>
-                                               <p><a href="{link controller='Attachment' object=$attachment}{/link}"{if $attachment->isImage} title="{$attachment->filename}" class="jsImageViewer"{/if}>{$attachment->filename}</a></p>
-                                               <small>{@$attachment->filesize|filesize}</small>
-                                       </div>
-                                       
-                                       <ul>
-                                               <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton " title="{lang}wcf.global.button.delete{/lang}" data-object-id="{@$attachment->attachmentID}" data-confirm-message="{lang}wcf.attachment.delete.sure{/lang}"></span></li>
-                                               <li><span class="icon icon16 icon-paste pointer jsTooltip jsButtonInsertAttachment" title="{lang}wcf.attachment.insert{/lang}" data-object-id="{@$attachment->attachmentID}" /></li>
-                                       </ul>
-                               </div>
-                       </li>
-               {/foreach}
-       </ul>
-       
-       <dl class="wide">
-               <dd>
-                       <div></div>
-                       <small>{lang}wcf.attachment.upload.limits{/lang}</small>
-               </dd>
-       </dl>
-       
-       {event name='fields'}
-</div>
-
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Attachment{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.attachment.upload.error.invalidExtension': '{lang}wcf.attachment.upload.error.invalidExtension{/lang}',
-                       'wcf.attachment.upload.error.tooLarge': '{lang}wcf.attachment.upload.error.tooLarge{/lang}',
-                       'wcf.attachment.upload.error.reachedLimit': '{lang}wcf.attachment.upload.error.reachedLimit{/lang}',
-                       'wcf.attachment.upload.error.reachedRemainingLimit': '{lang}wcf.attachment.upload.error.reachedRemainingLimit{/lang}',
-                       'wcf.attachment.upload.error.uploadFailed': '{lang}wcf.attachment.upload.error.uploadFailed{/lang}',
-                       'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}',
-                       'wcf.attachment.insert': '{lang}wcf.attachment.insert{/lang}',
-                       'wcf.attachment.delete.sure': '{lang}wcf.attachment.delete.sure{/lang}'
-               });
-               
-               new WCF.Attachment.Upload($('#attachments > dl > dd > div'), $('#attachments > ul'), '{@$attachmentObjectType}', '{@$attachmentObjectID}', '{$tmpHash|encodeJS}', '{@$attachmentParentObjectID}', {@$attachmentHandler->getMaxCount()}, '{@$wysiwygContainerID}');
-               new WCF.Action.Delete('wcf\\data\\attachment\\AttachmentAction', '.formAttachmentList > li');
-       });
-       //]]>
-</script>
-
-<input type="hidden" name="tmpHash" value="{$tmpHash}" />
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageFormMultilingualism.tpl b/com.woltlab.wcf/template/messageFormMultilingualism.tpl
deleted file mode 100644 (file)
index bcfa568..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{if $availableContentLanguages|count}
-       <dl{if $errorField == 'languageID'} class="formError"{/if}>
-               <dt>{lang}wcf.user.language{/lang}</dt>
-               <dd id="languageIDContainer">
-                       <noscript>
-                               <select name="languageID" id="languageID">
-                                       {foreach from=$availableContentLanguages item=contentLanguage}
-                                               <option value="{@$contentLanguage->languageID}">{$contentLanguage}</option>
-                                       {/foreach}
-                               </select>
-                       </noscript>
-               </dd>
-       </dl>
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       var $languages = {
-                               {implode from=$availableContentLanguages item=contentLanguage}
-                                       '{@$contentLanguage->languageID}': {
-                                               iconPath: '{@$contentLanguage->getIconPath()}',
-                                               languageName: '{$contentLanguage}'
-                                       }
-                               {/implode}
-                       };
-                       
-                       new WCF.Language.Chooser('languageIDContainer', 'languageID', {$languageID}, $languages);
-               });
-               //]]>
-       </script>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageFormPreviewButton.tpl b/com.woltlab.wcf/template/messageFormPreviewButton.tpl
deleted file mode 100644 (file)
index b175ced..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<button id="previewButton" class="jsOnly" accesskey="p">{lang}wcf.global.button.preview{/lang}</button>
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               WCF.Language.addObject({
-                       'wcf.global.preview': '{lang}wcf.global.preview{/lang}' 
-               });
-               
-               new WCF.Message.DefaultPreview({if MODULE_ATTACHMENT && $attachmentHandler !== null}'{@$attachmentObjectType}', '{@$attachmentObjectID}', '{$tmpHash|encodeJS}'{/if});
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageFormSettings.tpl b/com.woltlab.wcf/template/messageFormSettings.tpl
deleted file mode 100644 (file)
index 5c4f523..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<fieldset id="settings" class="settingsContent tabMenuContent container containerPadding">
-       <dl class="wide">
-               {if $__wcf->getSession()->getPermission('user.message.canUseBBCodes')}
-                       <dd>
-                               <label><input id="preParse" name="preParse" type="checkbox" value="1"{if $preParse} checked="checked"{/if} /> {lang}wcf.message.settings.preParse{/lang}</label>
-                               <small>{lang}wcf.message.settings.preParse.description{/lang}</small>
-                       </dd>
-               {/if}
-               {if $__wcf->getSession()->getPermission('user.message.canUseSmilies')}
-                       <dd>
-                               <label><input id="enableSmilies" name="enableSmilies" type="checkbox" value="1"{if $enableSmilies} checked="checked"{/if} /> {lang}wcf.message.settings.enableSmilies{/lang}</label>
-                               <small>{lang}wcf.message.settings.enableSmilies.description{/lang}</small>
-                       </dd>
-               {/if}
-               {if $__wcf->getSession()->getPermission('user.message.canUseBBCodes')}
-                       <dd>
-                               <label><input id="enableBBCodes" name="enableBBCodes" type="checkbox" value="1"{if $enableBBCodes} checked="checked"{/if} /> {lang}wcf.message.settings.enableBBCodes{/lang}</label>
-                               <small>{lang}wcf.message.settings.enableBBCodes.description{/lang}</small>
-                       </dd>
-               {/if}
-               {if $__wcf->getSession()->getPermission('user.message.canUseHtml')}
-                       <dd>
-                               <label><input id="enableHtml" name="enableHtml" type="checkbox" value="1"{if $enableHtml} checked="checked"{/if} /> {lang}wcf.message.settings.enableHtml{/lang}</label>
-                               <small>{lang}wcf.message.settings.enableHtml.description{/lang}</small>
-                       </dd>
-               {/if}
-               {if 'MODULE_USER_SIGNATURE'|defined && MODULE_USER_SIGNATURE && $showSignatureSetting && $__wcf->user->userID}
-                       <dd>
-                               <label><input id="showSignature" name="showSignature" type="checkbox" value="1"{if $showSignature} checked="checked"{/if} /> {lang}wcf.message.settings.showSignature{/lang}</label>
-                               <small>{lang}wcf.message.settings.showSignature.description{/lang}</small>
-                       </dd>
-               {/if}
-               
-               {event name='settings'}
-       </dl>
-</fieldset>
diff --git a/com.woltlab.wcf/template/messageFormSmilies.tpl b/com.woltlab.wcf/template/messageFormSmilies.tpl
deleted file mode 100644 (file)
index d7c7e7c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-{assign var=__tabCount value=0}
-{capture assign=__categoryTabs}
-       {foreach from=$smileyCategories item=smileyCategory}
-               {assign var=__tabCount value=$__tabCount + 1}
-               {assign var='__smileyAnchor' value='smilies-'|concat:$smileyCategory->categoryID}
-               <li><a href="{$__wcf->getAnchor($__smileyAnchor)}" data-smiley-category-id="{@$smileyCategory->categoryID}">{$smileyCategory->title|language}</a></li>
-       {/foreach}
-{/capture}
-
-<div id="smilies" class="jsOnly smiliesContent tabMenuContent container containerPadding{if $__tabCount} tabMenuContainer{/if}">
-       {capture assign=__defaultSmilies}
-               {include file='__messageFormSmilies' smilies=$defaultSmilies}
-       {/capture}
-       
-       {if $__tabCount > 1}
-               <nav class="menu">
-                       <ul>
-                               {@$__categoryTabs}
-                       </ul>
-               </nav>
-               
-               {foreach from=$smileyCategories item=smileyCategory}
-                       {if !$smileyCategory->isDisabled}
-                               <div id="smilies-{@$smileyCategory->categoryID}" class="hidden">
-                                       {if !$smileyCategory->categoryID}{@$__defaultSmilies}{/if}
-                               </div>
-                       {/if}
-               {/foreach}
-               
-               <script type="text/javascript">
-                       //<![CDATA[
-                       $(function() {
-                               new WCF.Message.SmileyCategories();
-                       });
-                       //]]>
-               </script>
-       {else}
-               {@$__defaultSmilies}
-       {/if}
-       
-       {event name='fields'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Message.Smilies('{if $wysiwygSelector|isset}{$wysiwygSelector|encodeJS}{else}text{/if}');
-               });
-               //]]>
-       </script>
-</div>
diff --git a/com.woltlab.wcf/template/messageFormTabs.tpl b/com.woltlab.wcf/template/messageFormTabs.tpl
deleted file mode 100644 (file)
index e8660ef..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<div class="tabMenuContainer" data-active="{$activeTabMenuItem}" data-store="activeTabMenuItem">
-       <nav class="tabMenu jsOnly">
-               <ul>
-                       {if MODULE_SMILEY && $smileyCategories|count}<li id="smiliesTab"><a href="{@$__wcf->getAnchor('smilies')}" title="{lang}wcf.message.smilies{/lang}">{lang}wcf.message.smilies{/lang}</a></li>{/if}
-                       {if MODULE_ATTACHMENT && $attachmentHandler !== null && $attachmentHandler->canUpload()}<li id="attachmentsTab"><a href="{@$__wcf->getAnchor('attachments')}" title="{lang}wcf.attachment.attachments{/lang}">{lang}wcf.attachment.attachments{/lang}</a></li>{/if}
-                       <li><a href="{@$__wcf->getAnchor('settings')}" title="{lang}wcf.message.settings{/lang}">{lang}wcf.message.settings{/lang}</a></li>
-                       {if $__showPoll|isset && $__showPoll}<li><a href="{@$__wcf->getAnchor('poll')}" title="{lang}wcf.poll.management{/lang}">{lang}wcf.poll.management{/lang}</a></li>{/if}
-                       {event name='tabMenuTabs'}
-               </ul>
-       </nav>
-       
-       {if MODULE_SMILEY && $smileyCategories|count}{include file='messageFormSmilies'}{/if}
-       {if MODULE_ATTACHMENT && $attachmentHandler !== null && $attachmentHandler->canUpload()}{include file='messageFormAttachments'}{/if}
-       
-       {include file='messageFormSettings'}
-       {include file='__messageFormPoll'}
-       
-       {event name='tabMenuContents'}
-</div>
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               if (jQuery.browser.mobile) $('#smiliesTab, #smilies').remove();
-               WCF.TabMenu.init();
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageOptionType.tpl b/com.woltlab.wcf/template/messageOptionType.tpl
deleted file mode 100644 (file)
index 15009ac..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<textarea id="{$option->optionName}" name="values[{$option->optionName}]" cols="40" rows="10">{$value}</textarea>
-{include file='wysiwyg' wysiwygSelector=$option->optionName}
-
-<script type="text/javascript">
-//<![CDATA[
-$(function() {
-       $('#{$option->optionName}').parents('dl:eq(0)').addClass('wide');
-});
-//]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageQuoteList.tpl b/com.woltlab.wcf/template/messageQuoteList.tpl
deleted file mode 100644 (file)
index 8f1a113..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-{if !$supportPaste|isset}{assign var=supportPaste value=false}{/if}
-{foreach from=$messages item=message}
-       <article class="message messageReduced marginTop jsInvalidQuoteTarget" data-link="{@$message->getLink()}" data-username="{$message->getUsername()}">
-               <div>
-                       <section class="messageContent">
-                               <div>
-                                       <header class="messageHeader">
-                                               <div class="box32">
-                                                       {if $userProfiles[$message->getUserID()]|isset}
-                                                               <a href="{link controller='User' object=$userProfiles[$message->getUserID()]}{/link}" class="framed">{@$userProfiles[$message->getUserID()]->getAvatar()->getImageTag(32)}</a>
-                                                       {/if}
-                                                       
-                                                       <div class="messageHeadline">
-                                                               <h1><a href="{@$message->getLink()}">{$message->getTitle()}</a></h1>
-                                                               <p>
-                                                                       <span class="username">{if $userProfiles[$message->getUserID()]|isset}<a href="{link controller='User' object=$userProfiles[$message->getUserID()]}{/link}">{$message->getUsername()}</a>{else}{$message->getUsername()}{/if}</span>
-                                                                       {@$message->getTime()|time}
-                                                               </p>
-                                                       </div>
-                                               </div>
-                                       </header>
-                                       
-                                       <div class="messageBody">
-                                               <div>
-                                                       <div class="messageText">
-                                                               <ul>
-                                                                       {foreach from=$message key=quoteID item=quote}
-                                                                               <li data-quote-id="{@$quoteID}">
-                                                                                       <span>
-                                                                                               <input type="checkbox" value="1" id="quote_{@$quoteID}" class="jsCheckbox" />
-                                                                                               {if $supportPaste}<span class="icon icon16 icon-plus jsTooltip jsInsertQuote" title="{lang}wcf.message.quote.insertQuote{/lang}"></span>{/if}
-                                                                                       </span>
-                                                                                       
-                                                                                       <div class="jsQuote">
-                                                                                               <label for="quote_{@$quoteID}">{@$quote}</label>
-                                                                                       </div>
-                                                                                       <div class="jsFullQuote">
-                                                                                               {$message->getFullQuote($quoteID)}
-                                                                                       </div>
-                                                                               </li>
-                                                                       {/foreach}
-                                                               </ul>
-                                                       </div>
-                                               </div>
-                                       </div>
-                               </div>
-                       </section>
-               </div>
-       </article>
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/messageSidebar.tpl b/com.woltlab.wcf/template/messageSidebar.tpl
deleted file mode 100644 (file)
index 475f48f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-{if !$__messageSidebarJavascript|isset}
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}'
-                       });
-                       
-                       WCF.User.Profile.ActivityPointList.init();
-               });
-               //]]>
-       </script>
-       {assign var=__messageSidebarJavascript value=true}
-{/if}
-
-<aside class="messageSidebar{if MESSAGE_SIDEBAR_ENABLE_ONLINE_STATUS && $userProfile->isOnline()} userOnline{/if} {if $userProfile->userID}member{else}guest{/if}"{if $userProfile->userID} itemscope="itemscope" itemtype="http://data-vocabulary.org/Person"{/if}>
-       <div>
-               {if $userProfile->userID}
-                       {assign var='username' value=$userProfile->username}
-                       
-                       <header>
-                               <h2 class="username">
-                                       <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userProfile->userID}" rel="author">
-                                               <span itemprop="name">{$username}</span>
-                                       </a>
-                               </h2>
-                               
-                               {event name='header'}
-                       </header>
-                       
-                       {if MESSAGE_SIDEBAR_ENABLE_AVATAR}
-                               {if $userProfile->getAvatar()}
-                                       <div class="userAvatar">
-                                               {capture assign='__userAvatar'}{@$userProfile->getAvatar()->getImageTag(128)}{/capture}
-                                               <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="framed">{@'<img'|str_replace:'<img itemprop="photo"':$__userAvatar}</a>
-                                               
-                                               {if MESSAGE_SIDEBAR_ENABLE_ONLINE_STATUS && $userProfile->isOnline()}<span class="badge green badgeOnline" title="{lang}wcf.user.online.title{/lang}">{lang}wcf.user.online{/lang}</span>{/if}
-                                       </div>
-                               {/if}
-                       {/if}
-                       
-                       {if MODULE_USER_RANK && MESSAGE_SIDEBAR_ENABLE_RANK}
-                               {if $userProfile->getUserTitle()}
-                                       <div class="userTitle">
-                                               <p class="badge userTitleBadge{if $userProfile->getRank() && $userProfile->getRank()->cssClassName} {@$userProfile->getRank()->cssClassName}{/if}" itemprop="title">{$userProfile->getUserTitle()}</p>
-                                       </div>
-                               {/if}
-                               {if $userProfile->getRank() && $userProfile->getRank()->rankImage}
-                                       <div class="userRank">{@$userProfile->getRank()->getImage()}</div>
-                               {/if}
-                       {/if}
-               {else}
-                       <header>
-                               <h2 class="username">
-                                       <span>{@$userProfile->username}</span>
-                               </h2>
-                               
-                               <div class="userTitle">
-                                       <p class="badge">{lang}wcf.user.guest{/lang}</p>
-                               </div>
-                               
-                               {event name='header'}
-                       </header>
-               {/if}
-               
-               {event name='beforeCredits'}
-               
-               {if $userProfile->userID}
-                       {hascontent}
-                               <div class="userCredits">
-                                       <dl class="plain dataList">
-                                               {content}
-                                                       {if MESSAGE_SIDEBAR_ENABLE_LIKES_RECEIVED && $userProfile->likesReceived}
-                                                               <dt>{lang}wcf.like.likesReceived{/lang}</dt>
-                                                               <dd>{#$userProfile->likesReceived}</dd>
-                                                       {/if}
-                                                       
-                                                       {if MESSAGE_SIDEBAR_ENABLE_ACTIVITY_POINTS && $userProfile->activityPoints}
-                                                               <dt><a class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showDetails{/lang}" data-user-id="{@$userProfile->userID}">{lang}wcf.user.activityPoint{/lang}</a></dt>
-                                                               <dd>{#$userProfile->activityPoints}</dd>
-                                                       {/if}
-                                                       {event name='userCredits'}
-                                                       {if MESSAGE_SIDEBAR_USER_OPTIONS}
-                                                               {assign var='__sidebarUserOptions' value=','|explode:MESSAGE_SIDEBAR_USER_OPTIONS}
-                                                               {foreach from=$__sidebarUserOptions item='__sidebarUserOption'}
-                                                                       {if $userProfile->getUserOption($__sidebarUserOption)}
-                                                                               <dt>{lang}wcf.user.option.{$__sidebarUserOption}{/lang}</dt>
-                                                                               <dd{if $__sidebarUserOption == 'location'} itemprop="locality"{/if}>{@$userProfile->getFormattedUserOption($__sidebarUserOption)}</dd>
-                                                                       {/if}
-                                                               {/foreach}
-                                                       {/if}
-                                               {/content}
-                                       </dl>
-                               </div>
-                       {/hascontent}
-               {/if}
-               
-               {event name='afterCredits'}
-       </div>
-</aside>
diff --git a/com.woltlab.wcf/template/messageUserOptionOutput.tpl b/com.woltlab.wcf/template/messageUserOptionOutput.tpl
deleted file mode 100644 (file)
index 0260af3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{hascontent}
-       <div id="{$option->optionName}">
-               {content}
-                       {@$value}
-               {/content}
-       </div>
-       
-       <script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               $('#{$option->optionName}').parents('dl:eq(0)').addClass('wide');
-       });
-       //]]>
-       </script>
-{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationActivation.tpl b/com.woltlab.wcf/template/moderationActivation.tpl
deleted file mode 100644 (file)
index 010f00c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.moderation.activation{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Moderation.Activation.Management({@$queue->queueID}, '{link controller='ModerationList'}{/link}');
-                       
-                       WCF.Language.addObject({
-                               'wcf.moderation.activation.enableContent.confirmMessage': '{lang}wcf.moderation.activation.enableContent.confirmMessage{/lang}',
-                               'wcf.moderation.activation.removeContent.confirmMessage': '{lang}wcf.moderation.activation.removeContent.confirmMessage{/lang}'
-                       });
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.moderation.activation{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       <nav>
-               <ul>
-                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
-                       
-                       {event name='contentNavigationButtonsTop'}
-               </ul>
-       </nav>
-</div>
-
-<form method="post" action="{link controller='ModerationActivation' id=$queue->queueID}{/link}" class="container containerPadding marginTop">
-       <fieldset>
-               <legend>{lang}wcf.moderation.activation.details{/lang}</legend>
-               
-               <dl>
-                       <dt>{lang}wcf.global.objectID{/lang}</dt>
-                       <dd>{#$queue->queueID}</dd>
-               </dl>
-               {if $queue->lastChangeTime}
-                       <dl>
-                               <dt>{lang}wcf.moderation.lastChangeTime{/lang}</dt>
-                               <dd>{@$queue->lastChangeTime|time}</dd>
-                       </dl>
-               {/if}
-               <dl>
-                       <dt>{lang}wcf.moderation.assignedUser{/lang}</dt>
-                       <dd>
-                               <ul>
-                                       {if $assignedUserID && ($assignedUserID != $__wcf->getUser()->userID)}
-                                               <li><label><input type="radio" name="assignedUserID" value="{@$assignedUserID}" checked="checked" /> {$queue->assignedUsername}</label></li>
-                                       {/if}
-                                       <li><label><input type="radio" name="assignedUserID" value="{@$__wcf->getUser()->userID}"{if $assignedUserID == $__wcf->getUser()->userID} checked="checked"{/if} /> {$__wcf->getUser()->username}</label></li>
-                                       <li><label><input type="radio" name="assignedUserID" value="0"{if !$assignedUserID} checked="checked"{/if} /> {lang}wcf.moderation.assignedUser.nobody{/lang}</label></li>
-                               </ul>
-                       </dd>
-               </dl>
-               {if $queue->assignedUser}
-                       <dl>
-                               
-                               <dd><a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a></dd>
-                       </dl>
-               {/if}
-               <dl>
-                       <dt><label for="comment">{lang}wcf.moderation.comment{/lang}</label></dt>
-                       <dd><textarea id="comment" name="comment" rows="4" cols="40">{$comment}</textarea></dd>
-               </dl>
-               
-               {event name='detailsFields'}
-               
-               <div class="formSubmit">
-                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" />
-               </div>
-       </fieldset>
-       
-       {event name='fieldsets'}
-</form>
-
-<header class="boxHeadline boxSubHeadline">
-       <h2>{lang}wcf.moderation.activation.content{/lang}</h2>
-</header>
-
-<div class="marginTop">
-       {@$disabledContent}
-</div>
-
-<div class="contentNavigation">
-       <nav>
-               <ul>
-                       <li class="jsOnly"><button id="enableContent">{lang}wcf.moderation.activation.enableContent{/lang}</button></li>
-                       <li class="jsOnly"><button id="removeContent">{lang}wcf.moderation.activation.removeContent{/lang}</button></li>
-                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
-                       
-                       {event name='contentNavigationButtonsBottom'}
-               </ul>
-       </nav>
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationComment.tpl b/com.woltlab.wcf/template/moderationComment.tpl
deleted file mode 100644 (file)
index becf299..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<article class="message messageReduced">
-       <div>
-               <section class="messageContent">
-                       <div>
-                               <header class="messageHeader">
-                                       <div class="box32">
-                                               <a href="{link controller='User' object=$message->getUserProfile()->getDecoratedObject()}{/link}" class="framed">{@$message->getUserProfile()->getAvatar()->getImageTag(32)}</a>
-                                               
-                                               <div class="messageHeadline">
-                                                       <h1><a href="{@$message->getLink()}">{$message->getTitle()}</a></h1>
-                                                       <p>
-                                                               <span class="username"><a href="{link controller='User' object=$message->getUserProfile()->getDecoratedObject()}{/link}">{$message->getUsername()}</a></span>
-                                                               {@$message->getTime()|time}
-                                                       </p>
-                                               </div>
-                                       </div>
-                               </header>
-                               
-                               <div class="messageBody">
-                                       <div>
-                                               <div class="messageText">
-                                                       {@$message->getFormattedMessage()}
-                                               </div>
-                                       </div>
-                               </div>
-                       </div>
-               </section>
-       </div>
-</article>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationList.tpl b/com.woltlab.wcf/template/moderationList.tpl
deleted file mode 100644 (file)
index 289cb52..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.moderation.moderation{/lang} {if $pageNo > 1}- {lang}wcf.page.pageNo{/lang} {/if}- {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       {* moderation type *}
-       <fieldset>
-               <legend>{lang}wcf.moderation.filterByType{/lang}</legend>
-               
-               <nav>
-                       <ul>
-                               <li{if $definitionID == 0} class="active"{/if}><a href="{link controller='ModerationList'}definitionID=0&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.type.all{/lang}</a></li>
-                               {foreach from=$availableDefinitions key=__definitionID item=definitionName}
-                                       <li{if $definitionID == $__definitionID} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$__definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.type.{$definitionName}{/lang}</a></li>
-                               {/foreach}
-                               
-                               {event name='sidebarModerationType'}
-                       </ul>
-               </nav>
-       </fieldset>
-       
-       {* assigned user *}
-       <fieldset>
-               <legend>{lang}wcf.moderation.filterByUser{/lang}</legend>
-               
-               <nav>
-                       <ul>
-                               <li{if $assignedUserID == -1} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID=-1&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.allEntries{/lang}</a></li>
-                               <li{if $assignedUserID == 0} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID=0&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.nobody{/lang}</a></li>
-                               <li{if $assignedUserID == $__wcf->getUser()->userID} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$__wcf->getUser()->userID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.myself{/lang}</a></li>
-                               
-                               {event name='sidebarAssignedUser'}
-                       </ul>
-               </nav>
-       </fieldset>
-       
-       {* status *}
-       <fieldset>
-               <legend>{lang}wcf.moderation.status{/lang}</legend>
-               
-               <nav>
-                       <ul>
-                               <li{if $status == -1} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status=-1&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.status.all{/lang}</a></li>
-                               <li{if $status == 2} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status=2&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.status.done{/lang}</a></li>
-                               
-                               {event name='sidebarStatus'}
-                       </ul>
-               </nav>
-       </fieldset>
-       
-       {event name='sidebarBoxes'}
-{/capture}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.moderation.moderation{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {pages print=true assign=pagesLinks controller='ModerationList' link="id=$definitionID&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $objects|count}
-       <div class="marginTop tabularBox tabularBoxTitle messageGroupList">
-               <header>
-                       <h2>{if $status == 2}{lang}wcf.moderation.doneItems{/lang}{else}{lang}wcf.moderation.outstandingItems{/lang}{/if} <span class="badge badgeInverse">{#$items}</span></h2>
-               </header>
-               
-               <table class="table">
-                       <thead>
-                               <tr>
-                                       <th class="columnID{if $sortField == 'queueID'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=queueID&sortOrder={if $sortField == 'queueID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.objectID{/lang}</a></th>
-                                       <th class="columnText columnTitle">{lang}wcf.moderation.title{/lang}</th>
-                                       <th class="columnText columnAssignedUserID{if $sortField == 'assignedUsername'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=assignedUsername&sortOrder={if $sortField == 'assignedUsername' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.moderation.assignedUser{/lang}</a></th>
-                                       <th class="columnDate columnLastChangeTime{if $sortField == 'lastChangeTime'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=lastChangeTime&sortOrder={if $sortField == 'lastChangeTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.moderation.lastChangeTime{/lang}</a></th>
-                                       
-                                       {event name='columnHeads'}
-                               </tr>
-                       </thead>
-                       
-                       <tbody>
-                               {foreach from=$objects item=entry}
-                                       <tr>
-                                               <td class="columnID">{#$entry->queueID}</td>
-                                               <td class="columnText columnSubject">
-                                                       <h3>
-                                                               <span class="badge label">{lang}wcf.moderation.type.{@$definitionNames[$entry->objectTypeID]}{/lang}</span>
-                                                               <a href="{$entry->getLink()}" class="messageGroupLink">{$entry->getTitle()}</a>
-                                                       </h3>
-                                                       <small>{if $entry->userID}<a href="{link controller='User' id=$entry->userID}{/link}" class="userLink" data-user-id="{@$entry->userID}">{$entry->username}</a>{else}{lang}wcf.user.guest{/lang}{/if} - {@$entry->time|time}</small>     
-                                               </td>
-                                               <td class="columnText columnAssignedUserID">{if $entry->assignedUserID}<a href="{link controller='User' id=$entry->assignedUserID}{/link}" class="userLink" data-user-id="{@$entry->assignedUserID}">{$entry->assignedUsername}</a>{/if}</td>
-                                               <td class="columnDate columnLastChangeTime">{if $entry->lastChangeTime}{@$entry->lastChangeTime|time}{/if}</td>
-                                               
-                                               {event name='columns'}
-                                       </tr>
-                               {/foreach}
-                       </tbody>
-               </table>
-       </div>
-       
-       <div class="contentNavigation">
-               {@$pagesLinks}
-               
-               {hascontent}
-                       <nav>
-                               <ul>
-                                       {content}
-                                               {event name='contentNavigationButtonsBottom'}
-                                       {/content}
-                               </ul>
-                       </nav>
-               {/hascontent}
-       </div>
-{else}
-       <p class="info">{lang}wcf.moderation.noItems{/lang}</p>
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationQueueList.tpl b/com.woltlab.wcf/template/moderationQueueList.tpl
deleted file mode 100644 (file)
index 5ba8cb0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{foreach from=$queues item=queue}
-       <li>
-               <a href="{@$queue->getLink()}" class="box24">
-                       <div class="framed">
-                               {@$queue->getUserProfile()->getAvatar()->getImageTag(24)}
-                       </div>
-                       <div>
-                               <h3>{$queue->getAffectedObject()->getTitle()}</h3>
-                               <small>{$queue->getAffectedObject()->getUsername()} - {@$queue->getAffectedObject()->getTime()|time}</small>
-                       </div>
-               </a>
-       </li>
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationReport.tpl b/com.woltlab.wcf/template/moderationReport.tpl
deleted file mode 100644 (file)
index 7ccadf3..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.moderation.report{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Moderation.Report.Management({@$queue->queueID}, '{link controller='ModerationList'}{/link}');
-                       
-                       WCF.Language.addObject({
-                               'wcf.moderation.report.removeContent.confirmMessage': '{lang}wcf.moderation.report.removeContent.confirmMessage{/lang}',
-                               'wcf.moderation.report.removeReport.confirmMessage': '{lang}wcf.moderation.report.removeReport.confirmMessage{/lang}'
-                       });
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.moderation.report{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       <nav>
-               <ul>
-                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
-                       
-                       {event name='contentNavigationButtonsTop'}
-               </ul>
-       </nav>
-</div>
-
-<form method="post" action="{link controller='ModerationReport' id=$queue->queueID}{/link}" class="container containerPadding marginTop">
-       <fieldset>
-               <legend>{lang}wcf.moderation.report.details{/lang}</legend>
-               
-               <dl>
-                       <dt>{lang}wcf.global.objectID{/lang}</dt>
-                       <dd>{#$queue->queueID}</dd>
-               </dl>
-               <dl>
-                       <dt>{lang}wcf.moderation.report.reportedBy{/lang}</dt>
-                       <dd>{if $queue->userID}<a href="{link controller='User' id=$queue->userID}{/link}" class="userLink" data-user-id="{@$queue->userID}">{$queue->username}</a>{else}{lang}wcf.user.guest{/lang}{/if} ({@$queue->time|time})</dd>
-               </dl>
-               {if $queue->lastChangeTime}
-                       <dl>
-                               <dt>{lang}wcf.moderation.lastChangeTime{/lang}</dt>
-                               <dd>{@$queue->lastChangeTime|time}</dd>
-                       </dl>
-               {/if}
-               <dl>
-                       <dt>{lang}wcf.moderation.assignedUser{/lang}</dt>
-                       <dd>
-                               <ul>
-                                       {if $assignedUserID && ($assignedUserID != $__wcf->getUser()->userID)}
-                                               <li><label><input type="radio" name="assignedUserID" value="{@$assignedUserID}" checked="checked" /> {$queue->assignedUsername}</label></li>
-                                       {/if}
-                                       <li><label><input type="radio" name="assignedUserID" value="{@$__wcf->getUser()->userID}"{if $assignedUserID == $__wcf->getUser()->userID} checked="checked"{/if} /> {$__wcf->getUser()->username}</label></li>
-                                       <li><label><input type="radio" name="assignedUserID" value="0"{if !$assignedUserID} checked="checked"{/if} /> {lang}wcf.moderation.assignedUser.nobody{/lang}</label></li>
-                               </ul>
-                       </dd>
-               </dl>
-               {if $queue->assignedUser}
-                       <dl>
-                               
-                               <dd><a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a></dd>
-                       </dl>
-               {/if}
-               <dl>
-                       <dt>{lang}wcf.moderation.report.reason{/lang}</dt>
-                       <dd>{@$queue->getFormattedMessage()}</dd>
-               </dl>
-               <dl>
-                       <dt><label for="comment">{lang}wcf.moderation.comment{/lang}</label></dt>
-                       <dd><textarea id="comment" name="comment" rows="4" cols="40">{$comment}</textarea></dd>
-               </dl>
-               
-               {event name='detailsFields'}
-               
-               <div class="formSubmit">
-                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" />
-               </div>
-       </fieldset>
-       
-       {event name='fieldsets'}
-</form>
-
-<header class="boxHeadline boxSubHeadline">
-       <h2>{lang}wcf.moderation.report.reportedContent{/lang}</h2>
-</header>
-
-<div class="marginTop">
-       {@$reportedContent}
-</div>
-
-<div class="contentNavigation">
-       <nav>
-               <ul>
-                       <li class="jsOnly"><button id="removeContent">{lang}wcf.moderation.report.removeContent{/lang}</button></li>
-                       {if $queue->status != 2}
-                               <li class="jsOnly"><button id="removeReport">{lang}wcf.moderation.report.removeReport{/lang}</button></li>
-                       {/if}
-                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
-                       
-                       {event name='contentNavigationButtonsBottom'}
-               </ul>
-       </nav>
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/moderationReportDialog.tpl b/com.woltlab.wcf/template/moderationReportDialog.tpl
deleted file mode 100644 (file)
index e0d98db..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{if $alreadyReported}
-       <p class="info">{lang}wcf.moderation.report.alreadyReported{/lang}</p>
-{else}
-       <fieldset>
-               <legend><label for="reason">{lang}wcf.moderation.report.reason{/lang}</label></legend>
-               
-               <dl class="wide">
-                       <dd>
-                               <textarea id="reason" required="required" cols="60" rows="10" class="jsReportMessage"></textarea>
-                               <small>{lang}wcf.moderation.report.reason.description{/lang}</small>
-                       </dd>
-               </dl>
-               
-               {event name='reasonFields'}
-       </fieldset>
-       
-       {event name='fieldsets'}
-       
-       <div class="formSubmit">
-               <button class="jsSubmitReport buttonPrimary" accesskey="s">{lang}wcf.global.button.submit{/lang}</button>
-       </div>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/multiSelectOptionType.tpl b/com.woltlab.wcf/template/multiSelectOptionType.tpl
deleted file mode 100644 (file)
index 3c8ce85..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<select id="{$option->optionName}" name="values[{$option->optionName}][]" multiple="multiple" size="{if $selectOptions|count > 10}10{else}{@$selectOptions|count}{/if}">
-{foreach from=$selectOptions key=key item=selectOption}
-       <option value="{$key}"{if $key|in_array:$value} selected="selected"{/if}>{lang}{@$selectOption}{/lang}</option>
-{/foreach}
-</select>
diff --git a/com.woltlab.wcf/template/multipleLanguageInputJavascript.tpl b/com.woltlab.wcf/template/multipleLanguageInputJavascript.tpl
deleted file mode 100644 (file)
index 2a4a32a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{if !$forceSelection|isset}{assign var=forceSelection value=false}{/if}
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
-               var $values = { {implode from=$i18nValues[$elementIdentifier] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
-               new WCF.MultipleLanguageInput('{@$elementIdentifier}', {if $forceSelection}true{else}false{/if}, $values, $availableLanguages);
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/newPassword.tpl b/com.woltlab.wcf/template/newPassword.tpl
deleted file mode 100644 (file)
index feaefd5..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.newPassword{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.newPassword{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='NewPassword'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.newPassword{/lang}</legend>
-                       
-                       <dl{if $errorField == 'userID'} class="formError"{/if}>
-                               <dt>
-                                       <label for="userID">{lang}wcf.user.userID{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="text" id="userID" name="u" value="{@$userID}" required="required" class="medium" />
-                                       {if $errorField == 'userID'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'invalid'}{lang}wcf.user.userID.error.invalid{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'lostPasswordKey'} class="formError"{/if}>
-                               <dt>
-                                       <label for="lostPasswordKey">{lang}wcf.user.lostPasswordKey{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="text" id="lostPasswordKey" name="k" value="{$lostPasswordKey}" required="required" class="medium" />
-                                       {if $errorField == 'lostPasswordKey'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                       {if $errorType == 'invalid'}{lang}wcf.user.lostPasswordKey.error.invalid{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-               
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/notificationList.tpl b/com.woltlab.wcf/template/notificationList.tpl
deleted file mode 100644 (file)
index 373b496..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.notification.notifications{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.user.notification.markAsConfirmed': '{lang}wcf.user.notification.markAsConfirmed{/lang}'
-                       });
-                       
-                       new WCF.Notification.List();
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.notification.notifications{/lang} <span class="badge jsNotificationsBadge">{#$__wcf->getUserNotificationHandler()->getNotificationCount()}</span></h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {pages print=true assign=pagesLinks controller='NotificationList' link="pageNo=%d"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {if $notifications[notifications]}<li class="jsOnly"><a class="button jsMarkAllAsConfirmed"><span class="icon icon16 icon-remove"></span> <span>{lang}wcf.user.notification.markAllAsConfirmed{/lang}</span></a></li>{/if}
-                                       
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $notifications[notifications]}
-       <div class="container marginTop">
-               <ul class="containerList">
-                       {foreach from=$notifications[notifications] item=$notification}
-                               <li class="jsNotificationItem" data-notification-id="{@$notification[notificationID]}" data-link="{$notification[event]->getLink()}">
-                                       <div class="box48">
-                                               <a href="{link controller='User' object=$notification[event]->getAuthor()}{/link}" title="{$notification[event]->getAuthor()->username}" class="framed">{@$notification[event]->getAuthor()->getAvatar()->getImageTag(48)}</a>
-                                               
-                                               <div class="details">
-                                                       <div class="containerHeadline">
-                                                               <h3><a href="{link controller='User' object=$notification[event]->getAuthor()}{/link}" class="userLink" data-user-id="{@$notification[event]->getAuthor()->userID}">{$notification[event]->getAuthor()->username}</a></h3> 
-                                                               <small>{@$notification[time]|time}</small>
-                                                       </div>
-                                                       
-                                                       <p>{@$notification[event]->getMessage()}</p>
-                                                       
-                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
-                                                               <ul class="buttonList jsOnly">
-                                                                       <li><a class="jsMarkAsConfirmed jsTooltip" title="{lang}wcf.user.notification.markAsConfirmed{/lang}"><span class="icon icon16 icon-remove"></span></a></li>
-                                                               </ul>
-                                                       </nav>
-                                               </div>
-                                       </div>
-                               </li>
-                       {/foreach}
-               </ul>
-       </div>
-       
-       <div class="contentNavigation">
-               {@$pagesLinks}
-               
-               {hascontent}
-                       <nav>
-                               <ul>
-                                       {content}
-                                               {event name='contentNavigationButtonsBottom'}
-                                       {/content}
-                               </ul>
-                       </nav>
-               {/hascontent}
-       </div>
-{else}
-       <p class="info">{lang}wcf.user.notification.noNotifications{/lang}</p>
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/notificationListOustanding.tpl b/com.woltlab.wcf/template/notificationListOustanding.tpl
deleted file mode 100644 (file)
index 92a3b28..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{foreach from=$notifications[notifications] item=notification}
-       <li class="jsNotificationItem notificationItem" data-link="{$notification[event]->getLink()}" data-notification-id="{@$notification[notificationID]}">
-               <a class="box24">
-                       <div class="framed">
-                               {@$notification[event]->getAuthor()->getAvatar()->getImageTag(24)}
-                       </div>
-                       <div>
-                               <h3>{@$notification[event]->getMessage()}</h3>
-                               <small>{$notification[event]->getAuthor()->username} - {@$notification[time]|time}</small>
-                       </div>
-               </a>
-       </li>
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/notificationSettings.tpl b/com.woltlab.wcf/template/notificationSettings.tpl
deleted file mode 100644 (file)
index dbb021a..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.notification.notifications{/lang} - {lang}wcf.user.menu.settings{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       $('#notificationSettings > fieldset > dl > dd > label > input').each(function(index, value) {
-                               var $input = $(value);
-                               $input.on('click', function(event) {
-                                       var $input = $(event.currentTarget);
-                                       $input.parents('dd').find('.jsMailNotificationType').toggle();
-                               });
-                               if (!$input.is(':checked')) {
-                                       $input.parents('dd').find('.jsMailNotificationType').hide();
-                               }
-                       });
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.notification.notifications{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-{if $success|isset}
-       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='NotificationSettings'}{/link}">
-       <div class="container containerPadding marginTop" id="notificationSettings">
-               {foreach from=$events key='eventCategory' item='eventList'}
-                       <fieldset>
-                               <legend>{lang}wcf.user.notification.{$eventCategory}{/lang}</legend>
-                               
-                               <dl>
-                                       {foreach from=$eventList item='event'}
-                                               <dd>
-                                                       <label><input type="checkbox" name="settings[{@$event->eventID}][enabled]" value="1"{if $settings[$event->eventID][enabled]} checked="checked"{/if} /> {lang}wcf.user.notification.{$event->objectType}.{$event->eventName}{/lang}</label>
-                                                       {hascontent}<small>{content}{lang __optional=true}wcf.user.notification.{$event->objectType}.{$event->eventName}.description{/lang}{/content}</small>{/hascontent}
-                                                       <small class="jsMailNotificationType">
-                                                               <select name="settings[{@$event->eventID}][mailNotificationType]">
-                                                                       <option value="none">{lang}wcf.user.notification.mailNotificationType.none{/lang}</option>
-                                                                       <option value="instant"{if $settings[$event->eventID][mailNotificationType] == 'instant'} selected="selected"{/if}>{lang}wcf.user.notification.mailNotificationType.instant{/lang}</option>
-                                                                       <option value="daily"{if $settings[$event->eventID][mailNotificationType] == 'daily'} selected="selected"{/if}>{lang}wcf.user.notification.mailNotificationType.daily{/lang}</option>
-                                                               </select>
-                                                       </small>
-                                               </dd>
-                                       {/foreach}
-                               </dl>
-                       </fieldset>
-               {/foreach}
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/offline.tpl b/com.woltlab.wcf/template/offline.tpl
deleted file mode 100644 (file)
index 3f47d84..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.global.error.title{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<div class="warning">
-       <p><strong>{lang}wcf.page.offline{/lang}</strong></p>
-       <p>{if OFFLINE_MESSAGE_ALLOW_HTML}{@OFFLINE_MESSAGE}{else}{@OFFLINE_MESSAGE|htmlspecialchars|nl2br}{/if}</p>
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/permissionDenied.tpl b/com.woltlab.wcf/template/permissionDenied.tpl
deleted file mode 100644 (file)
index 7c56d45..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-{include file="documentHeader"}
-
-<head>
-       <title>{lang}wcf.global.error.permissionDenied.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<p class="error">{lang}wcf.global.error.permissionDenied{/lang}</p>
-
-{event name='content'}
-
-{if ENABLE_DEBUG_MODE}
-       <!-- 
-       {$name} thrown in {$file} ({@$line})
-       Stacktrace:
-       {$stacktrace}
-       -->
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/poll.tpl b/com.woltlab.wcf/template/poll.tpl
deleted file mode 100644 (file)
index 9810cb7..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-{if $__wcf->getUser()->userID && !$__pollLoadedJavaScript|isset}
-       {assign var=__pollLoadedJavaScript value=true}
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Poll{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Poll.Manager('.pollContainer');
-               });
-               //]]>
-       </script>
-{/if}
-
-<div class="container containerPadding pollContainer" data-poll-id="{@$poll->pollID}" data-can-vote="{if $poll->canVote()}1{else}0{/if}" data-can-view-result="{if $poll->canSeeResult()}1{else}0{/if}" data-can-view-participants="{if $poll->isPublic}true{else}false{/if}" data-in-vote="{if $poll->canVote() && !$poll->isParticipant()}1{else}0{/if}" data-question="{$poll->question}" data-max-votes="{@$poll->maxVotes}">
-       <fieldset>
-               <legend>{$poll->question} <span class="badge jsTooltip" title="{lang}wcf.poll.totalVotes{/lang}">{#$poll->votes}</span></legend>
-               
-               <div class="pollInnerContainer">
-                       {if !$__wcf->getUser()->userID}
-                               {if $poll->canSeeResult()}
-                                       {include file='pollResult'}
-                               {else}
-                                       {include file='pollVote'}
-                               {/if}
-                       {else}
-                               {if $poll->canVote() && !$poll->isParticipant()}
-                                       {include file='pollVote'}
-                               {else}
-                                       {include file='pollResult'}
-                               {/if}
-                       {/if}
-                       
-                       {event name='pollData'}
-               </div>
-       </fieldset>
-       
-       {if $__wcf->getUser()->userID}
-               <div class="formSubmit jsOnly">
-                       <button class="small jsButtonPollVote">{lang}wcf.poll.button.vote{/lang}</button>
-                       <button class="small jsButtonPollShowVote">{lang}wcf.poll.button.showVote{/lang}</button>
-                       <button class="small jsButtonPollShowResult">{lang}wcf.poll.button.showResult{/lang}</button>
-                       <button class="small jsButtonPollShowParticipants">{lang}wcf.poll.button.showParticipants{/lang}</button>
-                       {event name='pollButtons'}
-               </div>
-       {/if}
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/pollResult.tpl b/com.woltlab.wcf/template/pollResult.tpl
deleted file mode 100644 (file)
index d42edb2..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<ol class="pollResultList">
-       {foreach from=$poll->getOptions(true) item=option}
-               <li class="pollResultItem">
-                       <span class="pollMeter" style="width: {if $option->getRelativeVotes($poll)}{@$option->getRelativeVotes($poll)}%{else}0{/if}">&nbsp;</span>
-                       <div class="caption">
-                               <span class="optionName">
-                                       {$option->optionValue} ({#$option->votes})</span>
-                                       <span class="relativeVotes">{@$option->getRelativeVotes($poll)}%</span>
-                               </span>
-                       </div>
-               </li>
-       {/foreach}
-</ol>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/pollVote.tpl b/com.woltlab.wcf/template/pollVote.tpl
deleted file mode 100644 (file)
index 29211fb..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<dl class="wide jsPollVote" data-max-votes="{@$poll->maxVotes}">
-       {foreach from=$poll->getOptions() item=option}
-               <dd>
-                       <label>
-                               {if $poll->canVote()}<input type="{if $poll->maxVotes > 1}checkbox{else}radio{/if}" name="pollOptions{@$poll->pollID}[]" value="{$option->optionValue}" data-option-id="{@$option->optionID}"{if $option->voted} checked="checked"{/if} />{/if}
-                               {$option->optionValue}
-                       </label>
-               </dd>
-       {/foreach}
-</dl>
-{if $poll->canVote()}
-       {if $poll->maxVotes > 1}<small>{lang}wcf.poll.multipleVotes{/lang}</small>{/if}
-{else}
-       <p class="info">{lang}wcf.poll.restrictedResult{/lang}</p>
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/quoteBBCodeTag.tpl b/com.woltlab.wcf/template/quoteBBCodeTag.tpl
deleted file mode 100644 (file)
index c1c386b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<blockquote class="container containerPadding quoteBox"{if $quoteLink} cite="{$quoteLink}"{/if}>
-       {if $quoteAuthor}
-               <header>
-                       <h3>
-                               {if $quoteLink}
-                                       <a href="{@$quoteLink}">{lang}wcf.bbcode.quote.title{/lang}</a>
-                               {else}
-                                       {lang}wcf.bbcode.quote.title{/lang}
-                               {/if}
-                       </h3>
-               </header>
-       {/if}
-       
-       <div>
-               {@$content}
-       </div>
-</blockquote>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/radioButtonOptionType.tpl b/com.woltlab.wcf/template/radioButtonOptionType.tpl
deleted file mode 100644 (file)
index 763c9db..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-{foreach name=radioButtons from=$selectOptions key=key item=selectOption}
-       <label><input {if $tpl.foreach.radioButtons.first}id="{$option->optionName}" {/if}type="radio" name="values[{$option->optionName}]" value="{$key}" {if $value == $key} checked="checked"{/if} {if $disableOptions[$key]|isset || $enableOptions[$key]|isset}class="jsEnablesOptions" data-disable-options="[ {@$disableOptions[$key]}]" data-enable-options="[ {@$enableOptions[$key]}]"{/if} /> {lang}{@$selectOption}{/lang}</label>
-{/foreach}
diff --git a/com.woltlab.wcf/template/recaptcha.tpl b/com.woltlab.wcf/template/recaptcha.tpl
deleted file mode 100644 (file)
index c8aa647..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<fieldset>
-       <legend><label for="recaptcha_response_field">{lang}wcf.recaptcha.title{/lang}</label></legend>
-       <small>{lang}wcf.recaptcha.description{/lang}</small>
-       
-       <dl class="wide reCaptcha{if $errorField == 'recaptchaString'} formError{/if}">
-               <script type="text/javascript">
-                       //<![CDATA[
-                       var RecaptchaOptions = {
-                               lang: '{@$recaptchaLanguageCode}',
-                               theme : 'custom'
-                       }
-                       //]]>
-               </script>
-               <dt class="jsOnly">
-                       <label for="recaptcha_response_field">reCAPTCHA</label>
-               </dt>
-               <dd class="jsOnly">
-                       <div id="recaptcha_image" class="framed"></div>
-                       <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" class="medium marginTop" />
-                       {if $errorField == 'recaptchaString'}
-                               <small class="innerError">
-                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                       {if $errorType == 'false'}{lang}wcf.recaptcha.error.recaptchaString.false{/lang}{/if}
-                               </small>
-                       {/if}
-               </dd>
-               
-               {event name='fields'}
-               
-               <dd class="jsOnly">
-                       <ul class="buttonList">
-                               <li><a href="javascript:Recaptcha.reload()" class="button small"><span class="icon icon16 icon-repeat"></span> <span>{lang}wcf.recaptcha.reload{/lang}</span></a></li>
-                               <li class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')" class="button small"><span class="icon icon16 icon-volume-up"></span> <span>{lang}wcf.recaptcha.audio{/lang}</span></a></li>
-                               <li class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')" class="button small"><span class="icon icon16 icon-eye-open"></span> <span>{lang}wcf.recaptcha.image{/lang}</span></a></li>
-                               <li><a href="javascript:Recaptcha.showhelp()" class="button small"><span class="icon icon16 icon-question-sign"></span> <span>{lang}wcf.recaptcha.help{/lang}</span></a></li>
-                               {event name='buttons'}
-                       </ul>
-               </dd>
-               
-               <script type="text/javascript" src="http{if $recaptchaUseSSL}s{/if}://www.google.com/recaptcha/api/challenge?k={$recaptchaPublicKey}"></script>
-               <noscript>
-                       <dd>
-                               <iframe src="http{if $recaptchaUseSSL}s{/if}://www.google.com/recaptcha/api/noscript?k={$recaptchaPublicKey}" height="300" width="500" seamless="seamless"></iframe><br />
-                               <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
-                               <input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
-                       </dd>
-                       {if $errorField == 'recaptchaString'}
-                               <small class="innerError">
-                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                       {if $errorType == 'false'}{lang}wcf.recaptcha.error.recaptchaString.false{/lang}{/if}
-                               </small>
-                       {/if}
-               </noscript>
-       </dl>
-</fieldset>
diff --git a/com.woltlab.wcf/template/recentActivities.tpl b/com.woltlab.wcf/template/recentActivities.tpl
deleted file mode 100644 (file)
index 713c5b4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-{hascontent}
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
-                               'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
-                       });
-                       
-                       new WCF.User.RecentActivityLoader({@$userID});
-               });
-               //]]>
-       </script>
-       
-       <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
-               {content}
-                       {include file='recentActivityListItem'}
-               {/content}
-       </ul>
-{hascontentelse}
-       <div class="containerPadding">
-               {if $placeholder|isset}{$placeholder}{/if}
-       </div>
-{/hascontent}
diff --git a/com.woltlab.wcf/template/recentActivityList.tpl b/com.woltlab.wcf/template/recentActivityList.tpl
deleted file mode 100644 (file)
index 8cfcc4b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.recentActivity{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <link rel="canonical" href="{link controller='RecentActivityList'}{/link}" />
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
-                               'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
-                       });
-                       
-                       new WCF.User.RecentActivityLoader(null);
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       {@$__boxSidebar}
-{/capture}
-
-{include file='header' sidebarOrientation='right'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.recentActivity{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $eventList|count}
-       <div class="container marginTop">
-               <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
-                       {include file='recentActivityListItem'}
-               </ul>
-       </div>
-       
-       <div class="contentNavigation">
-               {hascontent}
-                       <nav>
-                               <ul>
-                                       {content}
-                                               {event name='contentNavigationButtonsBottom'}
-                                       {/content}
-                               </ul>
-                       </nav>
-               {/hascontent}
-       </div>
-{else}
-       <p class="info">{lang}wcf.user.recentActivity.noEntries{/lang}</p>
-{/if}
-
-
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/recentActivityListItem.tpl b/com.woltlab.wcf/template/recentActivityListItem.tpl
deleted file mode 100644 (file)
index 90cdcac..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{foreach from=$eventList item=event}
-       <li>
-               <div class="box48">
-                       <a href="{link controller='User' object=$event->getUserProfile()}{/link}" title="{$event->getUserProfile()->username}" class="framed">{@$event->getUserProfile()->getAvatar()->getImageTag(48)}</a>
-                       
-                       <div>
-                               <div class="containerHeadline">
-                                       <h3><a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3> 
-                                       <p><strong>{@$event->getTitle()}</strong></p>
-                                       <small class="containerContentType">{lang}wcf.user.recentActivity.{@$event->getObjectTypeName()}{/lang}</small>
-                               </div>
-                               
-                               <div>{@$event->getDescription()}</div>
-                       </div>
-               </div>
-       </li>
-{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/redirect.tpl b/com.woltlab.wcf/template/redirect.tpl
deleted file mode 100644 (file)
index 4827f3c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{include file="documentHeader"}
-
-<head>
-       <title>{lang}wcf.global.redirect.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
-       
-       {include file='headInclude'}
-       
-       <meta http-equiv="refresh" content="{if $wait|isset}{@$wait}{else}10{/if};URL={$url}" />
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<div class="{if !$status|empty}{@$status}{else}success{/if}">
-       <p>{@$message}</p>
-       <a href="{$url}">{lang}wcf.global.redirect.url{/lang}</a>
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/register.tpl b/com.woltlab.wcf/template/register.tpl
deleted file mode 100644 (file)
index 8ab4031..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.register{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-       
-       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.global.form.error.empty': '{lang}wcf.global.form.error.empty{/lang}',
-                               'wcf.user.username.error.notValid': '{lang}wcf.user.username.error.notValid{/lang}',
-                               'wcf.user.username.error.notUnique': '{lang}wcf.user.username.error.notUnique{/lang}',
-                               'wcf.user.email.error.notValid' : '{lang}wcf.user.email.error.notValid{/lang}',
-                               'wcf.user.email.error.notUnique' : '{lang}wcf.user.email.error.notUnique{/lang}',
-                               'wcf.user.confirmEmail.error.notEqual' : '{lang}wcf.user.confirmEmail.error.notEqual{/lang}',
-                               'wcf.user.password.error.notSecure' : '{lang}wcf.user.password.error.notSecure{/lang}',
-                               'wcf.user.confirmPassword.error.notEqual' : '{lang}wcf.user.confirmPassword.error.notEqual{/lang}'
-                       });
-                       
-                       new WCF.User.Registration.Validation.EmailAddress($('#email'), $('#confirmEmail'), null);
-                       new WCF.User.Registration.Validation.Password($('#password'), $('#confirmPassword'), null);
-                       new WCF.User.Registration.Validation.Username($('#username', null, {
-                               minlength: {@REGISTER_USERNAME_MIN_LENGTH},
-                               maxlength: {@REGISTER_USERNAME_MAX_LENGTH}
-                       }));
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-{include file='header' __disableLoginLink=true}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.register{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $isExternalAuthentication}
-       {if $__wcf->session->getVar('__githubToken')}
-               <p class="info">{lang}wcf.user.3rdparty.github.register{/lang}</p>
-       {elseif $__wcf->session->getVar('__twitterData')}
-               <p class="info">{lang}wcf.user.3rdparty.twitter.register{/lang}</p>
-       {elseif $__wcf->session->getVar('__facebookData')}
-               <p class="info">{lang}wcf.user.3rdparty.facebook.register{/lang}</p>
-       {elseif $__wcf->session->getVar('__googleData')}
-               <p class="info">{lang}wcf.user.3rdparty.google.register{/lang}</p>
-       {/if}
-{/if}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='Register'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.username{/lang}</legend>
-                       
-                       <dl{if $errorType.username|isset} class="formError"{/if}>
-                               <dt>
-                                       <label for="username">{lang}wcf.user.username{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
-                                       {if $errorType.username|isset}
-                                               <small class="innerError">
-                                                       {if $errorType.username == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                       {if $errorType.username == 'notValid'}{lang}wcf.user.username.error.notValid{/lang}{/if}
-                                                       {if $errorType.username == 'notUnique'}{lang}wcf.user.username.error.notUnique{/lang}{/if}
-                                               </small>
-                                       {/if}
-                                       <small>{lang}wcf.user.username.description{/lang}</small>
-                               </dd>
-                       </dl>
-                       
-                       {event name='usernameFields'}
-               </fieldset>
-               
-               <fieldset>
-                       <legend>{lang}wcf.user.email{/lang}</legend>
-                       
-                       <dl{if $errorType.email|isset} class="formError"{/if}>
-                               <dt>
-                                       <label for="email">{lang}wcf.user.email{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
-                                       {if $errorType.email|isset}
-                                               <small class="innerError">
-                                                       {if $errorType.email == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                       {if $errorType.email == 'notValid'}{lang}wcf.user.email.error.notValid{/lang}{/if}
-                                                       {if $errorType.email == 'notUnique'}{lang}wcf.user.email.error.notUnique{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorType.confirmEmail|isset} class="formError"{/if}>
-                               <dt>
-                                       <label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label>
-                               </dt>
-                               <dd>
-                                       <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" required="required" class="medium" />
-                                       {if $errorType.confirmEmail|isset}
-                                               <small class="innerError">
-                                                       {if $errorType.confirmEmail == 'notEqual'}{lang}wcf.user.confirmEmail.error.notEqual{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='emailFields'}
-               </fieldset>
-               
-               {if !$isExternalAuthentication}
-                       <fieldset>
-                               <legend>{lang}wcf.user.password{/lang}</legend>
-                               
-                               <dl{if $errorType.password|isset} class="formError"{/if}>
-                                       <dt>
-                                               <label for="password">{lang}wcf.user.password{/lang}</label>
-                                       </dt>
-                                       <dd>
-                                               <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
-                                               {if $errorType.password|isset}
-                                                       <small class="innerError">
-                                                               {if $errorType.password == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
-                                                               {if $errorType.password == 'notSecure'}{lang}wcf.user.password.error.notSecure{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                               <small>{lang}wcf.user.password.description{/lang}</small>
-                                       </dd>
-                               </dl>
-                               
-                               <dl{if $errorType.confirmPassword|isset} class="formError"{/if}>
-                                       <dt>
-                                               <label for="confirmPassword">{lang}wcf.user.confirmPassword{/lang}</label>
-                                       </dt>
-                                       <dd>
-                                               <input type="password" id="confirmPassword" name="confirmPassword" value="{$confirmPassword}" required="required" class="medium" />
-                                               {if $errorType.confirmPassword|isset}
-                                                       <small class="innerError">
-                                                               {if $errorType.confirmPassword == 'notEqual'}{lang}wcf.user.confirmPassword.error.notEqual{/lang}{/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               {event name='passwordFields'}
-                       </fieldset>
-               {/if}
-               
-               {if $availableLanguages|count > 1}
-                       <fieldset>
-                               <legend>{lang}wcf.user.language{/lang}</legend>
-                               
-                               <dl>
-                                       <dt><label for="languageID">{lang}wcf.user.language{/lang}</label></dt>
-                                       <dd>
-                                               <select id="languageID" name="languageID">
-                                                       {foreach from=$availableLanguages item=language}
-                                                               <option value="{@$language->languageID}"{if $language->languageID == $languageID} selected="selected"{/if}>{$language}</option>
-                                                       {/foreach}
-                                               </select>
-                                               <small>{lang}wcf.user.language.description{/lang}</small>
-                                       </dd>
-                               </dl>
-                               
-                               {hascontent}
-                                       <dl>
-                                               <dt><label>{lang}wcf.user.visibleLanguages{/lang}</label></dt>
-                                               <dd class="floated">
-                                               {content}
-                                                       {foreach from=$availableContentLanguages item=language}
-                                                               <label><input name="visibleLanguages[]" type="checkbox" value="{@$language->languageID}"{if $language->languageID|in_array:$visibleLanguages} checked="checked"{/if} /> {$language}</label>
-                                                       {/foreach}
-                                               {/content}
-                                               <small>{lang}wcf.user.visibleLanguages.description{/lang}</small></dd>
-                                       </dl>
-                               {/hascontent}
-                               
-                               {event name='languageFields'}
-                       </fieldset>
-               {/if}
-               
-               {foreach from=$optionTree item=category}
-                       <fieldset>
-                               <legend>{lang}wcf.user.option.category.{@$category[object]->categoryName}{/lang}</legend>
-                               
-                               {include file='userOptionFieldList' options=$category[options] langPrefix='wcf.user.option.'}
-                       </fieldset>
-               {/foreach}
-               
-               {event name='fieldsets'}
-               
-               {if $useCaptcha}
-                       {if $errorType.recaptchaString|isset}
-                               {assign var=errorField value='recaptchaString'}
-                               {assign var=errorType value=$errorType.recaptchaString}
-                       {/if}
-                       {include file='recaptcha'}
-               {/if}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/registerActivation.tpl b/com.woltlab.wcf/template/registerActivation.tpl
deleted file mode 100644 (file)
index 9f03a87..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.registerActivation{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.registerActivation{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $__wcf->user->userID && $__wcf->user->activationCode}<p class="info">{lang}wcf.user.registerActivation.info{/lang}</p>{/if}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='RegisterActivation'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend><label for="userID">{lang}wcf.user.registerActivation{/lang}</label></legend>
-                       
-                       <dl{if $errorField == 'username'} class="formError"{/if}>
-                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="username" name="username" value="{@$username}" required="required" class="medium" />
-                                       {if $errorField == 'username'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'notFound'}{lang}wcf.user.username.error.notFound{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'activationCode'} class="formError"{/if}>
-                               <dt><label for="activationCode">{lang}wcf.user.activationCode{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="activationCode" maxlength="9" name="activationCode" value="{@$activationCode}" required="required" class="medium" />
-                                       {if $errorField == 'activationCode'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'notValid'}{lang}wcf.user.activationCode.error.notValid{/lang}{/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-                       
-                       <dl>
-                               <dd>
-                                       <ul class="buttonList">
-                                               <li><a class="button small" href="{link controller='RegisterNewActivationCode'}{/link}"><span>{lang}wcf.user.newActivationCode{/lang}</span></a></li>
-                                               {event name='buttons'}
-                                       </ul>
-                               </dd>
-                       </dl>
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/registerNewActivationCode.tpl b/com.woltlab.wcf/template/registerNewActivationCode.tpl
deleted file mode 100644 (file)
index 5122f84..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.newActivationCode{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.newActivationCode{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-       
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-       
-<form method="post" action="{link controller='RegisterNewActivationCode'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.user.newActivationCode{/lang}</legend>
-                       
-                       <dl{if $errorField == 'username'} class="formError"{/if}>
-                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
-                                       {if $errorField == 'username'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {elseif $errorType == 'alreadyEnabled'}
-                                                               {lang}wcf.user.registerActivation.error.userAlreadyEnabled{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'password'} class="formError"{/if}>
-                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
-                               <dd>
-                                       <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
-                                       {if $errorField == 'password'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                               </dd>
-                       </dl>
-                       
-                       <dl{if $errorField == 'email'} class="formError"{/if}>
-                               <dt><label for="email">{lang}wcf.user.email{/lang}</label></dt>
-                               <dd>
-                                       <input type="email" id="email" name="email" value="{$email}" class="medium" />
-                                       {if $errorField == 'email'}
-                                               <small class="innerError">
-                                                       {lang}wcf.user.email.error.{@$errorType}{/lang}
-                                               </small>
-                                       {/if}
-                                       <small>{lang}wcf.user.registerNewActivationCode.email.description{/lang}</small>
-                               </dd>
-                       </dl>
-                       
-                       {event name='fields'}
-               </fieldset>
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/rssFeed.tpl b/com.woltlab.wcf/template/rssFeed.tpl
deleted file mode 100644 (file)
index 11242c0..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<rss version="2.0"
-       xmlns:atom="http://www.w3.org/2005/Atom"
-       xmlns:content="http://purl.org/rss/1.0/modules/content/"
-       xmlns:dc="http://purl.org/dc/elements/1.1/"
-       xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
->
-       <channel>
-               <title><![CDATA[{if $title}{$title} - {/if}{@PAGE_TITLE|language|escapeCDATA}]]></title>
-               <link><![CDATA[{@$baseHref|escapeCDATA}]]></link>
-               <description><![CDATA[{@PAGE_DESCRIPTION|escapeCDATA}]]></description>
-               <language>{@$__wcf->language->getFixedLanguageCode()}</language>
-               <pubDate>{'r'|gmdate:TIME_NOW}</pubDate>
-{assign var='dummy' value=$items->rewind()}
-               <lastBuildDate>{if $items->valid()}{'r'|gmdate:$items->current()->getTime()}{else}{'r'|gmdate:TIME_NOW}{/if}</lastBuildDate>
-               <ttl>60</ttl>
-               <generator><![CDATA[WoltLab Community Framework {@WCF_VERSION}]]></generator>
-               <atom:link href="{$__wcf->getRequestURI()}" rel="self" type="application/rss+xml" />
-{*             *}{foreach from=$items item='item'}
-               <item>
-                       <title><![CDATA[{@$item->getTitle()|escapeCDATA}]]></title>
-                       <link><![CDATA[{@$item->getLink()|escapeCDATA}]]></link>
-                       {hascontent}<description><![CDATA[{content}{@$item->getExcerpt()|escapeCDATA}{/content}]]></description>{/hascontent}
-                       <pubDate>{'r'|gmdate:$item->getTime()}</pubDate>
-                       <dc:creator>{@$item->getUsername()|escapeCDATA}</dc:creator>
-                       <guid><![CDATA[{@$item->getLink()|escapeCDATA}]]></guid>
-                       {foreach from=$item->getCategories() item='category'}
-                               <category><![CDATA[{@$category|escapeCDATA}]]></category>
-                       {/foreach}
-                       {hascontent}<content:encoded><![CDATA[{content}{@$item->getFormattedMessage()|escapeCDATA}{/content}]]></content:encoded>{/hascontent}
-                       <slash:comments>{@$item->getComments()|escapeCDATA}</slash:comments>
-               </item>
-{*             *}{/foreach}
-       </channel>
-{if ENABLE_BENCHMARK}
-       <!-- 
-               Execution time: {@$__wcf->getBenchmark()->getExecutionTime()}s ({#($__wcf->getBenchmark()->getExecutionTime()-$__wcf->getBenchmark()->getQueryExecutionTime())/$__wcf->getBenchmark()->getExecutionTime()*100}% PHP, {#$__wcf->getBenchmark()->getQueryExecutionTime()/$__wcf->getBenchmark()->getExecutionTime()*100}% SQL) | SQL queries: {#$__wcf->getBenchmark()->getQueryCount()} | Memory-Usage: {$__wcf->getBenchmark()->getMemoryUsage()}
-       
-{*     *}{if ENABLE_DEBUG_MODE}
-{*             *}{foreach from=$__wcf->getBenchmark()->getItems() item=item}
-{*     *}                      {if $item.type == 1}(SQL Query) {/if}{$item.text} ({@$item.use}s)
-{*             *}{/foreach}
-{*     *}{/if}
-       -->
-{/if}
-</rss>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/search.tpl b/com.woltlab.wcf/template/search.tpl
deleted file mode 100644 (file)
index dc94079..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.search.title{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.search.title{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-{if $errorMessage|isset}
-       <p class="error">{@$errorMessage}</p>
-{/if}
-
-<form method="post" action="{link controller='Search'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.search.general{/lang}</legend>
-                       
-                       <dl{if $errorField == 'q'} class="formError"{/if}>
-                               <dt><label for="searchTerm">{lang}wcf.search.query{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="searchTerm" name="q" value="{$query}" class="long" maxlength="255" autofocus="autofocus" />
-                                       {if $errorField == 'q'}
-                                               <small class="innerError">
-                                                       {if $errorType == 'empty'}
-                                                               {lang}wcf.global.form.error.empty{/lang}
-                                                       {else}
-                                                               {lang}wcf.search.query.error.{@$errorType}{/lang}
-                                                       {/if}
-                                               </small>
-                                       {/if}
-                                       <label><input type="checkbox" name="subjectOnly" value="1"{if $subjectOnly == 1} checked="checked"{/if} /> {lang}wcf.search.subjectOnly{/lang}</label>
-                                       {event name='queryOptions'}
-                                       
-                                       <p><small>{lang}wcf.search.query.description{/lang}</small></p>
-                               </dd>
-                       </dl>
-                       
-                       <dl>
-                               <dt><label for="searchAuthor">{lang}wcf.search.author{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="searchAuthor" name="username" value="{$username}" class="long" maxlength="255" autocomplete="off" />
-                                       <label><input type="checkbox" name="nameExactly" value="1"{if $nameExactly == 1} checked="checked"{/if} /> {lang}wcf.search.matchExactly{/lang}</label>
-                                       {event name='authorOptions'}
-                               </dd>
-                       </dl>
-                       
-                       <dl>
-                               <dt><label for="startDate">{lang}wcf.search.period{/lang}</label></dt>
-                               <dd>
-                                       <input type="date" id="startDate" name="startDate" value="{$startDate}" data-placeholder="{lang}wcf.date.period.start{/lang}" />
-                                       <input type="date" id="endDate" name="endDate" value="{$endDate}" data-placeholder="{lang}wcf.date.period.end{/lang}" />
-                                       {event name='periodOptions'}
-                               </dd>
-                       </dl>
-                       
-                       <dl>
-                               <dt><label for="sortField">{lang}wcf.search.sortBy{/lang}</label></dt>
-                               <dd>
-                                       <select id="sortField" name="sortField">
-                                               <option value="relevance"{if $sortField == 'relevance'} selected="selected"{/if}>{lang}wcf.search.sortBy.relevance{/lang}</option>
-                                               <option value="subject"{if $sortField == 'subject'} selected="selected"{/if}>{lang}wcf.search.sortBy.subject{/lang}</option>
-                                               <option value="time"{if $sortField == 'time'} selected="selected"{/if}>{lang}wcf.search.sortBy.time{/lang}</option>
-                                               <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.search.sortBy.username{/lang}</option>
-                                       </select>
-                                       
-                                       <select name="sortOrder">
-                                               <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
-                                               <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
-                                       </select>
-                                       {event name='displayOptions'}
-                               </dd>
-                       </dl>
-                       
-                       {event name='generalFields'}
-                       
-                       <dl>
-                               <dt>{lang}wcf.search.type{/lang}</dt>
-                               <dd class="floated">
-                                       {foreach from=$objectTypes key=objectTypeName item=objectType}
-                                               {if $objectType->isAccessible()}
-                                                       <label><input id="{@'.'|str_replace:'_':$objectTypeName}" type="checkbox" name="types[]" value="{@$objectTypeName}"{if $objectTypeName|in_array:$selectedObjectTypes} checked="checked"{/if} /> {lang}wcf.search.type.{@$objectTypeName}{/lang}</label>
-                                               {/if}
-                                       {/foreach}
-                               </dd>
-                       </dl>
-               </fieldset>
-               
-               {event name='fieldsets'}
-               {if $useCaptcha}{include file='recaptcha'}{/if}
-               
-               {foreach from=$objectTypes key=objectTypeName item=objectType}
-                       {if $objectType->isAccessible() && $objectType->getFormTemplateName()}
-                               {assign var='__jsID' value='.'|str_replace:'_':$objectTypeName}
-                               <fieldset id="{@$__jsID}Form">
-                                       <legend>{lang}wcf.search.type.{@$objectTypeName}{/lang}</legend>
-                                       
-                                       {include file=$objectType->getFormTemplateName() application=$objectType->getApplication()}
-                                       
-                                       <script type="text/javascript">
-                                               //<![CDATA[
-                                               $(function() {
-                                                       $('#{@$__jsID}').click(function() {
-                                                               if (this.checked) $('#{@$__jsID}Form').wcfFadeIn();
-                                                               else $('#{@$__jsID}Form').wcfFadeOut();
-                                                       });
-                                                       {if !$objectTypeName|in_array:$selectedObjectTypes}$('#{@$__jsID}Form').hide();{/if}
-                                               });
-                                               //]]>
-                                       </script>
-                               </fieldset>
-                       {/if}
-               {/foreach}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               new WCF.Search.User($('#searchAuthor'), function(data) {
-                       $('#searchAuthor').val(data.label);//.focus();
-               });
-       });
-       //]]>
-</script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/searchArea.tpl b/com.woltlab.wcf/template/searchArea.tpl
deleted file mode 100644 (file)
index a642788..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-{capture assign='__searchFormLink'}{link controller='Search'}{/link}{/capture}
-{capture assign='__searchInputPlaceholder'}{lang}wcf.global.search.enterSearchTerm{/lang}{/capture}
-{capture assign='__searchDropdownOptions'}<label><input type="checkbox" name="subjectOnly" value="1" /> {lang}wcf.search.subjectOnly{/lang}</label>{/capture}
-{assign var='__searchHiddenInputFields' value=''}
-
-{event name='settings'}
-
-<aside id="search" class="searchBar dropdown" data-disable-auto-focus="true">
-       <form method="post" action="{@$__searchFormLink}">
-               <input type="search" name="q" placeholder="{@$__searchInputPlaceholder}" autocomplete="off" required="required" value="" class="dropdownToggle" data-toggle="search" />
-               
-               <ul class="dropdownMenu">
-                       {hascontent}
-                               <li class="dropdownText">
-                                       {content}
-                                               {@$__searchDropdownOptions}
-                                       {/content}
-                               </li>
-                               <li class="dropdownDivider"></li>
-                       {/hascontent}
-                       <li><a href="{@$__searchFormLink}">{lang}wcf.search.extended{/lang}</a></li>
-               </ul>
-               
-               {@$__searchHiddenInputFields}
-       </form>
-</aside>
-
-<script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.Search.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               new WCF.Search.Message.SearchArea($('#search'));
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/searchResult.tpl b/com.woltlab.wcf/template/searchResult.tpl
deleted file mode 100644 (file)
index aca7cf6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.search.results{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='header'}
-
-<header class="boxHeadline">
-       <h1>{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>
-       <p>{lang}wcf.search.results.description{/lang}</p>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {assign var=encodedHighlight value=$highlight|urlencode}
-       {pages print=true assign=pagesLinks controller='SearchResult' id=$searchID link="pageNo=%d&highlight=$encodedHighlight"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {if $alterable}
-                                               <li><a href="{link controller='Search'}modify={@$searchID}{/link}" class="button"><span class="icon icon16 icon-search"></span> <span>{lang}wcf.search.results.change{/lang}</span></a></li>
-                                       {/if}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file=$resultListTemplateName application=$resultListApplication}
-
-<div class="contentNavigation">
-       {@$pagesLinks}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {if $alterable}
-                                               <li><a href="{link controller='Search'}modify={@$searchID}{/link}" class="button"><span class="icon icon16 icon-search"></span> <span>{lang}wcf.search.results.change{/lang}</span></a></li>
-                                       {/if}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/searchResultList.tpl b/com.woltlab.wcf/template/searchResultList.tpl
deleted file mode 100644 (file)
index 162a538..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<div class="container marginTop">
-       <ul class="containerList messageSearchResultList">
-               {foreach from=$objects item=message}
-                       <li>
-                               <div class="box48">
-                                       <a href="{link controller='User' object=$message->getUserProfile()}{/link}" title="{$message->getUserProfile()->username}" class="framed">{@$message->getUserProfile()->getAvatar()->getImageTag(48)}</a>
-                                       
-                                       <div>
-                                               <div class="containerHeadline">
-                                                       <h3><a href="{$message->getLink($query)}">{$message->getSubject()}</a></h3>
-                                                       <p>
-                                                               <a href="{link controller='User' object=$message->getUserProfile()}{/link}" class="userLink" data-user-id="{@$message->getUserProfile()->userID}">{$message->getUserProfile()->username}</a>
-                                                               <small>- {@$message->getTime()|time}</small>
-                                                               {if $message->getContainerTitle()}<small>- <a href="{$message->getContainerLink()}">{$message->getContainerTitle()}</a></small>{/if}
-                                                       </p> 
-                                                       <small class="containerContentType">{lang}wcf.search.object.{@$message->getObjectTypeName()}{/lang}</small>
-                                               </div>
-                                               
-                                               <p>{@$message->getFormattedMessage()}</p>
-                                       </div>
-                               </div>
-                       </li>
-               {/foreach}
-       </ul>
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/selectOptionType.tpl b/com.woltlab.wcf/template/selectOptionType.tpl
deleted file mode 100644 (file)
index e0e2ce6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<select id="{$option->optionName}" name="values[{$option->optionName}]">
-       {if $option->allowEmptyValue}<option value=""></option>{/if}
-       {foreach from=$selectOptions key=key item=selectOption}
-               <option value="{$key}"{if $value == $key} selected="selected"{/if}>{lang}{@$selectOption}{/lang}</option>
-       {/foreach}
-</select>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/settings.tpl b/com.woltlab.wcf/template/settings.tpl
deleted file mode 100644 (file)
index 1031376..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.option.category.settings.{$category}{/lang} - {lang}wcf.user.menu.settings{/lang} - {PAGE_TITLE|language}</title>
-       {include file='headInclude'}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.option.category.settings.{$category}{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $success|isset}
-       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='Settings'}{/link}">
-       <div class="container containerPadding marginTop">
-               {if $category == 'general'}
-                       {if $availableLanguages|count > 1}
-                               <fieldset>
-                                       <legend>{lang}wcf.user.language{/lang}</legend>
-                                       
-                                       <dl>
-                                               <dt><label>{lang}wcf.user.language{/lang}</label></dt>
-                                               <dd id="languageIDContainer">
-                                                       <script type="text/javascript">
-                                                               //<![CDATA[
-                                                               $(function() {
-                                                                       var $languages = {
-                                                                               {implode from=$availableLanguages item=language}
-                                                                                       '{@$language->languageID}': {
-                                                                                               iconPath: '{@$language->getIconPath()}',
-                                                                                               languageName: '{$language}'
-                                                                                       }
-                                                                               {/implode}
-                                                                       };
-                                                                       
-                                                                       new WCF.Language.Chooser('languageIDContainer', 'languageID', {@$languageID}, $languages);
-                                                               });
-                                                               //]]>
-                                                       </script>
-                                                       <noscript>
-                                                               <select name="languageID" id="languageID">
-                                                                       {foreach from=$availableLanguages item=language}
-                                                                               <option value="{@$language->languageID}"{if $language->languageID == $languageID} selected="selected"{/if}>{$language}</option>
-                                                                       {/foreach}
-                                                               </select>
-                                                       </noscript>
-                                               </dd>
-                                       </dl>
-                                       
-                                       {hascontent}
-                                               <dl>
-                                                       <dt><label>{lang}wcf.user.visibleLanguages{/lang}</label></dt>
-                                                       <dd class="floated">
-                                                       {content}
-                                                               {foreach from=$availableContentLanguages item=language}
-                                                                       <label><input name="contentLanguageIDs[]" type="checkbox" value="{@$language->languageID}"{if $language->languageID|in_array:$contentLanguageIDs} checked="checked"{/if} /> {$language}</label>
-                                                               {/foreach}
-                                                       {/content}
-                                                       <small>{lang}wcf.user.visibleLanguages.description{/lang}</small></dd>
-                                               </dl>
-                                       {/hascontent}
-                                       
-                                       {event name='languageFields'}
-                               </fieldset>
-                       {/if}
-                       
-                       {if $availableStyles|count > 1}
-                               <fieldset>
-                                       <legend>{lang}wcf.user.style{/lang}</legend>
-                                       
-                                       <dl>
-                                               <dt><label for="styleID">{lang}wcf.user.style{/lang}</label></dt>
-                                               <dd>
-                                                       <select id="styleID" name="styleID">
-                                                               <option value="0"></option>
-                                                               {foreach from=$availableStyles item=style}
-                                                                       <option value="{@$style->styleID}"{if $style->styleID == $styleID} selected="selected"{/if}>{$style->styleName}</option>
-                                                               {/foreach}
-                                                       </select>
-                                                       <small>{lang}wcf.user.style.description{/lang}</small>
-                                               </dd>
-                                       </dl>
-                                       
-                                       {event name='styleFields'}
-                               </fieldset>
-                       {/if}
-               {/if}
-               
-               {foreach from=$optionTree[0][categories][0][categories] item=optionCategory}
-                       <fieldset>
-                               <legend>{lang}wcf.user.option.category.{@$optionCategory[object]->categoryName}{/lang}</legend>
-                               
-                               {include file='userProfileOptionFieldList' options=$optionCategory[options] langPrefix='wcf.user.option.'}
-                       </fieldset>
-               {/foreach}
-               
-               {event name='fieldsets'}
-       </div>
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-               {if $category != 'general'}<input type="hidden" name="category" value="{$category}" />{/if}
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/shareButtons.tpl b/com.woltlab.wcf/template/shareButtons.tpl
deleted file mode 100644 (file)
index 83514dc..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<div class="messageShareButtons jsOnly">
-       <ul>
-               <li class="jsShareFacebook">
-                       <a>
-                               <span class="icon icon32 icon-facebook-sign jsTooltip" title="{lang}wcf.message.share.facebook{/lang}"></span>
-                               <span class="invisible">{lang}wcf.message.share.facebook{/lang}</span>
-                       </a>
-                       <span class="badge" style="display: none">0</span>
-               </li>
-               <li class="jsShareTwitter">
-                       <a>
-                               <span class="icon icon32 icon-twitter-sign jsTooltip" title="{lang}wcf.message.share.twitter{/lang}"></span>
-                               <span class="invisible">{lang}wcf.message.share.twitter{/lang}</span>
-                       </a>
-                       <span class="badge" style="display: none">0</span>
-               </li>
-               <li class="jsShareGoogle">
-                       <a>
-                               <span class="icon icon32 icon-google-plus-sign jsTooltip" title="{lang}wcf.message.share.google{/lang}"></span>
-                               <span class="invisible">{lang}wcf.message.share.google{/lang}</span>
-                       </a>
-                       <span class="badge" style="display: none">0</span>
-               </li>
-               <li class="jsShareReddit">
-                       <a>
-                               <img class="jsTooltip" src="{$__wcf->getPath()}icon/reddit.png" alt="{lang}wcf.message.share.reddit{/lang}" title="{lang}wcf.message.share.reddit{/lang}" />
-                               <span class="invisible">{lang}wcf.message.share.reddit{/lang}</span>
-                       </a>
-                       <span class="badge" style="display: none">0</span>
-               </li>
-               
-               {event name='buttons'}
-       </ul>
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.message.share.facebook': '{lang}wcf.message.share.facebook{/lang}',
-                               'wcf.message.share.google': '{lang}wcf.message.share.google{/lang}',
-                               'wcf.message.share.reddit': '{lang}wcf.message.share.reddit{/lang}',
-                               'wcf.message.share.twitter': '{lang}wcf.message.share.twitter{/lang}'
-                       });
-                       
-                       new WCF.Message.Share.Page({if SHARE_BUTTONS_SHOW_COUNT}true{else}false{/if});
-               });
-               //]]>
-       </script>
-</div>
diff --git a/com.woltlab.wcf/template/signatureEdit.tpl b/com.woltlab.wcf/template/signatureEdit.tpl
deleted file mode 100644 (file)
index c7a2821..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.signature.edit{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       WCF.Language.addObject({
-                               'wcf.global.preview': '{lang}wcf.global.preview{/lang}'
-                       });
-                       
-                       new WCF.User.SignaturePreview('wcf\\data\\user\\UserProfileAction', 'text', 'previewButton');
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userMenuSidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.signature.edit{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField}
-       <p class="error">{lang}wcf.global.form.error{/lang}</p>
-{/if}
-
-{if $success|isset}
-       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
-{/if}
-
-{if $__wcf->user->disableSignature}
-       <p class="error">{lang}wcf.user.signature.error.disabled{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='SignatureEdit'}{/link}">
-       <div class="container containerPadding marginTop">
-               {if $signatureCache}
-                       <fieldset>
-                               <legend>{lang}wcf.user.signature.current{/lang}</legend>
-                               
-                               {@$signatureCache}
-                       </fieldset>
-               {/if}
-               
-               {if !$__wcf->user->disableSignature}
-                       <fieldset id="signatureContainer">
-                               <legend>{lang}wcf.user.signature{/lang}</legend>
-                                       
-                               <dl class="wide{if $errorField == 'text'} formError{/if}">
-                                       <dt><label for="text">{lang}wcf.user.signature{/lang}</label></dt>
-                                       <dd>
-                                               <textarea id="text" name="text" rows="20" cols="40">{$text}</textarea>
-                                               {if $errorField == 'text'}
-                                                       <small class="innerError">
-                                                               {if $errorType == 'empty'}
-                                                                       {lang}wcf.global.form.error.empty{/lang}
-                                                               {elseif $errorType == 'tooLong'}
-                                                                       {lang}wcf.message.error.tooLong{/lang}
-                                                               {elseif $errorType == 'censoredWordsFound'}
-                                                                       {lang}wcf.message.error.censoredWordsFound{/lang}
-                                                               {elseif $errorType == 'disallowedBBCodes'}
-                                                                       {lang}wcf.message.error.disallowedBBCodes{/lang}
-                                                               {else}
-                                                                       {lang}wcf.user.signature.error.{@$errorType}{/lang}
-                                                               {/if}
-                                                       </small>
-                                               {/if}
-                                       </dd>
-                               </dl>
-                               
-                               {event name='fields'}
-                       </fieldset>
-                       
-                       {event name='fieldsets'}
-                       
-                       {include file='messageFormTabs'}
-               {/if}
-       </div>
-       
-       {if !$__wcf->user->disableSignature}
-               <div class="formSubmit">
-                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-                       <button id="previewButton" class="jsOnly" accesskey="p">{lang}wcf.global.button.preview{/lang}</button>
-               </div>
-       {/if}
-</form>
-
-{include file='footer'}
-{include file='wysiwyg'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/sitemap.tpl b/com.woltlab.wcf/template/sitemap.tpl
deleted file mode 100644 (file)
index 4a752c2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<div class="sitemap">
-       {hascontent}
-               <div class="tabMenuContainer" data-active="sitemap_{@$defaultSitemapName}">
-                       <nav class="tabMenu">
-                               <ul>
-                                       {content}
-                                               {foreach from=$tree item=sitemapName}
-                                                       <li><a href="#sitemap_{$sitemapName}" class="sitemapNavigation" data-sitemap-name="{$sitemapName}">{lang}wcf.page.sitemap.{$sitemapName}{/lang}</a></li>
-                                               {/foreach}
-                                       {/content}
-                               </ul>
-                       </nav>
-                       
-                       {foreach from=$tree item=sitemapName}
-                               <div id="sitemap_{$sitemapName}" class="container containerPadding tabMenuContent hidden">
-                                       {if $sitemapName == $defaultSitemapName}{@$sitemap}{/if}
-                               </div>
-                       {/foreach}
-               </div>
-               
-               <script type="text/javascript">
-                       //<![CDATA[
-                       $(function() {
-                               // fix anchor
-                               var $location = location.toString().replace(location.hash, '');
-                               $('.sitemap .tabMenu a').each(function(index, link) {
-                                       var $link = $(link);
-                                       $link.attr('href', $location + $link.attr('href'));
-                               });
-                               
-                               WCF.TabMenu.init();
-                       });
-                       //]]>
-               </script>
-       {hascontentelse}
-               {@$sitemap}
-       {/hascontent}
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/sitemapUserAccount.tpl b/com.woltlab.wcf/template/sitemapUserAccount.tpl
deleted file mode 100644 (file)
index f90ddb0..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<ul class="sitemapList">
-       {if $__wcf->getUser()->userID}
-               {assign var=__userMenuActiveItems value=$__wcf->getUserMenu()->getActiveMenuItems()}
-               {foreach from=$__wcf->getUserMenu()->getMenuItems('') item=menuCategory}
-                       <li>
-                               <h3>{lang}{$menuCategory->menuItem}{/lang}</h3>
-                               <ul>
-                                       {foreach from=$__wcf->getUserMenu()->getMenuItems($menuCategory->menuItem) item=menuItem}
-                                               <li><a href="{$menuItem->getLink()}">{lang}{$menuItem->menuItem}{/lang}</a></li>
-                                       {/foreach}
-                               </ul>
-                       </li>
-               {/foreach}
-       {else}
-               <li>
-                       <a href="{link controller='Login'}{/link}">{lang}wcf.user.login{/lang}</a>
-               </li>
-               <li>
-                       <a href="{link controller='Register'}{/link}">{lang}wcf.user.register{/lang}</a>
-               </li>
-       {/if}
-</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/spoilerBBCodeTag.tpl b/com.woltlab.wcf/template/spoilerBBCodeTag.tpl
deleted file mode 100644 (file)
index 515e214..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<div class="container containerPadding spoilerBox jsSpoilerBox">
-       <!-- begin:parser_nonessential -->
-       <header class="jsOnly">
-               <a class="button jsSpoilerToggle">{if $buttonTitle}{$buttonTitle}{else}{lang}wcf.bbcode.spoiler.show{/lang}{/if}</a>
-       </header>
-       <!-- end:parser_nonessential -->
-       
-       <div>
-               {@$content}
-       </div>
-</div>
-
-<!-- begin:parser_nonessential -->
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               var $spoilerBox = $('.jsSpoilerBox').removeClass('jsSpoilerBox');
-               $spoilerBox.children('div').hide();
-               $spoilerBox.find('> header > .jsSpoilerToggle').click(function() {
-                       $(this).toggleClass('active').parent().next().slideToggle();
-               });
-       });
-       //]]>
-</script>
-<!-- end:parser_nonessential -->
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/styleChooser.tpl b/com.woltlab.wcf/template/styleChooser.tpl
deleted file mode 100644 (file)
index c2f93f7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="container">
-       <ol class="containerList styleList{if $styleList|count > 4} doubleColumned{/if}">
-               {foreach from=$styleList item=style}
-                       <li data-style-id="{@$style->styleID}">
-                               <div class="box64">
-                                       <span class="framed">
-                                               <img src="{@$style->getPreviewImage()}" alt="" />
-                                       </span>
-                                       <div class="details">
-                                               <div class="containerHeadline">
-                                                       <h3>{$style->styleName}{if $style->styleID == $__wcf->getStyleHandler()->getStyle()->styleID} <span class="icon icon16 icon-check" title="{lang}wcf.style.currentStyle{/lang}"></span>{/if}</h3>
-                                               </div>
-                                               {if $style->styleDescription}<small>{lang}{@$style->styleDescription}{/lang}</small>{/if}
-                                       </div>
-                               </div>
-                       </li>
-               {/foreach}
-       </ol>
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/tagCloudBox.tpl b/com.woltlab.wcf/template/tagCloudBox.tpl
deleted file mode 100644 (file)
index ded4835..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{hascontent}
-       <ul class="tagList">
-               {content}
-                       {foreach from=$tags item=tag}
-                               <li><a href="{link controller='Tagged' object=$tag}{/link}" rel="tag" style="font-size: {@$tag->getSize()}%;">{$tag->name}</a></li>
-                       {/foreach}
-               {/content}
-       </ul>
-{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/tagInput.tpl b/com.woltlab.wcf/template/tagInput.tpl
deleted file mode 100644 (file)
index b81ac0b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<dl class="jsOnly">
-       <dt><label for="tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}">{lang}wcf.tagging.tags{/lang}</label></dt>
-       <dd>
-               <div id="tagList{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}" class="editableItemList"></div>
-               <input id="tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}" type="text" value="" class="long" />
-               <small>{lang}wcf.tagging.tags.description{/lang}</small>
-       </dd>
-</dl>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Tagging{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               var $tagList = new WCF.Tagging.TagList('#tagList{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}', '#tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}', {@TAGGING_MAX_TAG_LENGTH});
-               
-               {if $tags|isset && $tags|count}
-                       $tagList.load([ {implode from=$tags item=tag}'{$tag}'{/implode} ]);
-               {/if}
-       });
-       //]]>
-</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/tagged.tpl b/com.woltlab.wcf/template/tagged.tpl
deleted file mode 100644 (file)
index 1c8a3cc..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.tagging.taggedObjects.{@$objectType}{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       {if $pageNo < $pages}
-               <link rel="next" href="{link controller='Tagged' object=$tag}objectType={@$objectType}&pageNo={@$pageNo+1}{/link}" />
-       {/if}
-       {if $pageNo > 1}
-               <link rel="prev" href="{link controller='Tagged' object=$tag}objectType={@$objectType}{if $pageNo > 2}&pageNo={@$pageNo-1}{/if}{/link}" />
-       {/if}
-       <link rel="canonical" href="{link controller='Tagged' object=$tag}objectType={@$objectType}{if $pageNo > 1}&pageNo={@$pageNo}{/if}{/link}" />
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       <fieldset>
-               <legend>{lang}wcf.tagging.objectTypes{/lang}</legend>
-               
-               <nav>
-                       <ul>
-                               {foreach from=$availableObjectTypes item=availableObjectType}
-                                       <li{if $objectType == $availableObjectType->objectType} class="active"{/if}><a href="{link controller='Tagged' object=$tag}objectType={@$availableObjectType->objectType}{/link}">{lang}wcf.tagging.objectType.{@$availableObjectType->objectType}{/lang}</a></li>
-                               {/foreach}
-                       </ul>
-               </nav>
-       </fieldset>
-       
-       <fieldset>
-               <legend>{lang}wcf.tagging.tags{/lang}</legend>
-               
-               <ul class="tagList">
-                       {foreach from=$tags item=__tag}
-                               <li><a href="{link controller='Tagged' object=$__tag}objectType={@$objectType}{/link}" rel="tag" style="font-size: {@$__tag->getSize()}%;">{$__tag->name}</a></li>
-                       {/foreach}
-               </ul>
-       </fieldset>
-{/capture}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.tagging.taggedObjects.{@$objectType}{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {pages print=true assign=pagesLinks controller='Tagged' object=$tag link="objectType=$objectType&pageNo=%d"}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $items}
-       {include file=$resultListTemplateName application=$resultListApplication}
-{else}
-       <p class="info">{lang}wcf.tagging.taggedObjects.noResults{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {@$pagesLinks}
-       
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/team.tpl b/com.woltlab.wcf/template/team.tpl
deleted file mode 100644 (file)
index 940eb52..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.team{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <link rel="canonical" href="{link controller='Team'}{/link}" />
-       
-       <script type="text/javascript">
-               //<![CDATA[
-                       $(function() {
-                               WCF.Language.addObject({
-                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                               });
-                               
-                               new WCF.User.Action.Follow($('.userList > li'));
-                               new WCF.User.Action.Ignore($('.userList > li'));
-                       });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       {@$__boxSidebar}
-{/capture}
-
-{include file='header' sidebarOrientation='right'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.team{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{foreach from=$objects->getTeams() item=team}
-       <header class="boxHeadline boxSubHeadline">
-               <h2>{$team->groupName|language} <span class="badge">{#$team->getMembers()|count}</span></h2>
-       </header>
-               
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned userList">
-                       {foreach from=$team->getMembers() item=user}
-                               {include file='userListItem'}
-                       {/foreach}
-               </ol>
-       </div>
-{/foreach}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/textI18nOptionType.tpl b/com.woltlab.wcf/template/textI18nOptionType.tpl
deleted file mode 100644 (file)
index 8caccff..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
-               var $optionValues = { {implode from=$i18nValues[$option->optionName] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
-               new WCF.MultipleLanguageInput('{$option->optionName}', false, $optionValues, $availableLanguages);
-       });
-       //]]>
-</script>
-<input type="{@$inputType}" id="{$option->optionName}" name="{$option->optionName}" value="{$i18nPlainValues[$option->optionName]}" />
diff --git a/com.woltlab.wcf/template/textOptionType.tpl b/com.woltlab.wcf/template/textOptionType.tpl
deleted file mode 100644 (file)
index 3477f93..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<input type="{@$inputType}" id="{$option->optionName}" name="values[{$option->optionName}]" value="{$value}"{if $option->minlength > 0} required="required"{/if}{if $option->maxlength} maxlength="{$option->maxlength}"{/if}{if $inputClass} class="{@$inputClass}"{/if} />
diff --git a/com.woltlab.wcf/template/textareaI18nOptionType.tpl b/com.woltlab.wcf/template/textareaI18nOptionType.tpl
deleted file mode 100644 (file)
index ecc8981..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<script type="text/javascript">
-       //<![CDATA[
-       $(function() {
-               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
-               var $optionValues = { {implode from=$i18nValues[$option->optionName] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
-               new WCF.MultipleLanguageInput('{$option->optionName}', false, $optionValues, $availableLanguages);
-       });
-       //]]>
-</script>
-<textarea id="{$option->optionName}" name="{$option->optionName}" cols="40" rows="10">{$i18nPlainValues[$option->optionName]}</textarea>
diff --git a/com.woltlab.wcf/template/textareaOptionType.tpl b/com.woltlab.wcf/template/textareaOptionType.tpl
deleted file mode 100644 (file)
index 310cd47..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<textarea id="{$option->optionName}" name="values[{$option->optionName}]" cols="40" rows="10">{$value}</textarea>
diff --git a/com.woltlab.wcf/template/user.tpl b/com.woltlab.wcf/template/user.tpl
deleted file mode 100644 (file)
index 59f2854..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.profile{/lang} - {lang}wcf.user.members{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <link rel="canonical" href="{link controller='User' object=$user}{/link}" />
-       
-       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-       {event name='javascriptInclude'}
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
-                               WCF.Language.addObject({
-                                       'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}',
-                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                               });
-                               
-                               {if !$user->getPermission('user.profile.cannotBeIgnored')}
-                                       new WCF.User.Profile.IgnoreUser({@$user->userID}, {if $__wcf->getUserProfileHandler()->isIgnoredUser($user->userID)}true{else}false{/if});
-                               {/if}
-                               
-                               new WCF.User.Profile.Follow({@$user->userID}, {if $__wcf->getUserProfileHandler()->isFollowing($user->userID)}true{else}false{/if});
-                       {/if}
-                       
-                       new WCF.User.Profile.TabMenu({@$user->userID});
-                       
-                       WCF.TabMenu.init();
-                       
-                       {if $user->canEdit() || ($__wcf->getUser()->userID == $user->userID && $user->canEditOwnProfile())}
-                               WCF.Language.addObject({
-                                       'wcf.user.editProfile': '{lang}wcf.user.editProfile{/lang}',
-                               });
-                               
-                               new WCF.User.Profile.Editor({@$user->userID}, {if $editOnInit}true{else}false{/if});
-                       {/if}
-                       
-                       {if $user->activityPoints}
-                               WCF.Language.addObject({
-                                       'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}'
-                               });
-                               
-                               WCF.User.Profile.ActivityPointList.init();
-                       {/if}
-                       
-                       {if $followingCount > 10}
-                               var $followingList = null;
-                               $('#followingAll').click(function() {
-                                       if ($followingList === null) {
-                                               $followingList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowingAction', '{lang}wcf.user.profile.following{/lang}', { userID: {@$user->userID} });
-                                       }
-                                       
-                                       $followingList.open();
-                               });
-                       {/if}
-                       {if $followerCount > 10}
-                               var $followerList = null;
-                               $('#followerAll').click(function() {
-                                       if ($followerList === null) {
-                                               $followerList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowAction', '{lang}wcf.user.profile.followers{/lang}', { userID: {@$user->userID} });
-                                       }
-                                       
-                                       $followerList.open();
-                               });
-                       {/if}
-                       {if $visitorCount > 10}
-                               var $visitorList = null;
-                               $('#visitorAll').click(function() {
-                                       if ($visitorList === null) {
-                                               $visitorList = new WCF.User.List('wcf\\data\\user\\profile\\visitor\\UserProfileVisitorAction', '{lang}wcf.user.profile.visitors{/lang}', { userID: {@$user->userID} });
-                                       }
-                                       
-                                       $visitorList.open();
-                               });
-                       {/if}
-                       
-                       {event name='javascriptInit'}
-               });
-               //]]>
-       </script>
-       
-       <noscript>
-               <style type="text/css">
-                       #profileContent > .tabMenu > ul > li:not(:first-child) {
-                               display: none !important;
-                       }
-                       
-                       #profileContent > .tabMenuContent:not(:first-of-type) {
-                               display: none !important;
-                       }
-               </style>
-       </noscript>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{include file='userSidebar' assign='sidebar'}
-
-{include file='header' sidebarOrientation='left'}
-
-<header class="boxHeadline userHeadline">
-       <span class="framed invisible">{@$user->getAvatar()->getImageTag(48)}</span>
-       
-       <h1>{$user->username}{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h1>
-       
-       <ul class="dataList">
-               {if $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
-               {if $user->getAge()}<li>{@$user->getAge()}</li>{/if}
-               {if $user->location}<li>{lang}wcf.user.membersList.location{/lang}</li>{/if}
-               {if $user->getOldUsername()}<li>{lang}wcf.user.profile.oldUsername{/lang}</li>{/if}
-               <li>{lang}wcf.user.membersList.registrationDate{/lang}</li>
-               {event name='userDataRow1'}
-       </ul>
-       {if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
-               <dl class="plain inlineDataList">
-                       <dt>{lang}wcf.user.usersOnline.lastActivity{/lang}</dt>
-                       <dd>{@$user->getLastActivityTime()|time}{if $user->getCurrentLocation()}, {@$user->getCurrentLocation()}{/if}</dd>
-                       {event name='userDataRow2'}
-               </dl>
-       {/if}
-       <nav class="jsMobileNavigation buttonGroupNavigation">
-               <ul id="profileButtonContainer" class="buttonGroup">{*
-                       *}{if $user->userID != $__wcf->user->userID}{if $user->isAccessible('canViewEmailAddress')}<li><a class="button jsTooltip" href="mailto:{@$user->getEncodedEmail()}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>{elseif $user->isAccessible('canMail') && $__wcf->session->getPermission('user.profile.canMail')}<li><a class="button jsTooltip" href="{link controller='Mail' object=$user}{/link}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>{/if}{/if}{*
-                       *}{event name='buttons'}{*
-               *}</ul>
-       </nav>
-</header>
-
-{include file='userNotice'}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<section id="profileContent" class="marginTop tabMenuContainer" data-active="{$__wcf->getUserProfileMenu()->getActiveMenuItem()->getIdentifier()}">
-       <nav class="tabMenu">
-               <ul>
-                       {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
-                               {if $menuItem->getContentManager()->isVisible($userID)}
-                                       <li><a href="{$__wcf->getAnchor($menuItem->getIdentifier())}">{lang}wcf.user.profile.menu.{@$menuItem->menuItem}{/lang}</a></li>
-                               {/if}
-                       {/foreach}
-               </ul>
-       </nav>
-       
-       {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
-               {if $menuItem->getContentManager()->isVisible($userID)}
-                       <div id="{$menuItem->getIdentifier()}" class="container tabMenuContent" data-menu-item="{$menuItem->menuItem}">
-                               {if $menuItem === $__wcf->getUserProfileMenu()->getActiveMenuItem()}
-                                       {@$profileContent}
-                               {/if}
-                       </div>
-               {/if}
-       {/foreach}
-</section>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/userException.tpl b/com.woltlab.wcf/template/userException.tpl
deleted file mode 100644 (file)
index 7d7052c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-{include file="documentHeader"}
-<head>
-       <title>{lang}wcf.global.error.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
-       
-       {include file='headInclude'}
-</head>
-
-<body{if $templateName|isset} id="tpl{$templateName|ucfirst}"{/if}>
-
-{include file='header'}
-       
-<p id="errorMessage" class="error">
-       {@$message}
-</p>
-<script type="text/javascript">
-       //<![CDATA[
-       if (document.referrer) {
-               $('#errorMessage').append('<br /><a href="' + document.referrer + '">{lang}wcf.global.error.backward{/lang}</a>'); 
-       }
-       //]]>
-</script>
-
-{if ENABLE_DEBUG_MODE}
-       <!-- 
-       {$name} thrown in {$file} ({@$line})
-       Stacktrace:
-       {$stacktrace}
-       -->
-{/if}
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/userInformation.tpl b/com.woltlab.wcf/template/userInformation.tpl
deleted file mode 100644 (file)
index a1180f5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-{include file='userInformationHeadline'}
-
-{include file='userInformationButtons'}
-
-{include file='userInformationStatistics'}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userInformationButtons.tpl b/com.woltlab.wcf/template/userInformationButtons.tpl
deleted file mode 100644 (file)
index 923a740..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-{hascontent}
-       <nav class="jsMobileNavigation buttonGroupNavigation">
-               <ul class="buttonList">
-                       {content}
-                               {if $user->homepage}
-                                       <li><a class="jsTooltip" href="{@$user->homepage}" title="{lang}wcf.user.option.homepage{/lang}"{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}><span class="icon icon16 icon-home"></span> <span class="invisible">{lang}wcf.user.option.homepage{/lang}</span></a></li>
-                               {/if}
-                               
-                               {if $user->userID != $__wcf->user->userID}
-                                       {if $user->isAccessible('canViewEmailAddress')}
-                                               <li><a class="jsTooltip" href="mailto:{@$user->getEncodedEmail()}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
-                                       {elseif $user->isAccessible('canMail') && $__wcf->session->getPermission('user.profile.canMail')}
-                                               <li><a class="jsTooltip" href="{link controller='Mail' object=$user}{/link}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
-                                       {/if}
-                               {/if}
-                               
-                               {if $__wcf->user->userID && $user->userID != $__wcf->user->userID}
-                                       {if $__wcf->getUserProfileHandler()->isFollowing($user->userID)}
-                                               <li class="jsOnly"><a data-following="1" data-object-id="{@$user->userID}" class="jsFollowButton jsTooltip" title="{lang}wcf.user.button.unfollow{/lang}"><span class="icon icon16 icon-minus"></span> <span class="invisible">{lang}wcf.user.button.unfollow{/lang}</span></a></li>
-                                       {else}
-                                               <li class="jsOnly"><a data-following="0" data-object-id="{@$user->userID}" class="jsFollowButton jsTooltip" title="{lang}wcf.user.button.follow{/lang}"><span class="icon icon16 icon-plus"></span> <span class="invisible">{lang}wcf.user.button.follow{/lang}</span></a></li>
-                                       {/if}
-                                       
-                                       {*if !$user->getPermission('user.profile.cannotBeIgnored')*}{*disabled for performance reasons*}
-                                               {if $__wcf->getUserProfileHandler()->isIgnoredUser($user->userID)}
-                                                       <li class="jsOnly"><a data-ignored="1" data-object-id="{@$user->userID}" class="jsIgnoreButton jsTooltip" title="{lang}wcf.user.button.unignore{/lang}"><span class="icon icon16 icon-circle-blank"></span> <span class="invisible">{lang}wcf.user.button.unignore{/lang}</span></a></li>
-                                               {else}
-                                                       <li class="jsOnly"><a data-ignored="0" data-object-id="{@$user->userID}" class="jsIgnoreButton jsTooltip" title="{lang}wcf.user.button.ignore{/lang}"><span class="icon icon16 icon-off"></span> <span class="invisible">{lang}wcf.user.button.ignore{/lang}</span></a></li>
-                                               {/if}
-                                       {*/if*}
-                               {/if}
-                               
-                               {event name='buttons'}
-                       {/content}
-               </ul>
-       </nav>
-{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userInformationHeadline.tpl b/com.woltlab.wcf/template/userInformationHeadline.tpl
deleted file mode 100644 (file)
index 81e6d1c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="containerHeadline">
-       <h3><a href="{link controller='User' object=$user}{/link}">{$user->username}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3> 
-</div>
-<ul class="dataList userFacts">
-       {if $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
-       {if $user->getAge()}<li>{@$user->getAge()}</li>{/if}
-       {if $user->location}<li>{lang}wcf.user.membersList.location{/lang}</li>{/if}
-       <li>{lang}wcf.user.membersList.registrationDate{/lang}</li>
-       
-       {event name='userData'}                 
-</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userInformationStatistics.tpl b/com.woltlab.wcf/template/userInformationStatistics.tpl
deleted file mode 100644 (file)
index b8bb82b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<dl class="plain inlineDataList userStats">
-       {event name='statistics'}
-       
-       {if MODULE_LIKE}
-               <dt>{lang}wcf.like.likesReceived{/lang}</dt>
-               <dd>{#$user->likesReceived}</dd>
-       {/if}
-       
-       <dt>{lang}wcf.user.activityPoint{/lang}</dt>
-       <dd>{#$user->activityPoints}</dd>
-</dl>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userListItem.tpl b/com.woltlab.wcf/template/userListItem.tpl
deleted file mode 100644 (file)
index f2689b4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<li>
-       <div class="box48">
-               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
-               
-               <div class="details userInformation">
-                       {include file='userInformation'}
-               </div>
-       </div>
-</li>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userMenuSidebar.tpl b/com.woltlab.wcf/template/userMenuSidebar.tpl
deleted file mode 100644 (file)
index 42d0a97..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-{capture assign='sidebar'}
-       {assign var=__userMenuActiveItems value=$__wcf->getUserMenu()->getActiveMenuItems()}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       // mobile safari hover workaround
-                       if ($(window).width() <= 800) {
-                               $('.sidebar').addClass('mobileSidebar').hover(function() { });
-                       }
-               });
-               //]]>
-       </script> 
-       
-       {foreach from=$__wcf->getUserMenu()->getMenuItems('') item=menuCategory}
-               <fieldset>
-                       <legend>{lang}{$menuCategory->menuItem}{/lang}</legend>
-                       
-                       <nav>
-                               <ul>
-                                       {foreach from=$__wcf->getUserMenu()->getMenuItems($menuCategory->menuItem) item=menuItem}
-                                               <li{if $menuItem->menuItem|in_array:$__userMenuActiveItems} class="active"{/if}><a href="{$menuItem->getProcessor()->getLink()}">{@$menuItem}</a></li>
-                                       {/foreach}
-                               </ul>
-                       </nav>
-               </fieldset>
-       {/foreach}
-{/capture}
diff --git a/com.woltlab.wcf/template/userNotice.tpl b/com.woltlab.wcf/template/userNotice.tpl
deleted file mode 100644 (file)
index 9d12305..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<div class="userNotice">
-       {if OFFLINE && $__wcf->session->getPermission('admin.general.canViewPageDuringOfflineMode')}
-               <div class="warning">
-                       <p><strong>{lang}wcf.page.offline{/lang}</strong></p>
-                       <p>{if OFFLINE_MESSAGE_ALLOW_HTML}{@OFFLINE_MESSAGE}{else}{@OFFLINE_MESSAGE|htmlspecialchars|nl2br}{/if}</p>
-               </div>
-       {/if}
-       
-       {if $__wcf->user->activationCode && REGISTER_ACTIVATION_METHOD == 1}
-               <p class="warning">{lang}wcf.user.register.needActivation{/lang}</p>
-       {/if}
-       
-       {event name='userNotice'}
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userOptionFieldList.tpl b/com.woltlab.wcf/template/userOptionFieldList.tpl
deleted file mode 100644 (file)
index 96825eb..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{foreach from=$options item=optionData}
-       {assign var=option value=$optionData[object]}
-       <dl class="{$option->optionName}Input{if $errorType|is_array && $errorType[$option->optionName]|isset} formError{/if}">
-               <dt{if $optionData[cssClassName]} class="{$optionData[cssClassName]}"{/if}><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
-               <dd>{@$optionData[html]}
-                       <small>{lang __optional=true}{@$langPrefix}{$option->optionName}.description{/lang}</small>
-                       
-                       {if $errorType|is_array && $errorType[$option->optionName]|isset}
-                               <small class="innerError">
-                                       {if $errorType[$option->optionName] == 'empty'}
-                                               {lang}wcf.global.form.error.empty{/lang}
-                                       {else}  
-                                               {lang}{@$langPrefix}error.{$errorType[$option->optionName]}{/lang}
-                                       {/if}
-                               </small>
-                       {/if}
-               </dd>
-       </dl>
-{/foreach}
diff --git a/com.woltlab.wcf/template/userPanel.tpl b/com.woltlab.wcf/template/userPanel.tpl
deleted file mode 100644 (file)
index bb4c687..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-{if $__wcf->user->userID}
-       <!-- user menu -->
-       <li id="userMenu" class="dropdown">
-               <a class="dropdownToggle framed" data-toggle="userMenu" href="{link controller='User' object=$__wcf->user}{/link}">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)} <span>{lang}wcf.user.userNote{/lang}</span></a>
-               <ul class="dropdownMenu">
-                       <li><a href="{link controller='User' object=$__wcf->user}{/link}" class="box32">
-                               <div class="framed">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}</div>
-                               
-                               <div class="containerHeadline">
-                                       <h3>{$__wcf->user->username}</h3>
-                                       <small>{lang}wcf.user.myProfile{/lang}</small>
-                               </div>
-                       </a></li>
-                       {if $__wcf->getUserProfileHandler()->canEditOwnProfile()}<li><a href="{link controller='User' object=$__wcf->user}editOnInit=true#about{/link}">{lang}wcf.user.editProfile{/lang}</a></li>{/if}
-                       <li><a href="{link controller='Settings'}{/link}">{lang}wcf.user.menu.settings{/lang}</a></li>
-                       
-                       {event name='userMenuItems'}
-                       
-                       {if $__wcf->session->getPermission('admin.general.canUseAcp')}
-                               <li class="dropdownDivider"></li>
-                               <li><a href="{link isACP=true}{/link}">{lang}wcf.global.acp.short{/lang}</a></li>
-                       {/if}
-                       <li class="dropdownDivider"></li>
-                       <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" onclick="WCF.System.Confirmation.show('{lang}wcf.user.logout.sure{/lang}', $.proxy(function (action) { if (action == 'confirm') window.location.href = $(this).attr('href'); }, this)); return false;">{lang}wcf.user.logout{/lang}</a></li>
-               </ul>
-       </li>
-       
-       <li><a href="{link controller='Settings'}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-cogs"></span> <span>{lang}wcf.user.menu.settings{/lang}</span></a></li>
-       
-       <!-- user notifications -->
-       {if !$__hideUserMenu|isset}
-               <li id="userNotifications" data-count="{#$__wcf->getUserNotificationHandler()->getNotificationCount()}">
-                       <a href="{link controller='NotificationList'}{/link}"><span class="icon icon16 icon-bell-alt"></span> <span>{lang}wcf.user.notification.notifications{/lang}</span>{if $__wcf->getUserNotificationHandler()->getNotificationCount()} <span class="badge badgeInverse">{#$__wcf->getUserNotificationHandler()->getNotificationCount()}</span>{/if}</a>
-                       <script type="text/javascript">
-                               //<![CDATA[
-                               $(function() {
-                                       WCF.Language.addObject({
-                                               'wcf.user.notification.count': '{lang}wcf.user.notification.count{/lang}',
-                                               'wcf.user.notification.markAllAsConfirmed': '{lang}wcf.user.notification.markAllAsConfirmed{/lang}',
-                                               'wcf.user.notification.markAllAsConfirmed.confirmMessage': '{lang}wcf.user.notification.markAllAsConfirmed.confirmMessage{/lang}',
-                                               'wcf.user.notification.noMoreNotifications': '{lang}wcf.user.notification.noMoreNotifications{/lang}',
-                                               'wcf.user.notification.showAll': '{lang}wcf.user.notification.showAll{/lang}'
-                                       });
-                                       
-                                       new WCF.Notification.UserPanel('{link controller='NotificationList'}{/link}');
-                               });
-                               //]]>
-                       </script>
-               </li>
-       {/if}
-{else}
-       {if !$__disableLoginLink|isset}
-               <!-- login box -->
-               <li>
-                       <a class="loginLink" href="{link controller='Login'}{/link}">{lang}wcf.user.loginOrRegister{/lang}</a>
-                       <div id="loginForm" style="display: none;">
-                               {capture assign='__3rdPartyButtons'}
-                                       {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
-                                               <li id="githubAuth" class="3rdPartyAuth">
-                                                       <a href="{link controller='GithubAuth'}{/link}" class="button"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a>
-                                               </li>{*
-                                       *}{/if}{*
-                                       
-                                       *}{if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}{*
-                                               *}<li id="twitterAuth" class="3rdPartyAuth">
-                                                       <a href="{link controller='TwitterAuth'}{/link}" class="button"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a>
-                                               </li>{*
-                                       *}{/if}{*
-                                       
-                                       *}{if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}{*
-                                               *}<li id="facebookAuth" class="3rdPartyAuth">
-                                                       <a href="{link controller='FacebookAuth'}{/link}" class="button"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a>
-                                               </li>{*
-                                       *}{/if}{*
-                                       
-                                       *}{if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}{*
-                                               *}<li id="googleAuth" class="3rdPartyAuth">
-                                                       <a href="{link controller='GoogleAuth'}{/link}" class="button"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a>
-                                               </li>
-                                       {/if}
-                               {/capture}
-                               
-                               <form method="post" action="{link controller='Login'}{/link}">
-                                       <fieldset>
-                                               {if $__3rdPartyButtons|trim}<legend>{lang}wcf.user.login{/lang}</legend>{/if}
-                                               
-                                               <dl>
-                                                       <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt>
-                                                       <dd>
-                                                               <input type="text" id="username" name="username" value="" required="required" class="long" />
-                                                       </dd>
-                                               </dl>
-                                               
-                                               {if !REGISTER_DISABLED}
-                                                       <dl>
-                                                               <dt>{lang}wcf.user.login.action{/lang}</dt>
-                                                               <dd>
-                                                                       <label><input type="radio" name="action" value="register" /> {lang}wcf.user.login.action.register{/lang}</label>
-                                                                       <label><input type="radio" name="action" value="login" checked="checked" /> {lang}wcf.user.login.action.login{/lang}</label>
-                                                               </dd>
-                                                       </dl>
-                                               {/if}
-                                               
-                                               <dl>
-                                                       <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
-                                                       <dd>
-                                                               <input type="password" id="password" name="password" value="" class="long" />
-                                                       </dd>
-                                               </dl>
-                                               
-                                               {if $__wcf->getUserAuthenticationFactory()->getUserAuthentication()->supportsPersistentLogins()}
-                                                       <dl>
-                                                               <dd><label><input type="checkbox" id="useCookies" name="useCookies" value="1" checked="checked" /> {lang}wcf.user.useCookies{/lang}</label></dd>
-                                                       </dl>
-                                               {/if}
-                                               
-                                               {event name='loginFields'}
-                                               
-                                               <div class="formSubmit">
-                                                       <input type="submit" id="loginSubmitButton" name="submitButton" value="{lang}wcf.user.button.login{/lang}" accesskey="s" />
-                                                       <input type="hidden" name="url" value="{$__wcf->session->requestURI}" />
-                                               </div>
-                                       </fieldset>
-                                       
-                                       {if $__3rdPartyButtons|trim}
-                                               <fieldset>
-                                                       <legend>{lang}wcf.user.login.3rdParty{/lang}</legend>
-                                                       <ul class="buttonGroup thirdPartyLogin">
-                                                               {@$__3rdPartyButtons}   
-                                                       </ul>
-                                               </fieldset>
-                                       {/if}
-                               </form>
-                       </div>
-                       
-                       <script type="text/javascript">
-                               //<![CDATA[
-                               $(function() {
-                                       WCF.Language.addObject({
-                                               'wcf.user.button.login': '{lang}wcf.user.button.login{/lang}',
-                                               'wcf.user.button.register': '{lang}wcf.user.button.register{/lang}',
-                                               'wcf.user.login': '{lang}wcf.user.login{/lang}'
-                                       });
-                                       new WCF.User.Login(true);
-                               });
-                               //]]>
-                       </script>
-               </li>
-       {/if}
-       {if $__wcf->getLanguage()->getLanguages()|count > 1}
-               <li id="pageLanguageContainer">
-                       <script type="text/javascript">
-                               //<![CDATA[
-                               $(function() {
-                                       var $languages = {
-                                               {implode from=$__wcf->getLanguage()->getLanguages() item=language}
-                                                       '{@$language->languageID}': {
-                                                               iconPath: '{@$language->getIconPath()}',
-                                                               languageName: '{$language}'
-                                                       }
-                                               {/implode}
-                                       };
-                                       
-                                       new WCF.Language.Chooser('pageLanguageContainer', 'languageID', {@$__wcf->getLanguage()->languageID}, $languages, function(item) {
-                                               var $location = window.location.toString().replace(/#.*/, '').replace(/(\?|&)l=[0-9]+/g, '');
-                                               var $delimiter = ($location.indexOf('?') == -1) ? '?' : '&';
-                                               
-                                               window.location = $location + $delimiter + 'l=' + item.data('languageID') + window.location.hash;
-                                       });
-                               });
-                               //]]>
-                       </script>
-               </li>
-       {/if}
-{/if}
-
-{if !$__hideUserMenu|isset}
-       {if $__wcf->user->userID && $__wcf->session->getPermission('mod.general.canUseModeration')}
-               <li id="outstandingModeration" data-count="{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}">
-                       <a href="{link controller='ModerationList'}{/link}">
-                               <span class="icon icon16 icon-warning-sign"></span>
-                               <span>{lang}wcf.moderation.moderation{/lang}</span>
-                               {if $__wcf->getModerationQueueManager()->getOutstandingModerationCount()}<span class="badge badgeInverse">{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}</span>{/if}
-                       </a>
-                       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
-                       <script type="text/javascript">
-                               //<![CDATA[
-                               $(function() {
-                                       WCF.Language.addObject({
-                                               'wcf.moderation.noMoreItems': '{lang}wcf.moderation.noMoreItems{/lang}',
-                                               'wcf.moderation.showAll': '{lang}wcf.moderation.showAll{/lang}'
-                                       });
-                                       
-                                       new WCF.Moderation.UserPanel('{link controller='ModerationList'}{/link}');
-                               });
-                               //]]>
-                       </script>
-               </li>
-       {/if}
-       
-       {event name='menuItems'}
-{/if}
-
-{if $__wcf->user->userID}
-       <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-signout"></span> <span>{lang}wcf.user.logout{/lang}</span></a></li>
-{/if}
diff --git a/com.woltlab.wcf/template/userProfileAbout.tpl b/com.woltlab.wcf/template/userProfileAbout.tpl
deleted file mode 100644 (file)
index 0eb5992..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<div class="containerPadding">
-       {hascontent}
-               {content}
-                       {foreach from=$options item=category}
-                               {foreach from=$category[categories] item=optionCategory}
-                                       <fieldset>
-                                               <legend>{lang}wcf.user.option.category.{@$optionCategory[object]->categoryName}{/lang}</legend>
-                                               
-                                               <dl>
-                                                       {foreach from=$optionCategory[options] item=userOption}
-                                                               <dt>{lang}wcf.user.option.{@$userOption[object]->optionName}{/lang}</dt>
-                                                               <dd>{@$userOption[object]->optionValue}</dd>
-                                                       {/foreach}
-                                               </dl>
-                                       </fieldset>
-                               {/foreach}
-                       {/foreach}
-               {/content}
-       {hascontentelse}
-               {lang}wcf.user.profile.content.about.noPublicData{/lang}
-       {/hascontent}
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userProfileAboutEditable.tpl b/com.woltlab.wcf/template/userProfileAboutEditable.tpl
deleted file mode 100644 (file)
index 93de8ee..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<div class="containerPadding">
-       {foreach from=$optionTree item=categoryLevel1}
-               {foreach from=$categoryLevel1[categories] item=categoryLevel2}
-                       <fieldset>
-                               <legend>{lang}wcf.user.option.category.{@$categoryLevel2[object]->categoryName}{/lang}</legend>
-                               
-                               {if $categoryLevel2[object]->categoryName == 'profile.personal' && MODULE_USER_RANK && $__wcf->session->getPermission('user.profile.canEditUserTitle')}
-                                       <dl>
-                                               <dt><label for="__userTitle">{lang}wcf.user.userTitle{/lang}</label></dt>
-                                               <dd>
-                                                       <input type="text" id="__userTitle" name="values[__userTitle]" value="{$__userTitle}" class="long" maxlength="{@USER_TITLE_MAX_LENGTH}" />
-                                                       {if $errorType[__userTitle]|isset}
-                                                               <small class="innerError">
-                                                                       {lang}wcf.user.userTitle.error.{@$errorType[__userTitle]}{/lang}
-                                                               </small>
-                                                       {/if}
-                                                       <small>{lang}wcf.user.userTitle.description{/lang}</small>
-                                               </dd>
-                                       </dl>
-                               {/if}
-                               
-                               {include file='userProfileOptionFieldList' options=$categoryLevel2[options] langPrefix='wcf.user.option.'}
-                       </fieldset>
-               {/foreach}
-       {/foreach}
-       
-       <div class="formSubmit">
-               <button class="buttonPrimary" accesskey="s" data-type="save">{lang}wcf.global.button.save{/lang}</button>
-               <button data-type="restore">{lang}wcf.global.button.cancel{/lang}</button>
-       </div>
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userProfileCommentList.tpl b/com.woltlab.wcf/template/userProfileCommentList.tpl
deleted file mode 100644 (file)
index ba0d970..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{include file='__commentJavaScript' commentContainerID='userProfileCommentList'}
-
-{if $commentCanAdd}
-       <ul id="userProfileCommentList" class="commentList containerList" data-can-add="true" data-object-id="{@$userID}" data-object-type-id="{@$commentObjectTypeID}" data-comments="{@$commentList->countObjects()}" data-last-comment-time="{@$lastCommentTime}">
-               {include file='commentList'}
-       </ul>
-{else}
-       {hascontent}
-               <ul id="userProfileCommentList" class="commentList containerList" data-can-add="false" data-object-id="{@$userID}" data-object-type-id="{@$commentObjectTypeID}" data-comments="{@$commentList->countObjects()}" data-last-comment-time="{@$lastCommentTime}">
-                       {content}
-                               {include file='commentList'}
-                       {/content}
-               </ul>
-       {hascontentelse}
-               <div class="containerPadding">
-                       {lang}wcf.user.profile.content.wall.noEntries{/lang}
-               </div>
-       {/hascontent}
-{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userProfileOptionFieldList.tpl b/com.woltlab.wcf/template/userProfileOptionFieldList.tpl
deleted file mode 100644 (file)
index 34dd905..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{foreach from=$options item=optionData}
-       {assign var=option value=$optionData[object]}
-       {if $errorType|is_array && $errorType[$option->optionName]|isset}
-               {assign var=error value=$errorType[$option->optionName]}
-       {else}
-               {assign var=error value=''}
-       {/if}
-       <dl class="{$option->optionName}Input{if $error} formError{/if}">
-               <dt{if $optionData[cssClassName]} class="{$optionData[cssClassName]}"{/if}><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
-               <dd>{@$optionData[html]}
-                       {if $error}
-                               <small class="innerError">
-                                       {if $error == 'empty'}
-                                               {lang}wcf.global.form.error.empty{/lang}
-                                       {else}  
-                                               {lang}{@$langPrefix}error.{$error}{/lang}
-                                       {/if}
-                               </small>
-                       {/if}
-                       <small>{lang __optional=true}{@$langPrefix}{$option->optionName}.description{/lang}</small>
-               </dd>
-       </dl>
-{/foreach}
diff --git a/com.woltlab.wcf/template/userProfilePreview.tpl b/com.woltlab.wcf/template/userProfilePreview.tpl
deleted file mode 100644 (file)
index fa8a2c8..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<div class="box128 userProfilePreview">
-       <a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(128)}</a>
-       
-       {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
-               <script type="text/javascript">
-                       //<![CDATA[
-                               $(function() {
-                                       WCF.Language.addObject({
-                                               'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                                               'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                                               'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                                               'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                                       });
-                                       
-                                       new WCF.User.Action.Follow($('.userInformation'));
-                                       
-                                       {if !$user->getPermission('user.profile.cannotBeIgnored')}
-                                               new WCF.User.Action.Ignore($('.userInformation'));
-                                       {/if}
-                               });
-                       //]]>
-               </script>
-       {/if}
-       
-       <div class="userInformation">
-               {include file='userInformation'}
-               
-               {if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
-                       <dl class="plain inlineDataList userStats">
-                               <dt>{lang}wcf.user.usersOnline.lastActivity{/lang}</dt>
-                               <dd>{@$user->getLastActivityTime()|time}{if $user->getCurrentLocation()}, {@$user->getCurrentLocation()}{/if}</dd>
-                       </dl>
-               {/if}
-               
-               {hascontent}
-                       <dl class="plain inlineDataList userFields">
-                               {content}
-                                       {if $user->occupation}
-                                               <dt>{lang}wcf.user.option.occupation{/lang}</dt>
-                                               <dd>{$user->occupation}</dd>
-                                       {/if}
-                                       {if $user->hobbies}
-                                               <dt>{lang}wcf.user.option.hobbies{/lang}</dt>
-                                               <dd>{$user->hobbies}</dd>
-                                       {/if}
-                                       {event name='userFields'}
-                               {/content}
-                       </dl>
-               {/hascontent}
-       </div>
-</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/template/userSearch.tpl b/com.woltlab.wcf/template/userSearch.tpl
deleted file mode 100644 (file)
index db534a1..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.search{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <script type="text/javascript">
-               //<![CDATA[
-               $(function() {
-                       new WCF.Search.User('#username', null, false, [ ], false);
-               });
-               //]]>
-       </script>
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       {@$__boxSidebar}
-{/capture}
-
-{include file='header' sidebarOrientation='right'}
-
-<header class="boxHeadline">
-       <h1>{lang}wcf.user.search{/lang}</h1>
-</header>
-
-{include file='userNotice'}
-
-{if $errorField == 'search'}
-       <p class="error">{lang}wcf.user.search.error.noMatches{/lang}</p>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtons'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-<form method="post" action="{link controller='UserSearch'}{/link}">
-       <div class="container containerPadding marginTop">
-               <fieldset>
-                       <legend>{lang}wcf.acp.user.search.conditions.general{/lang}</legend>
-                       
-                       <dl>
-                               <dt><label for="searchUsername">{lang}wcf.user.username{/lang}</label></dt>
-                               <dd>
-                                       <input type="text" id="searchUsername" name="username" value="{$username}" class="medium" />
-                               </dd>
-                       </dl>
-                       
-                       {event name='generalFields'}
-               </fieldset>
-               
-               {foreach from=$optionTree[0][categories] item=category}
-                       <fieldset>
-                               <legend>{lang}wcf.user.option.category.{@$category[object]->categoryName}{/lang}</legend>
-                               {hascontent}<p>{content}{lang __optional=true}wcf.user.option.category.{@$category[object]->categoryName}.description{/lang}{/content}</p>{/hascontent}
-                               
-                               {include file='userOptionFieldList' options=$category[options] langPrefix='wcf.user.option.'}
-                       </fieldset>
-               {/foreach}
-       </div>
-       
-       {event name='fieldsets'}
-       
-       <div class="formSubmit">
-               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-       </div>
-</form>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/userSidebar.tpl b/com.woltlab.wcf/template/userSidebar.tpl
deleted file mode 100644 (file)
index 11458b6..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<fieldset>
-       <legend class="invisible">{lang}wcf.user.avatar{/lang}</legend>
-       
-       <div class="userAvatar">
-               {if $user->userID == $__wcf->user->userID}
-                       <a href="{link controller='AvatarEdit'}{/link}" class="framed jsTooltip" title="{lang}wcf.user.avatar.edit{/lang}">{@$user->getAvatar()->getImageTag()}</a>
-               {else}
-                       <span class="framed">{@$user->getAvatar()->getImageTag()}</span>
-               {/if}
-       </div>
-</fieldset>
-
-<fieldset>
-       <legend class="invisible">{lang}wcf.user.stats{/lang}</legend>
-       
-       <dl class="plain statsDataList">
-               {event name='statistics'}
-               
-               {if MODULE_LIKE}
-                       <dt>{lang}wcf.like.likesReceived{/lang}</dt>
-                       <dd>{#$user->likesReceived}</dd>
-               {/if}
-               
-               <dt>{if $user->activityPoints}<a class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showDetails{/lang}" data-user-id="{@$user->userID}">{lang}wcf.user.activityPoint{/lang}</a>{else}{lang}wcf.user.activityPoint{/lang}{/if}</dt>
-               <dd>{#$user->activityPoints}</dd>
-               
-               <dt>{lang}wcf.user.profileHits{/lang}</dt>
-               <dd{if $user->getProfileAge() > 1} title="{lang}wcf.user.profileHits.hitsPerDay{/lang}"{/if}>{#$user->profileHits}</dd>
-       </dl>
-</fieldset>
-
-{if $followingCount}
-       <fieldset>
-               <legend>{lang}wcf.user.profile.following{/lang} <span class="badge">{#$followingCount}</span></legend>
-               
-               <div>
-                       <ul class="framedIconList">
-                               {foreach from=$following item=followingUser}
-                                       <li><a href="{link controller='User' object=$followingUser}{/link}" title="{$followingUser->username}" class="framed jsTooltip">{@$followingUser->getAvatar()->getImageTag(48)}</a></li>
-                               {/foreach}
-                       </ul>
-                       
-                       {if $followingCount > 10}
-                               <a id="followingAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
-                       {/if}
-               </div>
-       </fieldset>
-{/if}
-
-{if $followerCount}
-       <fieldset>
-               <legend>{lang}wcf.user.profile.followers{/lang} <span class="badge">{#$followerCount}</span></legend>
-               
-               <div>
-                       <ul class="framedIconList">
-                               {foreach from=$followers item=follower}
-                                       <li><a href="{link controller='User' object=$follower}{/link}" title="{$follower->username}" class="framed jsTooltip">{@$follower->getAvatar()->getImageTag(48)}</a></li>
-                               {/foreach}
-                       </ul>
-                               
-                       {if $followerCount > 10}
-                               <a id="followerAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
-                       {/if}
-               </div>
-       </fieldset>
-{/if}
-
-{if $visitorCount}
-       <fieldset>
-               <legend>{lang}wcf.user.profile.visitors{/lang} <span class="badge">{#$visitorCount}</span></legend>
-               
-               <div>
-                       <ul class="framedIconList">
-                               {foreach from=$visitors item=visitor}
-                                       <li><a href="{link controller='User' object=$visitor}{/link}" title="{$visitor->username} ({@$visitor->time|plainTime})" class="framed jsTooltip">{@$visitor->getAvatar()->getImageTag(48)}</a></li>
-                               {/foreach}
-                       </ul>
-                               
-                       {if $visitorCount > 10}
-                               <a id="visitorAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
-                       {/if}
-               </div>
-       </fieldset>
-{/if}
-
-{event name='boxes'}
diff --git a/com.woltlab.wcf/template/usersOnlineList.tpl b/com.woltlab.wcf/template/usersOnlineList.tpl
deleted file mode 100644 (file)
index 3b11d2e..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-{include file='documentHeader'}
-
-<head>
-       <title>{lang}wcf.user.usersOnline{/lang} - {PAGE_TITLE|language}</title>
-       
-       {include file='headInclude'}
-       
-       <link rel="canonical" href="{link controller='UsersOnlineList'}{/link}" />
-       
-       <script type="text/javascript">
-               //<![CDATA[
-                       $(function() {
-                               WCF.Language.addObject({
-                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
-                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
-                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
-                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
-                               });
-                               
-                               new WCF.User.Action.Follow($('.userList > li'));
-                               new WCF.User.Action.Ignore($('.userList > li'));
-                       });
-               //]]>
-       </script>
-       
-       {if USERS_ONLINE_PAGE_REFRESH > 0}
-               <meta http-equiv="refresh" content="{@USERS_ONLINE_PAGE_REFRESH}; url={link controller='UsersOnlineList'}sortField={@$sortField}&sortOrder={@$sortOrder}{/link}" />
-       {/if}
-</head>
-
-<body id="tpl{$templateName|ucfirst}">
-
-{capture assign='sidebar'}
-       <div>
-               <form method="get" action="{link controller='UsersOnlineList'}{/link}">
-                       <fieldset>
-                               <legend><label for="sortField">{lang}wcf.user.members.sort{/lang}</label></legend>
-                               
-                               <dl>
-                                       <dd>
-                                               <select id="sortField" name="sortField">
-                                                       <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
-                                                       <option value="lastActivityTime"{if $sortField == 'lastActivityTime'} selected="selected"{/if}>{lang}wcf.user.usersOnline.lastActivity{/lang}</option>
-                                                       <option value="requestURI"{if $sortField == 'requestURI'} selected="selected"{/if}>{lang}wcf.user.usersOnline.location{/lang}</option>
-                                                       
-                                                       {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
-                                                               <option value="ipAddress"{if $sortField == 'ipAddress'} selected="selected"{/if}>{lang}wcf.user.usersOnline.ipAddress{/lang}</option>
-                                                               <option value="userAgent"{if $sortField == 'userAgent'} selected="selected"{/if}>{lang}wcf.user.usersOnline.userAgent{/lang}</option>
-                                                       {/if}
-                                               </select>
-                                               <select name="sortOrder">
-                                                       <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
-                                                       <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
-                                               </select>
-                                       </dd>
-                               </dl>
-                       </fieldset>
-                       
-                       <div class="formSubmit">
-                               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
-                       </div>
-               </form>
-       </div>
-       
-       {@$__boxSidebar}
-{/capture}
-
-{include file='header' sidebarOrientation='right'}
-
-{include file='userNotice'}
-
-{assign var=usersOnlineList value=''}
-{assign var=usersOnline value=0}
-{assign var=robotsOnlineList value=''}
-{assign var=robotsOnline value=0}
-{assign var=guestsOnlineList value=''}
-{assign var=guestsOnline value=0}
-{foreach from=$objects item=user}
-       {capture assign=locationData}
-               <p>
-                       {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small>- {@$user->lastActivityTime|time}</small>
-               </p>
-       {/capture}
-       
-       {capture assign=sessionData}
-               {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
-                       <dl class="plain inlineDataList">
-                               <dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt>
-                               <dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd>
-                               <dt>{lang}wcf.user.usersOnline.userAgent{/lang}</dt>
-                               <dd title="{$user->userAgent}">{$user->getBrowser()|truncate:30}</dd>
-                       </dl>
-               {/if}
-       {/capture}
-       
-       {if $user->userID}
-               {* member *}
-               {capture append=usersOnlineList}
-                       <li>
-                               <div class="box48">
-                                       <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
-                                       
-                                       <div class="details userInformation">
-                                               <div class="containerHeadline">
-                                                       <h3><a href="{link controller='User' object=$user}{/link}">{@$user->getFormattedUsername()}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3>
-                                                       {@$locationData} 
-                                               </div>
-                                               
-                                               {@$sessionData}
-                                               
-                                               {include file='userInformationButtons'}
-                                       </div>
-                               </div>
-                       </li>
-               {/capture}
-               
-               {assign var=usersOnline value=$usersOnline+1}
-       {elseif $user->spiderID}
-               {* search robot *}
-               {capture append=robotsOnlineList}
-                       <li>
-                               <div class="box48">
-                                       <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></p>
-                                       
-                                       <div class="details userInformation">
-                                               <div class="containerHeadline">
-                                                       <h3>{if $user->getSpider()->spiderURL}<a href="{$user->getSpider()->spiderURL}" class="externalURL"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>{$user->getSpider()->spiderName}</a>{else}{$user->getSpider()->spiderName}{/if}</h3>
-                                                       {@$locationData} 
-                                               </div>
-                                               
-                                               {@$sessionData}
-                                       </div>
-                               </div>
-                       </li>
-               {/capture}
-               
-               {assign var=robotsOnline value=$robotsOnline+1}
-       {else}
-               {* unregistered *}
-               {capture append=guestsOnlineList}
-                       <li>
-                               <div class="box48">
-                                       <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></p>
-                                       
-                                       <div class="details userInformation">
-                                               <div class="containerHeadline">
-                                                       <h3>{lang}wcf.user.guest{/lang}</h3>
-                                                       {@$locationData} 
-                                               </div>
-                                               
-                                               {@$sessionData}
-                                       </div>
-                               </div>
-                       </li>
-               {/capture}
-               
-               {assign var=guestsOnline value=$guestsOnline+1}
-       {/if}
-{/foreach}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsTop'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{if $usersOnline}
-       <header class="boxHeadline">
-               <h1>{lang}wcf.user.usersOnline{/lang} <span class="badge">{#$usersOnline}</span></h1>
-       </header>
-       
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned userList">
-                       {@$usersOnlineList}
-               </ol>
-       </div>
-{/if}
-
-{if $guestsOnline && USERS_ONLINE_SHOW_GUESTS}
-       <header class="boxHeadline">
-               <h1>{lang}wcf.user.usersOnline.guests{/lang} <span class="badge">{#$guestsOnline}</span></h1>
-       </header>
-       
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned">
-                       {@$guestsOnlineList}
-               </ol>
-       </div>
-{/if}
-
-{if $robotsOnline && USERS_ONLINE_SHOW_ROBOTS}
-       <header class="boxHeadline">
-               <h1>{lang}wcf.user.usersOnline.robots{/lang} <span class="badge">{#$robotsOnline}</span></h1>
-       </header>
-       
-       <div class="container marginTop">
-               <ol class="containerList doubleColumned">
-                       {@$robotsOnlineList}
-               </ol>
-       </div>
-{/if}
-
-<div class="contentNavigation">
-       {hascontent}
-               <nav>
-                       <ul>
-                               {content}
-                                       {event name='contentNavigationButtonsBottom'}
-                               {/content}
-                       </ul>
-               </nav>
-       {/hascontent}
-</div>
-
-{include file='footer'}
-
-</body>
-</html>
diff --git a/com.woltlab.wcf/template/wysiwyg.tpl b/com.woltlab.wcf/template/wysiwyg.tpl
deleted file mode 100644 (file)
index e7a768b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<script type="text/javascript">
-//<![CDATA[
-       var CKEDITOR_BASEPATH = '{@$__wcf->getPath()}js/3rdParty/ckeditor/';
-       var __CKEDITOR_BUTTONS = [ {implode from=$__wcf->getBBCodeHandler()->getButtonBBCodes() item=__bbcode}{ icon: '{$__bbcode->wysiwygIcon}', label: '{$__bbcode->buttonLabel|language}', name: '{$__bbcode->bbcodeTag}' }{/implode} ];
-//]]>
-</script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/ckeditor/ckeditor.js"></script>
-<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/ckeditor/adapters/jquery.js"></script>
-{event name='javascriptIncludes'}
-
-<script type="text/javascript">
-//<![CDATA[
-$(function() {
-       if ($.browser.mobile) {
-               return;
-       }
-       
-       var __CKEDITOR_TOOLBAR = [
-               ['Source', '-', 'Undo', 'Redo'],
-               ['Bold', 'Italic', 'Underline', '-', 'Strike', 'Subscript','Superscript'],
-               ['NumberedList', 'BulletedList', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
-               '/',
-               ['Font', 'FontSize', 'TextColor'],
-               ['Link', 'Unlink', 'Image', 'Table', 'Smiley'],
-               ['Maximize']
-       ];
-       if (__CKEDITOR_BUTTONS.length) {
-               var $buttons = [ ];
-               
-               for (var $i = 0, $length = __CKEDITOR_BUTTONS.length; $i < $length; $i++) {
-                       $buttons.push('__wcf_' + __CKEDITOR_BUTTONS[$i].name);
-               }
-               
-               __CKEDITOR_TOOLBAR.push($buttons);
-       }
-       
-       var $config = {
-               smiley_path: '{@$__wcf->getPath()|encodeJS}',
-               extraPlugins: 'wbbcode,wbutton',
-               removePlugins: 'contextmenu,tabletools,liststyle,elementspath,menubutton,forms,scayt',
-               language: '{@$__wcf->language->getFixedLanguageCode()}',
-               fontSize_sizes: '8/8pt;10/10pt;12/12pt;14/14pt;18/18pt;24/24pt;36/36pt;',
-               disableObjectResizing: true,
-               disableNativeSpellChecker: false,
-               toolbarCanCollapse: false,
-               enterMode: CKEDITOR.ENTER_BR,
-               minHeight: 200,
-               toolbar: __CKEDITOR_TOOLBAR,
-               smiley_images: [
-                       {implode from=$defaultSmilies item=smiley}'{@$smiley->smileyPath|encodeJS}'{/implode}
-               ],
-               smiley_descriptions: [
-                       {implode from=$defaultSmilies item=smiley}'{@$smiley->smileyCode|encodeJS}'{/implode}
-               ]
-       };
-       
-       {event name='javascriptInit'}
-       
-       var $editor = CKEDITOR.instances['{if $wysiwygSelector|isset}{$wysiwygSelector|encodeJS}{else}text{/if}'];
-       if ($editor) $editor.destroy(true);
-       
-       $('{if $wysiwygSelector|isset}#{$wysiwygSelector|encodeJS}{else}#text{/if}').ckeditor($config);
-});
-//]]>
-</script>
diff --git a/com.woltlab.wcf/templates/__commentJavaScript.tpl b/com.woltlab.wcf/templates/__commentJavaScript.tpl
new file mode 100644 (file)
index 0000000..275474a
--- /dev/null
@@ -0,0 +1,30 @@
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Comment{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.comment.add': '{lang}wcf.comment.add{/lang}',
+                       'wcf.comment.button.response.add': '{lang}wcf.comment.button.response.add{/lang}',
+                       'wcf.comment.delete.confirmMessage': '{lang}wcf.comment.delete.confirmMessage{/lang}',
+                       'wcf.comment.description': '{lang}wcf.comment.description{/lang}',
+                       'wcf.comment.more': '{lang}wcf.comment.more{/lang}',
+                       'wcf.comment.response.add': '{lang}wcf.comment.response.add{/lang}',
+                       'wcf.comment.response.more': '{lang}wcf.comment.response.more{/lang}',
+                       'wcf.moderation.report.reportContent': '{lang}wcf.moderation.report.reportContent{/lang}',
+                       'wcf.moderation.report.success': '{lang}wcf.moderation.report.success{/lang}'
+               });
+               
+               new {if $commentHandlerClass|isset}{@$commentHandlerClass}{else}WCF.Comment.Handler{/if}('{$commentContainerID}', '{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}');
+               {if MODULE_LIKE && $__wcf->getSession()->getPermission('user.like.canViewLike')}
+                       new WCF.Comment.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
+                       new WCF.Comment.Response.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
+               {/if}
+               
+               new WCF.Moderation.Report.Content('com.woltlab.wcf.comment.comment', '.jsReportCommentComment');
+               new WCF.Moderation.Report.Content('com.woltlab.wcf.comment.response', '.jsReportCommentResponse');
+       });
+       //]]>
+</script>
+
+{event name='javascriptInclude'}
diff --git a/com.woltlab.wcf/templates/__messageFormPoll.tpl b/com.woltlab.wcf/templates/__messageFormPoll.tpl
new file mode 100644 (file)
index 0000000..1296197
--- /dev/null
@@ -0,0 +1,83 @@
+{if $__showPoll|isset && $__showPoll}
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Poll{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.poll.button.addOption': '{lang}wcf.poll.button.addOption{/lang}',
+                               'wcf.poll.button.removeOption': '{lang}wcf.poll.button.removeOption{/lang}'
+                       });
+                       
+                       new WCF.Poll.Management('pollOptionContainer', [ {implode from=$pollOptions item=pollOption}{ optionID: {@$pollOption[optionID]}, optionValue: '{$pollOption[optionValue]}' }{/implode} ]);
+               });
+               //]]>
+       </script>
+       
+       <div id="poll" class="jsOnly tabMenuContent container containerPadding">
+               <fieldset>
+                       <dl{if $errorField == 'pollOptions'} class="formError"{/if}>
+                               <dt>
+                                       <label for="pollQuestion">{lang}wcf.poll.question{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="text" name="pollQuestion" id="pollQuestion" value="{$pollQuestion}" class="long" />
+                               </dd>
+                               <dt>
+                                       <label>{lang}wcf.poll.options{/lang}</label>
+                               </dt>
+                               <dd id="pollOptionContainer" class="sortableListContainer">
+                                       <ol class="sortableList"></ol>
+                                       {if $errorField == 'pollOptions'}
+                                               <small class="innerError">
+                                                       {lang}wcf.global.form.error.empty{/lang}
+                                               </small>
+                                       {/if}
+                                       <small>{lang}wcf.poll.options.description{/lang}</small>
+                               </dd>
+                       </dl>
+                       <dl>
+                               <dt{if $errorField == 'pollEndTime'} class="formError"{/if}>
+                                       <label for="pollEndTime">{lang}wcf.poll.endTime{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="datetime" name="pollEndTime" id="pollEndTime" value="{if $pollEndTime}{@$pollEndTime|date:'Y-m-d H:i'}{/if}" />
+                                       {if $errorField == 'pollEndTime'}
+                                               <small class="innerError">
+                                                       {lang}wcf.poll.endTime.error.{@$errorType}{/lang}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       <dl{if $errorField == 'pollMaxVotes'} class="formError"{/if}>
+                               <dt>
+                                       <label for="pollMaxVotes">{lang}wcf.poll.maxVotes{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="number" name="pollMaxVotes" id="pollMaxVotes" value="{@$pollMaxVotes}" min="1" class="tiny" />
+                                       {if $errorField == 'pollMaxVotes'}
+                                               <small class="innerError">
+                                                       {lang}wcf.poll.maxVotes.error.{@$errorType}{/lang}
+                                               </small>
+                                       {/if}
+                               </dd>
+                               <dd>
+                                       <label><input type="checkbox" name="pollIsChangeable" value="1"{if $pollIsChangeable} checked="checked"{/if} /> {lang}wcf.poll.isChangeable{/lang}</label>
+                               </dd>
+                               {if !$pollID}
+                                       <dd>
+                                               <label><input type="checkbox" name="pollIsPublic" value="1"{if $pollIsPublic} checked="checked"{/if} /> {lang}wcf.poll.isPublic{/lang}</label>
+                                       </dd>
+                               {/if}
+                               <dd>
+                                       <label><input type="checkbox" name="pollResultsRequireVote" value="1"{if $pollResultsRequireVote} checked="checked"{/if} /> {lang}wcf.poll.resultsRequireVote{/lang}</label>
+                                       <small>{lang}wcf.poll.resultsRequireVote.description{/lang}</small>
+                               </dd>
+                               <dd>
+                                       <label><input type="checkbox" name="pollSortByVotes" value="1"{if $pollSortByVotes} checked="checked"{/if} /> {lang}wcf.poll.sortByVotes{/lang}</label>
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+               </fieldset>
+       </div>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/__messageFormSmilies.tpl b/com.woltlab.wcf/templates/__messageFormSmilies.tpl
new file mode 100644 (file)
index 0000000..913276e
--- /dev/null
@@ -0,0 +1,5 @@
+<ul class="smileyList">
+       {foreach from=$smilies item=smiley}
+               <li><a title="{lang}{$smiley->smileyTitle}{/lang}" class="jsTooltip jsSmiley" data-smiley-code="{$smiley->smileyCode}"><img src="{$smiley->getURL()}" alt="{$smiley->smileyCode}" class="icon24" /></a></li>
+       {/foreach}
+</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/__messageQuoteManager.tpl b/com.woltlab.wcf/templates/__messageQuoteManager.tpl
new file mode 100644 (file)
index 0000000..62059c5
--- /dev/null
@@ -0,0 +1,13 @@
+WCF.Language.addObject({
+       'wcf.message.quote.insertAllQuotes': '{lang}wcf.message.quote.insertAllQuotes{/lang}',
+       'wcf.message.quote.insertSelectedQuotes': '{lang}wcf.message.quote.insertSelectedQuotes{/lang}',
+       'wcf.message.quote.manageQuotes': '{lang}wcf.message.quote.manageQuotes{/lang}',
+       'wcf.message.quote.quoteSelected': '{lang}wcf.message.quote.quoteSelected{/lang}',
+       'wcf.message.quote.removeAllQuotes': '{lang}wcf.message.quote.removeAllQuotes{/lang}',
+       'wcf.message.quote.removeSelectedQuotes': '{lang}wcf.message.quote.removeSelectedQuotes{/lang}',
+       'wcf.message.quote.showQuotes': '{lang}wcf.message.quote.showQuotes{/lang}'
+});
+
+{if !$wysiwygSelector|isset}{assign var=wysiwygSelector value=''}{/if}
+{if !$supportPaste|isset}{assign var=supportPaste value=false}{/if}
+var $quoteManager = new WCF.Message.Quote.Manager({@$__quoteCount}, '{$wysiwygSelector|encodeJS}', {if $supportPaste}true{else}false{/if}, [ {implode from=$__quoteRemove item=quoteID}'{$quoteID}'{/implode} ]);
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/__signatureMaxImageDimensions.tpl b/com.woltlab.wcf/templates/__signatureMaxImageDimensions.tpl
new file mode 100644 (file)
index 0000000..387a719
--- /dev/null
@@ -0,0 +1,7 @@
+{if SIGNATURE_MAX_IMAGE_HEIGHT}
+       <style type="text/css">
+               .messageSignature img {
+                       max-height: {@SIGNATURE_MAX_IMAGE_HEIGHT}px;
+               }
+       </style>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/accountManagement.tpl b/com.woltlab.wcf/templates/accountManagement.tpl
new file mode 100644 (file)
index 0000000..36ab61d
--- /dev/null
@@ -0,0 +1,296 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.accountManagement{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.accountManagement{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<p class="warning">{lang}wcf.user.accountManagement.warning{/lang}</p>
+
+{if $success|isset && $success|count > 0}
+       <div class="success">
+               {foreach from=$success item=successMessage}
+                       <p>{lang}{@$successMessage}{/lang}</p>
+               {/foreach}
+       </div>
+{/if}
+
+{assign var=__authProvider value=$__wcf->getUserProfileHandler()->getAuthProvider()}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='AccountManagement'}{/link}">
+       <div class="container containerPadding marginTop">
+               {if !$__authProvider}
+                       <fieldset>
+                               <legend><label for="password">{lang}wcf.user.password{/lang}</label></legend>
+                               
+                               <dl{if $errorField == 'password'} class="formError"{/if}>
+                                       <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
+                                       <dd>
+                                               <input type="password" id="password" name="password" value="" required="required" class="medium" />
+                                               {if $errorField == 'password'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType == 'false'}{lang}wcf.user.password.error.false{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                               <small>{lang}wcf.user.accountManagement.password.description{/lang}</small>
+                                       </dd>
+                               </dl>
+                               
+                               <dl>
+                                       <dd>
+                                               <ul class="buttonList">
+                                                       <li><a class="button small" href="{link controller='LostPassword'}{/link}"><span>{lang}wcf.user.lostPassword{/lang}</span></a></li>
+                                               </ul>
+                                       </dd>
+                               </dl>
+                               
+                               {event name='passwordFields'}
+                       </fieldset>
+               {/if}
+               
+               {if $__wcf->getSession()->getPermission('user.profile.canRename')}
+                       <fieldset>
+                               <legend><label for="username">{lang}wcf.user.changeUsername{/lang}</label></legend>
+                                       
+                               <dl{if $errorField == 'username'} class="formError"{/if}>
+                                       <dt><label for="username">{lang}wcf.user.newUsername{/lang}</label></dt>
+                                       <dd>
+                                               <input type="text" id="username" name="username" value="{$username}" required="required" pattern="^[^,]{ldelim}{REGISTER_USERNAME_MIN_LENGTH},{REGISTER_USERNAME_MAX_LENGTH}}$" class="medium" />
+                                                       
+                                               {if $errorField == 'username'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType == 'notValid'}{lang}wcf.user.username.error.notValid{/lang}{/if}
+                                                               {if $errorType == 'notUnique'}{lang}wcf.user.username.error.notUnique{/lang}{/if}
+                                                               {if $errorType == 'alreadyRenamed'}{lang}wcf.user.username.error.alreadyRenamed{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                               {if $renamePeriod > 0}
+                                                       <small>{lang}wcf.user.changeUsername.description{/lang}</small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               {event name='changeUsernameFields'}
+                       </fieldset>
+               {/if}
+               
+               {if !$__authProvider}
+                       <fieldset>
+                               <legend><label for="newPassword">{lang}wcf.user.changePassword{/lang}</label></legend>
+                               
+                               <dl{if $errorField == 'newPassword'} class="formError"{/if}>
+                                       <dt><label for="newPassword">{lang}wcf.user.newPassword{/lang}</label></dt>
+                                       <dd>
+                                               <input type="password" id="newPassword" name="newPassword" value="{$newPassword}" class="medium" />
+                                                       
+                                               {if $errorField == 'newPassword'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType == 'notSecure'}{lang}wcf.user.password.error.notSecure{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               <dl{if $errorField == 'confirmNewPassword'} class="formError"{/if}>
+                                       <dt><label for="confirmNewPassword">{lang}wcf.user.confirmPassword{/lang}</label></dt>
+                                       <dd>
+                                               <input type="password" id="confirmNewPassword" name="confirmNewPassword" value="{$confirmNewPassword}" class="medium" />
+                                                       
+                                               {if $errorField == 'confirmNewPassword'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType == 'notEqual'}{lang}wcf.user.confirmPassword.error.notEqual{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               {event name='changePasswordFields'}
+                       </fieldset>
+               {/if}
+               
+               {if $__wcf->getSession()->getPermission('user.profile.canChangeEmail')}
+                       <fieldset>
+                               <legend><label for="email">{lang}wcf.user.changeEmail{/lang}</label></legend>
+                               
+                               <dl{if $errorField == 'email'} class="formError"{/if}>
+                                       <dt><label for="email">{lang}wcf.user.newEmail{/lang}</label></dt>
+                                       <dd>
+                                               <input type="email" id="email" name="email" value="{$email}" class="medium" />
+                                                       
+                                               {if $errorField == 'email'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType == 'notValid'}{lang}wcf.user.email.error.notValid{/lang}{/if}
+                                                               {if $errorType == 'notUnique'}{lang}wcf.user.email.error.notUnique{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               <dl{if $errorField == 'confirmEmail'} class="formError"{/if}>
+                                       <dt><label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label></dt>
+                                       <dd>
+                                               <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" class="medium" />
+                                                       
+                                               {if $errorField == 'confirmEmail'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'notEqual'}{lang}wcf.user.confirmEmail.error.notEqual{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               {event name='changeEmailFields'}
+                               
+                               {if REGISTER_ACTIVATION_METHOD == 1 && $__wcf->getUser()->reactivationCode != 0}
+                                       <dl>
+                                               <dd>
+                                                       <ul class="buttonList">
+                                                               <li><a class="button small" href="{link controller='EmailActivation'}{/link}"><span>{lang}wcf.user.emailActivation{/lang}</span></a></li>
+                                                       </ul>
+                                               </dd>
+                                       </dl>
+                               {/if}
+                       </fieldset>
+               {/if}
+               
+               {if $__wcf->getSession()->getPermission('user.profile.canQuit')}
+                       <fieldset>
+                               <legend>{lang}wcf.user.quit{/lang}</legend>
+                               
+                               {if $quitStarted}
+                                       <dl>
+                                               <dd>
+                                                       <label><input type="checkbox" name="cancelQuit" value="1" {if $cancelQuit == 1}checked="checked" {/if}/> {lang}wcf.user.quit.cancel{/lang}</label>
+                                               </dd>
+                                       </dl>
+                               {else}
+                                       <dl>
+                                               <dd>
+                                                       <label><input type="checkbox" name="quit" value="1" {if $quit == 1}checked="checked" {/if}/> {lang}wcf.user.quit.sure{/lang}</label>
+                                                       <small>{lang}wcf.user.quit.description{/lang}</small>
+                                               </dd>
+                                       </dl>
+                               {/if}
+                               
+                               {event name='quitFields'}
+                       </fieldset>
+               {/if}
+               
+               {hascontent}
+                       <fieldset id="3rdParty">
+                               <legend>{lang}wcf.user.3rdparty{/lang}</legend>
+                               
+                               {content}
+                                       {if $__authProvider}
+                                               <dl>
+                                                       <dt>{lang}wcf.user.3rdparty.{@$__authProvider}{/lang}</dt>
+                                                       <dd>
+                                                               <label><input type="checkbox" name="{@$__authProvider}Disconnect" value="1" /> {lang}wcf.user.3rdparty.{@$__authProvider}.disconnect{/lang}</label>
+                                                       </dd>
+                                               </dl>
+                                       {else}
+                                               {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
+                                                       <dl>
+                                                               <dt>{lang}wcf.user.3rdparty.github{/lang}</dt>
+                                                               <dd>
+                                                                       {if $__wcf->getSession()->getVar('__githubToken')}
+                                                                               <label><input type="checkbox" name="githubConnect" value="1"{if $githubConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.github.connect{/lang}</label>
+                                                                       {else}
+                                                                               <a href="{link controller='GithubAuth'}{/link}" class="button small"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.connect{/lang}</span></a>
+                                                                       {/if}
+                                                               </dd>
+                                                       </dl>
+                                               {/if}
+                                               
+                                               {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}
+                                                       <dl>
+                                                               <dt>{lang}wcf.user.3rdparty.twitter{/lang}</dt>
+                                                               <dd>
+                                                                       {if $__wcf->getSession()->getVar('__twitterData')}
+                                                                               <label><input type="checkbox" name="twitterConnect" value="1"{if $twitterConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.twitter.connect{/lang}</label>
+                                                                       {else}
+                                                                               <a href="{link controller='TwitterAuth'}{/link}" class="button small"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.connect{/lang}</span></a>
+                                                                       {/if}
+                                                               </dd>
+                                                       </dl>
+                                               {/if}
+                                               
+                                               {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}
+                                                       <dl>
+                                                               <dt>{lang}wcf.user.3rdparty.facebook{/lang}</dt>
+                                                               <dd>
+                                                                       {if $__wcf->getSession()->getVar('__facebookData')}
+                                                                               <label><input type="checkbox" name="facebookConnect" value="1"{if $facebookConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.facebook.connect{/lang}</label>
+                                                                       {else}
+                                                                               <a href="{link controller='FacebookAuth'}{/link}" class="button small"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.connect{/lang}</span></a>
+                                                                       {/if}
+                                                               </dd>
+                                                       </dl>
+                                               {/if}
+                                               
+                                               {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}
+                                                       <dl>
+                                                               <dt>{lang}wcf.user.3rdparty.google{/lang}</dt>
+                                                               <dd>
+                                                                       {if $__wcf->getSession()->getVar('__googleData')}
+                                                                               <label><input type="checkbox" name="googleConnect" value="1"{if $googleConnect} checked="checked"{/if} /> {lang}wcf.user.3rdparty.google.connect{/lang}</label>
+                                                                       {else}
+                                                                               <a href="{link controller='GoogleAuth'}{/link}" class="button small"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.connect{/lang}</span></a>
+                                                                       {/if}
+                                                               </dd>
+                                                       </dl>
+                                               {/if}
+                                       {/if}
+                                       
+                                       {event name='3rdpartyFields'}
+                               {/content}
+                       </fieldset>
+               {/hascontent}
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               {@SECURITY_TOKEN_INPUT_TAG}
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/aclPermissionJavaScript.tpl b/com.woltlab.wcf/templates/aclPermissionJavaScript.tpl
new file mode 100644 (file)
index 0000000..897fd83
--- /dev/null
@@ -0,0 +1,63 @@
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               {if $aclValues[$objectTypeID]|isset}
+                       var initialPermissions = { 
+                               returnValues: {
+                                       options: {
+                                               {implode from=$aclValues[$objectTypeID][options] key='__optionID' item='__optionData'}
+                                                       {@$__optionID}: {
+                                                               categoryName: '{@$__optionData[categoryName]|encodeJS}',
+                                                               label: '{@$__optionData[label]|encodeJS}',
+                                                               optionName: '{@$__optionData[optionName]|encodeJS}'
+                                                       }
+                                               {/implode}
+                                       },
+                                       categories: {
+                                               {implode from=$aclValues[$objectTypeID][categories] key='__category' item='__categoryName'}
+                                                       '{@$__category|encodeJS}': '{@$__categoryName|encodeJS}'
+                                               {/implode}
+                                       },
+                                       user: {
+                                               {if $aclValues[$objectTypeID][user]|isset}
+                                                       option: {
+                                                               {implode from=$aclValues[$objectTypeID][user][option] key='__userID' item='__optionData'}
+                                                                       {@$__userID}: {
+                                                                               {implode from=$__optionData key='__optionID' item='__optionValue'}
+                                                                                       {@$__optionID}: {@$__optionValue}
+                                                                               {/implode}
+                                                                       }
+                                                               {/implode}
+                                                       },
+                                                       label: {
+                                                               {implode from=$aclValues[$objectTypeID][user][label] key='__userID' item='__label'}
+                                                                       {@$__userID}: '{@$__label|encodeJS}'
+                                                               {/implode}
+                                                       }
+                                               {/if}
+                                       },
+                                       group: {
+                                               {if $aclValues[$objectTypeID][group]|isset}
+                                                       option: {
+                                                               {implode from=$aclValues[$objectTypeID][group][option] key='__groupID' item='__optionData'}
+                                                                       {@$__groupID}: {
+                                                                               {implode from=$__optionData key='__optionID' item='__optionValue'}
+                                                                                       {@$__optionID}: {@$__optionValue}
+                                                                               {/implode}
+                                                                       }
+                                                               {/implode}
+                                                       },
+                                                       label: {
+                                                               {implode from=$aclValues[$objectTypeID][group][label] key='__groupID' item='__label'}
+                                                                       {@$__groupID}: '{@$__label|encodeJS}'
+                                                               {/implode}
+                                                       }
+                                               {/if}
+                                       }
+                               }
+                       };
+               {/if}
+               new {if $aclListClassName|isset}{@$aclListClassName}{else}WCF.ACL.List{/if}($('#{@$containerID}'), {@$objectTypeID}, {if $categoryName|isset}'{@$categoryName}'{else}null{/if}, {if $objectID|isset}{@$objectID}{else}0{/if}, {if !$includeUserGroups|isset || $includeUserGroups}true{else}false{/if}{if $aclValues[$objectTypeID]|isset}, initialPermissions{/if});
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/aclPermissions.tpl b/com.woltlab.wcf/templates/aclPermissions.tpl
new file mode 100644 (file)
index 0000000..0175021
--- /dev/null
@@ -0,0 +1,14 @@
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.ACL{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.acl.option.deny': '{lang}wcf.acl.option.deny{/lang}',
+                       'wcf.acl.option.fullAccess': '{lang}wcf.acl.option.fullAccess{/lang}',
+                       'wcf.acl.option.grant': '{lang}wcf.acl.option.grant{/lang}',
+                       'wcf.acl.search.user.description': '{lang}wcf.acl.search.user.description{/lang}',
+                       'wcf.acl.search.description': '{lang}wcf.acl.search.description{/lang}'
+               });
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/attachments.tpl b/com.woltlab.wcf/templates/attachments.tpl
new file mode 100644 (file)
index 0000000..7ab676e
--- /dev/null
@@ -0,0 +1,55 @@
+{if $attachmentList && $attachmentList->getGroupedObjects($objectID)|count}
+       {hascontent}
+               <div class="attachmentThumbnailList">
+                       <fieldset>
+                               <legend>{lang}wcf.attachment.images{/lang}</legend>
+                               
+                               <ul>
+                                       {content}
+                                               {foreach from=$attachmentList->getGroupedObjects($objectID) item=attachment}
+                                                       {if $attachment->showAsImage() && !$attachment->isEmbedded()}
+                                                               <li class="attachmentThumbnail">
+                                                                       {if $attachment->hasThumbnail()}
+                                                                               <a href="{link controller='Attachment' object=$attachment}{/link}"{if $attachment->canDownload()} class="jsImageViewer" title="{$attachment->filename}"{/if}><img src="{link controller='Attachment' object=$attachment}thumbnail=1{/link}" alt="" /></a>
+                                                                       {else}
+                                                                               <img src="{link controller='Attachment' object=$attachment}{/link}" alt="" style="margin-top: {@ATTACHMENT_THUMBNAIL_HEIGHT/2-$attachment->height/2}px; margin-left: {@ATTACHMENT_THUMBNAIL_WIDTH/2-$attachment->width/2}px" />
+                                                                       {/if}
+                                                                       
+                                                                       <div title="{lang}wcf.attachment.image.info{/lang}">
+                                                                               <p>{$attachment->filename}</p>
+                                                                               <small>{lang}wcf.attachment.image.info{/lang}</small>
+                                                                       </div>
+                                                               </li>
+                                                       {/if}
+                                               {/foreach}
+                                       {/content}
+                               </ul>
+                       </fieldset>
+               </div>
+       {/hascontent}
+               
+       {hascontent}
+               <div class="attachmentFileList">
+                       <fieldset>
+                               <legend>{lang}wcf.attachment.files{/lang}</legend>
+                               
+                               <ul>
+                                       {content}
+                                               {foreach from=$attachmentList->getGroupedObjects($objectID) item=attachment}
+                                                       {if $attachment->showAsFile() && !$attachment->isEmbedded()}
+                                                               <li class="box32">
+                                                                       <a href="{link controller='Attachment' object=$attachment}{/link}"><span class="icon icon32 icon-paper-clip"></span></a>
+                                                                       
+                                                                       <div>
+                                                                               <p><a href="{link controller='Attachment' object=$attachment}{/link}">{$attachment->filename}</a></p>
+                                                                               <small>{lang}wcf.attachment.file.info{/lang}</small>
+                                                                       </div>
+                                                               </li>
+                                                       {/if}
+                                               {/foreach}
+                                       {/content}
+                               </ul>
+                       </fieldset>
+               </div>
+       {/hascontent}
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/authorSidebarBox.tpl b/com.woltlab.wcf/templates/authorSidebarBox.tpl
new file mode 100644 (file)
index 0000000..7dda73d
--- /dev/null
@@ -0,0 +1,16 @@
+<fieldset>
+       <legend class="invisible">{lang}wcf.user.author{/lang}</legend>
+       
+       <div class="box96 framed">
+               {@$userProfile->getAvatar()->getImageTag(96)}
+               
+               <div>
+                       <div class="containerHeadline">
+                               <h3><a href="{link controller='User' object=$userProfile}{/link}" rel="author">{$userProfile->username}</a></h3>
+                               {if MODULE_USER_RANK && $userProfile->getUserTitle()}<p><span class="badge userTitleBadge{if $userProfile->getRank() && $userProfile->getRank()->cssClassName} {@$userProfile->getRank()->cssClassName}{/if}">{$userProfile->getUserTitle()}</span></p>{/if}
+                       </div>
+                       
+                       {include file='userInformationStatistics' user=$userProfile}
+               </div>
+       </div>
+</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/avatarCropDialog.tpl b/com.woltlab.wcf/templates/avatarCropDialog.tpl
new file mode 100644 (file)
index 0000000..8dca628
--- /dev/null
@@ -0,0 +1,16 @@
+<dl class="wide">
+       <dt>{lang}wcf.user.avatar.type.custom.crop{/lang}</dt>
+       <dd>
+               <div id="userAvatarCropSelection">
+                       {@$avatar->getImageTag()}
+                       <div id="userAvatarCropOverlay"></div>
+                       <div id="userAvatarCropOverlaySelection"></div>
+               </div>
+               
+               <small>{lang}wcf.user.avatar.type.custom.crop.description{/lang}</small>
+       </dd>
+</dl>
+
+<div class="formSubmit">
+       <button data-type="save" class="buttonPrimary">{lang}wcf.global.button.save{/lang}</button>
+</div>
diff --git a/com.woltlab.wcf/templates/avatarEdit.tpl b/com.woltlab.wcf/templates/avatarEdit.tpl
new file mode 100644 (file)
index 0000000..694f626
--- /dev/null
@@ -0,0 +1,142 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.avatar.edit{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.avatar.edit{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $__wcf->user->disableAvatar}
+       <p class="error">{lang}wcf.user.avatar.error.disabled{/lang}</p>
+{/if}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+{if $success|isset}
+       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='AvatarEdit'}{/link}" id="avatarForm">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.avatar{/lang}</legend>
+                               
+                       <dl>
+                               <dd>
+                                       <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
+                                       <small>{lang}wcf.user.avatar.type.none.description{/lang}</small>
+                               </dd>
+                       </dl>
+                       
+                       <dl class="jsOnly{if $errorField == 'custom'} formError{/if}" id="avatarUpload">
+                               <dt class="framed">
+                                       {if $avatarType == 'custom'}
+                                               {assign var='__customAvatar' value=$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
+                                               {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
+                                                       {assign var='__customAvatar' value=$__customAvatar|substr:0:-2}
+                                                       {assign var='__customAvatarTitle' value='wcf.user.avatar.type.custom.crop'|language}
+                                                       {append var='__customAvatar' value='class="userAvatarCrop jsTooltip" title="'|concat:$__customAvatarTitle:'" />'}
+                                               {/if}
+                                               {@$__customAvatar}
+                                       {else}
+                                               <img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon96" />
+                                       {/if}
+                               </dt>
+                               <dd>
+                                       <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
+                                       <small>{lang}wcf.user.avatar.type.custom.description{/lang}</small>
+                                       
+                                       {* placeholder for upload button: *}
+                                       <div></div>
+                                       
+                                       {if $errorField == 'custom'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {if MODULE_GRAVATAR}
+                               <dl{if $errorField == 'gravatar'} class="formError"{/if}>
+                                       <dt class="framed"><img src="http://www.gravatar.com/avatar/{@$__wcf->user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt>
+                                       <dd>
+                                               <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
+                                               {if $errorField == 'gravatar'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                               <small>{lang}wcf.user.avatar.type.gravatar.description{/lang}</small>
+                                       </dd>
+                               </dl>
+                       {/if}
+                       
+                       {event name='avatarFields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+       
+       {if !$__wcf->user->disableAvatar}
+               <div class="formSubmit">
+                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+               </div>
+       {/if}
+</form>
+
+{include file='footer'}
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.user.avatar.type.custom.crop': '{lang}wcf.user.avatar.type.custom.crop{/lang}',
+                       'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
+                       'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
+                       'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
+                       'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
+                       'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
+                       'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}',
+                       'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}'
+               });
+               
+               {if !$__wcf->user->disableAvatar}
+                       {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
+                               new WCF.User.Avatar.Upload(0, new WCF.User.Avatar.Crop({@$__wcf->getUserProfileHandler()->getAvatar()->avatarID}));
+                       {else}
+                               new WCF.User.Avatar.Upload();
+                       {/if}
+               {/if}
+       });
+       //]]>
+</script>
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/benchmark.tpl b/com.woltlab.wcf/templates/benchmark.tpl
new file mode 100644 (file)
index 0000000..a118ec3
--- /dev/null
@@ -0,0 +1,37 @@
+<p class="marginTop" id="benchmark"><small>Execution time: {@$__wcf->getBenchmark()->getExecutionTime()}s ({#($__wcf->getBenchmark()->getExecutionTime()-$__wcf->getBenchmark()->getQueryExecutionTime())/$__wcf->getBenchmark()->getExecutionTime()*100}% PHP, {#$__wcf->getBenchmark()->getQueryExecutionTime()/$__wcf->getBenchmark()->getExecutionTime()*100}% SQL) | SQL queries: {#$__wcf->getBenchmark()->getQueryCount()} | Memory-Usage: {$__wcf->getBenchmark()->getMemoryUsage()}</small></p>
+
+{if ENABLE_DEBUG_MODE} 
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       $('#benchmarkDetails > li > span').click(function() {
+                               $(this).parent().children('pre').toggle();
+                       });
+               });
+               //]]>
+       </script>
+       <ul id="benchmarkDetails" style="display: none;">
+               {foreach from=$__wcf->getBenchmark()->getItems() key=benchmarkIndex item=item}
+                       <li id="benchmarkItem{@$benchmarkIndex}" style="margin-bottom: 8px;"{if $item.use >= 0.01} class="hot"{/if}>
+                               <span>{if $item.type == 1}(SQL Query) {/if}{$item.text}</span><br />
+                               <small style="font-size: .85em">Execution time: {@$item.use}s</small>
+                               
+                               <pre style="display: none">{foreach from=$item.trace key=traceNo item=traceItem}#{#$traceNo} {if !$traceItem.class|empty}{$traceItem.class}{$traceItem.type}{else}{if !$traceItem.file|empty}{$traceItem.file}: {/if}{/if}{$traceItem.function}() {if !$traceItem.line|empty}(line {#$traceItem.line}){/if} 
+{/foreach}</pre>
+                               
+                       </li>
+               {/foreach}
+       </ul>
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       $('#benchmark').click(function() {
+                               $('#benchmarkDetails').wcfDialog({
+                                       title: 'Log'
+                               });
+                       });
+               });
+               //]]>
+       </script>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/birthdaySearchableOptionType.tpl b/com.woltlab.wcf/templates/birthdaySearchableOptionType.tpl
new file mode 100644 (file)
index 0000000..29760df
--- /dev/null
@@ -0,0 +1,10 @@
+<input type="number" id="{$option->optionName}" name="values[{$option->optionName}][ageFrom]" value="{@$valueAgeFrom}" placeholder="{lang}wcf.user.birthday.age.from{/lang}" min="0" max="120" class="tiny" />
+<input type="number" id="{$option->optionName}_age_to" name="values[{$option->optionName}][ageTo]" value="{@$valueAgeTo}" placeholder="{lang}wcf.user.birthday.age.to{/lang}" min="0" max="120" class="tiny" />
+
+<script type="text/javascript">
+//<![CDATA[
+$(function() {
+       $('#{$option->optionName}').parents('dl:eq(0)').find('> dt > label').text('{lang}wcf.user.birthday.age{/lang}');
+});
+//]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/booleanOptionType.tpl b/com.woltlab.wcf/templates/booleanOptionType.tpl
new file mode 100644 (file)
index 0000000..532f54a
--- /dev/null
@@ -0,0 +1 @@
+<input type="checkbox" id="{$option->optionName}" {if $value} checked="checked"{/if} name="values[{$option->optionName}]" value="1" {if $disableOptions || $enableOptions}class="jsEnablesOptions" data-disable-options="[ {@$disableOptions}]" data-enable-options="[ {@$enableOptions}]" {/if} />
diff --git a/com.woltlab.wcf/templates/breadcrumbs.tpl b/com.woltlab.wcf/templates/breadcrumbs.tpl
new file mode 100644 (file)
index 0000000..7dedaf8
--- /dev/null
@@ -0,0 +1,16 @@
+{if !$__microdata|isset}{assign var=__microdata value=true}{/if}
+{hascontent}
+       <nav class="breadcrumbs marginTop">
+               <ul>
+                       {content}
+                               {foreach from=$__wcf->getBreadcrumbs() item=$breadcrumb}
+                                       <li title="{$breadcrumb->getLabel()}"{if $__microdata} itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"{/if}>
+                                               <a href="{$breadcrumb->getURL()}"{if $__microdata} itemprop="url"{/if}><span{if $__microdata} itemprop="title"{/if}>{$breadcrumb->getLabel()}</span></a> <span class="pointer"><span>&raquo;</span></span>
+                                       </li>
+                               {/foreach}
+                               
+                               {event name='breadcrumbs'}
+                       {/content}
+               </ul>
+       </nav>
+{/hascontent}
diff --git a/com.woltlab.wcf/templates/categoryOptionList.tpl b/com.woltlab.wcf/templates/categoryOptionList.tpl
new file mode 100644 (file)
index 0000000..f362f14
--- /dev/null
@@ -0,0 +1,5 @@
+{foreach from=$categoryNodeList item='category'}
+       {if !$maximumNestingLevel|isset || $maximumNestingLevel == -1 || $categoryNodeList->getDepth() <= $maximumNestingLevel}
+               <option value="{$category->categoryID}"{if $categoryID|isset && $categoryID == $category->categoryID} selected="selected"{/if}>{section name=i loop=$categoryNodeList->getDepth()}&nbsp;&nbsp;&nbsp;&nbsp;{/section}{$category->getTitle()}</option>
+       {/if}
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/codeBBCodeTag.tpl b/com.woltlab.wcf/templates/codeBBCodeTag.tpl
new file mode 100644 (file)
index 0000000..d2f6f25
--- /dev/null
@@ -0,0 +1,20 @@
+<div class="container codeBox {$highlighter|get_class|substr:30|lcfirst}">
+       <div>
+               <div>
+                       <h3>{@$highlighter->getTitle()}{if $filename}: {@$filename}{/if}</h3>
+               </div>
+               
+               <ol start="{$startLineNumber}">
+                       {assign var='lineNumber' value=$startLineNumber}
+                       {foreach from=$content item=line}
+                               {if $lineNumbers[$lineNumber]|isset}
+                                       <li id="{@$lineNumbers[$lineNumber]}"><a href="{@$__wcf->getAnchor($lineNumbers[$lineNumber])}" class="lineAnchor"></a>{@$line}</li>
+                               {else}
+                                       <li>{@$line}</li>
+                               {/if}
+                               
+                               {assign var='lineNumber' value=$lineNumber+1}
+                       {/foreach}
+               </ol>
+       </div>
+</div>
diff --git a/com.woltlab.wcf/templates/commentList.tpl b/com.woltlab.wcf/templates/commentList.tpl
new file mode 100644 (file)
index 0000000..38814db
--- /dev/null
@@ -0,0 +1,45 @@
+{foreach from=$commentList item=comment}
+       <li class="comment jsComment" data-comment-id="{@$comment->commentID}" data-object-type="com.woltlab.wcf.comment" data-like-liked="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->liked}{/if}" data-like-likes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[comment][$comment->commentID]|isset}{ {implode from=$likeData[comment][$comment->commentID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $comment->isEditable()}true{else}false{/if}" data-can-delete="{if $comment->isDeletable()}true{else}false{/if}" data-responses="{@$comment->responses}" data-last-response-time="{@$comment->getLastResponseTime()}" data-user-id="{@$comment->userID}">
+               <div class="box32">
+                       {if $comment->userID}
+                               <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" title="{$comment->getUserProfile()->username}" class="framed">
+                                       {@$comment->getUserProfile()->getAvatar()->getImageTag(32)}
+                               </a>
+                       {else}
+                               <span class="framed">{@$comment->getUserProfile()->getAvatar()->getImageTag(32)}</span>
+                       {/if}
+                       
+                       <div>
+                               <div class="commentContent">
+                                       <div class="containerHeadline">
+                                               <h3>
+                                                       {if $comment->userID}
+                                                               <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" class="userLink" data-user-id="{@$comment->userID}">{$comment->username}</a>
+                                                       {else}
+                                                               {$comment->username}
+                                                       {/if}
+                                                       
+                                                       <small> - {@$comment->time|time}</small>
+                                               </h3>
+                                       </div>
+                                       
+                                       <p class="userMessage">{@$comment->getFormattedMessage()}</p>
+                                       
+                                       <nav class="jsMobileNavigation buttonGroupNavigation">
+                                               <ul class="commentOptions">
+                                                       <li class="jsReportCommentComment jsOnly" data-object-id="{@$comment->commentID}"><a title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 icon-warning-sign"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
+                                                       
+                                                       {event name='commentOptions'}
+                                               </ul>
+                                       </nav>
+                               </div>
+                               
+                               <ul data-responses="{@$comment->responses}" class="commentResponseList">
+                                       {if $comment|count}
+                                               {include file='commentResponseList' responseList=$comment}
+                                       {/if}
+                               </ul>
+                       </div>
+               </div>
+       </li>
+{/foreach}
diff --git a/com.woltlab.wcf/templates/commentResponseList.tpl b/com.woltlab.wcf/templates/commentResponseList.tpl
new file mode 100644 (file)
index 0000000..458140a
--- /dev/null
@@ -0,0 +1,37 @@
+{foreach from=$responseList item=response}
+       <li class="commentResponse jsCommentResponse" data-response-id="{@$response->responseID}" data-object-type="com.woltlab.wcf.comment.response" data-like-liked="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->liked}{/if}" data-like-likes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[response][$response->responseID]|isset}{ {implode from=$likeData[response][$response->responseID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $response->isEditable()}true{else}false{/if}" data-can-delete="{if $response->isDeletable()}true{else}false{/if}" data-user-id="{@$response->userID}">
+               <div class="box32">
+                       {if $response->userID}
+                               <a href="{link controller='User' object=$response->getUserProfile()}{/link}" title="{$response->getUserProfile()->username}" class="framed">
+                                       {@$response->getUserProfile()->getAvatar()->getImageTag(32)}
+                               </a>
+                       {else}
+                               <span class="framed">{@$response->getUserProfile()->getAvatar()->getImageTag(32)}</span>
+                       {/if}
+                       
+                       <div class="commentContent commentResponseContent">
+                               <div class="containerHeadline">
+                                       <h3>
+                                               {if $response->userID}
+                                                       <a href="{link controller='User' object=$response->getUserProfile()}{/link}" class="userLink" data-user-id="{@$response->userID}">{$response->username}</a>
+                                               {else}
+                                                       {$response->username}
+                                               {/if}
+                                               
+                                               <small> - {@$response->time|time}</small>
+                                       </h3>
+                               </div>
+                               
+                               <p class="userMessage">{@$response->getFormattedMessage()}</p>
+                               
+                               <nav class="jsMobileNavigation buttonGroupNavigation">
+                                       <ul class="commentOptions">
+                                               <li class="jsReportCommentResponse jsOnly" data-object-id="{@$response->responseID}"><a title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 icon-warning-sign"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
+                                               
+                                               {event name='commentOptions'}
+                                       </ul>
+                               </nav>
+                       </div>
+               </div>
+       </li>
+{/foreach}
diff --git a/com.woltlab.wcf/templates/dashboard.tpl b/com.woltlab.wcf/templates/dashboard.tpl
new file mode 100644 (file)
index 0000000..4bef0a4
--- /dev/null
@@ -0,0 +1,65 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{if $__wcf->getPageMenu()->getLandingPage()->menuItem != 'wcf.user.dashboard'}{lang}wcf.user.dashboard{/lang} - {/if}{PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <link rel="canonical" href="{link controller='Dashboard'}{/link}" />
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{if $__boxSidebar|isset && $__boxSidebar}
+       {capture assign='sidebar'}
+               {@$__boxSidebar}
+       {/capture}
+{/if}
+
+{include file='header' sidebarOrientation='right'}
+
+{if $__wcf->getPageMenu()->getLandingPage()->menuItem == 'wcf.user.dashboard'}
+       <header class="boxHeadline">
+               <h1>{PAGE_TITLE|language}</h1>
+               {hascontent}<p>{content}{PAGE_DESCRIPTION|language}{/content}</p>{/hascontent}
+       </header>
+{else}
+       <header class="boxHeadline">
+               <h1>{lang}wcf.user.dashboard{/lang}</h1>
+       </header>
+{/if}
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<section id="dashboard">
+       {if $__boxContent|isset}{@$__boxContent}{/if}
+</section>
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/dashboardBoxContent.tpl b/com.woltlab.wcf/templates/dashboardBoxContent.tpl
new file mode 100644 (file)
index 0000000..7cc1bb2
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="dashboardBox">
+       {@$template}
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxMostActiveMembers.tpl b/com.woltlab.wcf/templates/dashboardBoxMostActiveMembers.tpl
new file mode 100644 (file)
index 0000000..d0d5c45
--- /dev/null
@@ -0,0 +1,12 @@
+<ul class="sidebarBoxList">
+       {foreach from=$mostActiveMembers item=activeMember}
+               <li class="box24">
+                       <a href="{link controller='User' object=$activeMember}{/link}" class="framed">{@$activeMember->getAvatar()->getImageTag(24)}</a>
+                       
+                       <div class="sidebarBoxHeadline">
+                               <h3><a href="{link controller='User' object=$activeMember}{/link}" class="userLink" data-user-id="{@$activeMember->userID}">{$activeMember->username}</a></h3>
+                               <small>{lang}wcf.dashboard.box.mostActiveMembers.points{/lang}</small>
+                       </div>
+               </li>
+       {/foreach}
+</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxMostLikedMembers.tpl b/com.woltlab.wcf/templates/dashboardBoxMostLikedMembers.tpl
new file mode 100644 (file)
index 0000000..20b55ba
--- /dev/null
@@ -0,0 +1,12 @@
+<ul class="sidebarBoxList">
+       {foreach from=$mostLikedMembers item=likedMember}
+               <li class="box24">
+                       <a href="{link controller='User' object=$likedMember}{/link}" class="framed">{@$likedMember->getAvatar()->getImageTag(24)}</a>
+                       
+                       <div class="sidebarBoxHeadline">
+                               <h3><a href="{link controller='User' object=$likedMember}{/link}" class="userLink" data-user-id="{@$likedMember->userID}">{$likedMember->username}</a></h3>
+                               <small>{lang}wcf.dashboard.box.mostLikedMembers.likes{/lang}</small>
+                       </div>
+               </li>
+       {/foreach}
+</ul>
diff --git a/com.woltlab.wcf/templates/dashboardBoxNewestMembers.tpl b/com.woltlab.wcf/templates/dashboardBoxNewestMembers.tpl
new file mode 100644 (file)
index 0000000..b9f6cea
--- /dev/null
@@ -0,0 +1,12 @@
+<ul class="sidebarBoxList">
+       {foreach from=$newestMembers item=newMember}
+               <li class="box24">
+                       <a href="{link controller='User' object=$newMember}{/link}" class="framed">{@$newMember->getAvatar()->getImageTag(24)}</a>
+                       
+                       <div class="sidebarBoxHeadline">
+                               <h3><a href="{link controller='User' object=$newMember}{/link}" class="userLink" data-user-id="{@$newMember->userID}">{$newMember->username}</a></h3>
+                               <small>{@$newMember->registrationDate|time}</small>
+                       </div>
+               </li>
+       {/foreach}
+</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxRecentActivity.tpl b/com.woltlab.wcf/templates/dashboardBoxRecentActivity.tpl
new file mode 100644 (file)
index 0000000..fa9d923
--- /dev/null
@@ -0,0 +1,23 @@
+<header class="boxHeadline boxSubHeadline">
+       <h2>{lang}wcf.user.recentActivity{/lang}</h2>
+       {if $filteredByFollowedUsers}<p>{lang}wcf.user.recentActivity.filteredByFollowedUsers{/lang}</p>{/if}
+</header>
+
+<div class="container marginTop">
+       <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
+               {include file='recentActivityListItem'}
+       </ul>
+</div>
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
+                       'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
+               });
+               
+               new WCF.User.RecentActivityLoader(null, {if $filteredByFollowedUsers}true{else}false{/if});
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxRecentActivitySidebar.tpl b/com.woltlab.wcf/templates/dashboardBoxRecentActivitySidebar.tpl
new file mode 100644 (file)
index 0000000..85bec82
--- /dev/null
@@ -0,0 +1,12 @@
+<ul class="sidebarBoxList">
+       {foreach from=$eventList item=event}
+               <li class="box24">
+                       <a href="{link controller='User' object=$event->getUserProfile()}{/link}" title="{$event->getUserProfile()->username}" class="framed">{@$event->getUserProfile()->getAvatar()->getImageTag(24)}</a>
+                       
+                       <div class="sidebarBoxHeadline">
+                               <h3><a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3> 
+                               <small>{@$event->getTitle()}</small>
+                       </div>
+               </li>
+       {/foreach}
+</ul>
diff --git a/com.woltlab.wcf/templates/dashboardBoxRegisterButton.tpl b/com.woltlab.wcf/templates/dashboardBoxRegisterButton.tpl
new file mode 100644 (file)
index 0000000..3e1e54a
--- /dev/null
@@ -0,0 +1,5 @@
+<fieldset class="dashboardBox dashboardBoxRegisterButton">
+       <div>
+               <a href="{link controller='Register'}{/link}" class="button">{lang}wcf.user.button.registerNow{/lang}</a>
+       </div>
+</fieldset>
diff --git a/com.woltlab.wcf/templates/dashboardBoxSidebar.tpl b/com.woltlab.wcf/templates/dashboardBoxSidebar.tpl
new file mode 100644 (file)
index 0000000..f219f08
--- /dev/null
@@ -0,0 +1,7 @@
+<fieldset class="dashboardBox">
+       <legend>{lang}wcf.dashboard.box.{$box->boxName}{/lang}</legend>
+       
+       <div>
+               {@$template}
+       </div>
+</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxSignedInAs.tpl b/com.woltlab.wcf/templates/dashboardBoxSignedInAs.tpl
new file mode 100644 (file)
index 0000000..a6052a5
--- /dev/null
@@ -0,0 +1,16 @@
+<fieldset class="dashboardBox dashboardBoxSignedInAs">
+       <legend class="invisible">{lang}wcf.dashboard.box.{$box->boxName}{/lang}</legend>
+       
+       <div class="box96 framed">
+               {@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
+               
+               <div>
+                       <div class="containerHeadline">
+                               <h3><a href="{link controller='User' object=$__wcf->user}{/link}">{$__wcf->user->username}</a></h3>
+                               {if MODULE_USER_RANK && $__wcf->getUserProfileHandler()->getUserTitle()}<p><span class="badge userTitleBadge{if $__wcf->getUserProfileHandler()->getRank() && $__wcf->getUserProfileHandler()->getRank()->cssClassName} {@$__wcf->getUserProfileHandler()->getRank()->cssClassName}{/if}">{$__wcf->getUserProfileHandler()->getUserTitle()}</span></p>{/if}
+                       </div>
+                       
+                       {include file='userInformationStatistics' user=$__wcf->user}
+               </div>
+       </div>
+</fieldset>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/dashboardBoxStatsSidebar.tpl b/com.woltlab.wcf/templates/dashboardBoxStatsSidebar.tpl
new file mode 100644 (file)
index 0000000..a6809a5
--- /dev/null
@@ -0,0 +1,9 @@
+<dl class="plain inlineDataList">
+       <dt>{lang}wcf.user.members{/lang}</dt>
+       <dd>{#$dashboardStats[members]}</dd>
+       
+       {event name='stats'}
+       
+       <dt>{lang}wcf.user.newestMember{/lang}</dt>
+       <dd><a href="{link controller='User' object=$dashboardStats[newestMember]}{/link}" class="userLink" data-user-id="{$dashboardStats[newestMember]->userID}">{$dashboardStats[newestMember]}</a></dd>
+</dl>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/detailedActivityPointList.tpl b/com.woltlab.wcf/templates/detailedActivityPointList.tpl
new file mode 100644 (file)
index 0000000..7ac15a9
--- /dev/null
@@ -0,0 +1,40 @@
+<div id="userActivityPointListContainer" class="tabularBox marginTop">
+       <table class="table">
+               <thead>
+                       <tr>
+                               <th>{lang}wcf.user.activityPoint.objectType{/lang}</th>
+                               <th>{lang}wcf.user.activityPoint.objects{/lang}</th>
+                               <th>{lang}wcf.user.activityPoint.pointsPerObject{/lang}</th>
+                               <th>{lang}wcf.user.activityPoint.sum{/lang}</th>
+                       </tr>
+               </thead>
+               
+               <tbody>
+                       {assign var='activityPointSum' value=0}
+                       {foreach from=$activityPointObjectTypes item='objectType'}
+                               {if $objectType->activityPoints > 0 && $objectType->points > 0}
+                                       <tr>
+                                               <td class="columnTitle">
+                                                       {lang}wcf.user.activityPoint.objectType.{$objectType->objectType}{/lang}
+                                               </td>
+                                               <td class="columnDigits">
+                                                       {#$objectType->activityPoints/$objectType->points}
+                                               </td>
+                                               <td class="columnDigits">
+                                                       {#$objectType->points}
+                                               </td>
+                                               <td class="columnDigits">
+                                                       {#$objectType->activityPoints}
+                                               </td>
+                                               {assign var='activityPointSum' value=$activityPointSum + $objectType->activityPoints}
+                                       </tr>
+                               {/if}
+                       {/foreach}
+                       
+                       <tr>
+                               <td class="columnTitle focus right" colspan="3">&sum;</td>
+                               <td class="columnDigits focus"><span class="badge">{#$user->activityPoints}</span></td>
+                       </tr>
+               </tbody>
+       </table>
+</div>
diff --git a/com.woltlab.wcf/templates/disclaimer.tpl b/com.woltlab.wcf/templates/disclaimer.tpl
new file mode 100644 (file)
index 0000000..76d55ca
--- /dev/null
@@ -0,0 +1,51 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.register.disclaimer{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.register.disclaimer{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='Disclaimer'}{/link}">
+       <div class="container containerPadding marginTop htmlContent">
+               {lang}wcf.user.register.disclaimer.text{/lang}
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" name="accept" value="{lang}wcf.user.register.disclaimer.accept{/lang}" accesskey="s" />
+               <a class="button" href="{link}{/link}">{lang}wcf.user.register.disclaimer.decline{/lang}</a>
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/documentHeader.tpl b/com.woltlab.wcf/templates/documentHeader.tpl
new file mode 100644 (file)
index 0000000..2761da7
--- /dev/null
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html dir="{lang}wcf.global.pageDirection{/lang}" lang="{@$__wcf->language->getFixedLanguageCode()}">
diff --git a/com.woltlab.wcf/templates/emailActivation.tpl b/com.woltlab.wcf/templates/emailActivation.tpl
new file mode 100644 (file)
index 0000000..0dec76c
--- /dev/null
@@ -0,0 +1,87 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.emailActivation{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.emailActivation{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='EmailActivation'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend><label for="userID">{lang}wcf.user.emailActivation{/lang}</label></legend>
+                       
+                       <dl{if $errorField == 'u'} class="formError"{/if}>
+                               <dt><label for="userID">{lang}wcf.user.userID{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="userID" name="u" value="{@$u}" required="required" class="medium" />
+                                       {if $errorField == 'u'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'notValid'}{lang}wcf.user.userID.error.invalid{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'a'} class="formError"{/if}>
+                               <dt><label for="activationCode">{lang}wcf.user.activationCode{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="activationCode" maxlength="9" name="a" value="{@$a}" required="required" class="medium" />
+                                       {if $errorField == 'a'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'notValid'}{lang}wcf.user.activationCode.error.notValid{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+                       
+                       <dl>
+                               <dd>
+                                       <ul class="buttonList">
+                                               <li><a class="button small" href="{link controller='EmailNewActivationCode'}{/link}"><span>{lang}wcf.user.newActivationCode{/lang}</span></a></li>
+                                               {event name='buttons'}
+                                       </ul>
+                               </dd>
+                       </dl>
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/emailNewActivationCode.tpl b/com.woltlab.wcf/templates/emailNewActivationCode.tpl
new file mode 100644 (file)
index 0000000..46546ea
--- /dev/null
@@ -0,0 +1,87 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.newActivationCode{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.newActivationCode{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='EmailNewActivationCode'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.newActivationCode{/lang}</legend>
+                       
+                       <dl{if $errorField == 'username'} class="formError"{/if}>
+                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
+                                       {if $errorField == 'username'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {elseif $errorType == 'alreadyEnabled'}
+                                                               {lang}wcf.user.registerActivation.error.userAlreadyEnabled{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'password'} class="formError"{/if}>
+                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
+                               <dd>
+                                       <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
+                                       {if $errorField == 'password'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                               
+                       {event name='fields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/following.tpl b/com.woltlab.wcf/templates/following.tpl
new file mode 100644 (file)
index 0000000..bea4d63
--- /dev/null
@@ -0,0 +1,88 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.following{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Action.Delete('wcf\\data\\user\\follow\\UserFollowAction', '.jsFollowing');
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline"> 
+       <h1>{lang}wcf.user.following{/lang} <span class="badge">{#$items}</span></h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {pages print=true assign=pagesLinks controller='Following' link="pageNo=%d"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $objects|count}
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned userList">
+                       {foreach from=$objects item=user}
+                               <li class="jsFollowing">
+                                       <div class="box48">
+                                               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
+                                                       
+                                               <div class="details userInformation">
+                                                       {include file='userInformationHeadline'}
+                                                       
+                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
+                                                               <ul class="buttonList jsOnly">
+                                                                       <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton" title="{lang}wcf.user.button.unfollow{/lang}" data-object-id="{@$user->followID}"></span></li>
+                                                                       {event name='userButtons'}
+                                                               </ul>
+                                                       </nav>
+                                                       
+                                                       {include file='userInformationStatistics'}
+                                               </div>
+                                       </div>
+                               </li>
+                       {/foreach}
+               </ol>
+       </div>
+       
+       <div class="contentNavigation">
+               {@$pagesLinks}
+               
+               {hascontent}
+                       <nav>
+                               <ul>
+                                       {content}
+                                               {event name='contentNavigationButtonsBottom'}
+                                       {/content}
+                               </ul>
+                       </nav>
+               {/hascontent}
+       </div>
+{else}
+       <p class="info">{lang}wcf.user.following.noUsers{/lang}</p>
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/footer.tpl b/com.woltlab.wcf/templates/footer.tpl
new file mode 100644 (file)
index 0000000..fc07a66
--- /dev/null
@@ -0,0 +1,44 @@
+                               {event name='contents'}
+                               
+                               {if $skipBreadcrumbs|empty}{include file='breadcrumbs' __microdata=false}{/if}
+                               
+                       </section>
+                       
+                       {if $sidebarOrientation|isset && $sidebarOrientation == 'right'}
+                               {@$__sidebar}
+                       {/if}
+               </div>
+       </div>
+</div>
+
+<footer id="pageFooter" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if} footer">
+       <div>
+               <nav id="footerNavigation" class="navigation navigationFooter">
+                       {include file='footerMenu'}
+                       
+                       <ul class="navigationIcons">
+                               <li id="toTopLink" class="toTopLink"><a href="{$__wcf->getAnchor('top')}" title="{lang}wcf.global.scrollUp{/lang}" class="jsTooltip"><span class="icon icon16 icon-arrow-up"></span> <span class="invisible">{lang}wcf.global.scrollUp{/lang}</span></a></li>
+                               {event name='navigationIcons'}
+                       </ul>
+                       
+                       <ul class="navigationItems">
+                               {if SHOW_CLOCK}
+                                       <li title="{lang}wcf.date.timezone.{@'/'|str_replace:'.':$__wcf->getUser()->getTimeZone()->getName()|strtolower}{/lang}"><p><span class="icon icon16 icon-time"></span> <span>{@TIME_NOW|plainTime}</span></p></li>
+                               {/if}
+                               {event name='navigationItems'}
+                       </ul>
+               </nav>
+               
+               <div class="footerContent">
+                       {event name='footerContents'}
+                       
+                       {if ENABLE_BENCHMARK}{include file='benchmark'}{/if}
+               
+                       {event name='copyright'}
+               </div>
+       </div>
+</footer>
+
+{event name='footer'}
+
+<a id="bottom"></a>
diff --git a/com.woltlab.wcf/templates/footerMenu.tpl b/com.woltlab.wcf/templates/footerMenu.tpl
new file mode 100644 (file)
index 0000000..22548bd
--- /dev/null
@@ -0,0 +1,7 @@
+{if $__wcf->getPageMenu()->getMenuItems('footer')|count > 0}
+       <ul class="navigationMenuItems">
+               {foreach from=$__wcf->getPageMenu()->getMenuItems('footer') item=menuItem}
+                       <li><a href="{$menuItem->getProcessor()->getLink()}">{lang}{$menuItem->menuItem}{/lang}{if $menuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$menuItem->getProcessor()->getNotifications()}</span>{/if}</a></li>
+               {/foreach}
+       </ul>
+{/if}
diff --git a/com.woltlab.wcf/templates/groupedUserList.tpl b/com.woltlab.wcf/templates/groupedUserList.tpl
new file mode 100644 (file)
index 0000000..a54accc
--- /dev/null
@@ -0,0 +1,37 @@
+{foreach from=$groupedUsers item=group}
+       {if $group}
+               <header class="boxHeadline">
+                       <h1>{$group}</h1>
+               </header>
+       {/if}
+       
+       {if $group|count}
+               <div class="container marginTop">
+                       <ol class="containerList jsGroupedUserList">
+                               {foreach from=$group item=user}
+                                       {include file='userListItem'}
+                               {/foreach}
+                       </ol>
+               </div>
+       {else}
+               <p class="marginTop">{$group->getNoUsersMessage()}</p>
+       {/if}
+{/foreach}
+
+<div class="contentNavigation"><div class="jsPagination"></div></div>
+
+<script type="text/javascript">
+       //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                               'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                               'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                               'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                       });
+                       
+                       new WCF.User.Action.Follow($('.jsGroupedUserList > li'));
+                       new WCF.User.Action.Ignore($('.jsGroupedUserList > li'));
+               });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/headInclude.tpl b/com.woltlab.wcf/templates/headInclude.tpl
new file mode 100644 (file)
index 0000000..3459bbe
--- /dev/null
@@ -0,0 +1,168 @@
+<base href="{$baseHref}" />
+<meta charset="utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1" />
+<meta name="format-detection" content="telephone=no" />
+{if $allowSpidersToIndexThisPage|empty}<meta name="robots" content="noindex,nofollow" />{/if} 
+{implode from=$__wcf->getMetaTagHandler() item=__metaTag glue="\n"}{@$__metaTag}{/implode}
+{event name='metaTags'}
+
+<script type="text/javascript">
+       //<![CDATA[
+       var SID_ARG_2ND = '{@SID_ARG_2ND_NOT_ENCODED}';
+       var WCF_PATH = '{@$__wcf->getPath()}';
+       var SECURITY_TOKEN = '{@SECURITY_TOKEN}';
+       var LANGUAGE_ID = {@$__wcf->getLanguage()->languageID};
+       var TIME_NOW = {@TIME_NOW};
+       //]]>
+</script>
+{if JQUERY_SOURCE == 'google'}
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
+{elseif JQUERY_SOURCE == 'microsoft'}
+<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.1.min.js"></script>
+<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script>
+{elseif JQUERY_SOURCE == 'cloudflare'}
+<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
+<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
+{else}
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"></script>
+{/if}
+{if JQUERY_SOURCE != 'local'}
+<script type="text/javascript">
+       //<![CDATA[
+       if (!window.jQuery) {
+               document.write('<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery.min.js?v={@$__wcfVersion}"><\/script>');
+               document.write('<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.min.js?v={@$__wcfVersion}"><\/script>');
+       }
+       //]]>
+</script>
+{/if}
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.nestedSortable.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/jquery-ui.timepicker.min.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       WCF.User.init({@$__wcf->user->userID}, '{@$__wcf->user->username|encodeJS}');
+       //]]>
+</script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.Like{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+{event name='javascriptInclude'}
+
+<!-- Stylesheets -->
+{@$__wcf->getStyleHandler()->getStylesheet()}
+{event name='stylesheets'}
+
+<noscript>
+       <style type="text/css">
+               .jsOnly {
+                       display: none !important;
+               }
+               
+               .noJsOnly {
+                       display: block !important;
+               }
+       </style>
+</noscript>
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       '__days': [ '{lang}wcf.date.day.sunday{/lang}', '{lang}wcf.date.day.monday{/lang}', '{lang}wcf.date.day.tuesday{/lang}', '{lang}wcf.date.day.wednesday{/lang}', '{lang}wcf.date.day.thursday{/lang}', '{lang}wcf.date.day.friday{/lang}', '{lang}wcf.date.day.saturday{/lang}' ],
+                       '__daysShort': [ '{lang}wcf.date.day.sun{/lang}', '{lang}wcf.date.day.mon{/lang}', '{lang}wcf.date.day.tue{/lang}', '{lang}wcf.date.day.wed{/lang}', '{lang}wcf.date.day.thu{/lang}', '{lang}wcf.date.day.fri{/lang}', '{lang}wcf.date.day.sat{/lang}' ],
+                       '__months': [ '{lang}wcf.date.month.january{/lang}', '{lang}wcf.date.month.february{/lang}', '{lang}wcf.date.month.march{/lang}', '{lang}wcf.date.month.april{/lang}', '{lang}wcf.date.month.may{/lang}', '{lang}wcf.date.month.june{/lang}', '{lang}wcf.date.month.july{/lang}', '{lang}wcf.date.month.august{/lang}', '{lang}wcf.date.month.september{/lang}', '{lang}wcf.date.month.october{/lang}', '{lang}wcf.date.month.november{/lang}', '{lang}wcf.date.month.december{/lang}' ], 
+                       '__monthsShort': [ '{lang}wcf.date.month.jan{/lang}', '{lang}wcf.date.month.feb{/lang}', '{lang}wcf.date.month.mar{/lang}', '{lang}wcf.date.month.apr{/lang}', '{lang}wcf.date.month.may{/lang}', '{lang}wcf.date.month.jun{/lang}', '{lang}wcf.date.month.jul{/lang}', '{lang}wcf.date.month.aug{/lang}', '{lang}wcf.date.month.sep{/lang}', '{lang}wcf.date.month.oct{/lang}', '{lang}wcf.date.month.nov{/lang}', '{lang}wcf.date.month.dec{/lang}' ],
+                       'wcf.clipboard.item.unmarkAll': '{lang}wcf.clipboard.item.unmarkAll{/lang}',
+                       'wcf.date.relative.now': '{lang}wcf.date.relative.now{/lang}',
+                       'wcf.date.relative.minutes': '{capture assign=relativeMinutes}{lang}wcf.date.relative.minutes{/lang}{/capture}{@$relativeMinutes|encodeJS}',
+                       'wcf.date.relative.hours': '{capture assign=relativeHours}{lang}wcf.date.relative.hours{/lang}{/capture}{@$relativeHours|encodeJS}',
+                       'wcf.date.relative.pastDays': '{capture assign=relativePastDays}{lang}wcf.date.relative.pastDays{/lang}{/capture}{@$relativePastDays|encodeJS}',
+                       'wcf.date.dateFormat': '{lang}wcf.date.dateFormat{/lang}',
+                       'wcf.date.dateTimeFormat': '{lang}wcf.date.dateTimeFormat{/lang}',
+                       'wcf.date.hour': '{lang}wcf.date.hour{/lang}',
+                       'wcf.date.minute': '{lang}wcf.date.minute{/lang}',
+                       'wcf.date.timeFormat': '{lang}wcf.date.timeFormat{/lang}',
+                       'wcf.global.button.add': '{lang}wcf.global.button.add{/lang}',
+                       'wcf.global.button.cancel': '{lang}wcf.global.button.cancel{/lang}',
+                       'wcf.global.button.close': '{lang}wcf.global.button.close{/lang}',
+                       'wcf.global.button.collapsible': '{lang}wcf.global.button.collapsible{/lang}',
+                       'wcf.global.button.delete': '{lang}wcf.global.button.delete{/lang}',
+                       'wcf.global.button.disable': '{lang}wcf.global.button.disable{/lang}',
+                       'wcf.global.button.disabledI18n': '{lang}wcf.global.button.disabledI18n{/lang}',
+                       'wcf.global.button.edit': '{lang}wcf.global.button.edit{/lang}',
+                       'wcf.global.button.enable': '{lang}wcf.global.button.enable{/lang}',
+                       'wcf.global.button.next': '{lang}wcf.global.button.next{/lang}',
+                       'wcf.global.button.preview': '{lang}wcf.global.button.preview{/lang}',
+                       'wcf.global.button.reset': '{lang}wcf.global.button.reset{/lang}',
+                       'wcf.global.button.save': '{lang}wcf.global.button.save{/lang}',
+                       'wcf.global.button.search': '{lang}wcf.global.button.search{/lang}',
+                       'wcf.global.button.submit': '{lang}wcf.global.button.submit{/lang}',
+                       'wcf.global.confirmation.cancel': '{lang}wcf.global.confirmation.cancel{/lang}',
+                       'wcf.global.confirmation.confirm': '{lang}wcf.global.confirmation.confirm{/lang}',
+                       'wcf.global.confirmation.title': '{lang}wcf.global.confirmation.title{/lang}',
+                       'wcf.global.decimalPoint': '{capture assign=decimalPoint}{lang}wcf.global.decimalPoint{/lang}{/capture}{$decimalPoint|encodeJS}',
+                       'wcf.global.error.timeout': '{lang}wcf.global.error.timeout{/lang}',
+                       'wcf.global.error.title': '{lang}wcf.global.error.title{/lang}',
+                       'wcf.global.form.error.empty': '{lang}wcf.global.form.error.empty{/lang}',
+                       'wcf.global.language.noSelection': '{lang}wcf.global.language.noSelection{/lang}',
+                       'wcf.global.loading': '{lang}wcf.global.loading{/lang}',
+                       'wcf.global.page.jumpTo': '{lang}wcf.global.page.jumpTo{/lang}',
+                       'wcf.global.page.jumpTo.description': '{lang}wcf.global.page.jumpTo.description{/lang}',
+                       'wcf.global.page.pageNavigation': '{lang}wcf.global.page.pageNavigation{/lang}',
+                       'wcf.global.page.next': '{capture assign=pageNext}{lang}wcf.global.page.next{/lang}{/capture}{@$pageNext|encodeJS}',
+                       'wcf.global.page.previous': '{capture assign=pagePrevious}{lang}wcf.global.page.previous{/lang}{/capture}{@$pagePrevious|encodeJS}',
+                       'wcf.global.success': '{lang}wcf.global.success{/lang}',
+                       'wcf.global.success.add': '{lang}wcf.global.success.add{/lang}',
+                       'wcf.global.success.edit': '{lang}wcf.global.success.edit{/lang}',
+                       'wcf.global.thousandsSeparator': '{capture assign=thousandsSeparator}{lang}wcf.global.thousandsSeparator{/lang}{/capture}{@$thousandsSeparator|encodeJS}',
+                       'wcf.page.sitemap': '{lang}wcf.page.sitemap{/lang}',
+                       'wcf.style.changeStyle': '{lang}wcf.style.changeStyle{/lang}'
+                       {if MODULE_LIKE}
+                               ,'wcf.like.button.like': '{lang}wcf.like.button.like{/lang}',
+                               'wcf.like.button.dislike': '{lang}wcf.like.button.dislike{/lang}',
+                               'wcf.like.tooltip': '{lang}wcf.like.jsTooltip{/lang}',
+                               'wcf.like.summary': '{lang}wcf.like.summary{/lang}',
+                               'wcf.like.details': '{lang}wcf.like.details{/lang}'
+                       {/if}
+                       
+                       {event name='javascriptLanguageImport'}
+               });
+               
+               if (jQuery.browser.touch) $('html').addClass('touch');
+               new WCF.Date.Time();
+               new WCF.Effect.SmoothScroll();
+               new WCF.Effect.BalloonTooltip();
+               new WCF.Sitemap();
+               {if $__wcf->getStyleHandler()->countStyles() > 1}new WCF.Style.Chooser();{/if}
+               WCF.Dropdown.init();
+               WCF.System.PageNavigation.init('.pageNavigation');
+               WCF.Date.Picker.init();
+               WCF.System.MobileNavigation.init();
+               new WCF.User.ProfilePreview();
+               
+               {event name='javascriptInit'}
+               
+               {if $executeCronjobs}
+                       new WCF.Action.Proxy({
+                               autoSend: true,
+                               data: {
+                                       className: 'wcf\\data\\cronjob\\CronjobAction',
+                                       actionName: 'executeCronjobs'
+                               },
+                               showLoadingOverlay: false,
+                               failure: function() {
+                                       return false;
+                               }
+                       });
+               {/if}
+               {if $__sessionKeepAlive|isset}
+                       new WCF.System.KeepAlive({@$__sessionKeepAlive});
+               {/if}
+       });
+       //]]>
+</script>
+
+{include file='imageViewer'}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/header.tpl b/com.woltlab.wcf/templates/header.tpl
new file mode 100644 (file)
index 0000000..7559b88
--- /dev/null
@@ -0,0 +1,82 @@
+<a id="top"></a>
+
+<header id="pageHeader" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}">
+       <div>
+               <nav id="topMenu" class="userPanel">
+                       <div class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}">
+                               {hascontent}
+                                       <ul class="userPanelItems">
+                                               {content}
+                                                       {include file='userPanel'}
+                                                       {event name='topMenu'}
+                                               {/content}
+                                       </ul>
+                               {/hascontent}
+                               
+                               {include file='searchArea'}
+                       </div>
+               </nav>
+               
+               <div id="logo" class="logo">
+                       <a href="{link}{/link}">
+                               {if $__wcf->getStyleHandler()->getStyle()->getPageLogo()}
+                                       <img src="{$__wcf->getStyleHandler()->getStyle()->getPageLogo()}" alt="" />
+                               {/if}
+                               {event name='headerLogo'}
+                       </a>
+               </div>
+               
+               {event name='headerContents'}
+               
+               {include file='mainMenu'}
+               
+               <nav class="navigation navigationHeader">
+                       {include file='mainMenuSubMenu'}
+                       
+                       <ul class="navigationIcons">
+                               <li id="toBottomLink"><a href="{$__wcf->getAnchor('bottom')}" title="{lang}wcf.global.scrollDown{/lang}" class="jsTooltip"><span class="icon icon16 icon-arrow-down"></span> <span class="invisible">{lang}wcf.global.scrollDown{/lang}</span></a></li>
+                               <li id="sitemap" class="jsOnly"><a title="{lang}wcf.page.sitemap{/lang}" class="jsTooltip"><span class="icon icon16 icon-sitemap"></span> <span class="invisible">{lang}wcf.page.sitemap{/lang}</span></a></li>
+                               {if $headerNavigation|isset}{@$headerNavigation}{/if}
+                               {event name='navigationIcons'}
+                       </ul>
+               </nav>
+       </div>
+</header>
+
+<div id="main" class="{if $__wcf->getStyleHandler()->getStyle()->getVariable('useFluidLayout')}layoutFluid{else}layoutFixed{/if}{if $sidebarOrientation|isset && $sidebar|isset} sidebarOrientation{@$sidebarOrientation|ucfirst}{if $sidebarOrientation == 'right' && $sidebarCollapsed} sidebarCollapsed{/if}{/if}">
+       <div>
+               <div>
+                       {capture assign='__sidebar'}
+                               {if $sidebar|isset}
+                                       <aside class="sidebar"{if $sidebarOrientation|isset && $sidebarOrientation == 'right'} data-is-open="{if $sidebarCollapsed}false{else}true{/if}" data-sidebar-name="{$sidebarName}"{/if}>
+                                               <div>
+                                                       {event name='sidebarBoxesTop'}
+                                                       
+                                                       {@$sidebar}
+                                                       
+                                                       {event name='sidebarBoxesBottom'}
+                                               </div>
+                                       </aside>
+                                       
+                                       {if $sidebarOrientation|isset && $sidebarOrientation == 'right'}
+                                               <script type="text/javascript">
+                                                       //<![CDATA[
+                                                       $(function() {
+                                                               new WCF.Collapsible.Sidebar();
+                                                       });
+                                                       //]]>
+                                               </script>
+                                       {/if}
+                               {/if}
+                       {/capture}
+                       
+                       {if !$sidebarOrientation|isset || $sidebarOrientation == 'left'}
+                               {@$__sidebar}
+                       {/if} 
+                                       
+                       <section id="content" class="content">
+                               
+                               {event name='contents'}
+                               
+                               {if $skipBreadcrumbs|empty}{include file='breadcrumbs'}{/if}
+                       
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/ignoredUsers.tpl b/com.woltlab.wcf/templates/ignoredUsers.tpl
new file mode 100644 (file)
index 0000000..f70ad26
--- /dev/null
@@ -0,0 +1,88 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.ignoredUsers{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Action.Delete('wcf\\data\\user\\ignore\\UserIgnoreAction', '.jsIgnoredUser');
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.ignoredUsers{/lang} <span class="badge">{#$items}</span></h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {pages print=true assign=pagesLinks controller='IgnoredUsers' link="pageNo=%d"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $objects|count}
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned userList">
+                       {foreach from=$objects item=user}
+                               <li class="jsIgnoredUser">
+                                       <div class="box48">
+                                               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
+                                                       
+                                               <div class="details userInformation">
+                                                       {include file='userInformationHeadline'}
+                                                       
+                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
+                                                               <ul class="buttonList jsOnly">
+                                                                       <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton" title="{lang}wcf.user.button.unignore{/lang}" data-object-id="{@$user->ignoreID}"></span></li>
+                                                                       {event name='userButtons'}
+                                                               </ul>
+                                                       </nav>
+                                                       
+                                                       {include file='userInformationStatistics'}
+                                               </div>
+                                       </div>
+                               </li>
+                       {/foreach}
+               </ol>
+       </div>
+       
+       <div class="contentNavigation">
+               {@$pagesLinks}
+               
+               {hascontent}
+                       <nav>
+                               <ul>
+                                       {content}
+                                               {event name='contentNavigationButtonsBottom'}
+                                       {/content}
+                               </ul>
+                       </nav>
+               {/hascontent}
+       </div>
+{else}
+       <p class="info">{lang}wcf.user.ignoredUsers.noUsers{/lang}</p>
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/imageViewer.tpl b/com.woltlab.wcf/templates/imageViewer.tpl
new file mode 100644 (file)
index 0000000..b59ffd6
--- /dev/null
@@ -0,0 +1,22 @@
+{if !$__imageViewerLoaded|isset}
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/slimbox2.min.js"></script>
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.ImageViewer{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               var $imageViewer = null;
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.imageViewer.counter': '{lang}wcf.imageViewer.counter{/lang}',
+                               'wcf.imageViewer.close': '{lang}wcf.imageViewer.close{/lang}',
+                               'wcf.imageViewer.enlarge': '{lang}wcf.imageViewer.enlarge{/lang}',
+                               'wcf.imageViewer.next': '{lang}wcf.imageViewer.next{/lang}',
+                               'wcf.imageViewer.previous': '{lang}wcf.imageViewer.previous{/lang}'
+                       });
+                       
+                       $imageViewer = new WCF.ImageViewer();
+               });
+               //]]>
+       </script>
+       
+       {assign var=__imageViewerLoaded value=true}
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/integerOptionType.tpl b/com.woltlab.wcf/templates/integerOptionType.tpl
new file mode 100644 (file)
index 0000000..466d77b
--- /dev/null
@@ -0,0 +1 @@
+<input type="number" id="{$option->optionName}" name="values[{$option->optionName}]" value="{$value}"{if $option->minvalue !== null} min="{$option->minvalue}"{/if}{if $option->maxvalue !== null} max="{$option->maxvalue}"{/if}{if $inputClass} class="{@$inputClass}"{/if} />
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/login.tpl b/com.woltlab.wcf/templates/login.tpl
new file mode 100644 (file)
index 0000000..577656b
--- /dev/null
@@ -0,0 +1,163 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.login{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.User.Login(false);
+               })
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+{include file='header' __disableLoginLink=true}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.login{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='Login'}{/link}" id="loginForm">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.login.data{/lang}</legend>
+                       
+                       <dl{if $errorField == 'username'} class="formError"{/if}>
+                               <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="long" />
+                                       {if $errorField == 'username'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {if !REGISTER_DISABLED}
+                               <dl>
+                                       <dt>{lang}wcf.user.login.action{/lang}</dt>
+                                       <dd><label><input type="radio" name="action" value="register" /> {lang}wcf.user.login.action.register{/lang}</label></dd>
+                                       <dd><label><input type="radio" name="action" value="login" checked="checked" /> {lang}wcf.user.login.action.login{/lang}</label></dd>
+                               </dl>
+                       {/if}
+                       
+                       <dl{if $errorField == 'password'} class="formError"{/if}>
+                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
+                               <dd>
+                                       <input type="password" id="password" name="password" value="{$password}" class="long" />
+                                       {if $errorField == 'password'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {if $supportsPersistentLogins}
+                               <dl>
+                                       <dd>
+                                               <label for="useCookies"><input type="checkbox" id="useCookies" name="useCookies" value="1" {if $useCookies}checked="checked" {/if}/> {lang}wcf.user.useCookies{/lang}</label>
+                                       </dd>
+                               </dl>
+                       {/if}
+                       
+                       {event name='fields'}
+                       
+                       <dl>
+                               <dd>
+                                       <ul class="buttonList">
+                                               <li><a class="button small" href="{link controller='LostPassword'}{/link}"><span>{lang}wcf.user.lostPassword{/lang}</span></a></li>
+                                               {if !REGISTER_DISABLED && REGISTER_ACTIVATION_METHOD == 1}<li><a class="button small" href="{link controller='RegisterActivation'}{/link}"><span>{lang}wcf.user.registerActivation{/lang}</span></a></li>{/if}
+                                               {event name='buttons'}
+                                       </ul>
+                               </dd>
+                       </dl>
+               </fieldset>
+               
+               {capture assign='__3rdPartyButtons'}
+                       
+               {/capture}
+               
+               {hascontent}
+                       <fieldset>
+                               <legend>{lang}wcf.user.login.3rdParty{/lang}</legend>
+                               
+                               <dl>
+                                       <dd>
+                                               <ul class="buttonList">
+                                                       {content}
+                                                               {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
+                                                                       <li id="githubAuth" class="3rdPartyAuth">
+                                                                               <a href="{link controller='GithubAuth'}{/link}" class="button small"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a>
+                                                                       </li>
+                                                               {/if}
+                                                               
+                                                               {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}
+                                                                       <li id="twitterAuth" class="3rdPartyAuth">
+                                                                               <a href="{link controller='TwitterAuth'}{/link}" class="button small"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a>
+                                                                       </li>
+                                                               {/if}
+                                                               
+                                                               {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}
+                                                                       <li id="facebookAuth" class="3rdPartyAuth">
+                                                                               <a href="{link controller='FacebookAuth'}{/link}" class="button small"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a>
+                                                                       </li>
+                                                               {/if}
+                                                               
+                                                               {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}
+                                                                       <li id="googleAuth" class="3rdPartyAuth">
+                                                                               <a href="{link controller='GoogleAuth'}{/link}" class="button small"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a>
+                                                                       </li>
+                                                               {/if}
+                                                       {/content}      
+                                               </ul>
+                                       </dd>
+                               </dl>
+                       </fieldset>
+               {/hascontent}
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+               <input type="hidden" name="url" value="{@$url}" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/lostPassword.tpl b/com.woltlab.wcf/templates/lostPassword.tpl
new file mode 100644 (file)
index 0000000..7be49bf
--- /dev/null
@@ -0,0 +1,97 @@
+{include file="documentHeader"}
+
+<head>
+       <title>{lang}wcf.user.lostPassword{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+       
+       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.User.Registration.LostPassword();
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.lostPassword{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<p class="info">{lang}wcf.user.lostPassword.description{/lang}</p>
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='LostPassword'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.lostPassword{/lang}</legend>
+                       
+                       <dl id="usernameDiv"{if $errorField == 'username'} class="formError"{/if}>
+                               <dt>
+                                       <label for="usernameInput">{lang}wcf.user.username{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="text" id="usernameInput" name="username" value="{$username}" class="medium" />
+                                       {if $errorField == 'username'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                       {if $errorType == 'notFound'}{lang}wcf.user.error.username.notFound{/lang}{/if}
+                                                       {if $errorType == '3rdParty'}{lang}wcf.user.error.username.3rdParty{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl id="emailDiv"{if $errorField == 'email'} class="formError"{/if}>
+                               <dt>
+                                       <label for="emailInput">{lang}wcf.user.email{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="email" id="emailInput" name="email" value="{$email}" class="medium" />
+                                       {if $errorField == 'email'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                       {if $errorType == 'notFound'}{lang}wcf.user.lostPassword.error.email.notFound{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+               
+               {if $useCaptcha}{include file='recaptcha'}{/if}
+       </div>
+               
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/mail.tpl b/com.woltlab.wcf/templates/mail.tpl
new file mode 100644 (file)
index 0000000..fce68ee
--- /dev/null
@@ -0,0 +1,118 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.mail.title{/lang} - {lang}wcf.user.profile{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.mail.title{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='Mail' object=$user}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.mail.information{/lang}</legend>
+                       
+                       <dl{if $errorField == 'subject'} class="formError"{/if}>
+                               <dt><label for="subject">{lang}wcf.user.mail.subject{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="subject" name="subject" value="{$subject}" required="required" class="long" />
+                                       {if $errorField == 'subject'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.mail.subject.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {if $__wcf->user->userID}
+                               <dl>
+                                       <dd><label><input type="checkbox" name="showAddress" value="1" {if $showAddress == 1} checked="checked"{/if}/> {lang}wcf.user.mail.showAddress{/lang}</label></dd>
+                               </dl>
+                       {else}
+                               <dl{if $errorField == 'email'} class="formError"{/if}>
+                                       <dt><label for="email">{lang}wcf.user.mail.senderEmail{/lang}</label></dt>
+                                       <dd>
+                                               <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
+                                               {if $errorField == 'email'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}
+                                                                       {lang}wcf.global.form.error.empty{/lang}
+                                                               {elseif $errorType == 'invalid'}
+                                                                       {lang}wcf.user.email.error.notValid{/lang}
+                                                               {else}
+                                                                       {lang}wcf.user.mail.senderEmail.error.{@$errorType}{/lang}
+                                                               {/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                       {/if}
+                       
+                       {event name='informationFields'}
+               </fieldset>
+               
+               <fieldset>
+                       <legend><label for="message">{lang}wcf.user.mail.message{/lang}</label></legend>
+                       
+                       <dl class="wide{if $errorField == 'message'} formError{/if}">
+                               <dd>
+                                       <textarea rows="15" cols="40" name="message" id="message" required="required">{$message}</textarea>
+                                       {if $errorField == 'message'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.mail.message.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='messageFields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+               
+               {if $useCaptcha}
+                       {include file='recaptcha'}
+               {/if}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/mainMenu.tpl b/com.woltlab.wcf/templates/mainMenu.tpl
new file mode 100644 (file)
index 0000000..86680de
--- /dev/null
@@ -0,0 +1,11 @@
+{if $__wcf->getPageMenu()->getMenuItems('header')|count > 0}
+       <nav id="mainMenu" class="mainMenu jsMobileNavigation" data-button-label="{lang}wcf.page.mainMenu{/lang}">
+               <ul>{foreach from=$__wcf->getPageMenu()->getMenuItems('header') item=menuItem}<li{if $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem} class="active"{/if}>{*
+                       *}<a href="{$menuItem->getProcessor()->getLink()}">{lang}{$menuItem->menuItem}{/lang}{if $menuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$menuItem->getProcessor()->getNotifications()}</span>{/if}</a>{*
+               *}{if $__wcf->getPageMenu()->getMenuItems($menuItem->menuItem)|count > 0 && $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem}<ul class="invisible">{*
+                               *}{foreach from=$__wcf->getPageMenu()->getMenuItems($menuItem->menuItem) item=subMenuItem}{*
+                                       *}<li{if $__wcf->getPageMenu()->getActiveMenuItem(1) == $subMenuItem->menuItem} class="active"{/if}><a href="{$subMenuItem->getProcessor()->getLink()}"><span>{lang}{$subMenuItem->menuItem}{/lang}</span></a>{if $subMenuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$subMenuItem->getProcessor()->getNotifications()}</span>{/if}</li>{*
+                               *}{/foreach}{*
+               *}{event name='items'}</ul>{/if}</li>{/foreach}</ul>
+       </nav>
+{/if}
diff --git a/com.woltlab.wcf/templates/mainMenuSubMenu.tpl b/com.woltlab.wcf/templates/mainMenuSubMenu.tpl
new file mode 100644 (file)
index 0000000..afe520a
--- /dev/null
@@ -0,0 +1,10 @@
+{foreach from=$__wcf->getPageMenu()->getMenuItems('header') item=menuItem}
+       {if $__wcf->getPageMenu()->getMenuItems($menuItem->menuItem)|count > 0 && $__wcf->getPageMenu()->getActiveMenuItem() == $menuItem->menuItem}
+               <ul class="navigationMenuItems">
+                       {foreach from=$__wcf->getPageMenu()->getMenuItems($menuItem->menuItem) item=subMenuItem}
+                               <li{if $__wcf->getPageMenu()->getActiveMenuItem(1) == $subMenuItem->menuItem} class="active"{/if}><a href="{$subMenuItem->getProcessor()->getLink()}"><span>{lang}{$subMenuItem->menuItem}{/lang}</span></a>{if $subMenuItem->getProcessor()->getNotifications()} <span class="badge badgeUpdate">{#$subMenuItem->getProcessor()->getNotifications()}</span>{/if}</li>
+                       {/foreach}
+                       {event name='items'}
+               </ul>
+       {/if}
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/manageSubscription.tpl b/com.woltlab.wcf/templates/manageSubscription.tpl
new file mode 100644 (file)
index 0000000..a6523d9
--- /dev/null
@@ -0,0 +1,20 @@
+<fieldset>
+       <dl class="wide">
+               <dd>
+                       <label><input type="radio" name="subscribe" value="1"{if $userObjectWatch} checked="checked"{/if} /> {lang}wcf.user.objectWatch.subscribe.{@$objectType->objectType}{/lang}</label>
+                       
+                       <small><label><input type="checkbox" name="enableNotification" value="1"{if $userObjectWatch && $userObjectWatch->notification} checked="checked"{/if} /> {lang}wcf.user.objectWatch.enableNotification.{@$objectType->objectType}{/lang}</label></small>
+               </dd>
+       </dl>
+       <dl class="wide">
+               <dd>
+                       <label><input type="radio" name="subscribe" value="0"{if !$userObjectWatch} checked="checked"{/if} /> {lang}wcf.user.objectWatch.unsubscribe.{@$objectType->objectType}{/lang}</label>
+               </dd>
+       </dl>
+       
+       {event name='fields'}
+</fieldset>
+
+<div class="formSubmit">
+       <button class="jsButtonSave buttonPrimary">{lang}wcf.global.button.save{/lang}</button>
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/membersList.tpl b/com.woltlab.wcf/templates/membersList.tpl
new file mode 100644 (file)
index 0000000..91cd066
--- /dev/null
@@ -0,0 +1,155 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if} {if $pageNo > 1}- {lang}wcf.page.pageNo{/lang} {/if}- {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       {capture assign='canonicalURLParameters'}sortField={@$sortField}&sortOrder={@$sortOrder}{if $letter}&letter={@$letter|rawurlencode}{/if}{/capture}
+       {if $pageNo < $pages}
+               <link rel="next" href="{link controller='MembersList'}pageNo={@$pageNo+1}&{@$canonicalURLParameters}{/link}" />
+       {/if}
+       {if $pageNo > 1}
+               <link rel="prev" href="{link controller='MembersList'}{if $pageNo > 2}pageNo={@$pageNo-1}&{/if}{@$canonicalURLParameters}{/link}" />
+       {/if}
+       <link rel="canonical" href="{link controller='MembersList'}{if $pageNo > 1}pageNo={@$pageNo}&{/if}{@$canonicalURLParameters}{/link}" />
+       
+       <script type="text/javascript">
+               //<![CDATA[
+                       $(function() {
+                               WCF.Language.addObject({
+                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                               });
+                               
+                               new WCF.User.Action.Follow($('.userList > li'));
+                               new WCF.User.Action.Ignore($('.userList > li'));
+                               
+                               new WCF.Search.User('#searchUsername', function(data) {
+                                       var $link = '{link controller='User' id=2147483646 title='wcfTitlePlaceholder' encode=false}{/link}';
+                                       window.location = $link.replace('2147483646', data.objectID).replace('wcfTitlePlaceholder', data.label);
+                               }, false, [ ], false);
+                       });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       {assign var=encodedLetter value=$letter|rawurlencode}
+       <div class="jsOnly">
+               <form method="get" action="{if $searchID}{link controller='MembersList' id=$searchID}{/link}{else}{link controller='MembersList'}{/link}{/if}">
+                       <fieldset>
+                               <legend><label for="searchUsername">{lang}wcf.user.search{/lang}</label></legend>
+                               
+                               <dl>
+                                       <dd>
+                                               <input type="text" id="searchUsername" name="username" class="long" placeholder="{lang}wcf.user.username{/lang}" />
+                                       </dd>
+                               </dl>
+                       </fieldset>
+               </form>
+       </div>
+       
+       <fieldset>
+               <legend>{lang}wcf.user.members.sort.letters{/lang}</legend>
+                               
+               <ul class="buttonList letters">
+                       {foreach from=$letters item=__letter}
+                               <li><a href="{if $searchID}{link controller='MembersList' id=$searchID}sortField={$sortField}&sortOrder={$sortOrder}&letter={$__letter|rawurlencode}{/link}{else}{link controller='MembersList'}sortField={$sortField}&sortOrder={$sortOrder}&letter={$__letter|rawurlencode}{/link}{/if}" class="button small{if $letter == $__letter} active{/if}">{$__letter}</a></li>
+                       {/foreach}
+                       {if !$letter|empty}<li><a href="{if $searchID}{link controller='MembersList' id=$searchID}sortField={$sortField}&sortOrder={$sortOrder}{/link}{else}{link controller='MembersList'}sortField={$sortField}&sortOrder={$sortOrder}{/link}{/if}" class="button small">{lang}wcf.user.members.sort.letters.all{/lang}</a></li>{/if}
+               </ul>
+       </fieldset>
+               
+       <div>
+               <form method="get" action="{if $searchID}{link controller='MembersList' id=$searchID}{/link}{else}{link controller='MembersList'}{/link}{/if}">
+                       <fieldset>
+                               <legend><label for="sortField">{lang}wcf.user.members.sort{/lang}</label></legend>
+                               
+                               <dl>
+                                       <dd>
+                                               <select id="sortField" name="sortField">
+                                                       <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
+                                                       <option value="registrationDate"{if $sortField == 'registrationDate'} selected="selected"{/if}>{lang}wcf.user.registrationDate{/lang}</option>
+                                                       <option value="activityPoints"{if $sortField == 'activityPoints'} selected="selected"{/if}>{lang}wcf.user.activityPoint{/lang}</option>
+                                                       <option value="likesReceived"{if $sortField == 'likesReceived'} selected="selected"{/if}>{lang}wcf.like.likesReceived{/lang}</option>
+                                                       {event name='sortField'}
+                                               </select>
+                                               <select name="sortOrder">
+                                                       <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
+                                                       <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
+                                               </select>
+                                       </dd>
+                               </dl>
+                       </fieldset>
+                       
+                       <div class="formSubmit">
+                               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+                               <input type="hidden" name="letter" value="{$letter}" />
+                       </div>
+               </form>
+       </div>
+       
+       {@$__boxSidebar}
+{/capture}
+
+{include file='header' sidebarOrientation='right'}
+
+<header class="boxHeadline">
+       <h1>{if $searchID}{lang}wcf.user.search.results{/lang}{else}{lang}wcf.user.members{/lang}{/if} <span class="badge">{#$items}</span></h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {if $searchID}
+               {pages print=true assign=pagesLinks controller='MembersList' id=$searchID link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
+       {else}
+               {pages print=true assign=pagesLinks controller='MembersList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
+       {/if}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $items}
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned userList">
+                       {foreach from=$objects item=user}
+                               {include file='userListItem'}
+                       {/foreach}
+               </ol>
+       </div>
+{else}
+       <p class="info">{lang}wcf.user.members.noMembers{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {@$pagesLinks}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/messageFormAttachments.tpl b/com.woltlab.wcf/templates/messageFormAttachments.tpl
new file mode 100644 (file)
index 0000000..6c97a96
--- /dev/null
@@ -0,0 +1,57 @@
+<div id="attachments" class="jsOnly formAttachmentContent tabMenuContent container containerPadding">
+       <ul class="formAttachmentList clearfix"{if !$attachmentHandler->getAttachmentList()|count} style="display: none"{/if}>
+               {foreach from=$attachmentHandler->getAttachmentList() item=$attachment}
+                       <li class="box48">
+                               {if $attachment->tinyThumbnailType}
+                                       <img src="{link controller='Attachment' object=$attachment}tiny=1{/link}" alt="" class="attachmentTinyThumbnail" />
+                               {else}
+                                       <span class="icon icon48 icon-paper-clip"></span>
+                               {/if}
+                               
+                               <div>
+                                       <div>
+                                               <p><a href="{link controller='Attachment' object=$attachment}{/link}"{if $attachment->isImage} title="{$attachment->filename}" class="jsImageViewer"{/if}>{$attachment->filename}</a></p>
+                                               <small>{@$attachment->filesize|filesize}</small>
+                                       </div>
+                                       
+                                       <ul>
+                                               <li><span class="icon icon16 icon-remove pointer jsTooltip jsDeleteButton " title="{lang}wcf.global.button.delete{/lang}" data-object-id="{@$attachment->attachmentID}" data-confirm-message="{lang}wcf.attachment.delete.sure{/lang}"></span></li>
+                                               <li><span class="icon icon16 icon-paste pointer jsTooltip jsButtonInsertAttachment" title="{lang}wcf.attachment.insert{/lang}" data-object-id="{@$attachment->attachmentID}" /></li>
+                                       </ul>
+                               </div>
+                       </li>
+               {/foreach}
+       </ul>
+       
+       <dl class="wide">
+               <dd>
+                       <div></div>
+                       <small>{lang}wcf.attachment.upload.limits{/lang}</small>
+               </dd>
+       </dl>
+       
+       {event name='fields'}
+</div>
+
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Attachment{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.attachment.upload.error.invalidExtension': '{lang}wcf.attachment.upload.error.invalidExtension{/lang}',
+                       'wcf.attachment.upload.error.tooLarge': '{lang}wcf.attachment.upload.error.tooLarge{/lang}',
+                       'wcf.attachment.upload.error.reachedLimit': '{lang}wcf.attachment.upload.error.reachedLimit{/lang}',
+                       'wcf.attachment.upload.error.reachedRemainingLimit': '{lang}wcf.attachment.upload.error.reachedRemainingLimit{/lang}',
+                       'wcf.attachment.upload.error.uploadFailed': '{lang}wcf.attachment.upload.error.uploadFailed{/lang}',
+                       'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}',
+                       'wcf.attachment.insert': '{lang}wcf.attachment.insert{/lang}',
+                       'wcf.attachment.delete.sure': '{lang}wcf.attachment.delete.sure{/lang}'
+               });
+               
+               new WCF.Attachment.Upload($('#attachments > dl > dd > div'), $('#attachments > ul'), '{@$attachmentObjectType}', '{@$attachmentObjectID}', '{$tmpHash|encodeJS}', '{@$attachmentParentObjectID}', {@$attachmentHandler->getMaxCount()}, '{@$wysiwygContainerID}');
+               new WCF.Action.Delete('wcf\\data\\attachment\\AttachmentAction', '.formAttachmentList > li');
+       });
+       //]]>
+</script>
+
+<input type="hidden" name="tmpHash" value="{$tmpHash}" />
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageFormMultilingualism.tpl b/com.woltlab.wcf/templates/messageFormMultilingualism.tpl
new file mode 100644 (file)
index 0000000..bcfa568
--- /dev/null
@@ -0,0 +1,31 @@
+{if $availableContentLanguages|count}
+       <dl{if $errorField == 'languageID'} class="formError"{/if}>
+               <dt>{lang}wcf.user.language{/lang}</dt>
+               <dd id="languageIDContainer">
+                       <noscript>
+                               <select name="languageID" id="languageID">
+                                       {foreach from=$availableContentLanguages item=contentLanguage}
+                                               <option value="{@$contentLanguage->languageID}">{$contentLanguage}</option>
+                                       {/foreach}
+                               </select>
+                       </noscript>
+               </dd>
+       </dl>
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       var $languages = {
+                               {implode from=$availableContentLanguages item=contentLanguage}
+                                       '{@$contentLanguage->languageID}': {
+                                               iconPath: '{@$contentLanguage->getIconPath()}',
+                                               languageName: '{$contentLanguage}'
+                                       }
+                               {/implode}
+                       };
+                       
+                       new WCF.Language.Chooser('languageIDContainer', 'languageID', {$languageID}, $languages);
+               });
+               //]]>
+       </script>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageFormPreviewButton.tpl b/com.woltlab.wcf/templates/messageFormPreviewButton.tpl
new file mode 100644 (file)
index 0000000..b175ced
--- /dev/null
@@ -0,0 +1,13 @@
+<button id="previewButton" class="jsOnly" accesskey="p">{lang}wcf.global.button.preview{/lang}</button>
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               WCF.Language.addObject({
+                       'wcf.global.preview': '{lang}wcf.global.preview{/lang}' 
+               });
+               
+               new WCF.Message.DefaultPreview({if MODULE_ATTACHMENT && $attachmentHandler !== null}'{@$attachmentObjectType}', '{@$attachmentObjectID}', '{$tmpHash|encodeJS}'{/if});
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageFormSettings.tpl b/com.woltlab.wcf/templates/messageFormSettings.tpl
new file mode 100644 (file)
index 0000000..5c4f523
--- /dev/null
@@ -0,0 +1,36 @@
+<fieldset id="settings" class="settingsContent tabMenuContent container containerPadding">
+       <dl class="wide">
+               {if $__wcf->getSession()->getPermission('user.message.canUseBBCodes')}
+                       <dd>
+                               <label><input id="preParse" name="preParse" type="checkbox" value="1"{if $preParse} checked="checked"{/if} /> {lang}wcf.message.settings.preParse{/lang}</label>
+                               <small>{lang}wcf.message.settings.preParse.description{/lang}</small>
+                       </dd>
+               {/if}
+               {if $__wcf->getSession()->getPermission('user.message.canUseSmilies')}
+                       <dd>
+                               <label><input id="enableSmilies" name="enableSmilies" type="checkbox" value="1"{if $enableSmilies} checked="checked"{/if} /> {lang}wcf.message.settings.enableSmilies{/lang}</label>
+                               <small>{lang}wcf.message.settings.enableSmilies.description{/lang}</small>
+                       </dd>
+               {/if}
+               {if $__wcf->getSession()->getPermission('user.message.canUseBBCodes')}
+                       <dd>
+                               <label><input id="enableBBCodes" name="enableBBCodes" type="checkbox" value="1"{if $enableBBCodes} checked="checked"{/if} /> {lang}wcf.message.settings.enableBBCodes{/lang}</label>
+                               <small>{lang}wcf.message.settings.enableBBCodes.description{/lang}</small>
+                       </dd>
+               {/if}
+               {if $__wcf->getSession()->getPermission('user.message.canUseHtml')}
+                       <dd>
+                               <label><input id="enableHtml" name="enableHtml" type="checkbox" value="1"{if $enableHtml} checked="checked"{/if} /> {lang}wcf.message.settings.enableHtml{/lang}</label>
+                               <small>{lang}wcf.message.settings.enableHtml.description{/lang}</small>
+                       </dd>
+               {/if}
+               {if 'MODULE_USER_SIGNATURE'|defined && MODULE_USER_SIGNATURE && $showSignatureSetting && $__wcf->user->userID}
+                       <dd>
+                               <label><input id="showSignature" name="showSignature" type="checkbox" value="1"{if $showSignature} checked="checked"{/if} /> {lang}wcf.message.settings.showSignature{/lang}</label>
+                               <small>{lang}wcf.message.settings.showSignature.description{/lang}</small>
+                       </dd>
+               {/if}
+               
+               {event name='settings'}
+       </dl>
+</fieldset>
diff --git a/com.woltlab.wcf/templates/messageFormSmilies.tpl b/com.woltlab.wcf/templates/messageFormSmilies.tpl
new file mode 100644 (file)
index 0000000..d7c7e7c
--- /dev/null
@@ -0,0 +1,50 @@
+{assign var=__tabCount value=0}
+{capture assign=__categoryTabs}
+       {foreach from=$smileyCategories item=smileyCategory}
+               {assign var=__tabCount value=$__tabCount + 1}
+               {assign var='__smileyAnchor' value='smilies-'|concat:$smileyCategory->categoryID}
+               <li><a href="{$__wcf->getAnchor($__smileyAnchor)}" data-smiley-category-id="{@$smileyCategory->categoryID}">{$smileyCategory->title|language}</a></li>
+       {/foreach}
+{/capture}
+
+<div id="smilies" class="jsOnly smiliesContent tabMenuContent container containerPadding{if $__tabCount} tabMenuContainer{/if}">
+       {capture assign=__defaultSmilies}
+               {include file='__messageFormSmilies' smilies=$defaultSmilies}
+       {/capture}
+       
+       {if $__tabCount > 1}
+               <nav class="menu">
+                       <ul>
+                               {@$__categoryTabs}
+                       </ul>
+               </nav>
+               
+               {foreach from=$smileyCategories item=smileyCategory}
+                       {if !$smileyCategory->isDisabled}
+                               <div id="smilies-{@$smileyCategory->categoryID}" class="hidden">
+                                       {if !$smileyCategory->categoryID}{@$__defaultSmilies}{/if}
+                               </div>
+                       {/if}
+               {/foreach}
+               
+               <script type="text/javascript">
+                       //<![CDATA[
+                       $(function() {
+                               new WCF.Message.SmileyCategories();
+                       });
+                       //]]>
+               </script>
+       {else}
+               {@$__defaultSmilies}
+       {/if}
+       
+       {event name='fields'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Message.Smilies('{if $wysiwygSelector|isset}{$wysiwygSelector|encodeJS}{else}text{/if}');
+               });
+               //]]>
+       </script>
+</div>
diff --git a/com.woltlab.wcf/templates/messageFormTabs.tpl b/com.woltlab.wcf/templates/messageFormTabs.tpl
new file mode 100644 (file)
index 0000000..e8660ef
--- /dev/null
@@ -0,0 +1,28 @@
+<div class="tabMenuContainer" data-active="{$activeTabMenuItem}" data-store="activeTabMenuItem">
+       <nav class="tabMenu jsOnly">
+               <ul>
+                       {if MODULE_SMILEY && $smileyCategories|count}<li id="smiliesTab"><a href="{@$__wcf->getAnchor('smilies')}" title="{lang}wcf.message.smilies{/lang}">{lang}wcf.message.smilies{/lang}</a></li>{/if}
+                       {if MODULE_ATTACHMENT && $attachmentHandler !== null && $attachmentHandler->canUpload()}<li id="attachmentsTab"><a href="{@$__wcf->getAnchor('attachments')}" title="{lang}wcf.attachment.attachments{/lang}">{lang}wcf.attachment.attachments{/lang}</a></li>{/if}
+                       <li><a href="{@$__wcf->getAnchor('settings')}" title="{lang}wcf.message.settings{/lang}">{lang}wcf.message.settings{/lang}</a></li>
+                       {if $__showPoll|isset && $__showPoll}<li><a href="{@$__wcf->getAnchor('poll')}" title="{lang}wcf.poll.management{/lang}">{lang}wcf.poll.management{/lang}</a></li>{/if}
+                       {event name='tabMenuTabs'}
+               </ul>
+       </nav>
+       
+       {if MODULE_SMILEY && $smileyCategories|count}{include file='messageFormSmilies'}{/if}
+       {if MODULE_ATTACHMENT && $attachmentHandler !== null && $attachmentHandler->canUpload()}{include file='messageFormAttachments'}{/if}
+       
+       {include file='messageFormSettings'}
+       {include file='__messageFormPoll'}
+       
+       {event name='tabMenuContents'}
+</div>
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               if (jQuery.browser.mobile) $('#smiliesTab, #smilies').remove();
+               WCF.TabMenu.init();
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageOptionType.tpl b/com.woltlab.wcf/templates/messageOptionType.tpl
new file mode 100644 (file)
index 0000000..15009ac
--- /dev/null
@@ -0,0 +1,10 @@
+<textarea id="{$option->optionName}" name="values[{$option->optionName}]" cols="40" rows="10">{$value}</textarea>
+{include file='wysiwyg' wysiwygSelector=$option->optionName}
+
+<script type="text/javascript">
+//<![CDATA[
+$(function() {
+       $('#{$option->optionName}').parents('dl:eq(0)').addClass('wide');
+});
+//]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageQuoteList.tpl b/com.woltlab.wcf/templates/messageQuoteList.tpl
new file mode 100644 (file)
index 0000000..8f1a113
--- /dev/null
@@ -0,0 +1,50 @@
+{if !$supportPaste|isset}{assign var=supportPaste value=false}{/if}
+{foreach from=$messages item=message}
+       <article class="message messageReduced marginTop jsInvalidQuoteTarget" data-link="{@$message->getLink()}" data-username="{$message->getUsername()}">
+               <div>
+                       <section class="messageContent">
+                               <div>
+                                       <header class="messageHeader">
+                                               <div class="box32">
+                                                       {if $userProfiles[$message->getUserID()]|isset}
+                                                               <a href="{link controller='User' object=$userProfiles[$message->getUserID()]}{/link}" class="framed">{@$userProfiles[$message->getUserID()]->getAvatar()->getImageTag(32)}</a>
+                                                       {/if}
+                                                       
+                                                       <div class="messageHeadline">
+                                                               <h1><a href="{@$message->getLink()}">{$message->getTitle()}</a></h1>
+                                                               <p>
+                                                                       <span class="username">{if $userProfiles[$message->getUserID()]|isset}<a href="{link controller='User' object=$userProfiles[$message->getUserID()]}{/link}">{$message->getUsername()}</a>{else}{$message->getUsername()}{/if}</span>
+                                                                       {@$message->getTime()|time}
+                                                               </p>
+                                                       </div>
+                                               </div>
+                                       </header>
+                                       
+                                       <div class="messageBody">
+                                               <div>
+                                                       <div class="messageText">
+                                                               <ul>
+                                                                       {foreach from=$message key=quoteID item=quote}
+                                                                               <li data-quote-id="{@$quoteID}">
+                                                                                       <span>
+                                                                                               <input type="checkbox" value="1" id="quote_{@$quoteID}" class="jsCheckbox" />
+                                                                                               {if $supportPaste}<span class="icon icon16 icon-plus jsTooltip jsInsertQuote" title="{lang}wcf.message.quote.insertQuote{/lang}"></span>{/if}
+                                                                                       </span>
+                                                                                       
+                                                                                       <div class="jsQuote">
+                                                                                               <label for="quote_{@$quoteID}">{@$quote}</label>
+                                                                                       </div>
+                                                                                       <div class="jsFullQuote">
+                                                                                               {$message->getFullQuote($quoteID)}
+                                                                                       </div>
+                                                                               </li>
+                                                                       {/foreach}
+                                                               </ul>
+                                                       </div>
+                                               </div>
+                                       </div>
+                               </div>
+                       </section>
+               </div>
+       </article>
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/messageSidebar.tpl b/com.woltlab.wcf/templates/messageSidebar.tpl
new file mode 100644 (file)
index 0000000..475f48f
--- /dev/null
@@ -0,0 +1,100 @@
+{if !$__messageSidebarJavascript|isset}
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}'
+                       });
+                       
+                       WCF.User.Profile.ActivityPointList.init();
+               });
+               //]]>
+       </script>
+       {assign var=__messageSidebarJavascript value=true}
+{/if}
+
+<aside class="messageSidebar{if MESSAGE_SIDEBAR_ENABLE_ONLINE_STATUS && $userProfile->isOnline()} userOnline{/if} {if $userProfile->userID}member{else}guest{/if}"{if $userProfile->userID} itemscope="itemscope" itemtype="http://data-vocabulary.org/Person"{/if}>
+       <div>
+               {if $userProfile->userID}
+                       {assign var='username' value=$userProfile->username}
+                       
+                       <header>
+                               <h2 class="username">
+                                       <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userProfile->userID}" rel="author">
+                                               <span itemprop="name">{$username}</span>
+                                       </a>
+                               </h2>
+                               
+                               {event name='header'}
+                       </header>
+                       
+                       {if MESSAGE_SIDEBAR_ENABLE_AVATAR}
+                               {if $userProfile->getAvatar()}
+                                       <div class="userAvatar">
+                                               {capture assign='__userAvatar'}{@$userProfile->getAvatar()->getImageTag(128)}{/capture}
+                                               <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="framed">{@'<img'|str_replace:'<img itemprop="photo"':$__userAvatar}</a>
+                                               
+                                               {if MESSAGE_SIDEBAR_ENABLE_ONLINE_STATUS && $userProfile->isOnline()}<span class="badge green badgeOnline" title="{lang}wcf.user.online.title{/lang}">{lang}wcf.user.online{/lang}</span>{/if}
+                                       </div>
+                               {/if}
+                       {/if}
+                       
+                       {if MODULE_USER_RANK && MESSAGE_SIDEBAR_ENABLE_RANK}
+                               {if $userProfile->getUserTitle()}
+                                       <div class="userTitle">
+                                               <p class="badge userTitleBadge{if $userProfile->getRank() && $userProfile->getRank()->cssClassName} {@$userProfile->getRank()->cssClassName}{/if}" itemprop="title">{$userProfile->getUserTitle()}</p>
+                                       </div>
+                               {/if}
+                               {if $userProfile->getRank() && $userProfile->getRank()->rankImage}
+                                       <div class="userRank">{@$userProfile->getRank()->getImage()}</div>
+                               {/if}
+                       {/if}
+               {else}
+                       <header>
+                               <h2 class="username">
+                                       <span>{@$userProfile->username}</span>
+                               </h2>
+                               
+                               <div class="userTitle">
+                                       <p class="badge">{lang}wcf.user.guest{/lang}</p>
+                               </div>
+                               
+                               {event name='header'}
+                       </header>
+               {/if}
+               
+               {event name='beforeCredits'}
+               
+               {if $userProfile->userID}
+                       {hascontent}
+                               <div class="userCredits">
+                                       <dl class="plain dataList">
+                                               {content}
+                                                       {if MESSAGE_SIDEBAR_ENABLE_LIKES_RECEIVED && $userProfile->likesReceived}
+                                                               <dt>{lang}wcf.like.likesReceived{/lang}</dt>
+                                                               <dd>{#$userProfile->likesReceived}</dd>
+                                                       {/if}
+                                                       
+                                                       {if MESSAGE_SIDEBAR_ENABLE_ACTIVITY_POINTS && $userProfile->activityPoints}
+                                                               <dt><a class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showDetails{/lang}" data-user-id="{@$userProfile->userID}">{lang}wcf.user.activityPoint{/lang}</a></dt>
+                                                               <dd>{#$userProfile->activityPoints}</dd>
+                                                       {/if}
+                                                       {event name='userCredits'}
+                                                       {if MESSAGE_SIDEBAR_USER_OPTIONS}
+                                                               {assign var='__sidebarUserOptions' value=','|explode:MESSAGE_SIDEBAR_USER_OPTIONS}
+                                                               {foreach from=$__sidebarUserOptions item='__sidebarUserOption'}
+                                                                       {if $userProfile->getUserOption($__sidebarUserOption)}
+                                                                               <dt>{lang}wcf.user.option.{$__sidebarUserOption}{/lang}</dt>
+                                                                               <dd{if $__sidebarUserOption == 'location'} itemprop="locality"{/if}>{@$userProfile->getFormattedUserOption($__sidebarUserOption)}</dd>
+                                                                       {/if}
+                                                               {/foreach}
+                                                       {/if}
+                                               {/content}
+                                       </dl>
+                               </div>
+                       {/hascontent}
+               {/if}
+               
+               {event name='afterCredits'}
+       </div>
+</aside>
diff --git a/com.woltlab.wcf/templates/messageUserOptionOutput.tpl b/com.woltlab.wcf/templates/messageUserOptionOutput.tpl
new file mode 100644 (file)
index 0000000..0260af3
--- /dev/null
@@ -0,0 +1,15 @@
+{hascontent}
+       <div id="{$option->optionName}">
+               {content}
+                       {@$value}
+               {/content}
+       </div>
+       
+       <script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               $('#{$option->optionName}').parents('dl:eq(0)').addClass('wide');
+       });
+       //]]>
+       </script>
+{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationActivation.tpl b/com.woltlab.wcf/templates/moderationActivation.tpl
new file mode 100644 (file)
index 0000000..010f00c
--- /dev/null
@@ -0,0 +1,113 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.moderation.activation{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Moderation.Activation.Management({@$queue->queueID}, '{link controller='ModerationList'}{/link}');
+                       
+                       WCF.Language.addObject({
+                               'wcf.moderation.activation.enableContent.confirmMessage': '{lang}wcf.moderation.activation.enableContent.confirmMessage{/lang}',
+                               'wcf.moderation.activation.removeContent.confirmMessage': '{lang}wcf.moderation.activation.removeContent.confirmMessage{/lang}'
+                       });
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.moderation.activation{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       <nav>
+               <ul>
+                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
+                       
+                       {event name='contentNavigationButtonsTop'}
+               </ul>
+       </nav>
+</div>
+
+<form method="post" action="{link controller='ModerationActivation' id=$queue->queueID}{/link}" class="container containerPadding marginTop">
+       <fieldset>
+               <legend>{lang}wcf.moderation.activation.details{/lang}</legend>
+               
+               <dl>
+                       <dt>{lang}wcf.global.objectID{/lang}</dt>
+                       <dd>{#$queue->queueID}</dd>
+               </dl>
+               {if $queue->lastChangeTime}
+                       <dl>
+                               <dt>{lang}wcf.moderation.lastChangeTime{/lang}</dt>
+                               <dd>{@$queue->lastChangeTime|time}</dd>
+                       </dl>
+               {/if}
+               <dl>
+                       <dt>{lang}wcf.moderation.assignedUser{/lang}</dt>
+                       <dd>
+                               <ul>
+                                       {if $assignedUserID && ($assignedUserID != $__wcf->getUser()->userID)}
+                                               <li><label><input type="radio" name="assignedUserID" value="{@$assignedUserID}" checked="checked" /> {$queue->assignedUsername}</label></li>
+                                       {/if}
+                                       <li><label><input type="radio" name="assignedUserID" value="{@$__wcf->getUser()->userID}"{if $assignedUserID == $__wcf->getUser()->userID} checked="checked"{/if} /> {$__wcf->getUser()->username}</label></li>
+                                       <li><label><input type="radio" name="assignedUserID" value="0"{if !$assignedUserID} checked="checked"{/if} /> {lang}wcf.moderation.assignedUser.nobody{/lang}</label></li>
+                               </ul>
+                       </dd>
+               </dl>
+               {if $queue->assignedUser}
+                       <dl>
+                               
+                               <dd><a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a></dd>
+                       </dl>
+               {/if}
+               <dl>
+                       <dt><label for="comment">{lang}wcf.moderation.comment{/lang}</label></dt>
+                       <dd><textarea id="comment" name="comment" rows="4" cols="40">{$comment}</textarea></dd>
+               </dl>
+               
+               {event name='detailsFields'}
+               
+               <div class="formSubmit">
+                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" />
+               </div>
+       </fieldset>
+       
+       {event name='fieldsets'}
+</form>
+
+<header class="boxHeadline boxSubHeadline">
+       <h2>{lang}wcf.moderation.activation.content{/lang}</h2>
+</header>
+
+<div class="marginTop">
+       {@$disabledContent}
+</div>
+
+<div class="contentNavigation">
+       <nav>
+               <ul>
+                       <li class="jsOnly"><button id="enableContent">{lang}wcf.moderation.activation.enableContent{/lang}</button></li>
+                       <li class="jsOnly"><button id="removeContent">{lang}wcf.moderation.activation.removeContent{/lang}</button></li>
+                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
+                       
+                       {event name='contentNavigationButtonsBottom'}
+               </ul>
+       </nav>
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationComment.tpl b/com.woltlab.wcf/templates/moderationComment.tpl
new file mode 100644 (file)
index 0000000..becf299
--- /dev/null
@@ -0,0 +1,29 @@
+<article class="message messageReduced">
+       <div>
+               <section class="messageContent">
+                       <div>
+                               <header class="messageHeader">
+                                       <div class="box32">
+                                               <a href="{link controller='User' object=$message->getUserProfile()->getDecoratedObject()}{/link}" class="framed">{@$message->getUserProfile()->getAvatar()->getImageTag(32)}</a>
+                                               
+                                               <div class="messageHeadline">
+                                                       <h1><a href="{@$message->getLink()}">{$message->getTitle()}</a></h1>
+                                                       <p>
+                                                               <span class="username"><a href="{link controller='User' object=$message->getUserProfile()->getDecoratedObject()}{/link}">{$message->getUsername()}</a></span>
+                                                               {@$message->getTime()|time}
+                                                       </p>
+                                               </div>
+                                       </div>
+                               </header>
+                               
+                               <div class="messageBody">
+                                       <div>
+                                               <div class="messageText">
+                                                       {@$message->getFormattedMessage()}
+                                               </div>
+                                       </div>
+                               </div>
+                       </div>
+               </section>
+       </div>
+</article>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationList.tpl b/com.woltlab.wcf/templates/moderationList.tpl
new file mode 100644 (file)
index 0000000..289cb52
--- /dev/null
@@ -0,0 +1,141 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.moderation.moderation{/lang} {if $pageNo > 1}- {lang}wcf.page.pageNo{/lang} {/if}- {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       {* moderation type *}
+       <fieldset>
+               <legend>{lang}wcf.moderation.filterByType{/lang}</legend>
+               
+               <nav>
+                       <ul>
+                               <li{if $definitionID == 0} class="active"{/if}><a href="{link controller='ModerationList'}definitionID=0&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.type.all{/lang}</a></li>
+                               {foreach from=$availableDefinitions key=__definitionID item=definitionName}
+                                       <li{if $definitionID == $__definitionID} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$__definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.type.{$definitionName}{/lang}</a></li>
+                               {/foreach}
+                               
+                               {event name='sidebarModerationType'}
+                       </ul>
+               </nav>
+       </fieldset>
+       
+       {* assigned user *}
+       <fieldset>
+               <legend>{lang}wcf.moderation.filterByUser{/lang}</legend>
+               
+               <nav>
+                       <ul>
+                               <li{if $assignedUserID == -1} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID=-1&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.allEntries{/lang}</a></li>
+                               <li{if $assignedUserID == 0} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID=0&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.nobody{/lang}</a></li>
+                               <li{if $assignedUserID == $__wcf->getUser()->userID} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$__wcf->getUser()->userID}&status={@$status}&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.filterByUser.myself{/lang}</a></li>
+                               
+                               {event name='sidebarAssignedUser'}
+                       </ul>
+               </nav>
+       </fieldset>
+       
+       {* status *}
+       <fieldset>
+               <legend>{lang}wcf.moderation.status{/lang}</legend>
+               
+               <nav>
+                       <ul>
+                               <li{if $status == -1} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status=-1&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.status.all{/lang}</a></li>
+                               <li{if $status == 2} class="active"{/if}><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status=2&pageNo={@$pageNo}&sortField={@$sortField}&sortOrder={@$sortOrder}{/link}">{lang}wcf.moderation.status.done{/lang}</a></li>
+                               
+                               {event name='sidebarStatus'}
+                       </ul>
+               </nav>
+       </fieldset>
+       
+       {event name='sidebarBoxes'}
+{/capture}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.moderation.moderation{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {pages print=true assign=pagesLinks controller='ModerationList' link="id=$definitionID&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $objects|count}
+       <div class="marginTop tabularBox tabularBoxTitle messageGroupList">
+               <header>
+                       <h2>{if $status == 2}{lang}wcf.moderation.doneItems{/lang}{else}{lang}wcf.moderation.outstandingItems{/lang}{/if} <span class="badge badgeInverse">{#$items}</span></h2>
+               </header>
+               
+               <table class="table">
+                       <thead>
+                               <tr>
+                                       <th class="columnID{if $sortField == 'queueID'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=queueID&sortOrder={if $sortField == 'queueID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.objectID{/lang}</a></th>
+                                       <th class="columnText columnTitle">{lang}wcf.moderation.title{/lang}</th>
+                                       <th class="columnText columnAssignedUserID{if $sortField == 'assignedUsername'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=assignedUsername&sortOrder={if $sortField == 'assignedUsername' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.moderation.assignedUser{/lang}</a></th>
+                                       <th class="columnDate columnLastChangeTime{if $sortField == 'lastChangeTime'} active {@$sortOrder}{/if}"><a href="{link controller='ModerationList'}definitionID={@$definitionID}&assignedUserID={@$assignedUserID}&status={@$status}&pageNo={@$pageNo}&sortField=lastChangeTime&sortOrder={if $sortField == 'lastChangeTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.moderation.lastChangeTime{/lang}</a></th>
+                                       
+                                       {event name='columnHeads'}
+                               </tr>
+                       </thead>
+                       
+                       <tbody>
+                               {foreach from=$objects item=entry}
+                                       <tr>
+                                               <td class="columnID">{#$entry->queueID}</td>
+                                               <td class="columnText columnSubject">
+                                                       <h3>
+                                                               <span class="badge label">{lang}wcf.moderation.type.{@$definitionNames[$entry->objectTypeID]}{/lang}</span>
+                                                               <a href="{$entry->getLink()}" class="messageGroupLink">{$entry->getTitle()}</a>
+                                                       </h3>
+                                                       <small>{if $entry->userID}<a href="{link controller='User' id=$entry->userID}{/link}" class="userLink" data-user-id="{@$entry->userID}">{$entry->username}</a>{else}{lang}wcf.user.guest{/lang}{/if} - {@$entry->time|time}</small>     
+                                               </td>
+                                               <td class="columnText columnAssignedUserID">{if $entry->assignedUserID}<a href="{link controller='User' id=$entry->assignedUserID}{/link}" class="userLink" data-user-id="{@$entry->assignedUserID}">{$entry->assignedUsername}</a>{/if}</td>
+                                               <td class="columnDate columnLastChangeTime">{if $entry->lastChangeTime}{@$entry->lastChangeTime|time}{/if}</td>
+                                               
+                                               {event name='columns'}
+                                       </tr>
+                               {/foreach}
+                       </tbody>
+               </table>
+       </div>
+       
+       <div class="contentNavigation">
+               {@$pagesLinks}
+               
+               {hascontent}
+                       <nav>
+                               <ul>
+                                       {content}
+                                               {event name='contentNavigationButtonsBottom'}
+                                       {/content}
+                               </ul>
+                       </nav>
+               {/hascontent}
+       </div>
+{else}
+       <p class="info">{lang}wcf.moderation.noItems{/lang}</p>
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationQueueList.tpl b/com.woltlab.wcf/templates/moderationQueueList.tpl
new file mode 100644 (file)
index 0000000..5ba8cb0
--- /dev/null
@@ -0,0 +1,13 @@
+{foreach from=$queues item=queue}
+       <li>
+               <a href="{@$queue->getLink()}" class="box24">
+                       <div class="framed">
+                               {@$queue->getUserProfile()->getAvatar()->getImageTag(24)}
+                       </div>
+                       <div>
+                               <h3>{$queue->getAffectedObject()->getTitle()}</h3>
+                               <small>{$queue->getAffectedObject()->getUsername()} - {@$queue->getAffectedObject()->getTime()|time}</small>
+                       </div>
+               </a>
+       </li>
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationReport.tpl b/com.woltlab.wcf/templates/moderationReport.tpl
new file mode 100644 (file)
index 0000000..7ccadf3
--- /dev/null
@@ -0,0 +1,123 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.moderation.report{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Moderation.Report.Management({@$queue->queueID}, '{link controller='ModerationList'}{/link}');
+                       
+                       WCF.Language.addObject({
+                               'wcf.moderation.report.removeContent.confirmMessage': '{lang}wcf.moderation.report.removeContent.confirmMessage{/lang}',
+                               'wcf.moderation.report.removeReport.confirmMessage': '{lang}wcf.moderation.report.removeReport.confirmMessage{/lang}'
+                       });
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.moderation.report{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       <nav>
+               <ul>
+                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
+                       
+                       {event name='contentNavigationButtonsTop'}
+               </ul>
+       </nav>
+</div>
+
+<form method="post" action="{link controller='ModerationReport' id=$queue->queueID}{/link}" class="container containerPadding marginTop">
+       <fieldset>
+               <legend>{lang}wcf.moderation.report.details{/lang}</legend>
+               
+               <dl>
+                       <dt>{lang}wcf.global.objectID{/lang}</dt>
+                       <dd>{#$queue->queueID}</dd>
+               </dl>
+               <dl>
+                       <dt>{lang}wcf.moderation.report.reportedBy{/lang}</dt>
+                       <dd>{if $queue->userID}<a href="{link controller='User' id=$queue->userID}{/link}" class="userLink" data-user-id="{@$queue->userID}">{$queue->username}</a>{else}{lang}wcf.user.guest{/lang}{/if} ({@$queue->time|time})</dd>
+               </dl>
+               {if $queue->lastChangeTime}
+                       <dl>
+                               <dt>{lang}wcf.moderation.lastChangeTime{/lang}</dt>
+                               <dd>{@$queue->lastChangeTime|time}</dd>
+                       </dl>
+               {/if}
+               <dl>
+                       <dt>{lang}wcf.moderation.assignedUser{/lang}</dt>
+                       <dd>
+                               <ul>
+                                       {if $assignedUserID && ($assignedUserID != $__wcf->getUser()->userID)}
+                                               <li><label><input type="radio" name="assignedUserID" value="{@$assignedUserID}" checked="checked" /> {$queue->assignedUsername}</label></li>
+                                       {/if}
+                                       <li><label><input type="radio" name="assignedUserID" value="{@$__wcf->getUser()->userID}"{if $assignedUserID == $__wcf->getUser()->userID} checked="checked"{/if} /> {$__wcf->getUser()->username}</label></li>
+                                       <li><label><input type="radio" name="assignedUserID" value="0"{if !$assignedUserID} checked="checked"{/if} /> {lang}wcf.moderation.assignedUser.nobody{/lang}</label></li>
+                               </ul>
+                       </dd>
+               </dl>
+               {if $queue->assignedUser}
+                       <dl>
+                               
+                               <dd><a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a></dd>
+                       </dl>
+               {/if}
+               <dl>
+                       <dt>{lang}wcf.moderation.report.reason{/lang}</dt>
+                       <dd>{@$queue->getFormattedMessage()}</dd>
+               </dl>
+               <dl>
+                       <dt><label for="comment">{lang}wcf.moderation.comment{/lang}</label></dt>
+                       <dd><textarea id="comment" name="comment" rows="4" cols="40">{$comment}</textarea></dd>
+               </dl>
+               
+               {event name='detailsFields'}
+               
+               <div class="formSubmit">
+                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" />
+               </div>
+       </fieldset>
+       
+       {event name='fieldsets'}
+</form>
+
+<header class="boxHeadline boxSubHeadline">
+       <h2>{lang}wcf.moderation.report.reportedContent{/lang}</h2>
+</header>
+
+<div class="marginTop">
+       {@$reportedContent}
+</div>
+
+<div class="contentNavigation">
+       <nav>
+               <ul>
+                       <li class="jsOnly"><button id="removeContent">{lang}wcf.moderation.report.removeContent{/lang}</button></li>
+                       {if $queue->status != 2}
+                               <li class="jsOnly"><button id="removeReport">{lang}wcf.moderation.report.removeReport{/lang}</button></li>
+                       {/if}
+                       <li><a href="{link controller='ModerationList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.moderation.moderation{/lang}</span></a></li>
+                       
+                       {event name='contentNavigationButtonsBottom'}
+               </ul>
+       </nav>
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/moderationReportDialog.tpl b/com.woltlab.wcf/templates/moderationReportDialog.tpl
new file mode 100644 (file)
index 0000000..e0d98db
--- /dev/null
@@ -0,0 +1,22 @@
+{if $alreadyReported}
+       <p class="info">{lang}wcf.moderation.report.alreadyReported{/lang}</p>
+{else}
+       <fieldset>
+               <legend><label for="reason">{lang}wcf.moderation.report.reason{/lang}</label></legend>
+               
+               <dl class="wide">
+                       <dd>
+                               <textarea id="reason" required="required" cols="60" rows="10" class="jsReportMessage"></textarea>
+                               <small>{lang}wcf.moderation.report.reason.description{/lang}</small>
+                       </dd>
+               </dl>
+               
+               {event name='reasonFields'}
+       </fieldset>
+       
+       {event name='fieldsets'}
+       
+       <div class="formSubmit">
+               <button class="jsSubmitReport buttonPrimary" accesskey="s">{lang}wcf.global.button.submit{/lang}</button>
+       </div>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/multiSelectOptionType.tpl b/com.woltlab.wcf/templates/multiSelectOptionType.tpl
new file mode 100644 (file)
index 0000000..3c8ce85
--- /dev/null
@@ -0,0 +1,5 @@
+<select id="{$option->optionName}" name="values[{$option->optionName}][]" multiple="multiple" size="{if $selectOptions|count > 10}10{else}{@$selectOptions|count}{/if}">
+{foreach from=$selectOptions key=key item=selectOption}
+       <option value="{$key}"{if $key|in_array:$value} selected="selected"{/if}>{lang}{@$selectOption}{/lang}</option>
+{/foreach}
+</select>
diff --git a/com.woltlab.wcf/templates/multipleLanguageInputJavascript.tpl b/com.woltlab.wcf/templates/multipleLanguageInputJavascript.tpl
new file mode 100644 (file)
index 0000000..2a4a32a
--- /dev/null
@@ -0,0 +1,10 @@
+{if !$forceSelection|isset}{assign var=forceSelection value=false}{/if}
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
+               var $values = { {implode from=$i18nValues[$elementIdentifier] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
+               new WCF.MultipleLanguageInput('{@$elementIdentifier}', {if $forceSelection}true{else}false{/if}, $values, $availableLanguages);
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/newPassword.tpl b/com.woltlab.wcf/templates/newPassword.tpl
new file mode 100644 (file)
index 0000000..feaefd5
--- /dev/null
@@ -0,0 +1,82 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.newPassword{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.newPassword{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='NewPassword'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.newPassword{/lang}</legend>
+                       
+                       <dl{if $errorField == 'userID'} class="formError"{/if}>
+                               <dt>
+                                       <label for="userID">{lang}wcf.user.userID{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="text" id="userID" name="u" value="{@$userID}" required="required" class="medium" />
+                                       {if $errorField == 'userID'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'invalid'}{lang}wcf.user.userID.error.invalid{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'lostPasswordKey'} class="formError"{/if}>
+                               <dt>
+                                       <label for="lostPasswordKey">{lang}wcf.user.lostPasswordKey{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="text" id="lostPasswordKey" name="k" value="{$lostPasswordKey}" required="required" class="medium" />
+                                       {if $errorField == 'lostPasswordKey'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                       {if $errorType == 'invalid'}{lang}wcf.user.lostPasswordKey.error.invalid{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+               
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/notificationList.tpl b/com.woltlab.wcf/templates/notificationList.tpl
new file mode 100644 (file)
index 0000000..373b496
--- /dev/null
@@ -0,0 +1,96 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.notification.notifications{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.user.notification.markAsConfirmed': '{lang}wcf.user.notification.markAsConfirmed{/lang}'
+                       });
+                       
+                       new WCF.Notification.List();
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.notification.notifications{/lang} <span class="badge jsNotificationsBadge">{#$__wcf->getUserNotificationHandler()->getNotificationCount()}</span></h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {pages print=true assign=pagesLinks controller='NotificationList' link="pageNo=%d"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {if $notifications[notifications]}<li class="jsOnly"><a class="button jsMarkAllAsConfirmed"><span class="icon icon16 icon-remove"></span> <span>{lang}wcf.user.notification.markAllAsConfirmed{/lang}</span></a></li>{/if}
+                                       
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $notifications[notifications]}
+       <div class="container marginTop">
+               <ul class="containerList">
+                       {foreach from=$notifications[notifications] item=$notification}
+                               <li class="jsNotificationItem" data-notification-id="{@$notification[notificationID]}" data-link="{$notification[event]->getLink()}">
+                                       <div class="box48">
+                                               <a href="{link controller='User' object=$notification[event]->getAuthor()}{/link}" title="{$notification[event]->getAuthor()->username}" class="framed">{@$notification[event]->getAuthor()->getAvatar()->getImageTag(48)}</a>
+                                               
+                                               <div class="details">
+                                                       <div class="containerHeadline">
+                                                               <h3><a href="{link controller='User' object=$notification[event]->getAuthor()}{/link}" class="userLink" data-user-id="{@$notification[event]->getAuthor()->userID}">{$notification[event]->getAuthor()->username}</a></h3> 
+                                                               <small>{@$notification[time]|time}</small>
+                                                       </div>
+                                                       
+                                                       <p>{@$notification[event]->getMessage()}</p>
+                                                       
+                                                       <nav class="jsMobileNavigation buttonGroupNavigation">
+                                                               <ul class="buttonList jsOnly">
+                                                                       <li><a class="jsMarkAsConfirmed jsTooltip" title="{lang}wcf.user.notification.markAsConfirmed{/lang}"><span class="icon icon16 icon-remove"></span></a></li>
+                                                               </ul>
+                                                       </nav>
+                                               </div>
+                                       </div>
+                               </li>
+                       {/foreach}
+               </ul>
+       </div>
+       
+       <div class="contentNavigation">
+               {@$pagesLinks}
+               
+               {hascontent}
+                       <nav>
+                               <ul>
+                                       {content}
+                                               {event name='contentNavigationButtonsBottom'}
+                                       {/content}
+                               </ul>
+                       </nav>
+               {/hascontent}
+       </div>
+{else}
+       <p class="info">{lang}wcf.user.notification.noNotifications{/lang}</p>
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/notificationListOustanding.tpl b/com.woltlab.wcf/templates/notificationListOustanding.tpl
new file mode 100644 (file)
index 0000000..92a3b28
--- /dev/null
@@ -0,0 +1,13 @@
+{foreach from=$notifications[notifications] item=notification}
+       <li class="jsNotificationItem notificationItem" data-link="{$notification[event]->getLink()}" data-notification-id="{@$notification[notificationID]}">
+               <a class="box24">
+                       <div class="framed">
+                               {@$notification[event]->getAuthor()->getAvatar()->getImageTag(24)}
+                       </div>
+                       <div>
+                               <h3>{@$notification[event]->getMessage()}</h3>
+                               <small>{$notification[event]->getAuthor()->username} - {@$notification[time]|time}</small>
+                       </div>
+               </a>
+       </li>
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/notificationSettings.tpl b/com.woltlab.wcf/templates/notificationSettings.tpl
new file mode 100644 (file)
index 0000000..dbb021a
--- /dev/null
@@ -0,0 +1,93 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.notification.notifications{/lang} - {lang}wcf.user.menu.settings{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       $('#notificationSettings > fieldset > dl > dd > label > input').each(function(index, value) {
+                               var $input = $(value);
+                               $input.on('click', function(event) {
+                                       var $input = $(event.currentTarget);
+                                       $input.parents('dd').find('.jsMailNotificationType').toggle();
+                               });
+                               if (!$input.is(':checked')) {
+                                       $input.parents('dd').find('.jsMailNotificationType').hide();
+                               }
+                       });
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.notification.notifications{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+{if $success|isset}
+       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='NotificationSettings'}{/link}">
+       <div class="container containerPadding marginTop" id="notificationSettings">
+               {foreach from=$events key='eventCategory' item='eventList'}
+                       <fieldset>
+                               <legend>{lang}wcf.user.notification.{$eventCategory}{/lang}</legend>
+                               
+                               <dl>
+                                       {foreach from=$eventList item='event'}
+                                               <dd>
+                                                       <label><input type="checkbox" name="settings[{@$event->eventID}][enabled]" value="1"{if $settings[$event->eventID][enabled]} checked="checked"{/if} /> {lang}wcf.user.notification.{$event->objectType}.{$event->eventName}{/lang}</label>
+                                                       {hascontent}<small>{content}{lang __optional=true}wcf.user.notification.{$event->objectType}.{$event->eventName}.description{/lang}{/content}</small>{/hascontent}
+                                                       <small class="jsMailNotificationType">
+                                                               <select name="settings[{@$event->eventID}][mailNotificationType]">
+                                                                       <option value="none">{lang}wcf.user.notification.mailNotificationType.none{/lang}</option>
+                                                                       <option value="instant"{if $settings[$event->eventID][mailNotificationType] == 'instant'} selected="selected"{/if}>{lang}wcf.user.notification.mailNotificationType.instant{/lang}</option>
+                                                                       <option value="daily"{if $settings[$event->eventID][mailNotificationType] == 'daily'} selected="selected"{/if}>{lang}wcf.user.notification.mailNotificationType.daily{/lang}</option>
+                                                               </select>
+                                                       </small>
+                                               </dd>
+                                       {/foreach}
+                               </dl>
+                       </fieldset>
+               {/foreach}
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/offline.tpl b/com.woltlab.wcf/templates/offline.tpl
new file mode 100644 (file)
index 0000000..3f47d84
--- /dev/null
@@ -0,0 +1,21 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.global.error.title{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<div class="warning">
+       <p><strong>{lang}wcf.page.offline{/lang}</strong></p>
+       <p>{if OFFLINE_MESSAGE_ALLOW_HTML}{@OFFLINE_MESSAGE}{else}{@OFFLINE_MESSAGE|htmlspecialchars|nl2br}{/if}</p>
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/permissionDenied.tpl b/com.woltlab.wcf/templates/permissionDenied.tpl
new file mode 100644 (file)
index 0000000..7c56d45
--- /dev/null
@@ -0,0 +1,28 @@
+{include file="documentHeader"}
+
+<head>
+       <title>{lang}wcf.global.error.permissionDenied.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<p class="error">{lang}wcf.global.error.permissionDenied{/lang}</p>
+
+{event name='content'}
+
+{if ENABLE_DEBUG_MODE}
+       <!-- 
+       {$name} thrown in {$file} ({@$line})
+       Stacktrace:
+       {$stacktrace}
+       -->
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/poll.tpl b/com.woltlab.wcf/templates/poll.tpl
new file mode 100644 (file)
index 0000000..9810cb7
--- /dev/null
@@ -0,0 +1,45 @@
+{if $__wcf->getUser()->userID && !$__pollLoadedJavaScript|isset}
+       {assign var=__pollLoadedJavaScript value=true}
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Poll{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Poll.Manager('.pollContainer');
+               });
+               //]]>
+       </script>
+{/if}
+
+<div class="container containerPadding pollContainer" data-poll-id="{@$poll->pollID}" data-can-vote="{if $poll->canVote()}1{else}0{/if}" data-can-view-result="{if $poll->canSeeResult()}1{else}0{/if}" data-can-view-participants="{if $poll->isPublic}true{else}false{/if}" data-in-vote="{if $poll->canVote() && !$poll->isParticipant()}1{else}0{/if}" data-question="{$poll->question}" data-max-votes="{@$poll->maxVotes}">
+       <fieldset>
+               <legend>{$poll->question} <span class="badge jsTooltip" title="{lang}wcf.poll.totalVotes{/lang}">{#$poll->votes}</span></legend>
+               
+               <div class="pollInnerContainer">
+                       {if !$__wcf->getUser()->userID}
+                               {if $poll->canSeeResult()}
+                                       {include file='pollResult'}
+                               {else}
+                                       {include file='pollVote'}
+                               {/if}
+                       {else}
+                               {if $poll->canVote() && !$poll->isParticipant()}
+                                       {include file='pollVote'}
+                               {else}
+                                       {include file='pollResult'}
+                               {/if}
+                       {/if}
+                       
+                       {event name='pollData'}
+               </div>
+       </fieldset>
+       
+       {if $__wcf->getUser()->userID}
+               <div class="formSubmit jsOnly">
+                       <button class="small jsButtonPollVote">{lang}wcf.poll.button.vote{/lang}</button>
+                       <button class="small jsButtonPollShowVote">{lang}wcf.poll.button.showVote{/lang}</button>
+                       <button class="small jsButtonPollShowResult">{lang}wcf.poll.button.showResult{/lang}</button>
+                       <button class="small jsButtonPollShowParticipants">{lang}wcf.poll.button.showParticipants{/lang}</button>
+                       {event name='pollButtons'}
+               </div>
+       {/if}
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/pollResult.tpl b/com.woltlab.wcf/templates/pollResult.tpl
new file mode 100644 (file)
index 0000000..d42edb2
--- /dev/null
@@ -0,0 +1,13 @@
+<ol class="pollResultList">
+       {foreach from=$poll->getOptions(true) item=option}
+               <li class="pollResultItem">
+                       <span class="pollMeter" style="width: {if $option->getRelativeVotes($poll)}{@$option->getRelativeVotes($poll)}%{else}0{/if}">&nbsp;</span>
+                       <div class="caption">
+                               <span class="optionName">
+                                       {$option->optionValue} ({#$option->votes})</span>
+                                       <span class="relativeVotes">{@$option->getRelativeVotes($poll)}%</span>
+                               </span>
+                       </div>
+               </li>
+       {/foreach}
+</ol>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/pollVote.tpl b/com.woltlab.wcf/templates/pollVote.tpl
new file mode 100644 (file)
index 0000000..29211fb
--- /dev/null
@@ -0,0 +1,15 @@
+<dl class="wide jsPollVote" data-max-votes="{@$poll->maxVotes}">
+       {foreach from=$poll->getOptions() item=option}
+               <dd>
+                       <label>
+                               {if $poll->canVote()}<input type="{if $poll->maxVotes > 1}checkbox{else}radio{/if}" name="pollOptions{@$poll->pollID}[]" value="{$option->optionValue}" data-option-id="{@$option->optionID}"{if $option->voted} checked="checked"{/if} />{/if}
+                               {$option->optionValue}
+                       </label>
+               </dd>
+       {/foreach}
+</dl>
+{if $poll->canVote()}
+       {if $poll->maxVotes > 1}<small>{lang}wcf.poll.multipleVotes{/lang}</small>{/if}
+{else}
+       <p class="info">{lang}wcf.poll.restrictedResult{/lang}</p>
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/quoteBBCodeTag.tpl b/com.woltlab.wcf/templates/quoteBBCodeTag.tpl
new file mode 100644 (file)
index 0000000..c1c386b
--- /dev/null
@@ -0,0 +1,17 @@
+<blockquote class="container containerPadding quoteBox"{if $quoteLink} cite="{$quoteLink}"{/if}>
+       {if $quoteAuthor}
+               <header>
+                       <h3>
+                               {if $quoteLink}
+                                       <a href="{@$quoteLink}">{lang}wcf.bbcode.quote.title{/lang}</a>
+                               {else}
+                                       {lang}wcf.bbcode.quote.title{/lang}
+                               {/if}
+                       </h3>
+               </header>
+       {/if}
+       
+       <div>
+               {@$content}
+       </div>
+</blockquote>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/radioButtonOptionType.tpl b/com.woltlab.wcf/templates/radioButtonOptionType.tpl
new file mode 100644 (file)
index 0000000..763c9db
--- /dev/null
@@ -0,0 +1,3 @@
+{foreach name=radioButtons from=$selectOptions key=key item=selectOption}
+       <label><input {if $tpl.foreach.radioButtons.first}id="{$option->optionName}" {/if}type="radio" name="values[{$option->optionName}]" value="{$key}" {if $value == $key} checked="checked"{/if} {if $disableOptions[$key]|isset || $enableOptions[$key]|isset}class="jsEnablesOptions" data-disable-options="[ {@$disableOptions[$key]}]" data-enable-options="[ {@$enableOptions[$key]}]"{/if} /> {lang}{@$selectOption}{/lang}</label>
+{/foreach}
diff --git a/com.woltlab.wcf/templates/recaptcha.tpl b/com.woltlab.wcf/templates/recaptcha.tpl
new file mode 100644 (file)
index 0000000..c8aa647
--- /dev/null
@@ -0,0 +1,55 @@
+<fieldset>
+       <legend><label for="recaptcha_response_field">{lang}wcf.recaptcha.title{/lang}</label></legend>
+       <small>{lang}wcf.recaptcha.description{/lang}</small>
+       
+       <dl class="wide reCaptcha{if $errorField == 'recaptchaString'} formError{/if}">
+               <script type="text/javascript">
+                       //<![CDATA[
+                       var RecaptchaOptions = {
+                               lang: '{@$recaptchaLanguageCode}',
+                               theme : 'custom'
+                       }
+                       //]]>
+               </script>
+               <dt class="jsOnly">
+                       <label for="recaptcha_response_field">reCAPTCHA</label>
+               </dt>
+               <dd class="jsOnly">
+                       <div id="recaptcha_image" class="framed"></div>
+                       <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" class="medium marginTop" />
+                       {if $errorField == 'recaptchaString'}
+                               <small class="innerError">
+                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                       {if $errorType == 'false'}{lang}wcf.recaptcha.error.recaptchaString.false{/lang}{/if}
+                               </small>
+                       {/if}
+               </dd>
+               
+               {event name='fields'}
+               
+               <dd class="jsOnly">
+                       <ul class="buttonList">
+                               <li><a href="javascript:Recaptcha.reload()" class="button small"><span class="icon icon16 icon-repeat"></span> <span>{lang}wcf.recaptcha.reload{/lang}</span></a></li>
+                               <li class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')" class="button small"><span class="icon icon16 icon-volume-up"></span> <span>{lang}wcf.recaptcha.audio{/lang}</span></a></li>
+                               <li class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')" class="button small"><span class="icon icon16 icon-eye-open"></span> <span>{lang}wcf.recaptcha.image{/lang}</span></a></li>
+                               <li><a href="javascript:Recaptcha.showhelp()" class="button small"><span class="icon icon16 icon-question-sign"></span> <span>{lang}wcf.recaptcha.help{/lang}</span></a></li>
+                               {event name='buttons'}
+                       </ul>
+               </dd>
+               
+               <script type="text/javascript" src="http{if $recaptchaUseSSL}s{/if}://www.google.com/recaptcha/api/challenge?k={$recaptchaPublicKey}"></script>
+               <noscript>
+                       <dd>
+                               <iframe src="http{if $recaptchaUseSSL}s{/if}://www.google.com/recaptcha/api/noscript?k={$recaptchaPublicKey}" height="300" width="500" seamless="seamless"></iframe><br />
+                               <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
+                               <input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
+                       </dd>
+                       {if $errorField == 'recaptchaString'}
+                               <small class="innerError">
+                                       {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                       {if $errorType == 'false'}{lang}wcf.recaptcha.error.recaptchaString.false{/lang}{/if}
+                               </small>
+                       {/if}
+               </noscript>
+       </dl>
+</fieldset>
diff --git a/com.woltlab.wcf/templates/recentActivities.tpl b/com.woltlab.wcf/templates/recentActivities.tpl
new file mode 100644 (file)
index 0000000..713c5b4
--- /dev/null
@@ -0,0 +1,24 @@
+{hascontent}
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
+                               'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
+                       });
+                       
+                       new WCF.User.RecentActivityLoader({@$userID});
+               });
+               //]]>
+       </script>
+       
+       <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
+               {content}
+                       {include file='recentActivityListItem'}
+               {/content}
+       </ul>
+{hascontentelse}
+       <div class="containerPadding">
+               {if $placeholder|isset}{$placeholder}{/if}
+       </div>
+{/hascontent}
diff --git a/com.woltlab.wcf/templates/recentActivityList.tpl b/com.woltlab.wcf/templates/recentActivityList.tpl
new file mode 100644 (file)
index 0000000..8cfcc4b
--- /dev/null
@@ -0,0 +1,77 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.recentActivity{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <link rel="canonical" href="{link controller='RecentActivityList'}{/link}" />
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.user.recentActivity.more': '{lang}wcf.user.recentActivity.more{/lang}',
+                               'wcf.user.recentActivity.noMoreEntries': '{lang}wcf.user.recentActivity.noMoreEntries{/lang}'
+                       });
+                       
+                       new WCF.User.RecentActivityLoader(null);
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       {@$__boxSidebar}
+{/capture}
+
+{include file='header' sidebarOrientation='right'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.recentActivity{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $eventList|count}
+       <div class="container marginTop">
+               <ul id="recentActivities" class="containerList recentActivityList" data-last-event-time="{@$lastEventTime}">
+                       {include file='recentActivityListItem'}
+               </ul>
+       </div>
+       
+       <div class="contentNavigation">
+               {hascontent}
+                       <nav>
+                               <ul>
+                                       {content}
+                                               {event name='contentNavigationButtonsBottom'}
+                                       {/content}
+                               </ul>
+                       </nav>
+               {/hascontent}
+       </div>
+{else}
+       <p class="info">{lang}wcf.user.recentActivity.noEntries{/lang}</p>
+{/if}
+
+
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/recentActivityListItem.tpl b/com.woltlab.wcf/templates/recentActivityListItem.tpl
new file mode 100644 (file)
index 0000000..90cdcac
--- /dev/null
@@ -0,0 +1,17 @@
+{foreach from=$eventList item=event}
+       <li>
+               <div class="box48">
+                       <a href="{link controller='User' object=$event->getUserProfile()}{/link}" title="{$event->getUserProfile()->username}" class="framed">{@$event->getUserProfile()->getAvatar()->getImageTag(48)}</a>
+                       
+                       <div>
+                               <div class="containerHeadline">
+                                       <h3><a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3> 
+                                       <p><strong>{@$event->getTitle()}</strong></p>
+                                       <small class="containerContentType">{lang}wcf.user.recentActivity.{@$event->getObjectTypeName()}{/lang}</small>
+                               </div>
+                               
+                               <div>{@$event->getDescription()}</div>
+                       </div>
+               </div>
+       </li>
+{/foreach}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/redirect.tpl b/com.woltlab.wcf/templates/redirect.tpl
new file mode 100644 (file)
index 0000000..4827f3c
--- /dev/null
@@ -0,0 +1,23 @@
+{include file="documentHeader"}
+
+<head>
+       <title>{lang}wcf.global.redirect.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
+       
+       {include file='headInclude'}
+       
+       <meta http-equiv="refresh" content="{if $wait|isset}{@$wait}{else}10{/if};URL={$url}" />
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<div class="{if !$status|empty}{@$status}{else}success{/if}">
+       <p>{@$message}</p>
+       <a href="{$url}">{lang}wcf.global.redirect.url{/lang}</a>
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/register.tpl b/com.woltlab.wcf/templates/register.tpl
new file mode 100644 (file)
index 0000000..8ab4031
--- /dev/null
@@ -0,0 +1,229 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.register{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+       
+       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.global.form.error.empty': '{lang}wcf.global.form.error.empty{/lang}',
+                               'wcf.user.username.error.notValid': '{lang}wcf.user.username.error.notValid{/lang}',
+                               'wcf.user.username.error.notUnique': '{lang}wcf.user.username.error.notUnique{/lang}',
+                               'wcf.user.email.error.notValid' : '{lang}wcf.user.email.error.notValid{/lang}',
+                               'wcf.user.email.error.notUnique' : '{lang}wcf.user.email.error.notUnique{/lang}',
+                               'wcf.user.confirmEmail.error.notEqual' : '{lang}wcf.user.confirmEmail.error.notEqual{/lang}',
+                               'wcf.user.password.error.notSecure' : '{lang}wcf.user.password.error.notSecure{/lang}',
+                               'wcf.user.confirmPassword.error.notEqual' : '{lang}wcf.user.confirmPassword.error.notEqual{/lang}'
+                       });
+                       
+                       new WCF.User.Registration.Validation.EmailAddress($('#email'), $('#confirmEmail'), null);
+                       new WCF.User.Registration.Validation.Password($('#password'), $('#confirmPassword'), null);
+                       new WCF.User.Registration.Validation.Username($('#username', null, {
+                               minlength: {@REGISTER_USERNAME_MIN_LENGTH},
+                               maxlength: {@REGISTER_USERNAME_MAX_LENGTH}
+                       }));
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+{include file='header' __disableLoginLink=true}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.register{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $isExternalAuthentication}
+       {if $__wcf->session->getVar('__githubToken')}
+               <p class="info">{lang}wcf.user.3rdparty.github.register{/lang}</p>
+       {elseif $__wcf->session->getVar('__twitterData')}
+               <p class="info">{lang}wcf.user.3rdparty.twitter.register{/lang}</p>
+       {elseif $__wcf->session->getVar('__facebookData')}
+               <p class="info">{lang}wcf.user.3rdparty.facebook.register{/lang}</p>
+       {elseif $__wcf->session->getVar('__googleData')}
+               <p class="info">{lang}wcf.user.3rdparty.google.register{/lang}</p>
+       {/if}
+{/if}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='Register'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.username{/lang}</legend>
+                       
+                       <dl{if $errorType.username|isset} class="formError"{/if}>
+                               <dt>
+                                       <label for="username">{lang}wcf.user.username{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
+                                       {if $errorType.username|isset}
+                                               <small class="innerError">
+                                                       {if $errorType.username == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                       {if $errorType.username == 'notValid'}{lang}wcf.user.username.error.notValid{/lang}{/if}
+                                                       {if $errorType.username == 'notUnique'}{lang}wcf.user.username.error.notUnique{/lang}{/if}
+                                               </small>
+                                       {/if}
+                                       <small>{lang}wcf.user.username.description{/lang}</small>
+                               </dd>
+                       </dl>
+                       
+                       {event name='usernameFields'}
+               </fieldset>
+               
+               <fieldset>
+                       <legend>{lang}wcf.user.email{/lang}</legend>
+                       
+                       <dl{if $errorType.email|isset} class="formError"{/if}>
+                               <dt>
+                                       <label for="email">{lang}wcf.user.email{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
+                                       {if $errorType.email|isset}
+                                               <small class="innerError">
+                                                       {if $errorType.email == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                       {if $errorType.email == 'notValid'}{lang}wcf.user.email.error.notValid{/lang}{/if}
+                                                       {if $errorType.email == 'notUnique'}{lang}wcf.user.email.error.notUnique{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorType.confirmEmail|isset} class="formError"{/if}>
+                               <dt>
+                                       <label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label>
+                               </dt>
+                               <dd>
+                                       <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" required="required" class="medium" />
+                                       {if $errorType.confirmEmail|isset}
+                                               <small class="innerError">
+                                                       {if $errorType.confirmEmail == 'notEqual'}{lang}wcf.user.confirmEmail.error.notEqual{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='emailFields'}
+               </fieldset>
+               
+               {if !$isExternalAuthentication}
+                       <fieldset>
+                               <legend>{lang}wcf.user.password{/lang}</legend>
+                               
+                               <dl{if $errorType.password|isset} class="formError"{/if}>
+                                       <dt>
+                                               <label for="password">{lang}wcf.user.password{/lang}</label>
+                                       </dt>
+                                       <dd>
+                                               <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
+                                               {if $errorType.password|isset}
+                                                       <small class="innerError">
+                                                               {if $errorType.password == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
+                                                               {if $errorType.password == 'notSecure'}{lang}wcf.user.password.error.notSecure{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                               <small>{lang}wcf.user.password.description{/lang}</small>
+                                       </dd>
+                               </dl>
+                               
+                               <dl{if $errorType.confirmPassword|isset} class="formError"{/if}>
+                                       <dt>
+                                               <label for="confirmPassword">{lang}wcf.user.confirmPassword{/lang}</label>
+                                       </dt>
+                                       <dd>
+                                               <input type="password" id="confirmPassword" name="confirmPassword" value="{$confirmPassword}" required="required" class="medium" />
+                                               {if $errorType.confirmPassword|isset}
+                                                       <small class="innerError">
+                                                               {if $errorType.confirmPassword == 'notEqual'}{lang}wcf.user.confirmPassword.error.notEqual{/lang}{/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               {event name='passwordFields'}
+                       </fieldset>
+               {/if}
+               
+               {if $availableLanguages|count > 1}
+                       <fieldset>
+                               <legend>{lang}wcf.user.language{/lang}</legend>
+                               
+                               <dl>
+                                       <dt><label for="languageID">{lang}wcf.user.language{/lang}</label></dt>
+                                       <dd>
+                                               <select id="languageID" name="languageID">
+                                                       {foreach from=$availableLanguages item=language}
+                                                               <option value="{@$language->languageID}"{if $language->languageID == $languageID} selected="selected"{/if}>{$language}</option>
+                                                       {/foreach}
+                                               </select>
+                                               <small>{lang}wcf.user.language.description{/lang}</small>
+                                       </dd>
+                               </dl>
+                               
+                               {hascontent}
+                                       <dl>
+                                               <dt><label>{lang}wcf.user.visibleLanguages{/lang}</label></dt>
+                                               <dd class="floated">
+                                               {content}
+                                                       {foreach from=$availableContentLanguages item=language}
+                                                               <label><input name="visibleLanguages[]" type="checkbox" value="{@$language->languageID}"{if $language->languageID|in_array:$visibleLanguages} checked="checked"{/if} /> {$language}</label>
+                                                       {/foreach}
+                                               {/content}
+                                               <small>{lang}wcf.user.visibleLanguages.description{/lang}</small></dd>
+                                       </dl>
+                               {/hascontent}
+                               
+                               {event name='languageFields'}
+                       </fieldset>
+               {/if}
+               
+               {foreach from=$optionTree item=category}
+                       <fieldset>
+                               <legend>{lang}wcf.user.option.category.{@$category[object]->categoryName}{/lang}</legend>
+                               
+                               {include file='userOptionFieldList' options=$category[options] langPrefix='wcf.user.option.'}
+                       </fieldset>
+               {/foreach}
+               
+               {event name='fieldsets'}
+               
+               {if $useCaptcha}
+                       {if $errorType.recaptchaString|isset}
+                               {assign var=errorField value='recaptchaString'}
+                               {assign var=errorType value=$errorType.recaptchaString}
+                       {/if}
+                       {include file='recaptcha'}
+               {/if}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/registerActivation.tpl b/com.woltlab.wcf/templates/registerActivation.tpl
new file mode 100644 (file)
index 0000000..9f03a87
--- /dev/null
@@ -0,0 +1,87 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.registerActivation{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.registerActivation{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $__wcf->user->userID && $__wcf->user->activationCode}<p class="info">{lang}wcf.user.registerActivation.info{/lang}</p>{/if}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='RegisterActivation'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend><label for="userID">{lang}wcf.user.registerActivation{/lang}</label></legend>
+                       
+                       <dl{if $errorField == 'username'} class="formError"{/if}>
+                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="username" name="username" value="{@$username}" required="required" class="medium" />
+                                       {if $errorField == 'username'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'notFound'}{lang}wcf.user.username.error.notFound{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'activationCode'} class="formError"{/if}>
+                               <dt><label for="activationCode">{lang}wcf.user.activationCode{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="activationCode" maxlength="9" name="activationCode" value="{@$activationCode}" required="required" class="medium" />
+                                       {if $errorField == 'activationCode'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'notValid'}{lang}wcf.user.activationCode.error.notValid{/lang}{/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+                       
+                       <dl>
+                               <dd>
+                                       <ul class="buttonList">
+                                               <li><a class="button small" href="{link controller='RegisterNewActivationCode'}{/link}"><span>{lang}wcf.user.newActivationCode{/lang}</span></a></li>
+                                               {event name='buttons'}
+                                       </ul>
+                               </dd>
+                       </dl>
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/registerNewActivationCode.tpl b/com.woltlab.wcf/templates/registerNewActivationCode.tpl
new file mode 100644 (file)
index 0000000..5122f84
--- /dev/null
@@ -0,0 +1,100 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.newActivationCode{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.newActivationCode{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+       
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+       
+<form method="post" action="{link controller='RegisterNewActivationCode'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.user.newActivationCode{/lang}</legend>
+                       
+                       <dl{if $errorField == 'username'} class="formError"{/if}>
+                               <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="username" name="username" value="{$username}" required="required" class="medium" />
+                                       {if $errorField == 'username'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {elseif $errorType == 'alreadyEnabled'}
+                                                               {lang}wcf.user.registerActivation.error.userAlreadyEnabled{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.username.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'password'} class="formError"{/if}>
+                               <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
+                               <dd>
+                                       <input type="password" id="password" name="password" value="{$password}" required="required" class="medium" />
+                                       {if $errorField == 'password'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.user.password.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                               </dd>
+                       </dl>
+                       
+                       <dl{if $errorField == 'email'} class="formError"{/if}>
+                               <dt><label for="email">{lang}wcf.user.email{/lang}</label></dt>
+                               <dd>
+                                       <input type="email" id="email" name="email" value="{$email}" class="medium" />
+                                       {if $errorField == 'email'}
+                                               <small class="innerError">
+                                                       {lang}wcf.user.email.error.{@$errorType}{/lang}
+                                               </small>
+                                       {/if}
+                                       <small>{lang}wcf.user.registerNewActivationCode.email.description{/lang}</small>
+                               </dd>
+                       </dl>
+                       
+                       {event name='fields'}
+               </fieldset>
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/rssFeed.tpl b/com.woltlab.wcf/templates/rssFeed.tpl
new file mode 100644 (file)
index 0000000..11242c0
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0"
+       xmlns:atom="http://www.w3.org/2005/Atom"
+       xmlns:content="http://purl.org/rss/1.0/modules/content/"
+       xmlns:dc="http://purl.org/dc/elements/1.1/"
+       xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
+>
+       <channel>
+               <title><![CDATA[{if $title}{$title} - {/if}{@PAGE_TITLE|language|escapeCDATA}]]></title>
+               <link><![CDATA[{@$baseHref|escapeCDATA}]]></link>
+               <description><![CDATA[{@PAGE_DESCRIPTION|escapeCDATA}]]></description>
+               <language>{@$__wcf->language->getFixedLanguageCode()}</language>
+               <pubDate>{'r'|gmdate:TIME_NOW}</pubDate>
+{assign var='dummy' value=$items->rewind()}
+               <lastBuildDate>{if $items->valid()}{'r'|gmdate:$items->current()->getTime()}{else}{'r'|gmdate:TIME_NOW}{/if}</lastBuildDate>
+               <ttl>60</ttl>
+               <generator><![CDATA[WoltLab Community Framework {@WCF_VERSION}]]></generator>
+               <atom:link href="{$__wcf->getRequestURI()}" rel="self" type="application/rss+xml" />
+{*             *}{foreach from=$items item='item'}
+               <item>
+                       <title><![CDATA[{@$item->getTitle()|escapeCDATA}]]></title>
+                       <link><![CDATA[{@$item->getLink()|escapeCDATA}]]></link>
+                       {hascontent}<description><![CDATA[{content}{@$item->getExcerpt()|escapeCDATA}{/content}]]></description>{/hascontent}
+                       <pubDate>{'r'|gmdate:$item->getTime()}</pubDate>
+                       <dc:creator>{@$item->getUsername()|escapeCDATA}</dc:creator>
+                       <guid><![CDATA[{@$item->getLink()|escapeCDATA}]]></guid>
+                       {foreach from=$item->getCategories() item='category'}
+                               <category><![CDATA[{@$category|escapeCDATA}]]></category>
+                       {/foreach}
+                       {hascontent}<content:encoded><![CDATA[{content}{@$item->getFormattedMessage()|escapeCDATA}{/content}]]></content:encoded>{/hascontent}
+                       <slash:comments>{@$item->getComments()|escapeCDATA}</slash:comments>
+               </item>
+{*             *}{/foreach}
+       </channel>
+{if ENABLE_BENCHMARK}
+       <!-- 
+               Execution time: {@$__wcf->getBenchmark()->getExecutionTime()}s ({#($__wcf->getBenchmark()->getExecutionTime()-$__wcf->getBenchmark()->getQueryExecutionTime())/$__wcf->getBenchmark()->getExecutionTime()*100}% PHP, {#$__wcf->getBenchmark()->getQueryExecutionTime()/$__wcf->getBenchmark()->getExecutionTime()*100}% SQL) | SQL queries: {#$__wcf->getBenchmark()->getQueryCount()} | Memory-Usage: {$__wcf->getBenchmark()->getMemoryUsage()}
+       
+{*     *}{if ENABLE_DEBUG_MODE}
+{*             *}{foreach from=$__wcf->getBenchmark()->getItems() item=item}
+{*     *}                      {if $item.type == 1}(SQL Query) {/if}{$item.text} ({@$item.use}s)
+{*             *}{/foreach}
+{*     *}{/if}
+       -->
+{/if}
+</rss>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/search.tpl b/com.woltlab.wcf/templates/search.tpl
new file mode 100644 (file)
index 0000000..dc94079
--- /dev/null
@@ -0,0 +1,147 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.search.title{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.search.title{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+{if $errorMessage|isset}
+       <p class="error">{@$errorMessage}</p>
+{/if}
+
+<form method="post" action="{link controller='Search'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.search.general{/lang}</legend>
+                       
+                       <dl{if $errorField == 'q'} class="formError"{/if}>
+                               <dt><label for="searchTerm">{lang}wcf.search.query{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="searchTerm" name="q" value="{$query}" class="long" maxlength="255" autofocus="autofocus" />
+                                       {if $errorField == 'q'}
+                                               <small class="innerError">
+                                                       {if $errorType == 'empty'}
+                                                               {lang}wcf.global.form.error.empty{/lang}
+                                                       {else}
+                                                               {lang}wcf.search.query.error.{@$errorType}{/lang}
+                                                       {/if}
+                                               </small>
+                                       {/if}
+                                       <label><input type="checkbox" name="subjectOnly" value="1"{if $subjectOnly == 1} checked="checked"{/if} /> {lang}wcf.search.subjectOnly{/lang}</label>
+                                       {event name='queryOptions'}
+                                       
+                                       <p><small>{lang}wcf.search.query.description{/lang}</small></p>
+                               </dd>
+                       </dl>
+                       
+                       <dl>
+                               <dt><label for="searchAuthor">{lang}wcf.search.author{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="searchAuthor" name="username" value="{$username}" class="long" maxlength="255" autocomplete="off" />
+                                       <label><input type="checkbox" name="nameExactly" value="1"{if $nameExactly == 1} checked="checked"{/if} /> {lang}wcf.search.matchExactly{/lang}</label>
+                                       {event name='authorOptions'}
+                               </dd>
+                       </dl>
+                       
+                       <dl>
+                               <dt><label for="startDate">{lang}wcf.search.period{/lang}</label></dt>
+                               <dd>
+                                       <input type="date" id="startDate" name="startDate" value="{$startDate}" data-placeholder="{lang}wcf.date.period.start{/lang}" />
+                                       <input type="date" id="endDate" name="endDate" value="{$endDate}" data-placeholder="{lang}wcf.date.period.end{/lang}" />
+                                       {event name='periodOptions'}
+                               </dd>
+                       </dl>
+                       
+                       <dl>
+                               <dt><label for="sortField">{lang}wcf.search.sortBy{/lang}</label></dt>
+                               <dd>
+                                       <select id="sortField" name="sortField">
+                                               <option value="relevance"{if $sortField == 'relevance'} selected="selected"{/if}>{lang}wcf.search.sortBy.relevance{/lang}</option>
+                                               <option value="subject"{if $sortField == 'subject'} selected="selected"{/if}>{lang}wcf.search.sortBy.subject{/lang}</option>
+                                               <option value="time"{if $sortField == 'time'} selected="selected"{/if}>{lang}wcf.search.sortBy.time{/lang}</option>
+                                               <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.search.sortBy.username{/lang}</option>
+                                       </select>
+                                       
+                                       <select name="sortOrder">
+                                               <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
+                                               <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
+                                       </select>
+                                       {event name='displayOptions'}
+                               </dd>
+                       </dl>
+                       
+                       {event name='generalFields'}
+                       
+                       <dl>
+                               <dt>{lang}wcf.search.type{/lang}</dt>
+                               <dd class="floated">
+                                       {foreach from=$objectTypes key=objectTypeName item=objectType}
+                                               {if $objectType->isAccessible()}
+                                                       <label><input id="{@'.'|str_replace:'_':$objectTypeName}" type="checkbox" name="types[]" value="{@$objectTypeName}"{if $objectTypeName|in_array:$selectedObjectTypes} checked="checked"{/if} /> {lang}wcf.search.type.{@$objectTypeName}{/lang}</label>
+                                               {/if}
+                                       {/foreach}
+                               </dd>
+                       </dl>
+               </fieldset>
+               
+               {event name='fieldsets'}
+               {if $useCaptcha}{include file='recaptcha'}{/if}
+               
+               {foreach from=$objectTypes key=objectTypeName item=objectType}
+                       {if $objectType->isAccessible() && $objectType->getFormTemplateName()}
+                               {assign var='__jsID' value='.'|str_replace:'_':$objectTypeName}
+                               <fieldset id="{@$__jsID}Form">
+                                       <legend>{lang}wcf.search.type.{@$objectTypeName}{/lang}</legend>
+                                       
+                                       {include file=$objectType->getFormTemplateName() application=$objectType->getApplication()}
+                                       
+                                       <script type="text/javascript">
+                                               //<![CDATA[
+                                               $(function() {
+                                                       $('#{@$__jsID}').click(function() {
+                                                               if (this.checked) $('#{@$__jsID}Form').wcfFadeIn();
+                                                               else $('#{@$__jsID}Form').wcfFadeOut();
+                                                       });
+                                                       {if !$objectTypeName|in_array:$selectedObjectTypes}$('#{@$__jsID}Form').hide();{/if}
+                                               });
+                                               //]]>
+                                       </script>
+                               </fieldset>
+                       {/if}
+               {/foreach}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               new WCF.Search.User($('#searchAuthor'), function(data) {
+                       $('#searchAuthor').val(data.label);//.focus();
+               });
+       });
+       //]]>
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/searchArea.tpl b/com.woltlab.wcf/templates/searchArea.tpl
new file mode 100644 (file)
index 0000000..a642788
--- /dev/null
@@ -0,0 +1,35 @@
+{capture assign='__searchFormLink'}{link controller='Search'}{/link}{/capture}
+{capture assign='__searchInputPlaceholder'}{lang}wcf.global.search.enterSearchTerm{/lang}{/capture}
+{capture assign='__searchDropdownOptions'}<label><input type="checkbox" name="subjectOnly" value="1" /> {lang}wcf.search.subjectOnly{/lang}</label>{/capture}
+{assign var='__searchHiddenInputFields' value=''}
+
+{event name='settings'}
+
+<aside id="search" class="searchBar dropdown" data-disable-auto-focus="true">
+       <form method="post" action="{@$__searchFormLink}">
+               <input type="search" name="q" placeholder="{@$__searchInputPlaceholder}" autocomplete="off" required="required" value="" class="dropdownToggle" data-toggle="search" />
+               
+               <ul class="dropdownMenu">
+                       {hascontent}
+                               <li class="dropdownText">
+                                       {content}
+                                               {@$__searchDropdownOptions}
+                                       {/content}
+                               </li>
+                               <li class="dropdownDivider"></li>
+                       {/hascontent}
+                       <li><a href="{@$__searchFormLink}">{lang}wcf.search.extended{/lang}</a></li>
+               </ul>
+               
+               {@$__searchHiddenInputFields}
+       </form>
+</aside>
+
+<script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.Search.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               new WCF.Search.Message.SearchArea($('#search'));
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/searchResult.tpl b/com.woltlab.wcf/templates/searchResult.tpl
new file mode 100644 (file)
index 0000000..aca7cf6
--- /dev/null
@@ -0,0 +1,60 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.search.results{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='header'}
+
+<header class="boxHeadline">
+       <h1>{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>
+       <p>{lang}wcf.search.results.description{/lang}</p>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {assign var=encodedHighlight value=$highlight|urlencode}
+       {pages print=true assign=pagesLinks controller='SearchResult' id=$searchID link="pageNo=%d&highlight=$encodedHighlight"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {if $alterable}
+                                               <li><a href="{link controller='Search'}modify={@$searchID}{/link}" class="button"><span class="icon icon16 icon-search"></span> <span>{lang}wcf.search.results.change{/lang}</span></a></li>
+                                       {/if}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file=$resultListTemplateName application=$resultListApplication}
+
+<div class="contentNavigation">
+       {@$pagesLinks}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {if $alterable}
+                                               <li><a href="{link controller='Search'}modify={@$searchID}{/link}" class="button"><span class="icon icon16 icon-search"></span> <span>{lang}wcf.search.results.change{/lang}</span></a></li>
+                                       {/if}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/searchResultList.tpl b/com.woltlab.wcf/templates/searchResultList.tpl
new file mode 100644 (file)
index 0000000..162a538
--- /dev/null
@@ -0,0 +1,25 @@
+<div class="container marginTop">
+       <ul class="containerList messageSearchResultList">
+               {foreach from=$objects item=message}
+                       <li>
+                               <div class="box48">
+                                       <a href="{link controller='User' object=$message->getUserProfile()}{/link}" title="{$message->getUserProfile()->username}" class="framed">{@$message->getUserProfile()->getAvatar()->getImageTag(48)}</a>
+                                       
+                                       <div>
+                                               <div class="containerHeadline">
+                                                       <h3><a href="{$message->getLink($query)}">{$message->getSubject()}</a></h3>
+                                                       <p>
+                                                               <a href="{link controller='User' object=$message->getUserProfile()}{/link}" class="userLink" data-user-id="{@$message->getUserProfile()->userID}">{$message->getUserProfile()->username}</a>
+                                                               <small>- {@$message->getTime()|time}</small>
+                                                               {if $message->getContainerTitle()}<small>- <a href="{$message->getContainerLink()}">{$message->getContainerTitle()}</a></small>{/if}
+                                                       </p> 
+                                                       <small class="containerContentType">{lang}wcf.search.object.{@$message->getObjectTypeName()}{/lang}</small>
+                                               </div>
+                                               
+                                               <p>{@$message->getFormattedMessage()}</p>
+                                       </div>
+                               </div>
+                       </li>
+               {/foreach}
+       </ul>
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/selectOptionType.tpl b/com.woltlab.wcf/templates/selectOptionType.tpl
new file mode 100644 (file)
index 0000000..e0e2ce6
--- /dev/null
@@ -0,0 +1,6 @@
+<select id="{$option->optionName}" name="values[{$option->optionName}]">
+       {if $option->allowEmptyValue}<option value=""></option>{/if}
+       {foreach from=$selectOptions key=key item=selectOption}
+               <option value="{$key}"{if $value == $key} selected="selected"{/if}>{lang}{@$selectOption}{/lang}</option>
+       {/foreach}
+</select>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/settings.tpl b/com.woltlab.wcf/templates/settings.tpl
new file mode 100644 (file)
index 0000000..1031376
--- /dev/null
@@ -0,0 +1,131 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.option.category.settings.{$category}{/lang} - {lang}wcf.user.menu.settings{/lang} - {PAGE_TITLE|language}</title>
+       {include file='headInclude'}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.menu.settings{/lang}: {lang}wcf.user.option.category.settings.{$category}{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $success|isset}
+       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='Settings'}{/link}">
+       <div class="container containerPadding marginTop">
+               {if $category == 'general'}
+                       {if $availableLanguages|count > 1}
+                               <fieldset>
+                                       <legend>{lang}wcf.user.language{/lang}</legend>
+                                       
+                                       <dl>
+                                               <dt><label>{lang}wcf.user.language{/lang}</label></dt>
+                                               <dd id="languageIDContainer">
+                                                       <script type="text/javascript">
+                                                               //<![CDATA[
+                                                               $(function() {
+                                                                       var $languages = {
+                                                                               {implode from=$availableLanguages item=language}
+                                                                                       '{@$language->languageID}': {
+                                                                                               iconPath: '{@$language->getIconPath()}',
+                                                                                               languageName: '{$language}'
+                                                                                       }
+                                                                               {/implode}
+                                                                       };
+                                                                       
+                                                                       new WCF.Language.Chooser('languageIDContainer', 'languageID', {@$languageID}, $languages);
+                                                               });
+                                                               //]]>
+                                                       </script>
+                                                       <noscript>
+                                                               <select name="languageID" id="languageID">
+                                                                       {foreach from=$availableLanguages item=language}
+                                                                               <option value="{@$language->languageID}"{if $language->languageID == $languageID} selected="selected"{/if}>{$language}</option>
+                                                                       {/foreach}
+                                                               </select>
+                                                       </noscript>
+                                               </dd>
+                                       </dl>
+                                       
+                                       {hascontent}
+                                               <dl>
+                                                       <dt><label>{lang}wcf.user.visibleLanguages{/lang}</label></dt>
+                                                       <dd class="floated">
+                                                       {content}
+                                                               {foreach from=$availableContentLanguages item=language}
+                                                                       <label><input name="contentLanguageIDs[]" type="checkbox" value="{@$language->languageID}"{if $language->languageID|in_array:$contentLanguageIDs} checked="checked"{/if} /> {$language}</label>
+                                                               {/foreach}
+                                                       {/content}
+                                                       <small>{lang}wcf.user.visibleLanguages.description{/lang}</small></dd>
+                                               </dl>
+                                       {/hascontent}
+                                       
+                                       {event name='languageFields'}
+                               </fieldset>
+                       {/if}
+                       
+                       {if $availableStyles|count > 1}
+                               <fieldset>
+                                       <legend>{lang}wcf.user.style{/lang}</legend>
+                                       
+                                       <dl>
+                                               <dt><label for="styleID">{lang}wcf.user.style{/lang}</label></dt>
+                                               <dd>
+                                                       <select id="styleID" name="styleID">
+                                                               <option value="0"></option>
+                                                               {foreach from=$availableStyles item=style}
+                                                                       <option value="{@$style->styleID}"{if $style->styleID == $styleID} selected="selected"{/if}>{$style->styleName}</option>
+                                                               {/foreach}
+                                                       </select>
+                                                       <small>{lang}wcf.user.style.description{/lang}</small>
+                                               </dd>
+                                       </dl>
+                                       
+                                       {event name='styleFields'}
+                               </fieldset>
+                       {/if}
+               {/if}
+               
+               {foreach from=$optionTree[0][categories][0][categories] item=optionCategory}
+                       <fieldset>
+                               <legend>{lang}wcf.user.option.category.{@$optionCategory[object]->categoryName}{/lang}</legend>
+                               
+                               {include file='userProfileOptionFieldList' options=$optionCategory[options] langPrefix='wcf.user.option.'}
+                       </fieldset>
+               {/foreach}
+               
+               {event name='fieldsets'}
+       </div>
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+               {if $category != 'general'}<input type="hidden" name="category" value="{$category}" />{/if}
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/shareButtons.tpl b/com.woltlab.wcf/templates/shareButtons.tpl
new file mode 100644 (file)
index 0000000..83514dc
--- /dev/null
@@ -0,0 +1,49 @@
+<div class="messageShareButtons jsOnly">
+       <ul>
+               <li class="jsShareFacebook">
+                       <a>
+                               <span class="icon icon32 icon-facebook-sign jsTooltip" title="{lang}wcf.message.share.facebook{/lang}"></span>
+                               <span class="invisible">{lang}wcf.message.share.facebook{/lang}</span>
+                       </a>
+                       <span class="badge" style="display: none">0</span>
+               </li>
+               <li class="jsShareTwitter">
+                       <a>
+                               <span class="icon icon32 icon-twitter-sign jsTooltip" title="{lang}wcf.message.share.twitter{/lang}"></span>
+                               <span class="invisible">{lang}wcf.message.share.twitter{/lang}</span>
+                       </a>
+                       <span class="badge" style="display: none">0</span>
+               </li>
+               <li class="jsShareGoogle">
+                       <a>
+                               <span class="icon icon32 icon-google-plus-sign jsTooltip" title="{lang}wcf.message.share.google{/lang}"></span>
+                               <span class="invisible">{lang}wcf.message.share.google{/lang}</span>
+                       </a>
+                       <span class="badge" style="display: none">0</span>
+               </li>
+               <li class="jsShareReddit">
+                       <a>
+                               <img class="jsTooltip" src="{$__wcf->getPath()}icon/reddit.png" alt="{lang}wcf.message.share.reddit{/lang}" title="{lang}wcf.message.share.reddit{/lang}" />
+                               <span class="invisible">{lang}wcf.message.share.reddit{/lang}</span>
+                       </a>
+                       <span class="badge" style="display: none">0</span>
+               </li>
+               
+               {event name='buttons'}
+       </ul>
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.message.share.facebook': '{lang}wcf.message.share.facebook{/lang}',
+                               'wcf.message.share.google': '{lang}wcf.message.share.google{/lang}',
+                               'wcf.message.share.reddit': '{lang}wcf.message.share.reddit{/lang}',
+                               'wcf.message.share.twitter': '{lang}wcf.message.share.twitter{/lang}'
+                       });
+                       
+                       new WCF.Message.Share.Page({if SHARE_BUTTONS_SHOW_COUNT}true{else}false{/if});
+               });
+               //]]>
+       </script>
+</div>
diff --git a/com.woltlab.wcf/templates/signatureEdit.tpl b/com.woltlab.wcf/templates/signatureEdit.tpl
new file mode 100644 (file)
index 0000000..c7a2821
--- /dev/null
@@ -0,0 +1,114 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.signature.edit{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       WCF.Language.addObject({
+                               'wcf.global.preview': '{lang}wcf.global.preview{/lang}'
+                       });
+                       
+                       new WCF.User.SignaturePreview('wcf\\data\\user\\UserProfileAction', 'text', 'previewButton');
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userMenuSidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.signature.edit{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField}
+       <p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+{if $success|isset}
+       <p class="success">{lang}wcf.global.success.edit{/lang}</p>
+{/if}
+
+{if $__wcf->user->disableSignature}
+       <p class="error">{lang}wcf.user.signature.error.disabled{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='SignatureEdit'}{/link}">
+       <div class="container containerPadding marginTop">
+               {if $signatureCache}
+                       <fieldset>
+                               <legend>{lang}wcf.user.signature.current{/lang}</legend>
+                               
+                               {@$signatureCache}
+                       </fieldset>
+               {/if}
+               
+               {if !$__wcf->user->disableSignature}
+                       <fieldset id="signatureContainer">
+                               <legend>{lang}wcf.user.signature{/lang}</legend>
+                                       
+                               <dl class="wide{if $errorField == 'text'} formError{/if}">
+                                       <dt><label for="text">{lang}wcf.user.signature{/lang}</label></dt>
+                                       <dd>
+                                               <textarea id="text" name="text" rows="20" cols="40">{$text}</textarea>
+                                               {if $errorField == 'text'}
+                                                       <small class="innerError">
+                                                               {if $errorType == 'empty'}
+                                                                       {lang}wcf.global.form.error.empty{/lang}
+                                                               {elseif $errorType == 'tooLong'}
+                                                                       {lang}wcf.message.error.tooLong{/lang}
+                                                               {elseif $errorType == 'censoredWordsFound'}
+                                                                       {lang}wcf.message.error.censoredWordsFound{/lang}
+                                                               {elseif $errorType == 'disallowedBBCodes'}
+                                                                       {lang}wcf.message.error.disallowedBBCodes{/lang}
+                                                               {else}
+                                                                       {lang}wcf.user.signature.error.{@$errorType}{/lang}
+                                                               {/if}
+                                                       </small>
+                                               {/if}
+                                       </dd>
+                               </dl>
+                               
+                               {event name='fields'}
+                       </fieldset>
+                       
+                       {event name='fieldsets'}
+                       
+                       {include file='messageFormTabs'}
+               {/if}
+       </div>
+       
+       {if !$__wcf->user->disableSignature}
+               <div class="formSubmit">
+                       <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+                       <button id="previewButton" class="jsOnly" accesskey="p">{lang}wcf.global.button.preview{/lang}</button>
+               </div>
+       {/if}
+</form>
+
+{include file='footer'}
+{include file='wysiwyg'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/sitemap.tpl b/com.woltlab.wcf/templates/sitemap.tpl
new file mode 100644 (file)
index 0000000..4a752c2
--- /dev/null
@@ -0,0 +1,38 @@
+<div class="sitemap">
+       {hascontent}
+               <div class="tabMenuContainer" data-active="sitemap_{@$defaultSitemapName}">
+                       <nav class="tabMenu">
+                               <ul>
+                                       {content}
+                                               {foreach from=$tree item=sitemapName}
+                                                       <li><a href="#sitemap_{$sitemapName}" class="sitemapNavigation" data-sitemap-name="{$sitemapName}">{lang}wcf.page.sitemap.{$sitemapName}{/lang}</a></li>
+                                               {/foreach}
+                                       {/content}
+                               </ul>
+                       </nav>
+                       
+                       {foreach from=$tree item=sitemapName}
+                               <div id="sitemap_{$sitemapName}" class="container containerPadding tabMenuContent hidden">
+                                       {if $sitemapName == $defaultSitemapName}{@$sitemap}{/if}
+                               </div>
+                       {/foreach}
+               </div>
+               
+               <script type="text/javascript">
+                       //<![CDATA[
+                       $(function() {
+                               // fix anchor
+                               var $location = location.toString().replace(location.hash, '');
+                               $('.sitemap .tabMenu a').each(function(index, link) {
+                                       var $link = $(link);
+                                       $link.attr('href', $location + $link.attr('href'));
+                               });
+                               
+                               WCF.TabMenu.init();
+                       });
+                       //]]>
+               </script>
+       {hascontentelse}
+               {@$sitemap}
+       {/hascontent}
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/sitemapUserAccount.tpl b/com.woltlab.wcf/templates/sitemapUserAccount.tpl
new file mode 100644 (file)
index 0000000..f90ddb0
--- /dev/null
@@ -0,0 +1,22 @@
+<ul class="sitemapList">
+       {if $__wcf->getUser()->userID}
+               {assign var=__userMenuActiveItems value=$__wcf->getUserMenu()->getActiveMenuItems()}
+               {foreach from=$__wcf->getUserMenu()->getMenuItems('') item=menuCategory}
+                       <li>
+                               <h3>{lang}{$menuCategory->menuItem}{/lang}</h3>
+                               <ul>
+                                       {foreach from=$__wcf->getUserMenu()->getMenuItems($menuCategory->menuItem) item=menuItem}
+                                               <li><a href="{$menuItem->getLink()}">{lang}{$menuItem->menuItem}{/lang}</a></li>
+                                       {/foreach}
+                               </ul>
+                       </li>
+               {/foreach}
+       {else}
+               <li>
+                       <a href="{link controller='Login'}{/link}">{lang}wcf.user.login{/lang}</a>
+               </li>
+               <li>
+                       <a href="{link controller='Register'}{/link}">{lang}wcf.user.register{/lang}</a>
+               </li>
+       {/if}
+</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/spoilerBBCodeTag.tpl b/com.woltlab.wcf/templates/spoilerBBCodeTag.tpl
new file mode 100644 (file)
index 0000000..515e214
--- /dev/null
@@ -0,0 +1,25 @@
+<div class="container containerPadding spoilerBox jsSpoilerBox">
+       <!-- begin:parser_nonessential -->
+       <header class="jsOnly">
+               <a class="button jsSpoilerToggle">{if $buttonTitle}{$buttonTitle}{else}{lang}wcf.bbcode.spoiler.show{/lang}{/if}</a>
+       </header>
+       <!-- end:parser_nonessential -->
+       
+       <div>
+               {@$content}
+       </div>
+</div>
+
+<!-- begin:parser_nonessential -->
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               var $spoilerBox = $('.jsSpoilerBox').removeClass('jsSpoilerBox');
+               $spoilerBox.children('div').hide();
+               $spoilerBox.find('> header > .jsSpoilerToggle').click(function() {
+                       $(this).toggleClass('active').parent().next().slideToggle();
+               });
+       });
+       //]]>
+</script>
+<!-- end:parser_nonessential -->
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/styleChooser.tpl b/com.woltlab.wcf/templates/styleChooser.tpl
new file mode 100644 (file)
index 0000000..c2f93f7
--- /dev/null
@@ -0,0 +1,19 @@
+<div class="container">
+       <ol class="containerList styleList{if $styleList|count > 4} doubleColumned{/if}">
+               {foreach from=$styleList item=style}
+                       <li data-style-id="{@$style->styleID}">
+                               <div class="box64">
+                                       <span class="framed">
+                                               <img src="{@$style->getPreviewImage()}" alt="" />
+                                       </span>
+                                       <div class="details">
+                                               <div class="containerHeadline">
+                                                       <h3>{$style->styleName}{if $style->styleID == $__wcf->getStyleHandler()->getStyle()->styleID} <span class="icon icon16 icon-check" title="{lang}wcf.style.currentStyle{/lang}"></span>{/if}</h3>
+                                               </div>
+                                               {if $style->styleDescription}<small>{lang}{@$style->styleDescription}{/lang}</small>{/if}
+                                       </div>
+                               </div>
+                       </li>
+               {/foreach}
+       </ol>
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/tagCloudBox.tpl b/com.woltlab.wcf/templates/tagCloudBox.tpl
new file mode 100644 (file)
index 0000000..ded4835
--- /dev/null
@@ -0,0 +1,9 @@
+{hascontent}
+       <ul class="tagList">
+               {content}
+                       {foreach from=$tags item=tag}
+                               <li><a href="{link controller='Tagged' object=$tag}{/link}" rel="tag" style="font-size: {@$tag->getSize()}%;">{$tag->name}</a></li>
+                       {/foreach}
+               {/content}
+       </ul>
+{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/tagInput.tpl b/com.woltlab.wcf/templates/tagInput.tpl
new file mode 100644 (file)
index 0000000..b81ac0b
--- /dev/null
@@ -0,0 +1,20 @@
+<dl class="jsOnly">
+       <dt><label for="tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}">{lang}wcf.tagging.tags{/lang}</label></dt>
+       <dd>
+               <div id="tagList{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}" class="editableItemList"></div>
+               <input id="tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}" type="text" value="" class="long" />
+               <small>{lang}wcf.tagging.tags.description{/lang}</small>
+       </dd>
+</dl>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Tagging{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               var $tagList = new WCF.Tagging.TagList('#tagList{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}', '#tagSearchInput{if $tagInputSuffix|isset}{@$tagInputSuffix}{/if}', {@TAGGING_MAX_TAG_LENGTH});
+               
+               {if $tags|isset && $tags|count}
+                       $tagList.load([ {implode from=$tags item=tag}'{$tag}'{/implode} ]);
+               {/if}
+       });
+       //]]>
+</script>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/tagged.tpl b/com.woltlab.wcf/templates/tagged.tpl
new file mode 100644 (file)
index 0000000..1c8a3cc
--- /dev/null
@@ -0,0 +1,88 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.tagging.taggedObjects.{@$objectType}{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       {if $pageNo < $pages}
+               <link rel="next" href="{link controller='Tagged' object=$tag}objectType={@$objectType}&pageNo={@$pageNo+1}{/link}" />
+       {/if}
+       {if $pageNo > 1}
+               <link rel="prev" href="{link controller='Tagged' object=$tag}objectType={@$objectType}{if $pageNo > 2}&pageNo={@$pageNo-1}{/if}{/link}" />
+       {/if}
+       <link rel="canonical" href="{link controller='Tagged' object=$tag}objectType={@$objectType}{if $pageNo > 1}&pageNo={@$pageNo}{/if}{/link}" />
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       <fieldset>
+               <legend>{lang}wcf.tagging.objectTypes{/lang}</legend>
+               
+               <nav>
+                       <ul>
+                               {foreach from=$availableObjectTypes item=availableObjectType}
+                                       <li{if $objectType == $availableObjectType->objectType} class="active"{/if}><a href="{link controller='Tagged' object=$tag}objectType={@$availableObjectType->objectType}{/link}">{lang}wcf.tagging.objectType.{@$availableObjectType->objectType}{/lang}</a></li>
+                               {/foreach}
+                       </ul>
+               </nav>
+       </fieldset>
+       
+       <fieldset>
+               <legend>{lang}wcf.tagging.tags{/lang}</legend>
+               
+               <ul class="tagList">
+                       {foreach from=$tags item=__tag}
+                               <li><a href="{link controller='Tagged' object=$__tag}objectType={@$objectType}{/link}" rel="tag" style="font-size: {@$__tag->getSize()}%;">{$__tag->name}</a></li>
+                       {/foreach}
+               </ul>
+       </fieldset>
+{/capture}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.tagging.taggedObjects.{@$objectType}{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {pages print=true assign=pagesLinks controller='Tagged' object=$tag link="objectType=$objectType&pageNo=%d"}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $items}
+       {include file=$resultListTemplateName application=$resultListApplication}
+{else}
+       <p class="info">{lang}wcf.tagging.taggedObjects.noResults{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {@$pagesLinks}
+       
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/team.tpl b/com.woltlab.wcf/templates/team.tpl
new file mode 100644 (file)
index 0000000..940eb52
--- /dev/null
@@ -0,0 +1,82 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.team{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <link rel="canonical" href="{link controller='Team'}{/link}" />
+       
+       <script type="text/javascript">
+               //<![CDATA[
+                       $(function() {
+                               WCF.Language.addObject({
+                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                               });
+                               
+                               new WCF.User.Action.Follow($('.userList > li'));
+                               new WCF.User.Action.Ignore($('.userList > li'));
+                       });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       {@$__boxSidebar}
+{/capture}
+
+{include file='header' sidebarOrientation='right'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.team{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{foreach from=$objects->getTeams() item=team}
+       <header class="boxHeadline boxSubHeadline">
+               <h2>{$team->groupName|language} <span class="badge">{#$team->getMembers()|count}</span></h2>
+       </header>
+               
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned userList">
+                       {foreach from=$team->getMembers() item=user}
+                               {include file='userListItem'}
+                       {/foreach}
+               </ol>
+       </div>
+{/foreach}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/textI18nOptionType.tpl b/com.woltlab.wcf/templates/textI18nOptionType.tpl
new file mode 100644 (file)
index 0000000..8caccff
--- /dev/null
@@ -0,0 +1,10 @@
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
+               var $optionValues = { {implode from=$i18nValues[$option->optionName] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
+               new WCF.MultipleLanguageInput('{$option->optionName}', false, $optionValues, $availableLanguages);
+       });
+       //]]>
+</script>
+<input type="{@$inputType}" id="{$option->optionName}" name="{$option->optionName}" value="{$i18nPlainValues[$option->optionName]}" />
diff --git a/com.woltlab.wcf/templates/textOptionType.tpl b/com.woltlab.wcf/templates/textOptionType.tpl
new file mode 100644 (file)
index 0000000..3477f93
--- /dev/null
@@ -0,0 +1 @@
+<input type="{@$inputType}" id="{$option->optionName}" name="values[{$option->optionName}]" value="{$value}"{if $option->minlength > 0} required="required"{/if}{if $option->maxlength} maxlength="{$option->maxlength}"{/if}{if $inputClass} class="{@$inputClass}"{/if} />
diff --git a/com.woltlab.wcf/templates/textareaI18nOptionType.tpl b/com.woltlab.wcf/templates/textareaI18nOptionType.tpl
new file mode 100644 (file)
index 0000000..ecc8981
--- /dev/null
@@ -0,0 +1,10 @@
+<script type="text/javascript">
+       //<![CDATA[
+       $(function() {
+               var $availableLanguages = { {implode from=$availableLanguages key=languageID item=languageName}{@$languageID}: '{$languageName}'{/implode} };
+               var $optionValues = { {implode from=$i18nValues[$option->optionName] key=languageID item=value}'{@$languageID}': '{$value}'{/implode} };
+               new WCF.MultipleLanguageInput('{$option->optionName}', false, $optionValues, $availableLanguages);
+       });
+       //]]>
+</script>
+<textarea id="{$option->optionName}" name="{$option->optionName}" cols="40" rows="10">{$i18nPlainValues[$option->optionName]}</textarea>
diff --git a/com.woltlab.wcf/templates/textareaOptionType.tpl b/com.woltlab.wcf/templates/textareaOptionType.tpl
new file mode 100644 (file)
index 0000000..310cd47
--- /dev/null
@@ -0,0 +1 @@
+<textarea id="{$option->optionName}" name="values[{$option->optionName}]" cols="40" rows="10">{$value}</textarea>
diff --git a/com.woltlab.wcf/templates/user.tpl b/com.woltlab.wcf/templates/user.tpl
new file mode 100644 (file)
index 0000000..59f2854
--- /dev/null
@@ -0,0 +1,173 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.profile{/lang} - {lang}wcf.user.members{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <link rel="canonical" href="{link controller='User' object=$user}{/link}" />
+       
+       <script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+       {event name='javascriptInclude'}
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
+                               WCF.Language.addObject({
+                                       'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}',
+                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                               });
+                               
+                               {if !$user->getPermission('user.profile.cannotBeIgnored')}
+                                       new WCF.User.Profile.IgnoreUser({@$user->userID}, {if $__wcf->getUserProfileHandler()->isIgnoredUser($user->userID)}true{else}false{/if});
+                               {/if}
+                               
+                               new WCF.User.Profile.Follow({@$user->userID}, {if $__wcf->getUserProfileHandler()->isFollowing($user->userID)}true{else}false{/if});
+                       {/if}
+                       
+                       new WCF.User.Profile.TabMenu({@$user->userID});
+                       
+                       WCF.TabMenu.init();
+                       
+                       {if $user->canEdit() || ($__wcf->getUser()->userID == $user->userID && $user->canEditOwnProfile())}
+                               WCF.Language.addObject({
+                                       'wcf.user.editProfile': '{lang}wcf.user.editProfile{/lang}',
+                               });
+                               
+                               new WCF.User.Profile.Editor({@$user->userID}, {if $editOnInit}true{else}false{/if});
+                       {/if}
+                       
+                       {if $user->activityPoints}
+                               WCF.Language.addObject({
+                                       'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}'
+                               });
+                               
+                               WCF.User.Profile.ActivityPointList.init();
+                       {/if}
+                       
+                       {if $followingCount > 10}
+                               var $followingList = null;
+                               $('#followingAll').click(function() {
+                                       if ($followingList === null) {
+                                               $followingList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowingAction', '{lang}wcf.user.profile.following{/lang}', { userID: {@$user->userID} });
+                                       }
+                                       
+                                       $followingList.open();
+                               });
+                       {/if}
+                       {if $followerCount > 10}
+                               var $followerList = null;
+                               $('#followerAll').click(function() {
+                                       if ($followerList === null) {
+                                               $followerList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowAction', '{lang}wcf.user.profile.followers{/lang}', { userID: {@$user->userID} });
+                                       }
+                                       
+                                       $followerList.open();
+                               });
+                       {/if}
+                       {if $visitorCount > 10}
+                               var $visitorList = null;
+                               $('#visitorAll').click(function() {
+                                       if ($visitorList === null) {
+                                               $visitorList = new WCF.User.List('wcf\\data\\user\\profile\\visitor\\UserProfileVisitorAction', '{lang}wcf.user.profile.visitors{/lang}', { userID: {@$user->userID} });
+                                       }
+                                       
+                                       $visitorList.open();
+                               });
+                       {/if}
+                       
+                       {event name='javascriptInit'}
+               });
+               //]]>
+       </script>
+       
+       <noscript>
+               <style type="text/css">
+                       #profileContent > .tabMenu > ul > li:not(:first-child) {
+                               display: none !important;
+                       }
+                       
+                       #profileContent > .tabMenuContent:not(:first-of-type) {
+                               display: none !important;
+                       }
+               </style>
+       </noscript>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{include file='userSidebar' assign='sidebar'}
+
+{include file='header' sidebarOrientation='left'}
+
+<header class="boxHeadline userHeadline">
+       <span class="framed invisible">{@$user->getAvatar()->getImageTag(48)}</span>
+       
+       <h1>{$user->username}{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h1>
+       
+       <ul class="dataList">
+               {if $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
+               {if $user->getAge()}<li>{@$user->getAge()}</li>{/if}
+               {if $user->location}<li>{lang}wcf.user.membersList.location{/lang}</li>{/if}
+               {if $user->getOldUsername()}<li>{lang}wcf.user.profile.oldUsername{/lang}</li>{/if}
+               <li>{lang}wcf.user.membersList.registrationDate{/lang}</li>
+               {event name='userDataRow1'}
+       </ul>
+       {if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
+               <dl class="plain inlineDataList">
+                       <dt>{lang}wcf.user.usersOnline.lastActivity{/lang}</dt>
+                       <dd>{@$user->getLastActivityTime()|time}{if $user->getCurrentLocation()}, {@$user->getCurrentLocation()}{/if}</dd>
+                       {event name='userDataRow2'}
+               </dl>
+       {/if}
+       <nav class="jsMobileNavigation buttonGroupNavigation">
+               <ul id="profileButtonContainer" class="buttonGroup">{*
+                       *}{if $user->userID != $__wcf->user->userID}{if $user->isAccessible('canViewEmailAddress')}<li><a class="button jsTooltip" href="mailto:{@$user->getEncodedEmail()}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>{elseif $user->isAccessible('canMail') && $__wcf->session->getPermission('user.profile.canMail')}<li><a class="button jsTooltip" href="{link controller='Mail' object=$user}{/link}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>{/if}{/if}{*
+                       *}{event name='buttons'}{*
+               *}</ul>
+       </nav>
+</header>
+
+{include file='userNotice'}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<section id="profileContent" class="marginTop tabMenuContainer" data-active="{$__wcf->getUserProfileMenu()->getActiveMenuItem()->getIdentifier()}">
+       <nav class="tabMenu">
+               <ul>
+                       {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
+                               {if $menuItem->getContentManager()->isVisible($userID)}
+                                       <li><a href="{$__wcf->getAnchor($menuItem->getIdentifier())}">{lang}wcf.user.profile.menu.{@$menuItem->menuItem}{/lang}</a></li>
+                               {/if}
+                       {/foreach}
+               </ul>
+       </nav>
+       
+       {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
+               {if $menuItem->getContentManager()->isVisible($userID)}
+                       <div id="{$menuItem->getIdentifier()}" class="container tabMenuContent" data-menu-item="{$menuItem->menuItem}">
+                               {if $menuItem === $__wcf->getUserProfileMenu()->getActiveMenuItem()}
+                                       {@$profileContent}
+                               {/if}
+                       </div>
+               {/if}
+       {/foreach}
+</section>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/userException.tpl b/com.woltlab.wcf/templates/userException.tpl
new file mode 100644 (file)
index 0000000..7d7052c
--- /dev/null
@@ -0,0 +1,34 @@
+{include file="documentHeader"}
+<head>
+       <title>{lang}wcf.global.error.title{/lang} - {lang}{PAGE_TITLE}{/lang}</title>
+       
+       {include file='headInclude'}
+</head>
+
+<body{if $templateName|isset} id="tpl{$templateName|ucfirst}"{/if}>
+
+{include file='header'}
+       
+<p id="errorMessage" class="error">
+       {@$message}
+</p>
+<script type="text/javascript">
+       //<![CDATA[
+       if (document.referrer) {
+               $('#errorMessage').append('<br /><a href="' + document.referrer + '">{lang}wcf.global.error.backward{/lang}</a>'); 
+       }
+       //]]>
+</script>
+
+{if ENABLE_DEBUG_MODE}
+       <!-- 
+       {$name} thrown in {$file} ({@$line})
+       Stacktrace:
+       {$stacktrace}
+       -->
+{/if}
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/userInformation.tpl b/com.woltlab.wcf/templates/userInformation.tpl
new file mode 100644 (file)
index 0000000..a1180f5
--- /dev/null
@@ -0,0 +1,5 @@
+{include file='userInformationHeadline'}
+
+{include file='userInformationButtons'}
+
+{include file='userInformationStatistics'}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userInformationButtons.tpl b/com.woltlab.wcf/templates/userInformationButtons.tpl
new file mode 100644 (file)
index 0000000..923a740
--- /dev/null
@@ -0,0 +1,37 @@
+{hascontent}
+       <nav class="jsMobileNavigation buttonGroupNavigation">
+               <ul class="buttonList">
+                       {content}
+                               {if $user->homepage}
+                                       <li><a class="jsTooltip" href="{@$user->homepage}" title="{lang}wcf.user.option.homepage{/lang}"{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}><span class="icon icon16 icon-home"></span> <span class="invisible">{lang}wcf.user.option.homepage{/lang}</span></a></li>
+                               {/if}
+                               
+                               {if $user->userID != $__wcf->user->userID}
+                                       {if $user->isAccessible('canViewEmailAddress')}
+                                               <li><a class="jsTooltip" href="mailto:{@$user->getEncodedEmail()}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
+                                       {elseif $user->isAccessible('canMail') && $__wcf->session->getPermission('user.profile.canMail')}
+                                               <li><a class="jsTooltip" href="{link controller='Mail' object=$user}{/link}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
+                                       {/if}
+                               {/if}
+                               
+                               {if $__wcf->user->userID && $user->userID != $__wcf->user->userID}
+                                       {if $__wcf->getUserProfileHandler()->isFollowing($user->userID)}
+                                               <li class="jsOnly"><a data-following="1" data-object-id="{@$user->userID}" class="jsFollowButton jsTooltip" title="{lang}wcf.user.button.unfollow{/lang}"><span class="icon icon16 icon-minus"></span> <span class="invisible">{lang}wcf.user.button.unfollow{/lang}</span></a></li>
+                                       {else}
+                                               <li class="jsOnly"><a data-following="0" data-object-id="{@$user->userID}" class="jsFollowButton jsTooltip" title="{lang}wcf.user.button.follow{/lang}"><span class="icon icon16 icon-plus"></span> <span class="invisible">{lang}wcf.user.button.follow{/lang}</span></a></li>
+                                       {/if}
+                                       
+                                       {*if !$user->getPermission('user.profile.cannotBeIgnored')*}{*disabled for performance reasons*}
+                                               {if $__wcf->getUserProfileHandler()->isIgnoredUser($user->userID)}
+                                                       <li class="jsOnly"><a data-ignored="1" data-object-id="{@$user->userID}" class="jsIgnoreButton jsTooltip" title="{lang}wcf.user.button.unignore{/lang}"><span class="icon icon16 icon-circle-blank"></span> <span class="invisible">{lang}wcf.user.button.unignore{/lang}</span></a></li>
+                                               {else}
+                                                       <li class="jsOnly"><a data-ignored="0" data-object-id="{@$user->userID}" class="jsIgnoreButton jsTooltip" title="{lang}wcf.user.button.ignore{/lang}"><span class="icon icon16 icon-off"></span> <span class="invisible">{lang}wcf.user.button.ignore{/lang}</span></a></li>
+                                               {/if}
+                                       {*/if*}
+                               {/if}
+                               
+                               {event name='buttons'}
+                       {/content}
+               </ul>
+       </nav>
+{/hascontent}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userInformationHeadline.tpl b/com.woltlab.wcf/templates/userInformationHeadline.tpl
new file mode 100644 (file)
index 0000000..81e6d1c
--- /dev/null
@@ -0,0 +1,11 @@
+<div class="containerHeadline">
+       <h3><a href="{link controller='User' object=$user}{/link}">{$user->username}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3> 
+</div>
+<ul class="dataList userFacts">
+       {if $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
+       {if $user->getAge()}<li>{@$user->getAge()}</li>{/if}
+       {if $user->location}<li>{lang}wcf.user.membersList.location{/lang}</li>{/if}
+       <li>{lang}wcf.user.membersList.registrationDate{/lang}</li>
+       
+       {event name='userData'}                 
+</ul>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userInformationStatistics.tpl b/com.woltlab.wcf/templates/userInformationStatistics.tpl
new file mode 100644 (file)
index 0000000..b8bb82b
--- /dev/null
@@ -0,0 +1,11 @@
+<dl class="plain inlineDataList userStats">
+       {event name='statistics'}
+       
+       {if MODULE_LIKE}
+               <dt>{lang}wcf.like.likesReceived{/lang}</dt>
+               <dd>{#$user->likesReceived}</dd>
+       {/if}
+       
+       <dt>{lang}wcf.user.activityPoint{/lang}</dt>
+       <dd>{#$user->activityPoints}</dd>
+</dl>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userListItem.tpl b/com.woltlab.wcf/templates/userListItem.tpl
new file mode 100644 (file)
index 0000000..f2689b4
--- /dev/null
@@ -0,0 +1,9 @@
+<li>
+       <div class="box48">
+               <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
+               
+               <div class="details userInformation">
+                       {include file='userInformation'}
+               </div>
+       </div>
+</li>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userMenuSidebar.tpl b/com.woltlab.wcf/templates/userMenuSidebar.tpl
new file mode 100644 (file)
index 0000000..42d0a97
--- /dev/null
@@ -0,0 +1,28 @@
+{capture assign='sidebar'}
+       {assign var=__userMenuActiveItems value=$__wcf->getUserMenu()->getActiveMenuItems()}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       // mobile safari hover workaround
+                       if ($(window).width() <= 800) {
+                               $('.sidebar').addClass('mobileSidebar').hover(function() { });
+                       }
+               });
+               //]]>
+       </script> 
+       
+       {foreach from=$__wcf->getUserMenu()->getMenuItems('') item=menuCategory}
+               <fieldset>
+                       <legend>{lang}{$menuCategory->menuItem}{/lang}</legend>
+                       
+                       <nav>
+                               <ul>
+                                       {foreach from=$__wcf->getUserMenu()->getMenuItems($menuCategory->menuItem) item=menuItem}
+                                               <li{if $menuItem->menuItem|in_array:$__userMenuActiveItems} class="active"{/if}><a href="{$menuItem->getProcessor()->getLink()}">{@$menuItem}</a></li>
+                                       {/foreach}
+                               </ul>
+                       </nav>
+               </fieldset>
+       {/foreach}
+{/capture}
diff --git a/com.woltlab.wcf/templates/userNotice.tpl b/com.woltlab.wcf/templates/userNotice.tpl
new file mode 100644 (file)
index 0000000..9d12305
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="userNotice">
+       {if OFFLINE && $__wcf->session->getPermission('admin.general.canViewPageDuringOfflineMode')}
+               <div class="warning">
+                       <p><strong>{lang}wcf.page.offline{/lang}</strong></p>
+                       <p>{if OFFLINE_MESSAGE_ALLOW_HTML}{@OFFLINE_MESSAGE}{else}{@OFFLINE_MESSAGE|htmlspecialchars|nl2br}{/if}</p>
+               </div>
+       {/if}
+       
+       {if $__wcf->user->activationCode && REGISTER_ACTIVATION_METHOD == 1}
+               <p class="warning">{lang}wcf.user.register.needActivation{/lang}</p>
+       {/if}
+       
+       {event name='userNotice'}
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userOptionFieldList.tpl b/com.woltlab.wcf/templates/userOptionFieldList.tpl
new file mode 100644 (file)
index 0000000..96825eb
--- /dev/null
@@ -0,0 +1,19 @@
+{foreach from=$options item=optionData}
+       {assign var=option value=$optionData[object]}
+       <dl class="{$option->optionName}Input{if $errorType|is_array && $errorType[$option->optionName]|isset} formError{/if}">
+               <dt{if $optionData[cssClassName]} class="{$optionData[cssClassName]}"{/if}><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
+               <dd>{@$optionData[html]}
+                       <small>{lang __optional=true}{@$langPrefix}{$option->optionName}.description{/lang}</small>
+                       
+                       {if $errorType|is_array && $errorType[$option->optionName]|isset}
+                               <small class="innerError">
+                                       {if $errorType[$option->optionName] == 'empty'}
+                                               {lang}wcf.global.form.error.empty{/lang}
+                                       {else}  
+                                               {lang}{@$langPrefix}error.{$errorType[$option->optionName]}{/lang}
+                                       {/if}
+                               </small>
+                       {/if}
+               </dd>
+       </dl>
+{/foreach}
diff --git a/com.woltlab.wcf/templates/userPanel.tpl b/com.woltlab.wcf/templates/userPanel.tpl
new file mode 100644 (file)
index 0000000..bb4c687
--- /dev/null
@@ -0,0 +1,206 @@
+{if $__wcf->user->userID}
+       <!-- user menu -->
+       <li id="userMenu" class="dropdown">
+               <a class="dropdownToggle framed" data-toggle="userMenu" href="{link controller='User' object=$__wcf->user}{/link}">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)} <span>{lang}wcf.user.userNote{/lang}</span></a>
+               <ul class="dropdownMenu">
+                       <li><a href="{link controller='User' object=$__wcf->user}{/link}" class="box32">
+                               <div class="framed">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}</div>
+                               
+                               <div class="containerHeadline">
+                                       <h3>{$__wcf->user->username}</h3>
+                                       <small>{lang}wcf.user.myProfile{/lang}</small>
+                               </div>
+                       </a></li>
+                       {if $__wcf->getUserProfileHandler()->canEditOwnProfile()}<li><a href="{link controller='User' object=$__wcf->user}editOnInit=true#about{/link}">{lang}wcf.user.editProfile{/lang}</a></li>{/if}
+                       <li><a href="{link controller='Settings'}{/link}">{lang}wcf.user.menu.settings{/lang}</a></li>
+                       
+                       {event name='userMenuItems'}
+                       
+                       {if $__wcf->session->getPermission('admin.general.canUseAcp')}
+                               <li class="dropdownDivider"></li>
+                               <li><a href="{link isACP=true}{/link}">{lang}wcf.global.acp.short{/lang}</a></li>
+                       {/if}
+                       <li class="dropdownDivider"></li>
+                       <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" onclick="WCF.System.Confirmation.show('{lang}wcf.user.logout.sure{/lang}', $.proxy(function (action) { if (action == 'confirm') window.location.href = $(this).attr('href'); }, this)); return false;">{lang}wcf.user.logout{/lang}</a></li>
+               </ul>
+       </li>
+       
+       <li><a href="{link controller='Settings'}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-cogs"></span> <span>{lang}wcf.user.menu.settings{/lang}</span></a></li>
+       
+       <!-- user notifications -->
+       {if !$__hideUserMenu|isset}
+               <li id="userNotifications" data-count="{#$__wcf->getUserNotificationHandler()->getNotificationCount()}">
+                       <a href="{link controller='NotificationList'}{/link}"><span class="icon icon16 icon-bell-alt"></span> <span>{lang}wcf.user.notification.notifications{/lang}</span>{if $__wcf->getUserNotificationHandler()->getNotificationCount()} <span class="badge badgeInverse">{#$__wcf->getUserNotificationHandler()->getNotificationCount()}</span>{/if}</a>
+                       <script type="text/javascript">
+                               //<![CDATA[
+                               $(function() {
+                                       WCF.Language.addObject({
+                                               'wcf.user.notification.count': '{lang}wcf.user.notification.count{/lang}',
+                                               'wcf.user.notification.markAllAsConfirmed': '{lang}wcf.user.notification.markAllAsConfirmed{/lang}',
+                                               'wcf.user.notification.markAllAsConfirmed.confirmMessage': '{lang}wcf.user.notification.markAllAsConfirmed.confirmMessage{/lang}',
+                                               'wcf.user.notification.noMoreNotifications': '{lang}wcf.user.notification.noMoreNotifications{/lang}',
+                                               'wcf.user.notification.showAll': '{lang}wcf.user.notification.showAll{/lang}'
+                                       });
+                                       
+                                       new WCF.Notification.UserPanel('{link controller='NotificationList'}{/link}');
+                               });
+                               //]]>
+                       </script>
+               </li>
+       {/if}
+{else}
+       {if !$__disableLoginLink|isset}
+               <!-- login box -->
+               <li>
+                       <a class="loginLink" href="{link controller='Login'}{/link}">{lang}wcf.user.loginOrRegister{/lang}</a>
+                       <div id="loginForm" style="display: none;">
+                               {capture assign='__3rdPartyButtons'}
+                                       {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
+                                               <li id="githubAuth" class="3rdPartyAuth">
+                                                       <a href="{link controller='GithubAuth'}{/link}" class="button"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a>
+                                               </li>{*
+                                       *}{/if}{*
+                                       
+                                       *}{if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}{*
+                                               *}<li id="twitterAuth" class="3rdPartyAuth">
+                                                       <a href="{link controller='TwitterAuth'}{/link}" class="button"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a>
+                                               </li>{*
+                                       *}{/if}{*
+                                       
+                                       *}{if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}{*
+                                               *}<li id="facebookAuth" class="3rdPartyAuth">
+                                                       <a href="{link controller='FacebookAuth'}{/link}" class="button"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a>
+                                               </li>{*
+                                       *}{/if}{*
+                                       
+                                       *}{if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}{*
+                                               *}<li id="googleAuth" class="3rdPartyAuth">
+                                                       <a href="{link controller='GoogleAuth'}{/link}" class="button"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a>
+                                               </li>
+                                       {/if}
+                               {/capture}
+                               
+                               <form method="post" action="{link controller='Login'}{/link}">
+                                       <fieldset>
+                                               {if $__3rdPartyButtons|trim}<legend>{lang}wcf.user.login{/lang}</legend>{/if}
+                                               
+                                               <dl>
+                                                       <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt>
+                                                       <dd>
+                                                               <input type="text" id="username" name="username" value="" required="required" class="long" />
+                                                       </dd>
+                                               </dl>
+                                               
+                                               {if !REGISTER_DISABLED}
+                                                       <dl>
+                                                               <dt>{lang}wcf.user.login.action{/lang}</dt>
+                                                               <dd>
+                                                                       <label><input type="radio" name="action" value="register" /> {lang}wcf.user.login.action.register{/lang}</label>
+                                                                       <label><input type="radio" name="action" value="login" checked="checked" /> {lang}wcf.user.login.action.login{/lang}</label>
+                                                               </dd>
+                                                       </dl>
+                                               {/if}
+                                               
+                                               <dl>
+                                                       <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
+                                                       <dd>
+                                                               <input type="password" id="password" name="password" value="" class="long" />
+                                                       </dd>
+                                               </dl>
+                                               
+                                               {if $__wcf->getUserAuthenticationFactory()->getUserAuthentication()->supportsPersistentLogins()}
+                                                       <dl>
+                                                               <dd><label><input type="checkbox" id="useCookies" name="useCookies" value="1" checked="checked" /> {lang}wcf.user.useCookies{/lang}</label></dd>
+                                                       </dl>
+                                               {/if}
+                                               
+                                               {event name='loginFields'}
+                                               
+                                               <div class="formSubmit">
+                                                       <input type="submit" id="loginSubmitButton" name="submitButton" value="{lang}wcf.user.button.login{/lang}" accesskey="s" />
+                                                       <input type="hidden" name="url" value="{$__wcf->session->requestURI}" />
+                                               </div>
+                                       </fieldset>
+                                       
+                                       {if $__3rdPartyButtons|trim}
+                                               <fieldset>
+                                                       <legend>{lang}wcf.user.login.3rdParty{/lang}</legend>
+                                                       <ul class="buttonGroup thirdPartyLogin">
+                                                               {@$__3rdPartyButtons}   
+                                                       </ul>
+                                               </fieldset>
+                                       {/if}
+                               </form>
+                       </div>
+                       
+                       <script type="text/javascript">
+                               //<![CDATA[
+                               $(function() {
+                                       WCF.Language.addObject({
+                                               'wcf.user.button.login': '{lang}wcf.user.button.login{/lang}',
+                                               'wcf.user.button.register': '{lang}wcf.user.button.register{/lang}',
+                                               'wcf.user.login': '{lang}wcf.user.login{/lang}'
+                                       });
+                                       new WCF.User.Login(true);
+                               });
+                               //]]>
+                       </script>
+               </li>
+       {/if}
+       {if $__wcf->getLanguage()->getLanguages()|count > 1}
+               <li id="pageLanguageContainer">
+                       <script type="text/javascript">
+                               //<![CDATA[
+                               $(function() {
+                                       var $languages = {
+                                               {implode from=$__wcf->getLanguage()->getLanguages() item=language}
+                                                       '{@$language->languageID}': {
+                                                               iconPath: '{@$language->getIconPath()}',
+                                                               languageName: '{$language}'
+                                                       }
+                                               {/implode}
+                                       };
+                                       
+                                       new WCF.Language.Chooser('pageLanguageContainer', 'languageID', {@$__wcf->getLanguage()->languageID}, $languages, function(item) {
+                                               var $location = window.location.toString().replace(/#.*/, '').replace(/(\?|&)l=[0-9]+/g, '');
+                                               var $delimiter = ($location.indexOf('?') == -1) ? '?' : '&';
+                                               
+                                               window.location = $location + $delimiter + 'l=' + item.data('languageID') + window.location.hash;
+                                       });
+                               });
+                               //]]>
+                       </script>
+               </li>
+       {/if}
+{/if}
+
+{if !$__hideUserMenu|isset}
+       {if $__wcf->user->userID && $__wcf->session->getPermission('mod.general.canUseModeration')}
+               <li id="outstandingModeration" data-count="{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}">
+                       <a href="{link controller='ModerationList'}{/link}">
+                               <span class="icon icon16 icon-warning-sign"></span>
+                               <span>{lang}wcf.moderation.moderation{/lang}</span>
+                               {if $__wcf->getModerationQueueManager()->getOutstandingModerationCount()}<span class="badge badgeInverse">{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}</span>{/if}
+                       </a>
+                       <script type="text/javascript" src="{@$__wcf->getPath()}js/WCF.Moderation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
+                       <script type="text/javascript">
+                               //<![CDATA[
+                               $(function() {
+                                       WCF.Language.addObject({
+                                               'wcf.moderation.noMoreItems': '{lang}wcf.moderation.noMoreItems{/lang}',
+                                               'wcf.moderation.showAll': '{lang}wcf.moderation.showAll{/lang}'
+                                       });
+                                       
+                                       new WCF.Moderation.UserPanel('{link controller='ModerationList'}{/link}');
+                               });
+                               //]]>
+                       </script>
+               </li>
+       {/if}
+       
+       {event name='menuItems'}
+{/if}
+
+{if $__wcf->user->userID}
+       <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-signout"></span> <span>{lang}wcf.user.logout{/lang}</span></a></li>
+{/if}
diff --git a/com.woltlab.wcf/templates/userProfileAbout.tpl b/com.woltlab.wcf/templates/userProfileAbout.tpl
new file mode 100644 (file)
index 0000000..0eb5992
--- /dev/null
@@ -0,0 +1,22 @@
+<div class="containerPadding">
+       {hascontent}
+               {content}
+                       {foreach from=$options item=category}
+                               {foreach from=$category[categories] item=optionCategory}
+                                       <fieldset>
+                                               <legend>{lang}wcf.user.option.category.{@$optionCategory[object]->categoryName}{/lang}</legend>
+                                               
+                                               <dl>
+                                                       {foreach from=$optionCategory[options] item=userOption}
+                                                               <dt>{lang}wcf.user.option.{@$userOption[object]->optionName}{/lang}</dt>
+                                                               <dd>{@$userOption[object]->optionValue}</dd>
+                                                       {/foreach}
+                                               </dl>
+                                       </fieldset>
+                               {/foreach}
+                       {/foreach}
+               {/content}
+       {hascontentelse}
+               {lang}wcf.user.profile.content.about.noPublicData{/lang}
+       {/hascontent}
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userProfileAboutEditable.tpl b/com.woltlab.wcf/templates/userProfileAboutEditable.tpl
new file mode 100644 (file)
index 0000000..93de8ee
--- /dev/null
@@ -0,0 +1,31 @@
+<div class="containerPadding">
+       {foreach from=$optionTree item=categoryLevel1}
+               {foreach from=$categoryLevel1[categories] item=categoryLevel2}
+                       <fieldset>
+                               <legend>{lang}wcf.user.option.category.{@$categoryLevel2[object]->categoryName}{/lang}</legend>
+                               
+                               {if $categoryLevel2[object]->categoryName == 'profile.personal' && MODULE_USER_RANK && $__wcf->session->getPermission('user.profile.canEditUserTitle')}
+                                       <dl>
+                                               <dt><label for="__userTitle">{lang}wcf.user.userTitle{/lang}</label></dt>
+                                               <dd>
+                                                       <input type="text" id="__userTitle" name="values[__userTitle]" value="{$__userTitle}" class="long" maxlength="{@USER_TITLE_MAX_LENGTH}" />
+                                                       {if $errorType[__userTitle]|isset}
+                                                               <small class="innerError">
+                                                                       {lang}wcf.user.userTitle.error.{@$errorType[__userTitle]}{/lang}
+                                                               </small>
+                                                       {/if}
+                                                       <small>{lang}wcf.user.userTitle.description{/lang}</small>
+                                               </dd>
+                                       </dl>
+                               {/if}
+                               
+                               {include file='userProfileOptionFieldList' options=$categoryLevel2[options] langPrefix='wcf.user.option.'}
+                       </fieldset>
+               {/foreach}
+       {/foreach}
+       
+       <div class="formSubmit">
+               <button class="buttonPrimary" accesskey="s" data-type="save">{lang}wcf.global.button.save{/lang}</button>
+               <button data-type="restore">{lang}wcf.global.button.cancel{/lang}</button>
+       </div>
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userProfileCommentList.tpl b/com.woltlab.wcf/templates/userProfileCommentList.tpl
new file mode 100644 (file)
index 0000000..ba0d970
--- /dev/null
@@ -0,0 +1,19 @@
+{include file='__commentJavaScript' commentContainerID='userProfileCommentList'}
+
+{if $commentCanAdd}
+       <ul id="userProfileCommentList" class="commentList containerList" data-can-add="true" data-object-id="{@$userID}" data-object-type-id="{@$commentObjectTypeID}" data-comments="{@$commentList->countObjects()}" data-last-comment-time="{@$lastCommentTime}">
+               {include file='commentList'}
+       </ul>
+{else}
+       {hascontent}
+               <ul id="userProfileCommentList" class="commentList containerList" data-can-add="false" data-object-id="{@$userID}" data-object-type-id="{@$commentObjectTypeID}" data-comments="{@$commentList->countObjects()}" data-last-comment-time="{@$lastCommentTime}">
+                       {content}
+                               {include file='commentList'}
+                       {/content}
+               </ul>
+       {hascontentelse}
+               <div class="containerPadding">
+                       {lang}wcf.user.profile.content.wall.noEntries{/lang}
+               </div>
+       {/hascontent}
+{/if}
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userProfileOptionFieldList.tpl b/com.woltlab.wcf/templates/userProfileOptionFieldList.tpl
new file mode 100644 (file)
index 0000000..34dd905
--- /dev/null
@@ -0,0 +1,23 @@
+{foreach from=$options item=optionData}
+       {assign var=option value=$optionData[object]}
+       {if $errorType|is_array && $errorType[$option->optionName]|isset}
+               {assign var=error value=$errorType[$option->optionName]}
+       {else}
+               {assign var=error value=''}
+       {/if}
+       <dl class="{$option->optionName}Input{if $error} formError{/if}">
+               <dt{if $optionData[cssClassName]} class="{$optionData[cssClassName]}"{/if}><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
+               <dd>{@$optionData[html]}
+                       {if $error}
+                               <small class="innerError">
+                                       {if $error == 'empty'}
+                                               {lang}wcf.global.form.error.empty{/lang}
+                                       {else}  
+                                               {lang}{@$langPrefix}error.{$error}{/lang}
+                                       {/if}
+                               </small>
+                       {/if}
+                       <small>{lang __optional=true}{@$langPrefix}{$option->optionName}.description{/lang}</small>
+               </dd>
+       </dl>
+{/foreach}
diff --git a/com.woltlab.wcf/templates/userProfilePreview.tpl b/com.woltlab.wcf/templates/userProfilePreview.tpl
new file mode 100644 (file)
index 0000000..fa8a2c8
--- /dev/null
@@ -0,0 +1,51 @@
+<div class="box128 userProfilePreview">
+       <a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(128)}</a>
+       
+       {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
+               <script type="text/javascript">
+                       //<![CDATA[
+                               $(function() {
+                                       WCF.Language.addObject({
+                                               'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                                               'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                                               'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                                               'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                                       });
+                                       
+                                       new WCF.User.Action.Follow($('.userInformation'));
+                                       
+                                       {if !$user->getPermission('user.profile.cannotBeIgnored')}
+                                               new WCF.User.Action.Ignore($('.userInformation'));
+                                       {/if}
+                               });
+                       //]]>
+               </script>
+       {/if}
+       
+       <div class="userInformation">
+               {include file='userInformation'}
+               
+               {if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
+                       <dl class="plain inlineDataList userStats">
+                               <dt>{lang}wcf.user.usersOnline.lastActivity{/lang}</dt>
+                               <dd>{@$user->getLastActivityTime()|time}{if $user->getCurrentLocation()}, {@$user->getCurrentLocation()}{/if}</dd>
+                       </dl>
+               {/if}
+               
+               {hascontent}
+                       <dl class="plain inlineDataList userFields">
+                               {content}
+                                       {if $user->occupation}
+                                               <dt>{lang}wcf.user.option.occupation{/lang}</dt>
+                                               <dd>{$user->occupation}</dd>
+                                       {/if}
+                                       {if $user->hobbies}
+                                               <dt>{lang}wcf.user.option.hobbies{/lang}</dt>
+                                               <dd>{$user->hobbies}</dd>
+                                       {/if}
+                                       {event name='userFields'}
+                               {/content}
+                       </dl>
+               {/hascontent}
+       </div>
+</div>
\ No newline at end of file
diff --git a/com.woltlab.wcf/templates/userSearch.tpl b/com.woltlab.wcf/templates/userSearch.tpl
new file mode 100644 (file)
index 0000000..db534a1
--- /dev/null
@@ -0,0 +1,82 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.search{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <script type="text/javascript">
+               //<![CDATA[
+               $(function() {
+                       new WCF.Search.User('#username', null, false, [ ], false);
+               });
+               //]]>
+       </script>
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       {@$__boxSidebar}
+{/capture}
+
+{include file='header' sidebarOrientation='right'}
+
+<header class="boxHeadline">
+       <h1>{lang}wcf.user.search{/lang}</h1>
+</header>
+
+{include file='userNotice'}
+
+{if $errorField == 'search'}
+       <p class="error">{lang}wcf.user.search.error.noMatches{/lang}</p>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtons'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+<form method="post" action="{link controller='UserSearch'}{/link}">
+       <div class="container containerPadding marginTop">
+               <fieldset>
+                       <legend>{lang}wcf.acp.user.search.conditions.general{/lang}</legend>
+                       
+                       <dl>
+                               <dt><label for="searchUsername">{lang}wcf.user.username{/lang}</label></dt>
+                               <dd>
+                                       <input type="text" id="searchUsername" name="username" value="{$username}" class="medium" />
+                               </dd>
+                       </dl>
+                       
+                       {event name='generalFields'}
+               </fieldset>
+               
+               {foreach from=$optionTree[0][categories] item=category}
+                       <fieldset>
+                               <legend>{lang}wcf.user.option.category.{@$category[object]->categoryName}{/lang}</legend>
+                               {hascontent}<p>{content}{lang __optional=true}wcf.user.option.category.{@$category[object]->categoryName}.description{/lang}{/content}</p>{/hascontent}
+                               
+                               {include file='userOptionFieldList' options=$category[options] langPrefix='wcf.user.option.'}
+                       </fieldset>
+               {/foreach}
+       </div>
+       
+       {event name='fieldsets'}
+       
+       <div class="formSubmit">
+               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+       </div>
+</form>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/userSidebar.tpl b/com.woltlab.wcf/templates/userSidebar.tpl
new file mode 100644 (file)
index 0000000..11458b6
--- /dev/null
@@ -0,0 +1,86 @@
+<fieldset>
+       <legend class="invisible">{lang}wcf.user.avatar{/lang}</legend>
+       
+       <div class="userAvatar">
+               {if $user->userID == $__wcf->user->userID}
+                       <a href="{link controller='AvatarEdit'}{/link}" class="framed jsTooltip" title="{lang}wcf.user.avatar.edit{/lang}">{@$user->getAvatar()->getImageTag()}</a>
+               {else}
+                       <span class="framed">{@$user->getAvatar()->getImageTag()}</span>
+               {/if}
+       </div>
+</fieldset>
+
+<fieldset>
+       <legend class="invisible">{lang}wcf.user.stats{/lang}</legend>
+       
+       <dl class="plain statsDataList">
+               {event name='statistics'}
+               
+               {if MODULE_LIKE}
+                       <dt>{lang}wcf.like.likesReceived{/lang}</dt>
+                       <dd>{#$user->likesReceived}</dd>
+               {/if}
+               
+               <dt>{if $user->activityPoints}<a class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showDetails{/lang}" data-user-id="{@$user->userID}">{lang}wcf.user.activityPoint{/lang}</a>{else}{lang}wcf.user.activityPoint{/lang}{/if}</dt>
+               <dd>{#$user->activityPoints}</dd>
+               
+               <dt>{lang}wcf.user.profileHits{/lang}</dt>
+               <dd{if $user->getProfileAge() > 1} title="{lang}wcf.user.profileHits.hitsPerDay{/lang}"{/if}>{#$user->profileHits}</dd>
+       </dl>
+</fieldset>
+
+{if $followingCount}
+       <fieldset>
+               <legend>{lang}wcf.user.profile.following{/lang} <span class="badge">{#$followingCount}</span></legend>
+               
+               <div>
+                       <ul class="framedIconList">
+                               {foreach from=$following item=followingUser}
+                                       <li><a href="{link controller='User' object=$followingUser}{/link}" title="{$followingUser->username}" class="framed jsTooltip">{@$followingUser->getAvatar()->getImageTag(48)}</a></li>
+                               {/foreach}
+                       </ul>
+                       
+                       {if $followingCount > 10}
+                               <a id="followingAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
+                       {/if}
+               </div>
+       </fieldset>
+{/if}
+
+{if $followerCount}
+       <fieldset>
+               <legend>{lang}wcf.user.profile.followers{/lang} <span class="badge">{#$followerCount}</span></legend>
+               
+               <div>
+                       <ul class="framedIconList">
+                               {foreach from=$followers item=follower}
+                                       <li><a href="{link controller='User' object=$follower}{/link}" title="{$follower->username}" class="framed jsTooltip">{@$follower->getAvatar()->getImageTag(48)}</a></li>
+                               {/foreach}
+                       </ul>
+                               
+                       {if $followerCount > 10}
+                               <a id="followerAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
+                       {/if}
+               </div>
+       </fieldset>
+{/if}
+
+{if $visitorCount}
+       <fieldset>
+               <legend>{lang}wcf.user.profile.visitors{/lang} <span class="badge">{#$visitorCount}</span></legend>
+               
+               <div>
+                       <ul class="framedIconList">
+                               {foreach from=$visitors item=visitor}
+                                       <li><a href="{link controller='User' object=$visitor}{/link}" title="{$visitor->username} ({@$visitor->time|plainTime})" class="framed jsTooltip">{@$visitor->getAvatar()->getImageTag(48)}</a></li>
+                               {/foreach}
+                       </ul>
+                               
+                       {if $visitorCount > 10}
+                               <a id="visitorAll" class="button small more jsOnly">{lang}wcf.user.profile.userList.showAll{/lang}</a>
+                       {/if}
+               </div>
+       </fieldset>
+{/if}
+
+{event name='boxes'}
diff --git a/com.woltlab.wcf/templates/usersOnlineList.tpl b/com.woltlab.wcf/templates/usersOnlineList.tpl
new file mode 100644 (file)
index 0000000..3b11d2e
--- /dev/null
@@ -0,0 +1,224 @@
+{include file='documentHeader'}
+
+<head>
+       <title>{lang}wcf.user.usersOnline{/lang} - {PAGE_TITLE|language}</title>
+       
+       {include file='headInclude'}
+       
+       <link rel="canonical" href="{link controller='UsersOnlineList'}{/link}" />
+       
+       <script type="text/javascript">
+               //<![CDATA[
+                       $(function() {
+                               WCF.Language.addObject({
+                                       'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+                                       'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+                                       'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+                                       'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+                               });
+                               
+                               new WCF.User.Action.Follow($('.userList > li'));
+                               new WCF.User.Action.Ignore($('.userList > li'));
+                       });
+               //]]>
+       </script>
+       
+       {if USERS_ONLINE_PAGE_REFRESH > 0}
+               <meta http-equiv="refresh" content="{@USERS_ONLINE_PAGE_REFRESH}; url={link controller='UsersOnlineList'}sortField={@$sortField}&sortOrder={@$sortOrder}{/link}" />
+       {/if}
+</head>
+
+<body id="tpl{$templateName|ucfirst}">
+
+{capture assign='sidebar'}
+       <div>
+               <form method="get" action="{link controller='UsersOnlineList'}{/link}">
+                       <fieldset>
+                               <legend><label for="sortField">{lang}wcf.user.members.sort{/lang}</label></legend>
+                               
+                               <dl>
+                                       <dd>
+                                               <select id="sortField" name="sortField">
+                                                       <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
+                                                       <option value="lastActivityTime"{if $sortField == 'lastActivityTime'} selected="selected"{/if}>{lang}wcf.user.usersOnline.lastActivity{/lang}</option>
+                                                       <option value="requestURI"{if $sortField == 'requestURI'} selected="selected"{/if}>{lang}wcf.user.usersOnline.location{/lang}</option>
+                                                       
+                                                       {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
+                                                               <option value="ipAddress"{if $sortField == 'ipAddress'} selected="selected"{/if}>{lang}wcf.user.usersOnline.ipAddress{/lang}</option>
+                                                               <option value="userAgent"{if $sortField == 'userAgent'} selected="selected"{/if}>{lang}wcf.user.usersOnline.userAgent{/lang}</option>
+                                                       {/if}
+                                               </select>
+                                               <select name="sortOrder">
+                                                       <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
+                                                       <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
+                                               </select>
+                                       </dd>
+                               </dl>
+                       </fieldset>
+                       
+                       <div class="formSubmit">
+                               <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
+                       </div>
+               </form>
+       </div>
+       
+       {@$__boxSidebar}
+{/capture}
+
+{include file='header' sidebarOrientation='right'}
+
+{include file='userNotice'}
+
+{assign var=usersOnlineList value=''}
+{assign var=usersOnline value=0}
+{assign var=robotsOnlineList value=''}
+{assign var=robotsOnline value=0}
+{assign var=guestsOnlineList value=''}
+{assign var=guestsOnline value=0}
+{foreach from=$objects item=user}
+       {capture assign=locationData}
+               <p>
+                       {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small>- {@$user->lastActivityTime|time}</small>
+               </p>
+       {/capture}
+       
+       {capture assign=sessionData}
+               {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
+                       <dl class="plain inlineDataList">
+                               <dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt>
+                               <dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd>
+                               <dt>{lang}wcf.user.usersOnline.userAgent{/lang}</dt>
+                               <dd title="{$user->userAgent}">{$user->getBrowser()|truncate:30}</dd>
+                       </dl>
+               {/if}
+       {/capture}
+       
+       {if $user->userID}
+               {* member *}
+               {capture append=usersOnlineList}
+                       <li>
+                               <div class="box48">
+                                       <a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
+                                       
+                                       <div class="details userInformation">
+                                               <div class="containerHeadline">
+                                                       <h3><a href="{link controller='User' object=$user}{/link}">{@$user->getFormattedUsername()}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3>
+                                                       {@$locationData} 
+                                               </div>
+                                               
+                                               {@$sessionData}
+                                               
+                                               {include file='userInformationButtons'}
+                                       </div>
+                               </div>
+                       </li>
+               {/capture}
+               
+               {assign var=usersOnline value=$usersOnline+1}
+       {elseif $user->spiderID}
+               {* search robot *}
+               {capture append=robotsOnlineList}
+                       <li>
+                               <div class="box48">
+                                       <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></p>
+                                       
+                                       <div class="details userInformation">
+                                               <div class="containerHeadline">
+                                                       <h3>{if $user->getSpider()->spiderURL}<a href="{$user->getSpider()->spiderURL}" class="externalURL"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>{$user->getSpider()->spiderName}</a>{else}{$user->getSpider()->spiderName}{/if}</h3>
+                                                       {@$locationData} 
+                                               </div>
+                                               
+                                               {@$sessionData}
+                                       </div>
+                               </div>
+                       </li>
+               {/capture}
+               
+               {assign var=robotsOnline value=$robotsOnline+1}
+       {else}
+               {* unregistered *}
+               {capture append=guestsOnlineList}
+                       <li>
+                               <div class="box48">
+                                       <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></p>
+                                       
+                                       <div class="details userInformation">
+                                               <div class="containerHeadline">
+                                                       <h3>{lang}wcf.user.guest{/lang}</h3>
+                                                       {@$locationData} 
+                                               </div>
+                                               
+                                               {@$sessionData}
+                                       </div>
+                               </div>
+                       </li>
+               {/capture}
+               
+               {assign var=guestsOnline value=$guestsOnline+1}
+       {/if}
+{/foreach}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsTop'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{if $usersOnline}
+       <header class="boxHeadline">
+               <h1>{lang}wcf.user.usersOnline{/lang} <span class="badge">{#$usersOnline}</span></h1>
+       </header>
+       
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned userList">
+                       {@$usersOnlineList}
+               </ol>
+       </div>
+{/if}
+
+{if $guestsOnline && USERS_ONLINE_SHOW_GUESTS}
+       <header class="boxHeadline">
+               <h1>{lang}wcf.user.usersOnline.guests{/lang} <span class="badge">{#$guestsOnline}</span></h1>
+       </header>
+       
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned">
+                       {@$guestsOnlineList}
+               </ol>
+       </div>
+{/if}
+
+{if $robotsOnline && USERS_ONLINE_SHOW_ROBOTS}
+       <header class="boxHeadline">
+               <h1>{lang}wcf.user.usersOnline.robots{/lang} <span class="badge">{#$robotsOnline}</span></h1>
+       </header>
+       
+       <div class="container marginTop">
+               <ol class="containerList doubleColumned">
+                       {@$robotsOnlineList}
+               </ol>
+       </div>
+{/if}
+
+<div class="contentNavigation">
+       {hascontent}
+               <nav>
+                       <ul>
+                               {content}
+                                       {event name='contentNavigationButtonsBottom'}
+                               {/content}
+                       </ul>
+               </nav>
+       {/hascontent}
+</div>
+
+{include file='footer'}
+
+</body>
+</html>
diff --git a/com.woltlab.wcf/templates/wysiwyg.tpl b/com.woltlab.wcf/templates/wysiwyg.tpl
new file mode 100644 (file)
index 0000000..e7a768b
--- /dev/null
@@ -0,0 +1,65 @@
+<script type="text/javascript">
+//<![CDATA[
+       var CKEDITOR_BASEPATH = '{@$__wcf->getPath()}js/3rdParty/ckeditor/';
+       var __CKEDITOR_BUTTONS = [ {implode from=$__wcf->getBBCodeHandler()->getButtonBBCodes() item=__bbcode}{ icon: '{$__bbcode->wysiwygIcon}', label: '{$__bbcode->buttonLabel|language}', name: '{$__bbcode->bbcodeTag}' }{/implode} ];
+//]]>
+</script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/ckeditor/ckeditor.js"></script>
+<script type="text/javascript" src="{@$__wcf->getPath()}js/3rdParty/ckeditor/adapters/jquery.js"></script>
+{event name='javascriptIncludes'}
+
+<script type="text/javascript">
+//<![CDATA[
+$(function() {
+       if ($.browser.mobile) {
+               return;
+       }
+       
+       var __CKEDITOR_TOOLBAR = [
+               ['Source', '-', 'Undo', 'Redo'],
+               ['Bold', 'Italic', 'Underline', '-', 'Strike', 'Subscript','Superscript'],
+               ['NumberedList', 'BulletedList', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
+               '/',
+               ['Font', 'FontSize', 'TextColor'],
+               ['Link', 'Unlink', 'Image', 'Table', 'Smiley'],
+               ['Maximize']
+       ];
+       if (__CKEDITOR_BUTTONS.length) {
+               var $buttons = [ ];
+               
+               for (var $i = 0, $length = __CKEDITOR_BUTTONS.length; $i < $length; $i++) {
+                       $buttons.push('__wcf_' + __CKEDITOR_BUTTONS[$i].name);
+               }
+               
+               __CKEDITOR_TOOLBAR.push($buttons);
+       }
+       
+       var $config = {
+               smiley_path: '{@$__wcf->getPath()|encodeJS}',
+               extraPlugins: 'wbbcode,wbutton',
+               removePlugins: 'contextmenu,tabletools,liststyle,elementspath,menubutton,forms,scayt',
+               language: '{@$__wcf->language->getFixedLanguageCode()}',
+               fontSize_sizes: '8/8pt;10/10pt;12/12pt;14/14pt;18/18pt;24/24pt;36/36pt;',
+               disableObjectResizing: true,
+               disableNativeSpellChecker: false,
+               toolbarCanCollapse: false,
+               enterMode: CKEDITOR.ENTER_BR,
+               minHeight: 200,
+               toolbar: __CKEDITOR_TOOLBAR,
+               smiley_images: [
+                       {implode from=$defaultSmilies item=smiley}'{@$smiley->smileyPath|encodeJS}'{/implode}
+               ],
+               smiley_descriptions: [
+                       {implode from=$defaultSmilies item=smiley}'{@$smiley->smileyCode|encodeJS}'{/implode}
+               ]
+       };
+       
+       {event name='javascriptInit'}
+       
+       var $editor = CKEDITOR.instances['{if $wysiwygSelector|isset}{$wysiwygSelector|encodeJS}{else}text{/if}'];
+       if ($editor) $editor.destroy(true);
+       
+       $('{if $wysiwygSelector|isset}#{$wysiwygSelector|encodeJS}{else}#text{/if}').ckeditor($config);
+});
+//]]>
+</script>