<nav class="contentHeaderNavigation">
<ul>
{content}
- {if $article->isMultilingual && $__wcf->user->userID}
- <li class="dropdown">
- <a class="dropdownToggle boxFlag box24 button">
- <span><img src="{$articleContent->getLanguage()->getIconPath()}" alt="" class="iconFlag"></span>
- <span>{$articleContent->getLanguage()->languageName}</span>
- </a>
- <ul class="dropdownMenu">
- {foreach from=$article->getLanguageLinks() item='langArticleContent'}
- {if $langArticleContent->getLanguage()}
- <li class="boxFlag">
- <a class="box24" href="{$langArticleContent->getLink()}">
- <span><img src="{$langArticleContent->getLanguage()->getIconPath()}" alt="" class="iconFlag"></span>
- <span>{$langArticleContent->getLanguage()->languageName}</span>
- </a>
- </li>
- {/if}
- {/foreach}
- </ul>
- </li>
- {/if}
-
- {if $article->canEdit()}<li><a href="{link controller='ArticleEdit' id=$article->articleID}{/link}" class="button"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.acp.article.edit{/lang}</span></a></li>{/if}
+ {if $article->canEdit()}<li><a href="{link controller='ArticleEdit' id=$article->articleID}{/link}" class="button buttonPrimary"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.acp.article.edit{/lang}</span></a></li>{/if}
{event name='contentHeaderNavigation'}
{/content}
</ul>
{/if}
{/capture}
+{capture assign='contentInteractionButtons'}
+ {if $article->isMultilingual && $__wcf->user->userID}
+ <div class="contentInteractionButton dropdown jsOnly">
+ <a class="dropdownToggle boxFlag box24 button small">
+ <span><img src="{$articleContent->getLanguage()->getIconPath()}" alt="" class="iconFlag"></span>
+ <span>{$articleContent->getLanguage()->languageName}</span>
+ </a>
+ <ul class="dropdownMenu">
+ {foreach from=$article->getLanguageLinks() item='langArticleContent'}
+ {if $langArticleContent->getLanguage()}
+ <li class="boxFlag">
+ <a class="box24" href="{$langArticleContent->getLink()}">
+ <span><img src="{$langArticleContent->getLanguage()->getIconPath()}" alt="" class="iconFlag"></span>
+ <span>{$langArticleContent->getLanguage()->languageName}</span>
+ </a>
+ </li>
+ {/if}
+ {/foreach}
+ </ul>
+ </div>
+ {/if}
+{/capture}
+
{include file='header'}
{if !$article->isPublished()}
</h1>
</div>
- <nav class="contentHeaderNavigation">
- <ul>
- {if $action == 'edit'}
- {if $article->canDelete()}
- <li><a href="#" class="button jsButtonRestore" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.restore.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-refresh"></span> <span>{lang}wcf.global.button.restore{/lang}</span></a></li>
- <li><a href="#" class="button jsButtonDelete" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.delete.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-times"></span> <span>{lang}wcf.global.button.delete{/lang}</span></a></li>
- <li><a href="#" class="button jsButtonTrash" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.trash.confirmMessage{/lang}"{if $article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-times"></span> <span>{lang}wcf.global.button.trash{/lang}</span></a></li>
- {/if}
- {if $languages|count > 1 || $article->isMultilingual}
- <li><a href="#" class="button jsButtonToggleI18n"><span class="icon icon16 fa-flag"></span> <span>{lang}wcf.acp.article.button.toggleI18n{/lang}</span></a></li>
- {/if}
- <li><a href="{$article->getLink()}" class="button"><span class="icon icon16 fa-search"></span> <span>{lang}wcf.acp.article.button.viewArticle{/lang}</span></a></li>
- {/if}
- <li><a href="{link controller='ArticleList'}{/link}" class="button"><span class="icon icon16 fa-list"></span> <span>{lang}wcf.acp.menu.link.article.list{/lang}</span></a></li>
-
- {event name='contentHeaderNavigation'}
- </ul>
- </nav>
+ {hascontent}
+ <nav class="contentHeaderNavigation">
+ <ul>
+ {content}
+ {if $action == 'edit'}
+ <li><a href="{$article->getLink()}" class="button buttonPrimary"><span class="icon icon16 fa-search"></span> <span>{lang}wcf.acp.article.button.viewArticle{/lang}</span></a></li>
+ {/if}
+ {event name='contentHeaderNavigation'}
+ {/content}
+ </ul>
+ </nav>
+ {/hascontent}
</header>
{/capture}
+{capture assign='contentInteractionButtons'}
+ {if $action == 'edit'}
+ {if $article->canDelete()}
+ <a href="#" class="contentInteractionButton button small jsButtonRestore" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.restore.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}>{lang}wcf.global.button.restore{/lang}</a>
+ <a href="#" class="contentInteractionButton button small jsButtonDelete" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.delete.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}>{lang}wcf.global.button.delete{/lang}</a>
+ <a href="#" class="contentInteractionButton button small jsButtonTrash" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.trash.confirmMessage{/lang}"{if $article->isDeleted} style="display: none"{/if}>{lang}wcf.global.button.trash{/lang}</a>
+ {/if}
+ {if $languages|count > 1 || $article->isMultilingual}
+ <a href="#" class="contentInteractionButton button small jsButtonToggleI18n">{lang}wcf.acp.article.button.toggleI18n{/lang}</a>
+ {/if}
+ {/if}
+{/capture}
+
{if $articleIsFrontend|empty}
{include file='header' pageTitle='wcf.acp.article.'|concat:$action}
{else}
{/if}
{/capture}
-{capture assign='headerNavigation'}
- <li><a rel="alternate" href="{if $__wcf->getUser()->userID}{link controller='ArticleFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}{else}{link controller='ArticleFeed'}{/link}{/if}" title="{lang}wcf.global.button.rss{/lang}" class="rssFeed jsTooltip"><span class="icon icon16 fa-rss"></span> <span class="invisible">{lang}wcf.global.button.rss{/lang}</span></a></li>
- {if ARTICLE_ENABLE_VISIT_TRACKING}
- <li class="jsOnly"><a href="#" title="{lang}wcf.article.markAllAsRead{/lang}" class="markAllAsReadButton jsTooltip"><span class="icon icon16 fa-check"></span> <span class="invisible">{lang}wcf.article.markAllAsRead{/lang}</span></a></li>
- {/if}
-{/capture}
-
{capture assign='contentHeaderNavigation'}
- <li class="dropdown jsOnly">
- <a href="#" class="button dropdownToggle"><span class="icon icon16 fa-sort-amount-asc"></span> <span>{lang}wcf.article.button.sort{/lang}</span></a>
- <ul class="dropdownMenu">
- <li><a href="{link controller='ArticleList'}pageNo={@$pageNo}{if $user}&userID={@$user->userID}{/if}&sortField=title&sortOrder={if $sortField == 'title' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.title{/lang}{if $sortField == 'title'} <span class="icon icon16 fa-caret-{if $sortOrder == 'ASC'}up{else}down{/if}"></span>{/if}</a></li>
- <li><a href="{link controller='ArticleList'}pageNo={@$pageNo}{if $user}&userID={@$user->userID}{/if}&sortField=time&sortOrder={if $sortField == 'time' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.date{/lang}{if $sortField == 'time'} <span class="icon icon16 fa-caret-{if $sortOrder == 'ASC'}up{else}down{/if}"></span>{/if}</a></li>
-
- {event name='sortOptions'}
- </ul>
- </li>
-
{if $__wcf->getSession()->getPermission('admin.content.article.canManageArticle') || $__wcf->getSession()->getPermission('admin.content.article.canContributeArticle')}
{if $availableLanguages|count > 1}
- <li><a href="#" class="button jsButtonArticleAdd"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
+ <li><a href="#" class="button buttonPrimary jsButtonArticleAdd"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
{else}
- <li><a href="{link controller='ArticleAdd'}{/link}" class="button"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
+ <li><a href="{link controller='ArticleAdd'}{/link}" class="button buttonPrimary"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
{/if}
{/if}
{/capture}
{/if}
{/capture}
-{include file='header'}
-
{assign var='additionalLinkParameters' value=''}
{if $user}{capture append='additionalLinkParameters'}&userID={@$user->userID}{/capture}{/if}
{if $labelIDs|count}{capture append='additionalLinkParameters'}{foreach from=$labelIDs key=labelGroupID item=labelID}&labelIDs[{@$labelGroupID}]={@$labelID}{/foreach}{/capture}{/if}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='ArticleList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$additionalLinkParameters"}
- {/content}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='ArticleList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$additionalLinkParameters"}
+{/capture}
+
+{capture assign='contentInteractionButtons'}
+ <div class="contentInteractionButton dropdown jsOnly">
+ <a href="#" class="button small dropdownToggle">{lang}wcf.article.button.sort{/lang}</a>
+ <ul class="dropdownMenu">
+ <li><a href="{link controller='ArticleList'}pageNo={@$pageNo}{if $user}&userID={@$user->userID}{/if}&sortField=title&sortOrder={if $sortField == 'title' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.title{/lang}{if $sortField == 'title'} <span class="icon icon16 fa-caret-{if $sortOrder == 'ASC'}up{else}down{/if}"></span>{/if}</a></li>
+ <li><a href="{link controller='ArticleList'}pageNo={@$pageNo}{if $user}&userID={@$user->userID}{/if}&sortField=time&sortOrder={if $sortField == 'time' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.date{/lang}{if $sortField == 'time'} <span class="icon icon16 fa-caret-{if $sortOrder == 'ASC'}up{else}down{/if}"></span>{/if}</a></li>
+
+ {event name='sortOptions'}
+ </ul>
</div>
-{/hascontent}
+{/capture}
+
+{capture assign='contentInteractionDropdownItems'}
+ <li><a rel="alternate" href="{if $__wcf->getUser()->userID}{link controller='ArticleFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}{else}{link controller='ArticleFeed'}{/link}{/if}" class="rssFeed">{lang}wcf.global.button.rss{/lang}</a></li>
+ {if ARTICLE_ENABLE_VISIT_TRACKING}
+ <li class="jsOnly"><a href="#" class="markAllAsReadButton">{lang}wcf.article.markAllAsRead{/lang}</a></li>
+ {/if}
+{/capture}
+
+{include file='header'}
{if $objects|count}
<div class="section">
{/if}
{/capture}
-{capture assign='headerNavigation'}
- <li><a rel="alternate" href="{if $__wcf->getUser()->userID}{link controller='ArticleFeed' id=$categoryID}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}{else}{link controller='ArticleFeed' id=$categoryID}{/link}{/if}" title="{lang}wcf.global.button.rss{/lang}" class="rssFeed jsTooltip"><span class="icon icon16 fa-rss"></span> <span class="invisible">{lang}wcf.global.button.rss{/lang}</span></a></li>
- {if $__wcf->user->userID}
- <li class="jsOnly"><a href="#" title="{lang}wcf.user.objectWatch.manageSubscription{/lang}" class="jsSubscribeButton jsTooltip" data-object-type="com.woltlab.wcf.article.category" data-object-id="{@$category->categoryID}"><span class="icon icon16 fa-bookmark{if !$category->isSubscribed()}-o{/if}"></span> <span class="invisible">{lang}wcf.user.objectWatch.manageSubscription{/lang}</span></a></li>
- {/if}
- {if ARTICLE_ENABLE_VISIT_TRACKING}
- <li class="jsOnly"><a href="#" title="{lang}wcf.article.markAllAsRead{/lang}" class="markAllAsReadButton jsTooltip"><span class="icon icon16 fa-check"></span> <span class="invisible">{lang}wcf.article.markAllAsRead{/lang}</span></a></li>
- {/if}
-{/capture}
-
{if $__wcf->getSession()->getPermission('admin.content.article.canManageArticle')}
{capture assign='contentHeaderNavigation'}
{if $availableLanguages|count > 1}
- <li><a href="#" class="button jsButtonArticleAdd"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
+ <li><a href="#" class="button buttonPrimary jsButtonArticleAdd"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
{else}
- <li><a href="{link controller='ArticleAdd'}categoryID={@$category->categoryID}{/link}" class="button"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
+ <li><a href="{link controller='ArticleAdd'}categoryID={@$category->categoryID}{/link}" class="button buttonPrimary"><span class="icon icon16 fa-plus"></span> <span>{lang}wcf.acp.article.add{/lang}</span></a></li>
{/if}
{/capture}
{/if}
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='CategoryArticleList' object=$category link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='CategoryArticleList' object=$category link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{capture assign='contentInteractionButtons'}
+ {if $__wcf->user->userID}
+ <a href="#" class="jsSubscribeButton jsOnly button small{if $category->isSubscribed()} active{/if}" data-object-type="com.woltlab.wcf.article.category" data-object-id="{@$category->categoryID}">{lang}wcf.user.objectWatch.button.subscribe{/lang}</a>
+ {/if}
+{/capture}
+
+{capture assign='contentInteractionDropdownItems'}
+ <li><a rel="alternate" href="{if $__wcf->getUser()->userID}{link controller='ArticleFeed' id=$categoryID}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}{else}{link controller='ArticleFeed' id=$categoryID}{/link}{/if}" class="rssFeed">{lang}wcf.global.button.rss{/lang}</a></li>
+ {if ARTICLE_ENABLE_VISIT_TRACKING}
+ <li class="jsOnly"><a href="#" class="markAllAsReadButton">{lang}wcf.article.markAllAsRead{/lang}</a></li>
+ {/if}
+{/capture}
+
+{include file='header'}
{if $objects|count}
<div class="section">
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='CategoryTrophyList' object=$category link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='CategoryTrophyList' object=$category link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $objects|count}
<div class="section sectionContainerList">
{/capture}
{capture assign='contentHeaderNavigation'}
+ {if $__wcf->getSession()->getPermission('admin.content.cms.canManagePage')}<li><a href="{link controller='PageEdit' id=$page->pageID isACP=true}{/link}" class="button buttonPrimary"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.acp.page.edit{/lang}</span></a></li>{/if}
+{/capture}
+
+{capture assign='contentInteractionButtons'}
{if $page->showShareButtons()}
- <li>
- <a href="{$content->getLink()}" class="button shareButton jsOnly" data-link-title="{$content->getTitle()}">
- <span class="icon icon16 fa-share-alt"></span> <span>{lang}wcf.message.share{/lang}</span>
- </a>
- </li>
+ <a href="{$content->getLink()}" class="contentInteractionButton button small shareButton jsOnly" data-link-title="{$content->getTitle()}">{lang}wcf.message.share{/lang}</a>
{/if}
-
+
{if $page->isMultilingual && $__wcf->user->userID && $page->getPageLanguages()|count > 1}
- <li class="dropdown">
- <a class="dropdownToggle boxFlag box24 button">
+ <div class="contentInteractionButton dropdown jsOnly">
+ <a class="button small dropdownToggle boxFlag box24">
<span><img src="{$activePageLanguage->getIconPath()}" alt="" class="iconFlag"></span>
<span>{$activePageLanguage->languageName}</span>
</a>
</li>
{/foreach}
</ul>
- </li>
+ </div>
{/if}
-
- {if $__wcf->getSession()->getPermission('admin.content.cms.canManagePage')}<li><a href="{link controller='PageEdit' id=$page->pageID isACP=true}{/link}" class="button"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.acp.page.edit{/lang}</span></a></li>{/if}
{/capture}
{include file='header'}
</section>
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='CombinedTagged' link="$linkParameters&objectType=$objectType&pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='CombinedTagged' link="$linkParameters&objectType=$objectType&pageNo=%d"}{/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $items}
{include file=$resultListTemplateName application=$resultListApplication}
--- /dev/null
+{if !$beforeContentInteraction|empty}
+ {@$beforeContentInteraction}
+{/if}
+
+<div class="contentInteraction">
+ {hascontent}
+ <div class="contentInteractionPagination paginationTop">
+ {content}{if $contentInteractionPagination|isset}{@$contentInteractionPagination}{/if}{/content}
+ </div>
+ {/hascontent}
+
+ <div class="contentInteractionButtonContainer">
+ {hascontent}
+ <div class="contentInteractionButtons">
+ {content}
+ {event name='beforeButtons'}
+ {if $contentInteractionButtons|isset}{@$contentInteractionButtons}{/if}
+ {event name='afterButtons'}
+ {/content}
+ </div>
+ {/hascontent}
+
+ {hascontent}
+ <div class="contentInteractionDropdown dropdown jsOnly">
+ <a href="#" class="button small dropdownToggle"><span class="icon icon16 fa-ellipsis-v"></span></a>
+
+ <ul class="contentInteractionDropdownItems dropdownMenu">
+ {content}
+ {event name='beforeDropdownItems'}
+ {if $contentInteractionDropdownItems|isset}{@$contentInteractionDropdownItems}{/if}
+ {event name='afterDropdownItems'}
+ {/content}
+ </ul>
+ </div>
+ {/hascontent}
+ </div>
+</div>
{capture assign='contentTitle'}{lang}wcf.moderation.deletedContent.{@$objectType}{/lang}{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='DeletedContentList' link="objectType=$objectType&pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='DeletedContentList' link="objectType=$objectType&pageNo=%d"}{/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $items}
{include file=$resultListTemplateName application=$resultListApplication}
{capture assign='contentTitle'}{lang}wcf.edit.versions{/lang}: {$object->getTitle()}{/capture}
-{capture assign='contentHeaderNavigation'}<li><a href="{$object->getLink()}" class="button"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.edit.button.goToContent{/lang}</span></a></li>{/capture}
+{capture assign='contentHeaderNavigation'}<li><a href="{$object->getLink()}" class="button buttonPrimary"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.edit.button.goToContent{/lang}</span></a></li>{/capture}
{include file='header'}
{capture assign='contentTitleBadge'}<span class="badge">{#$items}</span>{/capture}
-{include file='header' __sidebarLeftHasMenu=true}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='Following' link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='Following' link="pageNo=%d"}{/content}
- </div>
-{/hascontent}
+{include file='header' __sidebarLeftHasMenu=true}
{if $objects|count}
<div class="section sectionContainerList">
{/hascontent}
{event name='contents'}
+
+ {include file='contentInteraction'}
{capture assign='contentTitleBadge'}<span class="badge">{#$items}</span>{/capture}
-{include file='header' __sidebarLeftHasMenu=true}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='IgnoredUsers' link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='IgnoredUsers' link="pageNo=%d"}{/content}
- </div>
-{/hascontent}
+{include file='header' __sidebarLeftHasMenu=true}
{if $objects|count}
<div class="section sectionContainerList">
</section>
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {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}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {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}
- {/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $items}
<div class="section sectionContainerList">
<nav class="contentHeaderNavigation">
<ul>
{content}
- <li class="jsOnly"><a id="moderationAssignUser" class="button"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.moderation.assignedUser.change{/lang}</span></a></li>
- {if !$queue->isDone()}
- <li class="jsOnly"><a id="enableContent" class="button"><span class="icon icon16 fa-check"></span> <span>{lang}wcf.moderation.activation.enableContent{/lang}</span></a></li>
- {if $queueManager->canRemoveContent($queue->getDecoratedObject())}<li class="jsOnly"><a id="removeContent" class="button"><span class="icon icon16 fa-times"></span> <span>{lang}wcf.moderation.activation.removeContent{/lang}</span></a></li>{/if}
- {/if}
- {if $queue->getAffectedObject()}<li><a href="{$queue->getAffectedObject()->getLink()}" class="button"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.moderation.jumpToContent{/lang}</span></a></li>{/if}
-
+ {if $queue->getAffectedObject()}<li><a href="{$queue->getAffectedObject()->getLink()}" class="button buttonPrimary"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.moderation.jumpToContent{/lang}</span></a></li>{/if}
{event name='contentHeaderNavigation'}
{/content}
</ul>
</header>
{/capture}
+{capture assign='contentInteractionButtons'}
+ <a id="moderationAssignUser" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.assignedUser.change{/lang}</a>
+ {if !$queue->isDone()}
+ <a id="enableContent" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.activation.enableContent{/lang}</a>
+ {if $queueManager->canRemoveContent($queue->getDecoratedObject())}<a id="removeContent" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.activation.removeContent{/lang}</a>{/if}
+ {/if}
+{/capture}
+
{include file='header'}
{include file='formError'}
{event name='sidebarBoxes'}
{/capture}
-{capture assign='headerNavigation'}
- <li class="jsOnly"><a href="#" title="{lang}wcf.moderation.markAllAsRead{/lang}" class="markAllAsReadButton jsTooltip"><span class="icon icon16 fa-check"></span> <span class="invisible">{lang}wcf.moderation.markAllAsRead{/lang}</span></a></li>
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='ModerationList' link="definitionID=$definitionID&assignedUserID=$assignedUserID&status=$status&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionDropdownItems'}
+ <li class="jsOnly"><a href="#" class="markAllAsReadButton">{lang}wcf.moderation.markAllAsRead{/lang}</a></li>
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='ModerationList' link="definitionID=$definitionID&assignedUserID=$assignedUserID&status=$status&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}{/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $objects|count}
<div class="section tabularBox messageGroupList moderationList moderationQueueEntryList jsClipboardContainer" data-type="com.woltlab.wcf.moderation.queue">
<nav class="contentHeaderNavigation">
<ul>
{content}
- <li class="jsOnly"><a id="moderationAssignUser" class="button"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.moderation.assignedUser.change{/lang}</span></a></li>
- {if !$queue->isDone()}
- {if $queueManager->canRemoveContent($queue->getDecoratedObject())}<li class="jsOnly"><a id="removeContent" class="button"><span class="icon icon16 fa-times"></span> <span>{lang}wcf.moderation.report.removeContent{/lang}</span></a></li>{/if}
- <li class="jsOnly"><a id="removeReport" class="button"><span class="icon icon16 fa-check"></span> <span>{lang}wcf.moderation.report.removeReport{/lang}</span></a></li>
- {/if}
- {if $queue->canChangeJustifiedStatus()}
- <li class="jsOnly"><a id="changeJustifiedStatus" class="button"><span class="icon icon16 fa-pencil"></span> <span>{lang}wcf.moderation.report.changeJustifiedStatus{/lang}</span></a></li>
- {/if}
- {if $queue->getAffectedObject()}<li><a href="{$queue->getAffectedObject()->getLink()}" class="button"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.moderation.jumpToContent{/lang}</span></a></li>{/if}
-
+ {if $queue->getAffectedObject()}<li><a href="{$queue->getAffectedObject()->getLink()}" class="button buttonPrimary"><span class="icon icon16 fa-arrow-right"></span> <span>{lang}wcf.moderation.jumpToContent{/lang}</span></a></li>{/if}
{event name='contentHeaderNavigation'}
{/content}
</ul>
</header>
{/capture}
+{capture assign='contentInteractionButtons'}
+ <a id="moderationAssignUser" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.assignedUser.change{/lang}</a>
+ {if !$queue->isDone()}
+ <a id="enableContent" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.activation.enableContent{/lang}</a>
+ {if $queueManager->canRemoveContent($queue->getDecoratedObject())}<a id="removeContent" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.activation.removeContent{/lang}</a>{/if}
+ {/if}
+ {if $queue->canChangeJustifiedStatus()}
+ <a id="changeJustifiedStatus" class="contentInteractionButton button small jsOnly">{lang}wcf.moderation.report.changeJustifiedStatus{/lang}</a>
+ {/if}
+{/capture}
+
{include file='header'}
{include file='formError'}
<nav class="contentHeaderNavigation">
<ul>
{content}
- {if $__wcf->getUserNotificationHandler()->getNotificationCount()}<li class="jsOnly"><a class="button jsMarkAllAsConfirmed"><span class="icon icon16 fa-check"></span> <span>{lang}wcf.user.notification.markAllAsConfirmed{/lang}</span></a></li>{/if}
{event name='contentHeaderNavigation'}
{/content}
</ul>
<link rel="alternate" type="application/rss+xml" title="{lang}wcf.global.button.rss{/lang}" href="{link controller='NotificationFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}">
{/capture}
-{capture assign='headerNavigation'}
- <li><a rel="alternate" href="{link controller='NotificationFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}" title="{lang}wcf.global.button.rss{/lang}" class="rssFeed jsTooltip"><span class="icon icon16 fa-rss"></span> <span class="invisible">{lang}wcf.global.button.rss{/lang}</span></a></li>
+{include file='userMenuSidebar'}
+
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='NotificationList' link="pageNo=%d"}
{/capture}
-{include file='userMenuSidebar'}
+{capture assign='contentInteractionDropdownItems'}
+ {if $__wcf->getUserNotificationHandler()->getNotificationCount()}<li class="jsOnly"><a href="#" class="jsMarkAllAsConfirmed">{lang}wcf.user.notification.markAllAsConfirmed{/lang}</a></li>{/if}
+ <li><a rel="alternate" href="{link controller='NotificationFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}" class="rssFeed">{lang}wcf.global.button.rss{/lang}</a></li>
+{/capture}
{include file='header' __sidebarLeftHasMenu=true}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='NotificationList' link="pageNo=%d"}{/content}
- </div>
-{/hascontent}
-
{if $notifications[notifications]}
{assign var=lastPeriod value=''}
{if $skipBreadcrumbs|empty}{include file='breadcrumbs'}{/if}
{hascontent}
- <ul class="pageNavigationIcons jsPageNavigationIcons">
- {content}
- {if $headerNavigation|isset}{@$headerNavigation}{/if}
- {event name='navigationIcons'}
- {/content}
- </ul>
+ {* DEPRECATED: use contentInteractionButtons or contentInteractionDropdownItems instead *}
+ <ul class="pageNavigationIcons jsPageNavigationIcons">
+ {content}
+ {if $headerNavigation|isset}{@$headerNavigation}{/if}
+ {event name='navigationIcons'}
+ {/content}
+ </ul>
{/hascontent}
</div>
</div>
<nav class="contentHeaderNavigation">
<ul>
{content}
- {if $alterable}
- <li><a href="{link controller='Search'}modify={@$searchID}{/link}" class="button"><span class="icon icon16 fa-search"></span> <span>{lang}wcf.search.results.change{/lang}</span></a></li>
- {/if}
{event name='contentHeaderNavigation'}
{/content}
</ul>
</header>
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {assign var=encodedHighlight value=$highlight|urlencode}
+ {pages print=true application=$application assign=pagesLinks controller='SearchResult' id=$searchID link="pageNo=%d&highlight=$encodedHighlight"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {assign var=encodedHighlight value=$highlight|urlencode}
- {pages print=true application=$application assign=pagesLinks controller='SearchResult' id=$searchID link="pageNo=%d&highlight=$encodedHighlight"}
- {/content}
- </div>
-{/hascontent}
+{capture assign='contentInteractionButtons'}
+ {if $alterable}
+ <a href="{link controller='Search'}modify={@$searchID}{/link}" class="contentInteractionButton button small">{lang}wcf.search.results.change{/lang}</a>
+ {/if}
+{/capture}
+
+{include file='header'}
{include file=$resultListTemplateName application=$resultListApplication}
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='Tagged' object=$tag link="objectType=$objectType&pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}{pages print=true assign=pagesLinks controller='Tagged' object=$tag link="objectType=$objectType&pageNo=%d"}{/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $items}
{include file=$resultListTemplateName application=$resultListApplication}
</header>
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='Trophy' object=$trophy link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='Trophy' object=$trophy link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $objects|count}
<div class="section sectionContainerList">
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='TrophyList' link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='TrophyList' link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{include file='header'}
{if $objects|count}
<div class="section sectionContainerList">
{capture assign='contentTitleBadge'}<span class="badge">{#$items}</span>{/capture}
-{capture assign='headerNavigation'}
- {if ARTICLE_ENABLE_VISIT_TRACKING}
- <li class="jsOnly"><a href="#" title="{lang}wcf.article.markAllAsRead{/lang}" class="markAllAsReadButton jsTooltip"><span class="icon icon16 fa-check"></span> <span class="invisible">{lang}wcf.article.markAllAsRead{/lang}</span></a></li>
- {/if}
-{/capture}
-
{capture assign='sidebarRight'}
{if !$labelGroups|empty}
<form id="sidebarForm" method="post" action="{link application='wcf' controller=$controllerName object=$controllerObject}{/link}">
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='UnreadArticleList' link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='UnreadArticleList' link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{capture assign='contentInteractionDropdownItems'}
+ {if ARTICLE_ENABLE_VISIT_TRACKING}
+ <li class="jsOnly"><a href="#" class="markAllAsReadButton">{lang}wcf.article.markAllAsRead{/lang}</a></li>
+ {/if}
+{/capture}
+
+{include file='header'}
{if $objects|count}
<div class="section">
</section>
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign=pagesLinks controller='UsersOnlineList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign=pagesLinks controller='UsersOnlineList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
- {/content}
- </div>
-{/hascontent}
+{include file='header'}
{assign var=usersOnlineList value=''}
{assign var=usersOnline value=0}
{/if}
{/capture}
-{capture assign='headerNavigation'}>
- {if ARTICLE_ENABLE_VISIT_TRACKING}
- <li class="jsOnly"><a href="#" title="{lang}wcf.article.markAllAsRead{/lang}" class="markAllAsReadButton jsTooltip"><span class="icon icon16 fa-check"></span> <span class="invisible">{lang}wcf.article.markAllAsRead{/lang}</span></a></li>
- {/if}
-{/capture}
-
{capture assign='sidebarRight'}
{if !$labelGroups|empty}
<form id="sidebarForm" method="post" action="{link application='wcf' controller=$controllerName object=$controllerObject}{/link}">
{/if}
{/capture}
-{include file='header'}
+{capture assign='contentInteractionPagination'}
+ {pages print=true assign='pagesLinks' controller='WatchedArticleList' link="pageNo=%d"}
+{/capture}
-{hascontent}
- <div class="paginationTop">
- {content}
- {pages print=true assign='pagesLinks' controller='WatchedArticleList' link="pageNo=%d"}
- {/content}
- </div>
-{/hascontent}
+{capture assign='contentInteractionDropdownItems'}
+ {if ARTICLE_ENABLE_VISIT_TRACKING}
+ <li class="jsOnly"><a href="#" class="markAllAsReadButton">{lang}wcf.article.markAllAsRead{/lang}</a></li>
+ {/if}
+{/capture}
+
+{include file='header'}
{if $objects|count}
<div class="section">
"__wysiwygSmileyFormNode",
"__wysiwygTabMenuFormContainer",
"aclPermissionJavaScript",
- "articleAdd",
"articleAddDialog",
"benchmark",
"booleanOptionType",
}
.contentHeader {
+ display: flex;
+ align-items: flex-start;
+
.contentHeaderDescription {
color: $wcfContentDimmedText;
margin-top: 5px;
}
}
+ .contentHeaderTitle {
+ flex: 1 1 0%;
+ }
+
.contentTitle + .inlineDataList {
margin-top: 5px;
}
}
}
- @include screen-sm {
- .contentHeaderNavigation > ul {
- @include inlineList;
+ @include screen-sm-down {
+ .contentHeaderNavigation {
+ flex: 0 auto;
- align-items: flex-start;
- justify-content: flex-end;
- margin-top: 20px;
+ ul {
+ margin-left: 5px;
+ }
+
+ li:not(:first-child) {
+ margin-top: 5px;
+ }
+
+ .button {
+ padding: 6px 10px;
+ text-transform: none;
+ }
}
}
@include screen-md-up {
- display: flex;
- align-items: flex-start;
-
.contentHeaderIcon {
flex: 0 0 64px;
margin-right: 15px;
}
- .contentHeaderTitle {
- flex: 1 1 0%;
- }
-
.contentHeaderNavigation {
flex: 0 0 auto;
margin-left: 15px;
}
}
+.contentInteraction {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 20px;
+
+ @include screen-xs {
+ flex-wrap: wrap;
+ }
+}
+
+.contentInteractionPagination {
+ flex: 0 0 auto;
+
+ &.paginationTop {
+ margin-top: 0;
+ }
+
+ @include screen-xs {
+ flex: 0 0 100%;
+
+ & + .contentInteractionButtonContainer {
+ margin-top: 20px;
+ }
+ }
+}
+
+.contentInteractionButtonContainer {
+ display: flex;
+ margin-left: auto;
+ overflow: auto;
+}
+
+.contentInteractionButtons {
+ display: flex;
+ flex: 0 0 auto;
+}
+
+.contentInteractionButton {
+ flex: 0 0 auto;
+ overflow: hidden;
+
+ .icon {
+ display: none;
+ }
+
+ &:not(:first-child) {
+ &.button,
+ .button {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+ }
+
+ &:not(:last-child) {
+ &.button,
+ .button {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+ }
+}
+
+.contentInteractionButton:not(:first-child) {
+ margin-left: 1px;
+}
+
+.contentInteractionDropdown {
+ display: flex;
+ flex: 0 0 auto;
+ margin-left: 5px;
+
+ .dropdownToggle {
+ align-items: center;
+ display: flex;
+ flex: 0 0 100%;
+ white-space: nowrap;
+ }
+}
+
+.content {
+ .contentInteraction + .section,
+ .contentInteraction + form {
+ margin-top: 20px;
+ }
+}
+
/* content navigation buttons */
@include screen-xs {
.contentHeader > .contentHeaderNavigation > ul {
- margin-top: 30px;
+ > .button {
+ display: block;
+ padding: 7px 10px;
+ text-align: center;
- > li {
- &:not(:first-child) {
- margin-top: 10px;
- }
-
- > .button {
- display: block;
- padding: 7px 10px;
- text-align: center;
-
- > .invisible {
- display: inline;
- }
+ > .invisible {
+ display: inline;
}
}
}
<item name="wcf.user.profile.title"><![CDATA[Benutzerprofil von {$user->username}]]></item>
</category>
<category name="wcf.user.objectWatch">
+ <item name="wcf.user.objectWatch.button.subscribe"><![CDATA[Abonnieren]]></item>
<item name="wcf.user.objectWatch.manageSubscription"><![CDATA[Abonnement verwalten]]></item>
<item name="wcf.user.objectWatch.subscribe.com.woltlab.wcf.article.category"><![CDATA[Kategorie abonnieren]]></item>
<item name="wcf.user.objectWatch.enableNotification.com.woltlab.wcf.article.category"><![CDATA[Benachrichtigung über neue Artikel aus dieser Kategorie aktivieren]]></item>
<item name="wcf.user.profile.title"><![CDATA[User profile of {$user->username}]]></item>
</category>
<category name="wcf.user.objectWatch">
+ <item name="wcf.user.objectWatch.button.subscribe"><![CDATA[Subscribe]]></item>
<item name="wcf.user.objectWatch.manageSubscription"><![CDATA[Manage Subscription]]></item>
<item name="wcf.user.objectWatch.subscribe.com.woltlab.wcf.article.category"><![CDATA[Watch this category]]></item>
<item name="wcf.user.objectWatch.enableNotification.com.woltlab.wcf.article.category"><![CDATA[Notify me of new articles.]]></item>