Version 4.7.6
This commit is contained in:
1 parent
8ba7d43898
commit
7b7404e741
1085 files changed
+30590
-7837
No files matched your search
@@ -27,7 +27,7 @@
|
||||
</div>]]></template>
|
||||
<template template_group="forums" template_name="forumButtons" template_data="$forum" template_location="front" template_app="forums"><![CDATA[{{if $forum->isCombinedView()}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" href="{$forum->url()->setQueryString( [ 'do' => 'createMenu', 'root' => $forum->id ] )}" data-ipsDialog-title='{lang="select_forum"}' data-ipsDialog data-ipsDialog-size='narrow' title='{lang="topic_create"}' rel='nofollow noindex'>{lang="start_new_topic"}</a>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" href="{$forum->url()->setQueryString( [ 'do' => 'createMenu', 'root' => $forum->id ] )}" data-ipsDialog-title='{lang="select_forum"}' data-ipsDialog data-ipsDialog-size='narrow' title='{lang="create_new_topic"}' rel='nofollow noindex'>{lang="start_new_topic"}</a>
|
||||
</li>
|
||||
{{elseif $forum->can('add')}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
@@ -54,7 +54,7 @@
|
||||
{{$followerCount = \IPS\forums\Topic::containerFollowerCount( $forum );}}
|
||||
<div class="ipsPageHeader {{if $forum->feature_color}}ipsPageHeader--hasFeatureColor{{endif}} ipsBox ipsResponsive_pull ipsPadding ipsClearfix" {{if $forum->feature_color}}style="border-color: {$forum->feature_color}"{{endif}}>
|
||||
<header>
|
||||
{{if \IPS\Application::appIsEnabled('cloud') }}
|
||||
{{if \IPS\Application::appIsEnabled('cloud') AND \IPS\cloud\Application::featureIsEnabled( 'realtime' )}}
|
||||
<div data-controller='cloud.front.realtime.whosViewing' data-location='{expression="\IPS\cloud\Realtime::i()->getLocationHash()"}' data-visibleClass='ipsMargin_bottom:half'></div>
|
||||
{{endif}}
|
||||
<h1 class="ipsType_pageTitle">{$forum->_title}</h1>
|
||||
@@ -80,7 +80,12 @@
|
||||
{{endif}}
|
||||
</header>
|
||||
</div>
|
||||
|
||||
{{if $forum->isCombinedView()}}
|
||||
<li class='ipsToolList_primaryAction ipsResponsive_hideDesktop ipsResponsive_block'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_link ipsButton_fullWidth" href="#" rel="nofollow" data-ipsDialog data-ipsDialog-title='{lang="forums_simple_dialog_title"}' data-ipsDialog-content='#elFluidFormFilters'>
|
||||
<span data-role='fluidForumMobileDesc'>{lang="forums_simple_filter_by"}</span> <i class='fa fa-angle-down'></i></a>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if ! $forum->isCombinedView() and $forum->children()}}
|
||||
<div class='ipsList_reset cForumList ipsBox ipsSpacer_bottom ipsResponsive_pull' data-controller='core.global.core.table, forums.front.forum.forumList' data-baseURL=''>
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset'>{{if $forum->sub_can_post}}{lang="subforums_header"}{{else}}{lang="subforums_header_category"}{{endif}}</h2>
|
||||
@@ -830,7 +835,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<li class="ipsDataItem ipsDataItem_responsivePhoto {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}' data-location='{$row->locationHash}' data-controller='forums.front.forum.topicRow'>
|
||||
<li class="ipsDataItem ipsDataItem_responsivePhoto {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}} {{if $row->isFutureDate()}}ipsModerated_alternate{{endif}}" data-rowID='{$row->$idField}' data-location='{$row->locationHash}' data-controller='forums.front.forum.topicRow'>
|
||||
{{if member.member_id}}
|
||||
<div class='ipsDataItem_icon ipsPos_top'>
|
||||
{{if $row->unread()}}
|
||||
@@ -871,8 +876,10 @@
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_neutral" data-ipsTooltip title='{lang="topic_has_poll"}'><i class='fa fa-question'></i></span></span>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
{{if $row->hidden() === -1}}
|
||||
{{if $row->isFutureDate() || $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
{{if $row->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $row->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
@@ -1028,7 +1035,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<li class="ipsDataItem ipsTopicSnippet {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{else}}ipsDataItem_read{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}'>
|
||||
<li class="ipsDataItem ipsTopicSnippet {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{else}}ipsDataItem_read{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}}{{if $row->isFutureDate()}} ipsModerated_alternate{{endif}}" data-rowID='{$row->$idField}' {{if isset($row->locationHash)}}data-location='{$row->locationHash}'{{endif}}'>
|
||||
|
||||
<div class='ipsTopicSnippet__top ipsFlex ipsFlex-ai:start'>
|
||||
<!-- Topic starter avatar -->
|
||||
@@ -1039,8 +1046,10 @@
|
||||
<div class='ipsTopicSnippet__top-main ipsFlex-flex:11 ipsFlex ipsFlex-ai:start ipsFlex-jc:between sm:ipsFlex-fd:column'>
|
||||
<div class='ipsTopicSnippet__title ipsFlex-flex:11'>
|
||||
<h4 class='ipsDataItem_title'>
|
||||
|
||||
{{if $row->locked()}}
|
||||
{{if $row->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $row->locked()}}
|
||||
<span>
|
||||
<i class='ipsType_medium fa fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i>
|
||||
</span>
|
||||
@@ -1120,7 +1129,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{foreach $row->stats(FALSE) as $k => $v}}
|
||||
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}>
|
||||
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}} data-statType="{$k}">
|
||||
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
|
||||
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
|
||||
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
|
||||
@@ -1350,7 +1359,7 @@
|
||||
{{endif}}
|
||||
|
||||
<span class='ipsType_break ipsContained'>
|
||||
<a href='{$topic->url( "getPrefComment" )}' {{if $topic->canView()}}data-ipsHover data-ipsHover-target='{$topic->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5' {{endif}}>
|
||||
<a href='{$topic->url( "getPrefComment" )}' {{if $topic->tableHoverUrl AND $topic->canView()}}data-ipsHover data-ipsHover-target='{$topic->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5' {{endif}}>
|
||||
{{if $topic->isQuestion()}}
|
||||
<strong class='ipsType_light'>{lang="question_title"}:</strong>
|
||||
{{endif}}
|
||||
@@ -2093,7 +2102,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<li class="ipsDataItem ipsDataItem_responsivePhoto {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}'>
|
||||
<li class="ipsDataItem ipsDataItem_responsivePhoto {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}}{{if $row->isFutureDate()}} ipsModerated_alternate{{endif}}" data-rowID='{$row->$idField}' {{if isset($row->locationHash)}}data-location='{$row->locationHash}'{{endif}}>
|
||||
<div class='ipsDataItem_icon ipsType_blendLinks'>
|
||||
{template="userPhoto" app="core" group="global" params="$row->author(), 'tiny'"}
|
||||
</div>
|
||||
@@ -2132,9 +2141,11 @@
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_neutral" data-ipsTooltip title='{lang="topic_has_poll"}'><i class='fa fa-question'></i></span></span>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1 || $row->isSolved()}}
|
||||
{{if $row->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{if $row->isFutureDate() || $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1 || $row->isSolved()}}
|
||||
{{if $row->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $row->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{endif}}
|
||||
@@ -2287,7 +2298,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<li class="ipsDataItem ipsTopicSnippet {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{else}}ipsDataItem_read{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}'>
|
||||
<li class="ipsDataItem ipsTopicSnippet {{if $row->groupsPosted}}ipsDataItem_highlighted{{endif}} {{if $row->unread()}}ipsDataItem_unread{{else}}ipsDataItem_read{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}}{{if $row->isFutureDate()}} ipsModerated_alternate{{endif}}" data-rowID='{$row->$idField}' {{if isset($row->locationHash)}}data-location='{$row->locationHash}'{{endif}}>
|
||||
|
||||
<div class='ipsTopicSnippet__top ipsFlex ipsFlex-ai:start'>
|
||||
<!-- Topic starter avatar -->
|
||||
@@ -2303,8 +2314,11 @@
|
||||
<span>
|
||||
<i class='ipsType_medium fa fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i>
|
||||
</span>
|
||||
{{endif}}
|
||||
{{if $row->isSolved()}}
|
||||
{{endif}}
|
||||
{{if $row->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $row->isSolved()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="this_is_solved"}'><i class='fa fa-check'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $row->hidden() === -1}}
|
||||
@@ -2379,7 +2393,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{foreach $row->stats(FALSE) as $k => $v}}
|
||||
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}>
|
||||
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}} data-statType="{$k}">
|
||||
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
|
||||
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
|
||||
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
|
||||
@@ -3089,13 +3103,13 @@
|
||||
{{else}}
|
||||
{{if $comment instanceof \IPS\Content\Hideable}}
|
||||
{{if !$comment->hidden() and $comment->canHide()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('hide')}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('hide')}' data-ipsDialog data-ipsDialog-title="{lang="hide"}" data-ipsDialog-destructOnClose='true'>{lang="hide"}</a></li>
|
||||
{{elseif $comment->hidden() and $comment->canUnhide()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('unhide')->csrf()}'>{lang="unhide"}</a></li>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{if $comment->canSplit()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}">{lang="split"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}" data-ipsDialog-destructOnClose='true'>{lang="split"}</a></li>
|
||||
{{endif}}
|
||||
{{if $comment->canDelete()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('delete')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action='deleteComment' data-updateOnDelete="#commentCount">{lang="delete"}</a></li>
|
||||
@@ -3104,7 +3118,7 @@
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('unfeature')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action="unrecommendComment">{lang="unrecommend_content"}</a></li>
|
||||
{{endif}}
|
||||
{{if !$comment->isFeatured() AND $item->canFeatureComment()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('feature')->setPage('page',\IPS\Request::i()->page)}' data-ipsDialog data-ipsDialog-title='{lang="recommend_post"}' data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-action="recommendComment">{lang="recommend_content"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('feature')->setPage('page',\IPS\Request::i()->page)}' data-ipsDialog data-ipsDialog-title='{lang="recommend_post"}' data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-action="recommendComment" data-ipsDialog-destructOnClose='true'>{lang="recommend_content"}</a></li>
|
||||
{{endif}}
|
||||
{{if ( ! $comment->mapped('first') and $comment->canPromoteToSocialMedia() )}}
|
||||
<li class='ipsMenu_item'>{template="promoteLink" app="core" group="global" params="$comment"}</li>
|
||||
@@ -3192,15 +3206,18 @@
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{if $comment->canSplit()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}">{lang="split"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}" data-ipsDialog-destructOnClose='true'>{lang="split"}</a></li>
|
||||
{{endif}}
|
||||
{{if $comment instanceof \IPS\Content\Hideable and $comment->canHide()}}
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('hide')->csrf()}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$comment->url('hide')->csrf()}' data-ipsDialog data-ipsDialog-title="{lang="hide"}" data-ipsDialog-destructOnClose='true'>{lang="hide"}</a></li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{{if ! $comment->mapped('first') AND $comment->item()->canSolve() AND ! $comment->item()->isSolved() AND $comment->item()->isNotModeratorButCanSolve()}}
|
||||
<li><a href='{$item->url()->csrf()->setQueryString( array( 'do' => 'solve', 'answer' => $comment->pid ) )}' data-action="solveComment" class="ipsButton ipsButton_verySmall"><i class="fa fa-check"></i> {lang="solve_content"}</a></li>
|
||||
{{endif}}
|
||||
{{if $comment->hidden() === 0 and $item->canComment() and $editorName}}
|
||||
<li data-ipsQuote-editor='{$editorName}' data-ipsQuote-target='#comment-{$comment->$idField}' class='ipsJS_show'>
|
||||
<button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq{$comment->$idField}' title='{lang="multiquote"}'><i class='fa fa-plus'></i></button>
|
||||
@@ -3212,9 +3229,9 @@
|
||||
{{if ( $comment->item()->isSolved() and $comment->item()->mapped('solved_comment_id') == $comment->pid ) AND $comment->item()->canSolve()}}
|
||||
<li><a href='{$item->url()->csrf()->setQueryString( array( 'do' => 'unsolve', 'answer' => $comment->pid ) )}' data-action="unsolveComment">{lang="unsolve_content"}</a></li>
|
||||
{{endif}}
|
||||
{{if $comment->item()->canSolve() AND ! $comment->item()->isSolved()}}
|
||||
{{if $comment->item()->canSolve() AND ! $comment->item()->isSolved() AND ! $comment->item()->isNotModeratorButCanSolve()}}
|
||||
<li><a href='{$item->url()->csrf()->setQueryString( array( 'do' => 'solve', 'answer' => $comment->pid ) )}' data-action="solveComment">{lang="solve_content"}</a></li>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
<li class='ipsHide' data-role='commentLoading'>
|
||||
<span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span>
|
||||
@@ -3223,7 +3240,7 @@
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{{if trim( $comment->author()->signature )}}
|
||||
{{if $comment->author()->signature AND trim( $comment->author()->signature )}}
|
||||
{template="signature" group="global" app="core" params="$comment->author()"}
|
||||
{{endif}}
|
||||
</div>
|
||||
@@ -3426,7 +3443,7 @@
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsPageHeader ipsResponsive_pull ipsBox ipsPadding sm:ipsPadding:half ipsMargin_bottom'>
|
||||
{{if \IPS\Application::appIsEnabled('cloud') }}
|
||||
{{if \IPS\Application::appIsEnabled('cloud') AND \IPS\cloud\Application::featureIsEnabled( 'realtime' )}}
|
||||
<div data-controller='cloud.front.realtime.whosViewing' data-location='{expression="\IPS\cloud\Realtime::i()->getLocationHash()"}' data-visibleClass='ipsMargin_bottom:half'></div>
|
||||
{{endif}}
|
||||
{{if $topic->isQuestion()}}
|
||||
@@ -3459,8 +3476,10 @@
|
||||
<div class='ipsFlex ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:4'>
|
||||
<div class='ipsFlex-flex:11'>
|
||||
<h1 class='ipsType_pageTitle ipsContained_container'>
|
||||
{{if $topic->mapped('pinned') || $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1 || $topic->hidden() === -2 || $topic->isSolved() || ( $topic->canToggleItemModeration() and $topic->itemModerationEnabled() )}}
|
||||
{{if $topic->hidden() === -1}}
|
||||
{{if $topic->isFutureDate() || $topic->mapped('pinned') || $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1 || $topic->hidden() === -2 || $topic->isSolved() || ( $topic->canToggleItemModeration() and $topic->itemModerationEnabled() )}}
|
||||
{{if $topic->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$topic->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $topic->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$topic->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $topic->hidden() === -2}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$topic->deletedBlurb()}'><i class='fa fa-trash'></i></span></span>
|
||||
@@ -3498,7 +3517,7 @@
|
||||
<p class='ipsType_reset ipsType_medium'><strong><i class='fa fa-clock-o'></i> {lang="topic_locks_at" htmlsprintf="\IPS\DateTime::ts( $topic->topic_close_time )->html(), \IPS\DateTime::ts( $topic->topic_close_time )->localeTime( FALSE )"}</strong></p>
|
||||
{{endif}}
|
||||
{{if \count( $topic->tags() ) OR ( $topic->canEdit() AND $topic::canTag( NULL, $topic->container() ) )}}
|
||||
{template="tags" group="global" app="core" params="$topic->tags(), FALSE, FALSE, ( $topic->canEdit() AND $topic::canTag( NULL, $topic->container() ) ) ? $topic->url() : NULL"}
|
||||
{template="tags" group="global" app="core" params="$topic->tags(), FALSE, FALSE, ( $topic->canEdit() AND ( \count( $topic->tags() ) OR $topic::canTag( NULL, $topic->container() ) ) ) ? $topic->url() : NULL"}
|
||||
{{endif}}
|
||||
</div>
|
||||
{{if $topic->container()->forum_allow_rating}}
|
||||
@@ -3524,7 +3543,7 @@
|
||||
<strong>{lang="ask_byline_no_date" htmlsprintf="$topic->author()->link( $topic->warningRef(), NULL, $topic->isAnonymous() )"},</strong><br />
|
||||
<span class='ipsType_light'>{datetime="$topic->start_date"}</span>
|
||||
{{else}}
|
||||
<strong>{lang="byline_itemprop" htmlsprintf="$topic->author()->link( $topic->warningRef(), NULL, $topic->isAnonymous() )"}</strong><br />
|
||||
<strong>{lang="byline_nodate" htmlsprintf="$topic->author()->link( $topic->warningRef(), NULL, $topic->isAnonymous() )"}</strong><br />
|
||||
<span class='ipsType_light'>{datetime="$topic->start_date"} {lang="in"} <a href="{$topic->container()->url()}">{$topic->container()->_formattedTitle|raw}</a></span>
|
||||
{{endif}}
|
||||
</span>
|
||||
@@ -3562,11 +3581,26 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $topic->canSolve() AND ! $topic->isSolved() AND $topic->isNotModeratorButCanSolve()}}
|
||||
<div class='cContentMessage cContentMessage_color ipsMessage_success ipsMargin_vertical' data-controller='forums.front.topic.solved'>
|
||||
<h3 class='cContentMessage__header'>{lang="solved_did_it_tho_title" sprintf="\IPS\Member::loggedIn()->name"}</h3>
|
||||
<div class='ipsPadding'>
|
||||
{lang="solved_did_it_tho_desc"}
|
||||
{{if member.members_bitoptions['no_solved_reenage']}}
|
||||
<div class='ipsMargin_top'>
|
||||
<a href="#" data-action="mailSolvedReminders" class="ipsButton ipsButton_verySmall"><i class="fa fa-envelope"></i> {lang="solved_reengage_on"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{template="contentItemMessages" group="global" app="core" params="$topic->getMessages(), $topic"}
|
||||
|
||||
{{if $topic->hidden() === 1 and $topic->canUnhide()}}
|
||||
<div class="ipsMessage ipsMessage_warning ipsSpacer_top">
|
||||
<p class="ipsType_reset">{lang="topic_pending_approval"}</p>
|
||||
<p class="ipsType_reset">{$topic->hiddenBlurb()}</p>
|
||||
|
||||
<ul class='ipsList_inline ipsSpacer_top'>
|
||||
<li><a href="{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}" class="ipsButton ipsButton_positive ipsButton_verySmall" title='{lang="approve_title_topic"}'><i class="fa fa-check"></i> {lang="approve"}</a></li>
|
||||
{{if $topic->canDelete()}}
|
||||
@@ -3598,7 +3632,7 @@
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if ( $topic->canPin() or $topic->canUnpin() or $topic->canFeature() or $topic->canUnfeature() or $topic->canHide() or $topic->canUnhide() or $topic->canMove() or $topic->canLock() or $topic->canUnlock() or $topic->canDelete() or $topic->availableSavedActions() or $topic->canMerge() or $topic->canUnarchive() or $topic->canRemoveArchiveExcludeFlag() or \IPS\Member::loggedIn()->modPermission('can_view_moderation_log') or $topic->canToggleItemModeration() ) or ( $topic->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content') )}}
|
||||
{{if ( $topic->canPin() or $topic->canUnpin() or $topic->canFeature() or $topic->canUnfeature() or $topic->canHide() or $topic->canUnhide() or $topic->canMove() or $topic->canLock() or $topic->canUnlock() or $topic->canDelete() or $topic->availableSavedActions() or $topic->canMerge() or $topic->canUnarchive() or $topic->canRemoveArchiveExcludeFlag() or \IPS\Member::loggedIn()->modPermission('can_view_moderation_log') or $topic->canToggleItemModeration() ) or ( $topic->isFutureDate() and $topic::canFuturePublish( NULL, $topic->container() ) ) or ( $topic->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content') )}}
|
||||
<li>
|
||||
<a href='#elTopicActions_menu' id='elTopicActions' class='ipsButton ipsButton_link ipsButton_medium ipsButton_fullWidth' data-ipsMenu>{lang="moderator_actions"} <i class='fa fa-caret-down'></i></a>
|
||||
<ul id='elTopicActions_menu' class='ipsMenu ipsMenu_auto ipsHide'>
|
||||
@@ -3607,6 +3641,9 @@
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'restoreAsHidden' ) )}' data-confirm data-confirmSubMessage='{lang="restore_as_hidden_desc"}'>{lang="restore_as_hidden"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete', 'immediate' => 1 ) )}' data-confirm data-confirmSubMessage='{lang="delete_immediately_desc"}'>{lang="delete_immediately"}</a></li>
|
||||
{{else}}
|
||||
{{if $topic->isFutureDate() and $topic::canFuturePublish( NULL, $topic->container() )}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url('moderate')->csrf()->setQueryString( array( 'action' => 'publish' ) )}' data-confirm title='{lang="publish_now"}'>{lang="publish"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canFeature()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'feature' ) )}'>{lang="feature"}</a></li>
|
||||
{{endif}}
|
||||
@@ -3620,22 +3657,22 @@
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unpin' ) )}' >{lang="unpin"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canHide()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="hide"}" data-ipsDialog-destructOnClose='true'>{lang="hide"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnhide()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}' >{{if $topic->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}' data-ipsDialog-destructOnClose='true'>{{if $topic->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canLock()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' >{lang="lock"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' {{if member.modPermission('can_manage_alerts') AND $topic->author()->member_id }} data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="lock"}" data-ipsDialog-destructOnClose='true' {{endif}}>{lang="lock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnlock()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unlock' ) )}' >{lang="unlock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canMove()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}" >{lang="move"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="move"}" data-ipsDialog-destructOnClose='true'>{lang="move"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canMerge()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'merge' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="merge"}" >{lang="merge"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'merge' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="merge"}" data-ipsDialog-destructOnClose='true'>{lang="merge"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnarchive()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'unarchive' ) )}' data-confirm data-confirmSubMessage="{$topic->unarchiveBlurb()}" >{lang="unarchive"}</a></li>
|
||||
@@ -3647,7 +3684,7 @@
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm >{lang="delete"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canOnMessage( 'add' )}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'messageForm' ) )}' data-ipsDialog data-ipsDialog-title='{lang="add_message"}'>{lang="add_message"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'messageForm' ) )}' data-ipsDialog data-ipsDialog-title='{lang="add_message"}' data-ipsDialog-destructOnClose='true'>{lang="add_message"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canToggleItemModeration()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'toggleItemModeration' ) )}' data-confirm data-confirmMessage='{{if $topic->itemModerationEnabled()}}{lang="disable_topic_moderation_confirm"}{{else}}{lang="enable_topic_moderation_confirm"}{{endif}}'>{{if $topic->itemModerationEnabled()}}{lang="disable_topic_moderation"}{{else}}{lang="enable_topic_moderation"}{{endif}}</a></li>
|
||||
@@ -3820,7 +3857,7 @@
|
||||
|
||||
{{if $topic->commentForm() || $topic->locked() || \IPS\Member::loggedIn()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] || !\IPS\Member::loggedIn()->checkPostsPerDay()}}
|
||||
<a id='replyForm'></a>
|
||||
<div data-role='replyArea' class='cTopicPostArea ipsBox ipsResponsive_pull ipsPadding {{if !$topic->canComment()}}cTopicPostArea_noSize{{endif}} ipsSpacer_top' data-controller='cloud.front.realtime.forumsReplyArea,cloud.front.realtime.whosTyping'>
|
||||
<div data-role='replyArea' class='cTopicPostArea ipsBox ipsResponsive_pull ipsPadding {{if !$topic->canComment()}}cTopicPostArea_noSize{{endif}} ipsSpacer_top' {{if \IPS\Application::appIsEnabled('cloud') AND \IPS\cloud\Application::featureIsEnabled( 'realtime' )}}data-controller='cloud.front.realtime.forumsReplyArea,cloud.front.realtime.whosTyping'{{endif}}>
|
||||
{{if $topic->commentForm()}}
|
||||
{{if $topic->locked()}}
|
||||
<p class='ipsType_reset ipsType_warning ipsComposeArea_warning ipsSpacer_bottom ipsSpacer_half'><i class='fa fa-info-circle'></i> {lang="topic_locked_can_comment"}</p>
|
||||
@@ -3890,16 +3927,16 @@
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}' >{{if $topic->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canLock()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' >{lang="lock"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' {{if member.modPermission('can_manage_alerts') AND $topic->author()->member_id }} data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="lock"}" data-ipsDialog-destructOnClose='true' {{endif}}>{lang="lock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnlock()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unlock' ) )}' >{lang="unlock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canMove()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}" >{lang="move"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="move"}" >{lang="move"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canMerge()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'merge' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="merge"}" >{lang="merge"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->setQueryString( array( 'do' => 'merge' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="merge"}" >{lang="merge"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnarchive()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'unarchive' ) )}' data-confirm data-confirmSubMessage="{$topic->unarchiveBlurb()}" >{lang="unarchive"}</a></li>
|
||||
|
||||
Reference in new issue
Block a user