Version 4.1.2
This commit is contained in:
1 parent
3ba79295ee
commit
28bd025b35
1131 files changed
+63658
-20579
No files matched your search
+392
-185
@@ -39,13 +39,13 @@
|
||||
<div class="ipsPageHeader ipsClearfix">
|
||||
<header class='ipsSpacer_bottom'>
|
||||
<h1 class="ipsType_pageTitle">{$forum->_title}</h1>
|
||||
{{if $forum->sub_can_post}}
|
||||
{{if $forum->sub_can_post and !$forum->password}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
||||
{template="follow" app="core" group="global" params="'forums','forum', $forum->_id, $followerCount"}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $forum->description}}
|
||||
<div class='ipsType_richText ipsType_normal ipsSpacer_top'>
|
||||
<div class='ipsType_richText ipsType_normal'>
|
||||
{$forum->description|raw}
|
||||
</div>
|
||||
{{endif}}
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
{{if $forum->children()}}
|
||||
<div class='ipsList_reset cForumList ipsBox ipsSpacer_bottom' data-controller='forums.front.forum.forumList' data-baseURL=''>
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="subforums_header"}</h2>
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset'>{{if $forum->sub_can_post}}{lang="subforums_header"}{{else}}{lang="subforums_header_category"}{{endif}}</h2>
|
||||
{{if theme.forum_layout === 'grid'}}
|
||||
<div class='ipsAreaBackground ipsPad' data-role="forums">
|
||||
<div class='ipsGrid ipsGrid_collapsePhone' data-ipsGrid data-ipsGrid-minItemSize='300' data-ipsGrid-maxItemSize='400' data-ipsGrid-equalHeights='row'>
|
||||
@@ -76,7 +76,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<ol class="ipsDataList ipsDataList_large ipsDataList_zebra ipsAreaBackground_reset">
|
||||
<ol class="ipsDataList ipsDataList_zebra ipsDataList_large ipsAreaBackground_reset">
|
||||
{{foreach $forum->children( 'view' ) as $childforum}}
|
||||
{template="forumRow" group="index" app="forums" params="$childforum, TRUE"}
|
||||
{{endforeach}}
|
||||
@@ -94,7 +94,7 @@
|
||||
{template="forumButtons" group="forums" params="$forum"}
|
||||
</ul>
|
||||
</div>
|
||||
{{if !\IPS\Request::i()->advancedSearchForm && $forum->sub_can_post}}
|
||||
{{if !\IPS\Request::i()->advancedSearchForm && $forum->sub_can_post and !$forum->password}}
|
||||
<div class='ipsResponsive_showPhone ipsResponsive_block ipsSpacer ipsSpacer_both'>
|
||||
{template="follow" app="core" group="global" params="'forums','forum', $forum->_id, $followerCount"}
|
||||
</div>
|
||||
@@ -557,7 +557,10 @@
|
||||
</div>
|
||||
{{if $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->mapped('pinned')}}pinned{{endif}} {{if $row->mapped('featured')}}featured{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->mapped('pinned')}}pinned{{endif}} {{if $row->mapped('featured')}}featured{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
@@ -609,7 +612,7 @@
|
||||
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
|
||||
{{endif}}
|
||||
|
||||
<a href='{$row->url()}' {{if $row->tableHoverUrl and $row->canView()}}data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}} itemprop="url">
|
||||
<a href='{$row->url()}' {{if $row->tableHoverUrl and $row->canView()}}data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}} itemprop="url" {{if $row->canEdit()}} data-role="editableTitle"{{endif}}>
|
||||
<span itemprop="name">
|
||||
{{if $row->mapped('title')}}{wordbreak="$row->mapped('title')"}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}}
|
||||
</span>
|
||||
@@ -644,7 +647,10 @@
|
||||
</div>
|
||||
{{if $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
@@ -690,7 +696,7 @@
|
||||
</div>
|
||||
<hr class='ipsHr'>
|
||||
|
||||
<div class='ipsType_richText ipsType_small'>
|
||||
<div class='ipsType_richText ipsType_small' data-controller='core.front.core.lightboxedImages'>
|
||||
{$tabData[1]->content()|raw}
|
||||
</div>
|
||||
{{if count( $overviews ) > 1}}
|
||||
@@ -731,13 +737,16 @@
|
||||
</div>
|
||||
{{if $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{{if $row->mapped('featured')}}unfeature{{endif}} {{if $row->mapped('pinned')}}unpin{{endif}} delete" data-state='{{if $row->mapped('pinned')}}pinned{{endif}} {{if $row->mapped('featured')}}featured{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{{if $row->mapped('featured')}}unfeature{{endif}} {{if $row->mapped('pinned')}}unpin{{endif}} delete" data-state='{{if $row->mapped('pinned')}}pinned{{endif}} {{if $row->mapped('featured')}}featured{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</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}' itemscope itemtype="http://schema.org/Article">
|
||||
<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}' itemprop="itemListElement" itemscope itemtype="http://schema.org/Article">
|
||||
{{if member.member_id}}
|
||||
<div class='ipsDataItem_icon ipsPos_top'>
|
||||
{{if $row->unread()}}
|
||||
@@ -758,40 +767,42 @@
|
||||
{{if $row->locked()}}
|
||||
<i class='fa fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i>
|
||||
{{endif}}
|
||||
|
||||
|
||||
{{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
<span>
|
||||
{{if $row->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
|
||||
{{endif}}
|
||||
|
||||
<a href='{$row->url()}' {{if $row->tableHoverUrl and $row->canView()}}data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}} itemprop="url" {{if $row->canEdit()}}data-role="editableTitle"{{endif}}>
|
||||
<span itemprop="name">
|
||||
<a href='{$row->url()}' itemprop="url"{{if $row->tableHoverUrl and $row->canView()}} data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}}{{if $row->canEdit()}} data-role="editableTitle"{{endif}}>
|
||||
<span itemprop="name headline">
|
||||
{{if $row->mapped('title')}}{wordbreak="$row->mapped('title')"}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}}
|
||||
</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="{$row->tid}">
|
||||
</h4>
|
||||
{{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
<span>
|
||||
{{if $row->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
{{if $row->commentPageCount() > 1}}
|
||||
{$row->commentPagination( array(), 'miniPagination' )|raw}
|
||||
{{endif}}
|
||||
<div class='ipsDataItem_meta ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||
{lang="byline_itemprop" htmlsprintf="$row->author()->link()"}
|
||||
</span>{datetime="$row->__get( $row::$databaseColumnMap['date'] )"}
|
||||
<meta itemprop="dateCreated" content="{expression="\IPS\DateTime::create( $row->__get( $row::$databaseColumnMap['date'] ) )->rfc3339()"}">
|
||||
</span>{datetime="$row->mapped('date')" lowercase="true"}
|
||||
<meta itemprop="dateCreated datePublished" content="{expression="\IPS\DateTime::create( $row->__get( $row::$databaseColumnMap['date'] ) )->rfc3339()"}">
|
||||
{{if !in_array( \IPS\Dispatcher::i()->controller, array( 'forums', 'index' ) )}}
|
||||
{lang="in"} <a href="{$row->container()->url()}">{$row->container()->_title}</a>
|
||||
{{endif}}
|
||||
@@ -812,7 +823,7 @@
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
<ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto'>
|
||||
<ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto ipsType_blendLinks'>
|
||||
<li>
|
||||
{{if $row->mapped('num_comments')}}
|
||||
{template="userPhoto" app="core" group="global" params="$row->lastCommenter(), 'tiny'"}
|
||||
@@ -835,7 +846,10 @@
|
||||
</ul>
|
||||
{{if $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
@@ -862,6 +876,55 @@
|
||||
</h3>
|
||||
<p class='ipsType_normal ipsType_light ipsType_blendLinks ipsType_reset'>{lang="in"} <a href='{$topic->container()->url()}'>{$topic->container()->_title}</a></p>
|
||||
</div>]]></template>
|
||||
<template template_group="global" template_name="manageFollowNodeRow" template_data="$table, $headers, $rows" template_location="front" template_app="forums"><![CDATA[{{foreach $rows as $row}}
|
||||
{{$contentItemClass = $row::$contentItemClass;}}
|
||||
<li class="ipsDataItem {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}}" data-controller='core.front.system.manageFollowed' data-followID='{$row->_followData['follow_area']}-{$row->_followData['follow_rel_id']}'>
|
||||
<div class='ipsDataItem_main'>
|
||||
<h4 class='ipsDataItem_title'>
|
||||
{{if $row->_locked}}
|
||||
<i class="fa fa-lock"></i>
|
||||
{{endif}}
|
||||
|
||||
<a href='{$row->url()}'>
|
||||
{$row->_title}
|
||||
</a>
|
||||
</h4>
|
||||
<ul class='ipsList_inline ipsType_light'>
|
||||
<li>{lang="posts_number" pluralize="$row->_comments + $row->_items"}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size1 ipsType_center ipsType_large'>
|
||||
<span class='ipsBadge ipsBadge_icon ipsBadge_new {{if !$row->_followData['follow_is_anon']}}ipsHide{{endif}}' data-role='followAnonymous' data-ipsTooltip title='{lang="follow_is_anon"}'><i class='fa fa-eye-slash'></i></span>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6'>
|
||||
<ul class='ipsList_reset'>
|
||||
<li title='{lang="follow_when"}' data-role='followDate'><i class='fa fa-clock-o'></i> {datetime="$row->_followData['follow_added']"}</li>
|
||||
<li title='{lang="follow_how"}' data-role='followFrequency'>
|
||||
{{if $row->_followData['follow_notify_freq'] == 'none'}}
|
||||
<i class='fa fa-bell-slash-o'></i>
|
||||
{{else}}
|
||||
<i class='fa fa-bell'></i>
|
||||
{{endif}} {lang="follow_freq_{$row->_followData['follow_notify_freq']}"}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6 ipsType_center'>
|
||||
{template="manageFollow" group="system" app="core" params="$row->_followData['follow_app'], $row->_followData['follow_area'], $row->_followData['follow_rel_id']"}
|
||||
</div>
|
||||
|
||||
{{if $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->_id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state=''>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endforeach}}]]></template>
|
||||
<template template_group="global" template_name="row" template_data="$table, $headers, $topic, $showReadMarkers=TRUE" template_location="front" template_app="forums"><![CDATA[{{$idField = $topic::$databaseColumnId;}}
|
||||
{{$iPosted = isset( $table->contentPostedIn ) ? $table->contentPostedIn : ( $table AND method_exists( $table, 'container' ) AND $topic->container() !== NULL ) ? $topic->container()->contentPostedIn() : array();}}
|
||||
<li class="ipsDataItem ipsDataItem_responsivePhoto {{if $topic->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $topic, 'tableClass' ) && $topic->tableClass()}}ipsDataItem_{$topic->tableClass()}{{endif}} {{if $topic->hidden()}}ipsModerated{{endif}}">
|
||||
@@ -884,12 +947,6 @@
|
||||
{{endif}}
|
||||
<div class='ipsDataItem_main'>
|
||||
<h4 class='ipsDataItem_title ipsType_break'>
|
||||
<a href='{$topic->url()}' {{if $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}}
|
||||
{wordbreak="$topic->mapped('title')"}
|
||||
</a>
|
||||
{{if $topic->mapped('pinned') || $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1}}
|
||||
<span>
|
||||
{{if $topic->hidden() === -1}}
|
||||
@@ -905,6 +962,13 @@
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
|
||||
<a href='{$topic->url()}' {{if $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}}
|
||||
{wordbreak="$topic->mapped('title')"}
|
||||
</a>
|
||||
</h4>
|
||||
{{if $topic->commentPageCount() > 1}}
|
||||
{$topic->commentPagination( array(), 'miniPagination' )|raw}
|
||||
@@ -971,7 +1035,10 @@
|
||||
</ul>
|
||||
{{if method_exists( $table, 'canModerate' ) AND $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$topic->tid}]" data-actions="{expression="implode( ' ', $table->multimodActions( $topic ) )"}" data-state='{{if $topic->tableStates()}}{$topic->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$topic->tid}]" data-actions="{expression="implode( ' ', $table->multimodActions( $topic ) )"}" data-state='{{if $topic->tableStates()}}{$topic->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>]]></template>
|
||||
@@ -980,39 +1047,12 @@
|
||||
{template="row" group="global" app="forums" params="$table, $headers, $row"}
|
||||
{{endforeach}}
|
||||
{{endif}}</template>
|
||||
<template template_group="global" template_name="searchNoPermission" template_data="$topic, $lang, $link=NULL" template_location="front" template_app="forums"><![CDATA[<li class="ipsDataItem">
|
||||
<div class='ipsPad ipsType_center ipsType_light ipsType_large'>
|
||||
<template template_group="global" template_name="searchNoPermission" template_data="$lang, $link=NULL" template_location="front" template_app="forums"><![CDATA[<li class="ipsStreamItem ipsStreamItem_contentBlock ipsAreaBackground_reset ipsPad">
|
||||
<div class='ipsType_center ipsType_light ipsType_large'>
|
||||
{$lang}{{if $link}} <a href="{$link}">{lang="enter_password"}</a>{{endif}}
|
||||
</div>
|
||||
</li>
|
||||
]]></template>
|
||||
<template template_group="global" template_name="snippet" template_data="$activity, $type='activity'" template_location="front" template_app="forums"><![CDATA[{{if $activity instanceof \IPS\forums\Topic}}
|
||||
<div class='cSearchActivity_info ipsContained'>
|
||||
{{if $type != 'search'}}<a href='{$activity->url()}' class='ipsType_normal ipsType_break'>{$activity->mapped('title')}</a>{{endif}}
|
||||
{{if mb_strlen( trim( $activity->truncated() ) ) }}
|
||||
<div class='ipsType_medium ipsType_richText ipsContained {{if $type != 'search'}}ipsSpacer_both{{else}}ipsSpacer_bottom{{endif}} ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='3 lines' data-ipsTruncate-type='remove'>
|
||||
{$activity->truncated()|raw}
|
||||
</div>
|
||||
{{endif}}
|
||||
<ul class='ipsList_inline ipsType_light'>
|
||||
<li>{lang="replies_number" pluralize="$activity->posts-1"}</li>
|
||||
<li>{lang="num_views_with_number" pluralize="$activity->mapped('views')"}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{{else}}
|
||||
{{if mb_strlen( trim( strip_tags( $activity->truncated() ) ) ) }}
|
||||
<div class='cSearchActivity_info ipsContained'>
|
||||
<div class='ipsType_medium ipsType_richText ipsContained ipsSpacer_bottom ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='3 lines' data-ipsTruncate-type='remove'>
|
||||
{$activity->truncated()|raw}
|
||||
</div>
|
||||
{{if $type != 'search' and $activity instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
||||
<ul class='ipsList_inline ipsType_light'>
|
||||
<li>{template="reputationMini" group="global" app="core" params="$activity, '', NULL, TRUE"}</li>
|
||||
</ul>
|
||||
{{endif}}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endif}}]]></template>
|
||||
<template template_group="index" template_name="forumGridItem" template_data="$forum" template_location="front" template_app="forums"><![CDATA[{{if $forum->can('view')}}
|
||||
{{$lastPost = $forum->lastPost();}}
|
||||
<div class="ipsDataItem ipsGrid_span4 ipsAreaBackground_reset cForumGrid {{if \IPS\forums\Topic::containerUnread( $forum ) && !$forum->redirect_on}}cForumGrid_unread ipsDataItem_unread{{endif}} ipsClearfix" data-forumID="{$forum->_id}">
|
||||
@@ -1168,7 +1208,7 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class="ipsDataItem_main">
|
||||
<h4 class="ipsDataItem_title ipsType_large">
|
||||
<h4 class="ipsDataItem_title ipsType_large ipsType_break">
|
||||
{{if $forum->password && !$forum->loggedInMemberHasPasswordAccess()}}
|
||||
<a href="{$forum->url()->setQueryString( 'passForm', '1' )}" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="forum_requires_password"}'>{$forum->_title}</a>
|
||||
{{else}}
|
||||
@@ -1204,13 +1244,13 @@
|
||||
<strong class='ipsType_warning ipsType_medium'>
|
||||
<i class='fa fa-warning'></i>
|
||||
{{if $unapprovedContent['topics']}}
|
||||
<a href='{$forum->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'topic_type' => 'queued_topics' ) )->csrf()}' data-ipsTooltip title='{lang="queued_topics_badge" pluralize="$forum->queued_topics"}' class='ipsType_blendLinks'>{$unapprovedContent['topics']}</a>
|
||||
<a href='{$forum->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'topic_type' => 'queued_topics' ) )->csrf()}' data-ipsTooltip title='{lang="queued_topics_badge" pluralize="$unapprovedContent['topics']"}' class='ipsType_blendLinks'>{$unapprovedContent['topics']}</a>
|
||||
{{else}}
|
||||
<span class='ipsType_light'>0</span>
|
||||
{{endif}}
|
||||
/
|
||||
{{if $unapprovedContent['posts']}}
|
||||
<a href='{$forum->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'topic_type' => 'queued_posts' ) )->csrf()}' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$forum->queued_posts"}' class='ipsType_blendLinks'>{$unapprovedContent['posts']}</a>
|
||||
<a href='{$forum->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'topic_type' => 'queued_posts' ) )->csrf()}' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$unapprovedContent['posts']"}' class='ipsType_blendLinks'>{$unapprovedContent['posts']}</a>
|
||||
{{else}}
|
||||
<span class='ipsType_light'>0</span>
|
||||
{{endif}}
|
||||
@@ -1220,8 +1260,8 @@
|
||||
<ul class="ipsDataItem_lastPoster ipsDataItem_withPhoto">
|
||||
{{if $lastPost}}
|
||||
<li>{template="userPhoto" app="core" group="global" params="$lastPost['author'], 'tiny'"}</li>
|
||||
<li><a href="{$lastPost['topic_url']->setQueryString( 'do', 'getNewComment' )}" class='ipsType_break ipsContained' title='{$lastPost['topic_title']}'>{truncate="$lastPost['topic_title']" length="30"}</a></li>
|
||||
<li>{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"}</li>
|
||||
<li><a href="{$lastPost['topic_url']->setQueryString( 'do', 'getNewComment' )}" class='ipsType_break ipsContained' title='{$lastPost['topic_title']}'>{truncate="$lastPost['topic_title']" length="26"}</a></li>
|
||||
<li class='ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"}</li>
|
||||
<li class="ipsType_light"><a href='{$lastPost['topic_url']->setQueryString( 'do', 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'>{datetime="$lastPost['date']"}</a></li>
|
||||
{{else}}
|
||||
<li class='ipsType_light ipsResponsive_showDesktop'>{{if $forum->password}}{lang="no_forum_posts_password"}{{else}}{lang="no_forum_posts"}{{endif}}</li>
|
||||
@@ -1230,7 +1270,10 @@
|
||||
{{endif}}
|
||||
{{if $table and $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$forum->_id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $forum ) )"}" data-state=''>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$forum->_id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $forum ) )"}" data-state=''>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
@@ -1242,7 +1285,7 @@
|
||||
|
||||
{{if \IPS\Member::loggedIn()->member_id}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsResponsive_hideDesktop ipsResponsive_block ipsClearfix">
|
||||
{template="indexButtons" group="index" params=""}
|
||||
{template="indexButtons" group="index" app="forums" params=""}
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
@@ -1251,13 +1294,13 @@
|
||||
{{foreach \IPS\forums\Forum::roots() as $category}}
|
||||
{{if $category->can('view') && $category->hasChildren()}}
|
||||
<li data-categoryID='{$category->_id}' class='cForumRow ipsBox ipsSpacer_bottom'>
|
||||
<h2 class="ipsType_sectionTitle ipsType_reset ipsType_blendLinks cForumTitle">
|
||||
<a href='#' class='ipsPos_right ipsJS_show cForumToggle' data-action='toggleCategory' data-ipsTooltip title='{lang="toggle_this_category"}'></a>
|
||||
<h2 class="ipsType_sectionTitle ipsType_reset cForumTitle">
|
||||
<a href='#' class='ipsPos_right ipsJS_show ipsType_noUnderline cForumToggle' data-action='toggleCategory' data-ipsTooltip title='{lang="toggle_this_category"}'></a>
|
||||
<a href='{$category->url()}'>{$category->_title}</a>
|
||||
</h2>
|
||||
{{if theme.forum_layout === 'grid'}}
|
||||
<div class='ipsAreaBackground ipsPad' data-role="forums">
|
||||
<div class='ipsGrid ipsGrid_collapsePhone' data-ipsGrid data-ipsGrid-minItemSize='300' data-ipsGrid-maxItemSize='400' data-ipsGrid-equalHeights='row'>
|
||||
<div class='ipsGrid ipsGrid_collapsePhone' data-ipsGrid data-ipsGrid-minItemSize='250' data-ipsGrid-maxItemSize='500' data-ipsGrid-equalHeights='row'>
|
||||
{{foreach $category->children() as $forum}}
|
||||
{template="forumGridItem" group="index" app="forums" params="$forum"}
|
||||
{{endforeach}}
|
||||
@@ -1288,7 +1331,11 @@
|
||||
<option value=">" {{if isset( $value[0] ) and $value[0] == '>'}}selected{{endif}}>{lang="greater_than"}</option>
|
||||
<option value="<" {{if isset( $value[0] ) and $value[0] == '<'}}selected{{endif}}>{lang="less_than"}</option>
|
||||
</select>
|
||||
<input type="number" name="{$name}[1]" value="{{if isset( $value[1] )}}{$value[1]}{{endif}}" id='el{$name}_1' class="ipsField_short"> {lang="or"} <input type="checkbox" name="{$name}[2]" data-control="unlimited" {{if isset( $value[2] ) and $value[2]}}checked{{endif}}> <label for='el{$name}_1' class='ipsField_unlimited'>{{if in_array( $name, array( 'archive_topic_post', 'archive_topic_view', 'archive_topic_rating', 'archive_not_topic_post', 'archive_not_topic_view', 'archive_not_topic_rating' ) )}}{lang="no_restriction"}{{else}}{lang="any_time"}{{endif}}</label>]]></template>
|
||||
<input type="number" name="{$name}[1]" value="{{if isset( $value[1] )}}{$value[1]}{{endif}}" id='el{$name}_1' class="ipsField_short"> {lang="or"}
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="{$name}[2]" data-control="unlimited" {{if isset( $value[2] ) and $value[2]}}checked{{endif}}>
|
||||
<span></span>
|
||||
</span> <label for='el{$name}_1' class='ipsField_unlimited'>{{if in_array( $name, array( 'archive_topic_post', 'archive_topic_view', 'archive_topic_rating', 'archive_not_topic_post', 'archive_not_topic_view', 'archive_not_topic_rating' ) )}}{lang="no_restriction"}{{else}}{lang="any_time"}{{endif}}</label>]]></template>
|
||||
<template template_group="settings" template_name="archiveRules" template_data="$form, $totalTopics, $existingCount, $existingPercentage" template_location="admin" template_app="forums"><![CDATA[<div data-controller="forums.admin.settings.archiveRules">
|
||||
<div class="ipsPad ipsType_normal">{lang="archiving_blurb"}</div>
|
||||
<div data-ipsSticky data-ipsSticky-spacing='60' class="ipsPad_half ipsAreaBackground_reset ipsType_center">
|
||||
@@ -1305,17 +1352,25 @@
|
||||
</select>
|
||||
<input type="number" name="{$name}[1]" value="{{if isset( $value[1] )}}{$value[1]}{{endif}}" class="ipsField_short" min="0">
|
||||
<select name="{$name}[2]">
|
||||
<option value="d" {{if isset( $value[2] ) and $value[2] == 's'}}selected{{endif}}>{lang="days"}</option>
|
||||
<option value="d" {{if isset( $value[2] ) and $value[2] == 'd'}}selected{{endif}}>{lang="days"}</option>
|
||||
<option value="m" {{if isset( $value[2] ) and $value[2] == 'm'}}selected{{endif}}>{lang="months"}</option>
|
||||
<option value="y" {{if isset( $value[2] ) and $value[2] == 'y'}}selected{{endif}}>{lang="years"}</option>
|
||||
</select>
|
||||
{lang="ago"} {lang="or"} <input type="checkbox" name="{$name}[3]" id='el{$name}_3' data-control="unlimited" {{if isset( $value[3] ) and $value[3]}}checked{{endif}}> <label for='el{$name}_3' class='ipsField_unlimited'>{{if mb_strpos( $name, 'not' )}}{lang="no_restriction"}{{else}}{lang="any_time"}{{endif}}</label>]]></template>
|
||||
<template template_group="settings" template_name="popularNow" template_data="$name, $value" template_location="admin" template_app="forums"><![CDATA[<input type="number" name="{$name}[posts]" value="{$value['posts']}" class="ipsField_short"> {lang="posts_in_the_last"} <input type="number" name="{$name}[minutes]" value="{$value['minutes']}" class="ipsField_short"> {lang="minutes"} {lang="or"} <input type="checkbox" name="{$name}[never]" id='el{$name}_never' data-control="unlimited" {{if !$value['posts']}}checked{{endif}}> <label for='el{$name}_never' class='ipsField_unlimited'>{lang="never"}</label>]]></template>
|
||||
{lang="ago"} {lang="or"}
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="{$name}[3]" id='el{$name}_3' data-control="unlimited" {{if isset( $value[3] ) and $value[3]}}checked{{endif}}>
|
||||
<span></span>
|
||||
</span> <label for='el{$name}_3' class='ipsField_unlimited'>{{if mb_strpos( $name, 'not' )}}{lang="no_restriction"}{{else}}{lang="any_time"}{{endif}}</label>]]></template>
|
||||
<template template_group="settings" template_name="popularNow" template_data="$name, $value" template_location="admin" template_app="forums"><![CDATA[<input type="number" name="{$name}[posts]" value="{$value['posts']}" class="ipsField_short"> {lang="posts_in_the_last"} <input type="number" name="{$name}[minutes]" value="{$value['minutes']}" class="ipsField_short"> {lang="minutes"} {lang="or"}
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="{$name}[never]" id='el{$name}_never' data-control="unlimited" {{if !$value['posts']}}checked{{endif}}>
|
||||
<span></span>
|
||||
</span> <label for='el{$name}_never' class='ipsField_unlimited'>{lang="never"}</label>]]></template>
|
||||
<template template_group="submit" template_name="createTopic" template_data="$form, $forum, $title" template_location="front" template_app="forums"><![CDATA[
|
||||
{template="pageHeader" if="!\IPS\Request::i()->isAjax()" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack( $title )"}
|
||||
|
||||
{$form|raw}]]></template>
|
||||
<template template_group="submit" template_name="createTopicForm" template_data="$forum, $hasModOptions, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL, $errorTabs=array()" template_location="front" template_app="forums"><![CDATA[{{$modOptions = array( 'topic_create_state', 'create_topic_locked', 'create_topic_pinned', 'create_topic_hidden', 'create_topic_featured', 'topic_open_time', 'topic_close_time');}}
|
||||
<template template_group="submit" template_name="createTopicForm" template_data="$forum, $hasModOptions, $topic, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL, $errorTabs=array()" template_location="front" template_app="forums"><![CDATA[{{$modOptions = array( 'topic_create_state', 'create_topic_locked', 'create_topic_pinned', 'create_topic_hidden', 'create_topic_featured', 'topic_open_time', 'topic_close_time');}}
|
||||
|
||||
<form accept-charset='utf-8' class="ipsForm {$class}" action="{$action}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}} data-ipsForm>
|
||||
<input type="hidden" name="{$id}_submitted" value="1">
|
||||
@@ -1326,6 +1381,10 @@
|
||||
<input type="hidden" name="MAX_FILE_SIZE" value="{$uploadField}">
|
||||
<input type="hidden" name="plupload" value="{expression="md5( uniqid() )"}">
|
||||
{{endif}}
|
||||
|
||||
{{if $form->error}}
|
||||
<p class="ipsMessage ipsMessage_error">{$form->error}</p>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsBox'>
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="topic_details"}</h2>
|
||||
@@ -1396,7 +1455,7 @@
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsAreaBackground ipsPad ipsType_center'>
|
||||
<a href="{$forum->url()}" class="ipsButton ipsButton_link ipsButton ipsButton_link">{lang="cancel"}</a>
|
||||
<a href="{{if !is_null($topic)}}{$topic->url()}{{else}}{$forum->url()}{{endif}}" class="ipsButton ipsButton_link ipsButton ipsButton_link">{lang="cancel"}</a>
|
||||
<button type='submit' class='ipsButton ipsButton_medium ipsButton_primary' accesskey="s" role="button">{{if $forum->forums_bitoptions['bw_enable_answers']}}{lang="submit_question"}{{else}}{lang="submit_topic"}{{endif}}</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1432,19 +1491,27 @@
|
||||
</div>]]></template>
|
||||
<template template_group="topics" template_name="post" template_data="$item, $comment, $editorName, $app, $type, $class=''" template_location="front" template_app="forums"><![CDATA[{{$idField = $comment::$databaseColumnId;}}
|
||||
<div id='comment-{$comment->$idField}_wrap' data-controller='core.front.core.comment' data-commentApp='{$app}' data-commentType='{$type}' data-commentID="{$comment->$idField}" data-quoteData='{expression="json_encode( array('userid' => $comment->author()->member_id, 'username' => $comment->author()->name, 'timestamp' => $comment->mapped('date'), 'contentapp' => $comment::$application, 'contenttype' => $type, 'contentid' => $item->tid, 'contentclass' => $class, 'contentcommentid' => $comment->$idField) )"}' class='ipsComment_content ipsType_medium {{if $comment->hidden()}}ipsModerated{{endif}} ipsFaded_withHover'>
|
||||
{{if settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_post"}'><i class='fa fa-heart'></i></strong>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsComment_meta ipsType_light'>
|
||||
<p class='ipsPos_right ipsType_reset ipsType_blendLinks ipsFaded ipsFaded_more'>
|
||||
{{if \IPS\Member::loggedIn()->modPermission('can_use_ip_tools') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) )}}
|
||||
<span class='ipsResponsive_hidePhone'>(<a href="{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$comment->ip_address" seoTemplate="modcp_ip_tools"}">{lang="ip_prefix" sprintf="$comment->ip_address"}</a>) ·</span>
|
||||
{{endif}}
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->pid ) )}' data-ipsTooltip title='{lang="share_this_post"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elSharePost_{$comment->pid}'><i class='fa fa-share-alt'></i></a>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' data-ipsTooltip title='{lang="share_this_post"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elSharePost_{$comment->$idField}' data-role='shareComment'><i class='fa fa-share-alt'></i></a>
|
||||
{{if count( $item->commentMultimodActions() ) and !$comment->mapped('first')}}
|
||||
· <input type="checkbox" name="multimod[{$comment->$idField}]" value="1" data-role="moderation" data-actions="{{if $comment->canSplit()}}split merge{{endif}} {{if $comment->hidden() === -1 AND $comment->canUnhide()}}unhide{{elseif $comment->hidden() === 1 AND $comment->canUnhide()}}approve{{elseif $comment->canHide()}}hide{{endif}} {{if $comment->canDelete()}}delete{{endif}}" data-state='{{if $comment->tableStates()}}{$comment->tableStates()}{{endif}}'>
|
||||
·
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="multimod[{$comment->$idField}]" value="1" data-role="moderation" data-actions="{{if $comment->canSplit()}}split merge{{endif}} {{if $comment->hidden() === -1 AND $comment->canUnhide()}}unhide{{elseif $comment->hidden() === 1 AND $comment->canUnhide()}}approve{{elseif $comment->canHide()}}hide{{endif}} {{if $comment->canDelete()}}delete{{endif}}" data-state='{{if $comment->tableStates()}}{$comment->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
|
||||
<p class='ipsType_reset'>
|
||||
{$comment->dateLine()|raw}
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a>
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
@@ -1462,11 +1529,7 @@
|
||||
{{endif}}
|
||||
|
||||
|
||||
<div class='cPost_contentWrap ipsPad'>
|
||||
{{if settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_post"}'><i class='fa fa-star'></i></strong>
|
||||
{{endif}}
|
||||
|
||||
<div class='cPost_contentWrap ipsPad'>
|
||||
<div data-role='commentContent' itemprop='text' class='ipsType_normal ipsType_richText ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{$comment->content()|raw}
|
||||
|
||||
@@ -1584,7 +1647,7 @@
|
||||
{{if $item->isQuestion() and !$comment->new_topic}}
|
||||
{template="postRating" group="topics" app="forums" params="$item, $comment, $votes"}
|
||||
{{endif}}
|
||||
<aside class='ipsComment_author cAuthorPane ipsAreaBackground_light ipsColumn ipsColumn_medium'>
|
||||
<aside class='ipsComment_author cAuthorPane ipsColumn ipsColumn_medium'>
|
||||
<h3 class='ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break' itemprop="creator" itemscope itemtype="http://schema.org/Person"><strong itemprop="name">{$comment->author()->link( $comment->warningRef() )|raw}</strong> <span class='ipsResponsive_showPhone ipsResponsive_inline'> {template="reputationBadge" group="global" app="core" params="$comment->author()"}</span></h3>
|
||||
<ul class='cAuthorPane_info ipsList_reset'>
|
||||
{{if $comment->author()->member_title && $comment->author()->member_id}}
|
||||
@@ -1620,7 +1683,7 @@
|
||||
</div>
|
||||
</article>]]></template>
|
||||
<template template_group="topics" template_name="postRating" template_data="$item, $comment, $votes=array()" template_location="front" template_app="forums"><![CDATA[{{$idField = $comment::$databaseColumnId;}}
|
||||
<div class='cRatingColumn {{if $comment->post_bwoptions['best_answer']}}cRatingColumn_on{{else}}ipsAreaBackground_light{{endif}} {{if isset( $votes[ $comment->$idField ] ) && $votes[ $comment->$idField ] === 1}}cRatingColumn_up{{elseif isset( $votes[ $comment->$idField ] ) && $votes[ $comment->$idField ] === -1}}cRatingColumn_down{{endif}} ipsColumn ipsColumn_narrow ipsType_center' data-controller='forums.front.topic.answers'>
|
||||
<div class='cRatingColumn {{if $comment->post_bwoptions['best_answer']}}cRatingColumn_on{{else}}ipsAreaBackground{{endif}} {{if isset( $votes[ $comment->$idField ] ) && $votes[ $comment->$idField ] === 1}}cRatingColumn_up{{elseif isset( $votes[ $comment->$idField ] ) && $votes[ $comment->$idField ] === -1}}cRatingColumn_down{{endif}} ipsColumn ipsColumn_narrow ipsType_center' data-controller='forums.front.topic.answers'>
|
||||
<meta itemprop="upvoteCount" content="{$comment->post_field_int}">
|
||||
|
||||
<ul class='ipsList_reset'>
|
||||
@@ -1721,7 +1784,7 @@
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
{{endif}}
|
||||
<div class="ipsPageHeader ipsClearfix">
|
||||
{{if !$topic->isArchived()}}
|
||||
{{if !$topic->isArchived() and !$topic->container()->password}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
||||
{template="follow" app="core" group="global" params="'forums', 'topic', $topic->tid, $topic->followersCount()"}
|
||||
</div>
|
||||
@@ -1730,14 +1793,6 @@
|
||||
{template="userPhoto" group="global" app="core" params="$topic->author(), 'small', $topic->warningRef()"}
|
||||
<div>
|
||||
<h1 class='ipsType_pageTitle'>
|
||||
{{if $topic->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$topic->prefix( TRUE ), $topic->prefix()"}
|
||||
{{endif}}
|
||||
{{if $topic->isQuestion()}}
|
||||
<span itemprop="name">{wordbreak="$topic->title"}</span>
|
||||
{{else}}
|
||||
{wordbreak="$topic->title"}
|
||||
{{endif}}
|
||||
{{if $topic->mapped('pinned') || $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1}}
|
||||
{{if $topic->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$topic->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
@@ -1750,13 +1805,21 @@
|
||||
{{if $topic->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
{{if $topic->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$topic->prefix( TRUE ), $topic->prefix()"}
|
||||
{{endif}}
|
||||
{{if $topic->isQuestion()}}
|
||||
<span itemprop="name">{wordbreak="$topic->title"}</span>
|
||||
{{else}}
|
||||
{wordbreak="$topic->title"}
|
||||
{{endif}}
|
||||
</h1>
|
||||
<p class='ipsType_reset ipsType_blendLinks'>
|
||||
<p class='ipsType_reset ipsType_blendLinks {{if count( $topic->tags() )}}ipsSpacer_bottom ipsSpacer_half{{endif}}'>
|
||||
<span class='ipsType_normal'>{{if $topic->isQuestion()}}{lang="ask_byline_no_date" htmlsprintf="$topic->author()->link( $topic->warningRef() )"}{{else}}{lang="topic_started_by" htmlsprintf="$topic->author()->link( $topic->warningRef() )"}{{endif}}</span>, <span class='ipsType_light ipsType_noBreak'>{datetime="$topic->start_date"}</span><br>
|
||||
</p>
|
||||
{{if count( $topic->tags() )}}
|
||||
<br>
|
||||
{template="tags" group="global" app="core" params="$topic->tags()"}
|
||||
{{endif}}
|
||||
</div>
|
||||
@@ -1782,7 +1845,7 @@
|
||||
|
||||
<div class='ipsClearfix'>
|
||||
{{if $topic->container()->forum_allow_rating}}
|
||||
<div class='ipsAreaBackground ipsAreaBackground_rounded ipsPad_half ipsPos_left ipsType_light ipsResponsive_hidePhone'>
|
||||
<div class='ipsPad_half ipsPos_left ipsType_light ipsResponsive_hidePhone'>
|
||||
{{if $topic->canRate()}}
|
||||
<p class='ipsType_reset ipsType_center ipsType_small'>
|
||||
{{if $topic->isQuestion()}}{lang="rate_this_question"}{{else}}{lang="rate_this_topic"}{{endif}}
|
||||
@@ -1813,7 +1876,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()}}
|
||||
{{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 \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
|
||||
<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'>
|
||||
@@ -1872,10 +1935,12 @@
|
||||
{$poll|raw}
|
||||
<br>
|
||||
{{endif}}
|
||||
<div data-controller='core.front.core.commentFeed,forums.front.topic.view' data-baseURL='{$topic->url()}' {{if $topic->isLastPage() and !$topic->isQuestion()}}data-lastPage{{endif}} data-feedID='topic-{$topic->tid}' class='cTopic ipsClear ipsSpacer_top'>
|
||||
<div data-controller='core.front.core.commentFeed,forums.front.topic.view' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-baseURL='{$topic->url()}' {{if $topic->isLastPage() and !$topic->isQuestion()}}data-lastPage{{endif}} data-feedID='topic-{$topic->tid}' class='cTopic ipsClear ipsSpacer_top'>
|
||||
{{if $topic->isQuestion() && $question}}
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="question_title"}</h2>
|
||||
{template="postContainer" group="topics" app="forums" params="$topic, $question, $votes, 'cPostQuestion'"}
|
||||
<div class='ipsAreaBackground_light ipsPad'>
|
||||
{template="postContainer" group="topics" app="forums" params="$topic, $question, $votes, 'cPostQuestion'"}
|
||||
</div>
|
||||
|
||||
<div class='ipsBox ipsSpacer_top'>
|
||||
<h2 class='ipsType_sectionTitle ipsType_reset ipsType_medium'><meta itemprop="answerCount" content="{expression="$topic->posts - 1"}">{lang="answer_count" pluralize="( $topic->posts ) ? $topic->posts - 1 : 0"}</h2>
|
||||
@@ -1901,7 +1966,7 @@
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
<div data-role='commentFeed' data-controller='core.front.core.moderation'>
|
||||
<div data-role='commentFeed' data-controller='core.front.core.moderation' class='ipsAreaBackground_light ipsPad'>
|
||||
<form action="{$topic->url()->csrf()->setQueryString( 'do', 'multimodComment' )}" method="post" data-ipsPageAction data-role='moderationTools'>
|
||||
{{$postCount=0; $timeLastRead = $topic->timeLastRead(); $lined = FALSE;}}
|
||||
{{if count( $comments )}}
|
||||
@@ -1957,7 +2022,7 @@
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{{if !$topic->isArchived()}}
|
||||
{{if !$topic->isArchived() and !$topic->container()->password}}
|
||||
<div class='ipsResponsive_noFloat ipsResponsive_showPhone ipsResponsive_block ipsSpacer_top'>
|
||||
{template="follow" app="core" group="global" params="'forums', 'topic', $topic->tid, $topic->followersCount()"}
|
||||
</div>
|
||||
@@ -1968,6 +2033,62 @@
|
||||
</div>
|
||||
{{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()}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_top ipsResponsive_hidePhone">
|
||||
<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'>
|
||||
{{if $topic->canFeature()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'feature' ) )}'>{lang="feature"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnfeature()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unfeature' ) )}' >{lang="unfeature"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canPin()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'pin' ) )}' >{lang="pin"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canUnpin()}}
|
||||
<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()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{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>
|
||||
{{endif}}
|
||||
{{if $topic->canLock()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' >{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()->csrf()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}" >{lang="move"}</a></li>
|
||||
{{endif}}
|
||||
{{if $topic->canMerge()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'merge' ) )}' data-ipsDialog data-ipsDialog-size='narrow' 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>
|
||||
{{endif}}
|
||||
{{if $topic->canDelete()}}
|
||||
<li class='ipsMenu_item'><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm >{lang="delete"}</a></li>
|
||||
{{endif}}
|
||||
{{if !$topic->isArchived() and $topic->availableSavedActions()}}
|
||||
<li class='ipsMenu_sep'><hr></li>
|
||||
{{foreach $topic->availableSavedActions() as $action}}
|
||||
<li class="ipsMenu_item"><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'savedAction', 'action' => $action->_id ) )}' data-confirm>{$action->_title}</a></li>
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
{{if \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
|
||||
<li class='ipsMenu_sep'><hr></li>
|
||||
<li class="ipsMenu_item"><a href='{$topic->url()->csrf()->setQueryString( array( 'do' => 'modLog' ) )}' data-ipsDialog data-ipsDialog-title='{lang="moderation_history"}'>{lang="moderation_history"}</a></li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsGrid ipsGrid_collapsePhone ipsPager ipsClearfix ipsSpacer_top'>
|
||||
<div class="ipsGrid_span6 ipsType_left ipsPager_prev">
|
||||
<a href="{$topic->container()->url()}" title="{lang="go_to_forum" sprintf="$topic->container()->_title"}" rel="up">
|
||||
@@ -2038,7 +2159,7 @@
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class="ipsCommentCount ipsPos_right {{if ( $topic->posts - 1 ) === 0}}ipsFaded{{endif}}" data-ipsTooltip title='{lang="replies_number" pluralize="$topic->posts - 1"}'>{expression="$topic->posts - 1"}</div>
|
||||
<a href="{$topic->url()->setQueryString( 'do', 'getLastComment' )}" title='{lang="view_this_topic" sprintf="$topic->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$topic->title"}</a>
|
||||
<a href="{$topic->url()->setQueryString( 'do', 'getNewComment' )}" title='{lang="view_this_topic" sprintf="$topic->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$topic->title"}</a>
|
||||
{{if $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1}}
|
||||
<span>
|
||||
{{if $topic->hidden() === -1}}
|
||||
@@ -2067,6 +2188,92 @@
|
||||
</ul>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endif}}]]></template>
|
||||
<template template_group="widgets" template_name="poll" template_data="$topic, $poll, $orientation='vertical'" template_location="front" template_app="forums">{$poll|raw}
|
||||
</template>
|
||||
<template template_group="widgets" template_name="pollFormWidget" template_data="$url, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" template_location="front" template_app="forums"><![CDATA[<form accept-charset='utf-8' class="ipsForm {$class}" action="{$url->setQueryString( 'do', 'widgetPoll' )}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}} {{foreach $attributes as $k => $v}}{$k}="{$v}"{{endforeach}} data-ipsForm>
|
||||
<input type="hidden" name="{$id}_submitted" value="1">
|
||||
{{foreach $hiddenValues as $k => $v}}
|
||||
<input type="hidden" name="{$k}" value="{$v}">
|
||||
{{endforeach}}
|
||||
{{foreach $elements as $collection}}
|
||||
<ol class='ipsList_reset cPollList cPollList_questions'>
|
||||
{{foreach $collection as $idx => $input}}
|
||||
<li class='ipsFieldRow ipsFieldRow_noLabel'>
|
||||
<h4 class='ipsType_normal ipsType_reset'>{$idx}. {wordbreak="$input->label"}</h4>
|
||||
{{if !$input->options['multiple']}}
|
||||
{template="radio" app="core" location="global" group="forms" params="$input->name, $input->value, $input->required, $input->options['options'], $input->options['disabled'], '', $input->options['disabled']"}
|
||||
{{else}}
|
||||
{template="checkboxset" app="core" location="global" group="forms" params="$input->name, $input->value, $input->required, $input->options['options'], $input->options['disabled'], $input->options['toggles'], isset( $input->options['descriptions'] ) ? $input->options['descriptions'] : NULL, $input->options['userSuppliedInput']"}
|
||||
{{endif}}
|
||||
{{if $input->error}}
|
||||
<br>
|
||||
<span class="ipsType_warning">{lang="$input->error"}</span>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ol>
|
||||
<br>
|
||||
<a class='ipsType_light ipsType_break' href="{$url}">{lang="poll_view_topic"}</a>
|
||||
<br>
|
||||
{{endforeach}}
|
||||
<hr class='ipsHr'>
|
||||
<ul class="ipsPos_left ipsToolList ipsToolList_horizontal ipsList_reset ipsClearfix">
|
||||
{{foreach $actionButtons as $button}}
|
||||
<li>{$button|raw}</li>
|
||||
{{endforeach}}
|
||||
<li><a class='ipsButton ipsButton_link' title='{lang="show_results_title"}' href="{$url->setQueryString( '_poll', 'results' )}" {{if !settings.allow_result_view}}data-viewResults-confirm="{lang="warn_allow_result_view"}"{{endif}} data-action='viewResults'>{lang="show_results"}</a></li>
|
||||
</ul>
|
||||
</form>]]></template>
|
||||
<template template_group="widgets" template_name="pollWidget" template_data="$poll, $url" template_location="front" template_app="forums"><![CDATA[{{if !isset( \IPS\Request::i()->fetchPoll )}}
|
||||
<section class='ipsBox' data-controller='core.front.core.poll'>
|
||||
{{endif}}
|
||||
{{if $poll->canVote() and request._poll != 'results' and ( !$poll->getVote() or request._poll == 'form') and $pollForm = $poll->buildForm()}}
|
||||
<h3 class='ipsWidget_title ipsType_reset'>
|
||||
{wordbreak="$poll->poll_question"}
|
||||
<span class='ipsType_small ipsType_light'>{lang="poll_num_votes" pluralize="$poll->votes"}</span>
|
||||
</h2>
|
||||
<div class='ipsPad_half ipsWidget_inner ipsClearfix' data-role='pollContents'>
|
||||
{$pollForm->customTemplate( array( \IPS\Theme::i()->getTemplate( 'widgets', 'forums', 'front' ), 'pollFormWidget' ), $url )|raw}
|
||||
</div>
|
||||
{{elseif !$poll->canVote() or $poll->getVote() or ( request._poll == 'results' and settings.allow_result_view )}}
|
||||
<h3 class='ipsWidget_title ipsType_reset'>
|
||||
{wordbreak="$poll->poll_question"}
|
||||
<span class='ipsType_small ipsType_light'>{lang="poll_num_votes" pluralize="$poll->votes"}</span>
|
||||
</h3>
|
||||
<div class='ipsPad_half ipsWidget_inner ipsClearfix' data-role='pollContents'>
|
||||
<ol class='ipsList_reset cPollList'>
|
||||
{{foreach $poll->choices as $questionId => $question}}
|
||||
<li>
|
||||
<h3 class='ipsType_normal ipsType_reset'>{$questionId}. {wordbreak="$question['question']"}</h3>
|
||||
<br>
|
||||
<ul class='ipsList_reset cPollList_choices'>
|
||||
{{foreach $question['choice'] as $k => $choice}}
|
||||
<li class='ipsGrid ipsGrid_collapsePhone'>
|
||||
<div class='ipsGrid_span4 ipsType_right ipsType_richText ipsType_small ipsType_break'>
|
||||
{$choice|raw}
|
||||
</div>
|
||||
<div class='ipsGrid_span7'>
|
||||
<span class='cPollVoteBar'>
|
||||
<span style='width: {{if $poll->votes}}{expression="intval( ( $question['votes'][ $k ] / $poll->votes ) * 100 )"}{{else}}0{{endif}}%' data-votes='{{if $poll->votes}}{expression="round( ( $question['votes'][ $k ] / $poll->votes ) * 100, 2 )"}{{else}}0{{endif}}%' {{if $poll->votes && intval( ( $question['votes'][ $k ] / $poll->votes ) * 100 ) > 30}}class='cPollVoteBar_inside'{{endif}}></span>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ol>
|
||||
{{if $poll->canVote() || !member.member_id}}
|
||||
<hr class='ipsHr'>
|
||||
{{if $poll->canVote()}}<a href="{$url->setQueryString( '_poll', 'form' )}" title='{lang="show_vote_options"}' class='ipsButton ipsButton_verySmall ipsButton_light' data-action='viewResults'><i class='fa fa-caret-left'></i> {lang="show_vote_options"}</a>{{endif}}
|
||||
{{if !member.member_id}}{lang="poll_guest" htmlsprintf="\IPS\Http\Url::internal( 'app=core&module=system&controller=login', 'front', 'login' ), \IPS\Http\Url::internal( 'app=core&module=system&controller=register', 'front', 'register' )"}{{endif}}
|
||||
{{endif}}
|
||||
<a class='ipsPos_right ipsType_light ipsType_small ipsType_break' href="{$url}">{lang="poll_view_topic"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if !isset( \IPS\Request::i()->fetchPoll )}}
|
||||
</section>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="widgets" template_name="postFeed" template_data="$comments, $title, $orientation='vertical'" template_location="front" template_app="forums"><![CDATA[{{if !empty( $comments ) }}
|
||||
<h3 class='ipsType_reset ipsWidget_title'>{$title}</h3>
|
||||
@@ -2079,9 +2286,9 @@
|
||||
{template="userPhoto" group="global" app="core" params="$comment->author(), 'tiny'"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<a href="{$comment->url()}" title='{lang="view_this_topic" sprintf="$comment->item()->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->title"}</a><br>
|
||||
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · {$comment->dateLine()|raw}</span>
|
||||
<div class='ipsType_small ipsType_textBlock ipsType_richText ipsType_break' data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='{{if $orientation == 'vertical'}}6 lines{{else}}2 lines{{endif}}'>
|
||||
<a href="{$comment->url()}" title='{lang="view_this_topic" sprintf="$comment->item()->title"}' class='ipsType_medium ipsType_break'>{wordbreak="$comment->item()->title"}</a><br>
|
||||
<p class='ipsType_reset ipsType_light ipsType_medium ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a></p>
|
||||
<div class='ipsType_medium ipsType_textBlock ipsType_richText ipsType_break ipsContained ipsSpacer_top ipsSpacer_half' data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='{{if $orientation == 'vertical'}}6 lines{{else}}2 lines{{endif}}'>
|
||||
{$comment->truncated( true )|raw}
|
||||
</div>
|
||||
</div>
|
||||
@@ -2093,55 +2300,54 @@
|
||||
<div class='ipsWidget_inner'>
|
||||
<ul class='ipsDataList'>
|
||||
{{foreach $comments as $comment}}
|
||||
<div class='ipsComment_header ipsPhotoPanel ipsPhotoPanel_mini'>
|
||||
{template="userPhoto" app="core" group="global" params="$comment->author(), 'mini', $comment->warningRef()"}
|
||||
<div>
|
||||
<p class='ipsPos_right ipsType_reset ipsType_blendLinks'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' data-ipsTooltip title='{lang="share_this_comment"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$comment->id}'><i class='fa fa-share-alt'></i></a>
|
||||
</p>
|
||||
<h3 class='ipsComment_author ipsType_blendLinks'>
|
||||
<strong class='ipsType_normal'>{template="userLink" app="core" group="global" params="$comment->author(), $comment->warningRef()"}</strong>
|
||||
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
|
||||
</h3>
|
||||
<p class='ipsComment_meta ipsType_light ipsType_medium'>
|
||||
{$comment->dateLine()|raw}
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
{{if $comment->hidden()}}
|
||||
· {$comment->hiddenBlurb()}
|
||||
{{endif}}
|
||||
{{if $comment instanceof \IPS\Content\ReportCenter and !\IPS\Member::loggedIn()->group['gbw_no_report'] and $comment->hidden() !== 1 }}
|
||||
· <a href='{$comment->url('report')}' data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="report_submit_success"}' data-ipsDialog-title="{lang="report"}" data-action='reportComment' title='{lang="report_content"}'>{lang="report"}</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
|
||||
{{if member.modPermission('mod_see_warn') and $comment->warning}}
|
||||
{template="commentWarned" group="global" app="core" params="$comment"}
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsPad'>
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_comment"}'><i class='fa fa-star'></i></strong>
|
||||
{{endif}}
|
||||
<a href="{$comment->url()}" title='{lang="view_this_topic" sprintf="$comment->item()->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->title"}</a><br>
|
||||
<div data-role='commentContent' class='ipsType_normal ipsType_richText ipsType_break ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
|
||||
<strong class='ipsType_medium ipsType_warning'><i class='fa fa-info-circle'></i> {lang="comment_awaiting_approval"}</strong>
|
||||
{{endif}}
|
||||
{$comment->content()|raw}
|
||||
|
||||
{{if $comment->editLine()}}
|
||||
{$comment->editLine()|raw}
|
||||
{{endif}}
|
||||
</div>
|
||||
<li class='ipsDataItem ipsClearfix'>
|
||||
<div class='ipsComment_header ipsPhotoPanel ipsPhotoPanel_mini'>
|
||||
{template="userPhoto" app="core" group="global" params="$comment->author(), 'mini', $comment->warningRef()"}
|
||||
<div>
|
||||
<p class='ipsPos_right ipsType_reset ipsType_blendLinks'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' data-ipsTooltip title='{lang="share_this_comment"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$comment->id}' data-role='shareComment'><i class='fa fa-share-alt'></i></a>
|
||||
</p>
|
||||
<h3 class='ipsComment_author ipsType_blendLinks'>
|
||||
<strong class='ipsType_normal'>{template="userLink" app="core" group="global" params="$comment->author(), $comment->warningRef()"}</strong>
|
||||
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
|
||||
</h3>
|
||||
<p class='ipsComment_meta ipsType_light ipsType_medium'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a>
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
{{if $comment->hidden()}}
|
||||
· {$comment->hiddenBlurb()}
|
||||
{{endif}}
|
||||
{{if $comment instanceof \IPS\Content\ReportCenter and !\IPS\Member::loggedIn()->group['gbw_no_report'] and $comment->hidden() !== 1 }}
|
||||
· <a href='{$comment->url('report')}' data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="report_submit_success"}' data-ipsDialog-title="{lang="report"}" data-action='reportComment' title='{lang="report_content"}'>{lang="report"}</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
|
||||
{{if $comment->hidden() !== 1 && $comment instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
||||
{template="reputation" group="global" app="core" params="$comment, 'ipsPos_right ipsResponsive_noFloat'"}
|
||||
{{endif}}
|
||||
</div>
|
||||
{{if member.modPermission('mod_see_warn') and $comment->warning}}
|
||||
{template="commentWarned" group="global" app="core" params="$comment"}
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsPad ipsClearfix'>
|
||||
<a href="{$comment->url()}" title='{lang="view_this_topic" sprintf="$comment->item()->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->title"}</a><br>
|
||||
<div data-role='commentContent' class='ipsType_normal ipsType_richText ipsType_break ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
|
||||
<strong class='ipsType_medium ipsType_warning'><i class='fa fa-info-circle'></i> {lang="comment_awaiting_approval"}</strong>
|
||||
{{endif}}
|
||||
{$comment->content()|raw}
|
||||
|
||||
{{if $comment->editLine()}}
|
||||
{$comment->editLine()|raw}
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $comment->hidden() !== 1 && $comment instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
||||
{template="reputation" group="global" app="core" params="$comment, 'ipsPos_right ipsResponsive_noFloat'"}
|
||||
{{endif}}
|
||||
</div>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -2161,7 +2367,6 @@
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class="ipsCommentCount ipsPos_right {{if ( $topic->posts - 1 ) === 0}}ipsFaded{{endif}}" data-ipsTooltip title='{lang="replies_number" pluralize="$topic->posts - 1"}'>{expression="$topic->posts - 1"}</div>
|
||||
<a href="{$topic->url()->setQueryString( 'do', 'getLastComment' )}" title='{lang="view_this_topic" sprintf="$topic->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$topic->title"}</a>
|
||||
{{if $topic->mapped('featured') || $topic->hidden() === -1 || $topic->hidden() === 1}}
|
||||
<span>
|
||||
{{if $topic->hidden() === -1}}
|
||||
@@ -2174,8 +2379,12 @@
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
<a href="{$topic->url()->setQueryString( 'do', 'getNewComment' )}" title='{lang="view_this_topic" sprintf="$topic->title"}' class='ipsDataItem_title ipsType_break'>{wordbreak="$topic->title"}</a>
|
||||
<br>
|
||||
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$topic->author()->link()"} · {lang="topic_started_date" htmlsprintf="\IPS\DateTime::ts( $topic->mapped('date') )->html()"}</span>
|
||||
<p class='ipsType_reset ipsType_medium ipsType_blendLinks'>
|
||||
<span>{lang="byline_nodate" htmlsprintf="$topic->author()->link()"}</span><br>
|
||||
<span class='ipsType_light'>{lang="topic_started_date" htmlsprintf="\IPS\DateTime::ts( $topic->mapped('date') )->html()"}</span>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
@@ -2238,10 +2447,8 @@
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
html[dir="ltr"] .cPost .ipsComment_content {
|
||||
html[dir] .cPost .ipsComment_content {
|
||||
padding-left: 7px;
|
||||
}
|
||||
html[dir="rtl"] .cPost .ipsComment_content {
|
||||
padding-right: 7px;
|
||||
}
|
||||
|
||||
@@ -2363,8 +2570,7 @@
|
||||
border-bottom: 1px solid rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
.cForumTopicTable .ipsDataItem_title,
|
||||
#elVNC_main .ipsDataItem_title {
|
||||
.cForumTopicTable .ipsDataItem_title {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
@@ -2415,7 +2621,7 @@ html[dir="rtl"] .cTopicList .ipsDataItem_icon {
|
||||
}
|
||||
|
||||
.cTopicList .ipsDataItem_main {
|
||||
padding: 10px;
|
||||
padding: 12px 10px;
|
||||
}
|
||||
|
||||
.cTopicHovercard .cTopicHovercard_container {
|
||||
@@ -2447,13 +2653,6 @@ html[dir="rtl"] .cTopicList .ipsDataItem_icon {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
html[dir="ltr"] .cRatingColumn {
|
||||
border-right: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
html[dir="rtl"] .cRatingColumn {
|
||||
border-left: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.cRatingColumn_on {
|
||||
background: #e4ecdd;
|
||||
}
|
||||
@@ -2555,11 +2754,11 @@ html[dir="rtl"] .cAnswerRate {
|
||||
}
|
||||
|
||||
.cBestAnswerIndicator_off {
|
||||
background: #e5e5e5;
|
||||
background: #d4d4d4;
|
||||
}
|
||||
|
||||
.cBestAnswerIndicator_off:hover {
|
||||
background: #d4d4d4;
|
||||
background: #c9c9c9;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -2579,8 +2778,8 @@ html[dir="rtl"] .cAnswerRate {
|
||||
background: {theme="moderated"};
|
||||
}
|
||||
|
||||
.cTopic .cPost:nth-of-type(1) {
|
||||
border-top: 0;
|
||||
.cTopic .cPost.ipsComment:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.cPost.cPostQuestion {
|
||||
@@ -2594,6 +2793,13 @@ html[dir="rtl"] .cPost .ipsComment_meta {
|
||||
padding: 15px 0px 10px 10px;
|
||||
}
|
||||
|
||||
html[dir="ltr"] .cPost.ipsComment_popular .ipsComment_meta {
|
||||
padding-right: 60px;
|
||||
}
|
||||
html[dir="rtl"] .cPost.ipsComment_popular .ipsComment_meta {
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
.cPost .ipsComment_controls {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -2635,11 +2841,12 @@ html[dir="rtl"] .cPost .ipsComment_content {
|
||||
display: block;
|
||||
/* http://community.invisionpower.com/4bugtrack/infopane-display-name-split-r1164/ */
|
||||
/*word-break: break-all;*/
|
||||
line-height: 1.1;
|
||||
line-height: 1.2;
|
||||
word-wrap: initial;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-moz-hyphens: initial;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.cAuthorPane_info .ipsRepBadge {
|
||||
|
||||
Reference in new issue
Block a user