|
|
|
@@ -424,312 +424,25 @@
|
|
|
|
|
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, $table->getPaginationKey()"}
|
|
|
|
|
</div>
|
|
|
|
|
</div>]]></template>
|
|
|
|
|
<template template_group="forums" template_name="popularQuestionRow" template_data="$question, $forum" template_location="front" template_app="forums"><![CDATA[<!-- v5 todo: Is this template file used? -->
|
|
|
|
|
<style>*{color: purple !important; }</style>
|
|
|
|
|
{{$iposted = $forum->contentPostedIn( null, array( $question->tid ) );}}
|
|
|
|
|
{{if !$question->mapped('moved_to')}}
|
|
|
|
|
<li class="ipsData__item cForumQuestion {{if $question->hidden()}}ipsModerated{{endif}}" {{if $question->unread()}}data-ips-unread{{endif}}>
|
|
|
|
|
<div class='ipsData__icon'>
|
|
|
|
|
{{if $question->topic_answered_pid}}
|
|
|
|
|
<span title='{lang="answered"}' class='cBestAnswerIndicator' data-ipsTooltip>
|
|
|
|
|
<i class='fa-solid fa-check'></i>
|
|
|
|
|
</span>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span title='{lang="awaiting_answer"}' class='cBestAnswerIndicator cBestAnswerIndicator_off' data-ipsTooltip>
|
|
|
|
|
<i class='fa-solid fa-question'></i>
|
|
|
|
|
</span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class='ipsData__main'>
|
|
|
|
|
<h4 class='ipsData__title _container'>
|
|
|
|
|
<span class=''>
|
|
|
|
|
{{if $question->locked()}}
|
|
|
|
|
<i class='fa-solid fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{if $question->unread()}}
|
|
|
|
|
<a href='{$question->url( 'getNewComment' )}' title='{lang="first_unread_post"}' data-ipsTooltip class='ipsIndicator {{if \in_array( $question->tid, $iposted )}}ipsIndicator--participated{{endif}}' data-ips-hook="unreadIcon"></a>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class='ipsIndicator ipsIndicator--read {{if \in_array( $question->tid, $iposted )}}ipsIndicator--participated{{endif}}'></span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
<span>
|
|
|
|
|
{{foreach $question->badges() as $badge}}{$badge|raw}{{endforeach}}
|
|
|
|
|
</span>
|
|
|
|
|
{{if $question->prefix()}}
|
|
|
|
|
{template="prefix" group="global" app="core" params="$question->prefix( TRUE ), $question->prefix()"}
|
|
|
|
|
{{endif}}
|
|
|
|
|
<a href='{$question->url()}'>
|
|
|
|
|
{{if $question->mapped('title')}}{$question->mapped('title')}{{else}}<em class="i-color_soft">{lang="content_deleted"}</em>{{endif}}
|
|
|
|
|
</a>
|
|
|
|
|
</span>
|
|
|
|
|
</h4>
|
|
|
|
|
<div class='ipsData__meta'>
|
|
|
|
|
<p>{lang="ask_byline" htmlsprintf="$question->author()->link( NULL, NULL, $question->isAnonymous() ), \IPS\DateTime::ts( $question->start_date )->html( false )"}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{if \count( $question->tags() )}}
|
|
|
|
|
<p>{template="tags" group="global" app="core" params="$question->tags()"}</p>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class='i-basis_80 i-text-align_center cForumQuestion_stat'>
|
|
|
|
|
<span>{{if $question->question_rating}}{$question->question_rating}{{else}}0{{endif}}</span>
|
|
|
|
|
<span class='i-color_soft'>{lang="votes_no_number" pluralize="$question->question_rating"}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class='i-basis_80 i-text-align_center cForumQuestion_stat'>
|
|
|
|
|
{{foreach $question->stats(FALSE) AS $k => $v}}
|
|
|
|
|
{{if $k == 'forums_comments' OR $k == 'answers_no_number'}}
|
|
|
|
|
<span>{number="$v"}</span>
|
|
|
|
|
<span class='i-color_soft'>{lang="answers_no_number" pluralize="$v"}</span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</div>
|
|
|
|
|
</li>
|
|
|
|
|
{{endif}}]]></template>
|
|
|
|
|
<template template_group="forums" template_name="qaForum" template_data="$table, $popularQuestions, $newQuestions, $featuredTopic, $forum" template_location="front" template_app="forums"><![CDATA[
|
|
|
|
|
{{if $popularQuestions && $newQuestions}}
|
|
|
|
|
<div class='ipsBox i-margin-bottom_4'>
|
|
|
|
|
<h2 class='ipsBox__header ipsHide'>{lang="explore_questions_title"}</h2>
|
|
|
|
|
<div class="ipsTabs" id="elQuestionsTabs" data-ipsTabBar data-ipsTabBar-contentarea="#elQuestionsTabsContent">
|
|
|
|
|
<ul role="tablist">
|
|
|
|
|
<li>
|
|
|
|
|
<a href="#elPopularQuestions" role="tab" id="elPopularQuestions" class="ipsTabs__tab {{if \count( $popularQuestions ) || !\count( $popularQuestions ) && !\count( $newQuestions )}}ipsTabs__tab--active{{endif}}" role="tab" aria-selected="{{if \count( $popularQuestions ) || !\count( $popularQuestions ) && !\count( $newQuestions )}}true{{else}}false{{endif}}">
|
|
|
|
|
{lang="popular_questions_title"}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="#elNewQuestions" id="elNewQuestions" role="tab" class="ipsTabs__tab {{if !\count( $popularQuestions ) && \count( $newQuestions )}}ipsTabs__tab--active{{endif}}" role="tab" aria-selected="{{if !\count( $popularQuestions ) && \count( $newQuestions )}}true{{else}}false{{endif}}">
|
|
|
|
|
{{if \IPS\Settings::i()->forums_new_questions}}{lang="new_questions_title_no_answer"}{{else}}{lang="new_questions_title_no_best"}{{endif}}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
{template="tabScrollers" app="core" group="global" location="global"}
|
|
|
|
|
</div>
|
|
|
|
|
<section id='elQuestionsTabsContent'>
|
|
|
|
|
<div id="ipsTabs_elQuestionsTabs_elPopularQuestions_panel" class="ipsTabs__panel" aria-labelledby="elPopularQuestions">
|
|
|
|
|
{{if \count( $popularQuestions )}}
|
|
|
|
|
<!-- v5 todo: I think this entire template file is no longer needed.. -->
|
|
|
|
|
<i-data>
|
|
|
|
|
<ol class="ipsData ipsData--table cForumTopicTable cForumQuestions cTopicList" id='elTable_popularQuestions' data-role="tableRows">
|
|
|
|
|
{{foreach $popularQuestions as $question}}
|
|
|
|
|
{template="popularQuestionRow" params="$question, $forum" group="forums"}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ol>
|
|
|
|
|
</i-data>
|
|
|
|
|
{{else}}
|
|
|
|
|
<div class='i-text-align_center i-color_soft i-padding_3'>
|
|
|
|
|
<p class='i-font-size_2'>{lang="no_popular_questions"}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
<div id="ipsTabs_elQuestionsTabs_elNewQuestions_panel" class="ipsTabs__panel" aria-labelledby="elNewQuestions">
|
|
|
|
|
{{if \count( $newQuestions )}}
|
|
|
|
|
<i-data>
|
|
|
|
|
<ol class="ipsData ipsData--table cForumTopicTable cForumQuestions cTopicList" id='elTable_newQuestions' data-role="tableRows">
|
|
|
|
|
{{foreach $newQuestions as $question}}
|
|
|
|
|
{template="popularQuestionRow" params="$question, $forum" group="forums"}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ol>
|
|
|
|
|
</i-data>
|
|
|
|
|
{{else}}
|
|
|
|
|
<div class='i-text-align_center i-color_soft i-padding_3'>
|
|
|
|
|
<p class='i-font-size_2'>{lang="no_new_questions"}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
</div>
|
|
|
|
|
{{else}}
|
|
|
|
|
{{if $popularQuestions}}
|
|
|
|
|
<section class='ipsBox i-margin-bottom_4'>
|
|
|
|
|
<h2 class='ipsBox__header'>{lang="popular_questions_title"}</h2>
|
|
|
|
|
{{if \count( $popularQuestions )}}
|
|
|
|
|
<i-data>
|
|
|
|
|
<ol class="ipsData ipsData--table cForumTopicTable" id='elTable_' data-role="tableRows">
|
|
|
|
|
{{foreach $popularQuestions as $question}}
|
|
|
|
|
{template="popularQuestionRow" params="$question, $forum" group="forums"}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ol>
|
|
|
|
|
</i-data>
|
|
|
|
|
{{else}}
|
|
|
|
|
<div class='i-text-align_center i-color_soft i-padding_3'>
|
|
|
|
|
<p class='i-font-size_2'>{lang="no_popular_questions"}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</section>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{if $newQuestions}}
|
|
|
|
|
<section class='ipsBox i-margin-bottom_4'>
|
|
|
|
|
<h2 class='ipsBox__header'>{{if \IPS\Settings::i()->forums_new_questions}}{lang="new_questions_title_no_answer"}{{else}}{lang="new_questions_title_no_best"}{{endif}}</h2>
|
|
|
|
|
{{if \count( $newQuestions )}}
|
|
|
|
|
<i-data>
|
|
|
|
|
<ol class="ipsData ipsData--table cForumTopicTable" id='elTable_' data-role="tableRows">
|
|
|
|
|
{{foreach $newQuestions as $question}}
|
|
|
|
|
{template="popularQuestionRow" params="$question, $forum" group="forums"}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ol>
|
|
|
|
|
</i-data>
|
|
|
|
|
{{else}}
|
|
|
|
|
<div class='i-text-align_center i-color_soft i-padding_3'>
|
|
|
|
|
<p class='i-font-size_2'>{lang="no_new_questions"}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</section>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{endif}}
|
|
|
|
|
{$table|raw}]]></template>
|
|
|
|
|
<template template_group="forums" template_name="questionRow" template_data="$table, $headers, $rows" template_location="front" template_app="forums"><![CDATA[<!-- v5 todo: Is this template file used? -->
|
|
|
|
|
<style>*{color: gold !important; }</style>
|
|
|
|
|
{{$rowIds = array();}}
|
|
|
|
|
{{foreach $rows as $row}}
|
|
|
|
|
{{$idField = $row::$databaseColumnId;}}
|
|
|
|
|
{{$rowIds[] = $row->$idField;}}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
{{if \count( $rows )}}
|
|
|
|
|
{{$rowCount=1; $adShown=0;}}
|
|
|
|
|
{{foreach $rows as $row}}
|
|
|
|
|
{{if $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing', $rowCount, $adShown )}}
|
|
|
|
|
<li class="ipsData__item">
|
|
|
|
|
{$advertisement|raw}
|
|
|
|
|
{{$adShown++;}}
|
|
|
|
|
</li>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{$rowCount++;}}
|
|
|
|
|
{{$idField = $row::$databaseColumnId;}}
|
|
|
|
|
{{if $row->mapped('moved_to')}}
|
|
|
|
|
{{if $movedTo = $row->movedTo()}}
|
|
|
|
|
<li class="ipsData__item {{if \IPS\forums\Forum::getMemberListView() == 'snippet'}}ipsTopicSnippet ipsQuestionSnippet{{endif}}">
|
|
|
|
|
<div class='ipsData__icon i-text-align_center'>
|
|
|
|
|
<i class="fa-solid fa-arrow-left i-font-size_2"></i>
|
|
|
|
|
</div>
|
|
|
|
|
<div class='ipsData__main'>
|
|
|
|
|
<h4 class='ipsData__title'>
|
|
|
|
|
<span class=''>
|
|
|
|
|
<em><a href='{$movedTo->url()}' title='{lang="go_to_new_location"}'>{$row->mapped('title')}</a></em>
|
|
|
|
|
</span>
|
|
|
|
|
</h4>
|
|
|
|
|
<div class='ipsData__meta'>
|
|
|
|
|
{{if isset( $row::$databaseColumnMap['status'] )}}
|
|
|
|
|
{{$statusField = $row::$databaseColumnMap['status'];}}
|
|
|
|
|
{{if $row->$statusField == 'merged'}}
|
|
|
|
|
<p>{lang="question_merged_to" sprintf="$movedTo->url(), $movedTo->mapped('title')"}</p>
|
|
|
|
|
{{else}}
|
|
|
|
|
<p>{lang="question_moved_to" sprintf="$movedTo->container()->url(), $movedTo->container()->_title"}</p>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{else}}
|
|
|
|
|
<p>{lang="question_moved_to" sprintf="$movedTo->container()->url(), $movedTo->container()->_title"}</p>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{{if $table->canModerate()}}
|
|
|
|
|
<div class='ipsData__mod'>
|
|
|
|
|
<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}}' class="ipsInput ipsInput--toggle">
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</li>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{else}}
|
|
|
|
|
<li class="ipsData__item {{if \IPS\forums\Forum::getMemberListView() == 'snippet'}}ipsTopicSnippet ipsQuestionSnippet{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsData__item_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}} cForumQuestion" data-rowID='{$row->$idField}' {{if $row->unread()}}data-ips-unread{{endif}}>
|
|
|
|
|
<div class='ipsData__icon'>
|
|
|
|
|
{{if $row->topic_answered_pid}}
|
|
|
|
|
<span title='{lang="answered"}' class='cBestAnswerIndicator' data-ipsTooltip>
|
|
|
|
|
<i class='fa-solid fa-check'></i>
|
|
|
|
|
</span>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span title='{lang="awaiting_answer"}' class='cBestAnswerIndicator cBestAnswerIndicator_off' data-ipsTooltip>
|
|
|
|
|
<i class='fa-solid fa-question'></i>
|
|
|
|
|
</span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class='ipsData__main'>
|
|
|
|
|
<h4 class='ipsData__title'>
|
|
|
|
|
<span class=''>
|
|
|
|
|
{{if $row->locked()}}
|
|
|
|
|
<span><i class='fa-solid fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i></span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{if $row->unread()}}
|
|
|
|
|
<a href='{$row->url( 'getNewComment' )}' title='{lang="first_unread_post"}' data-ipsTooltip class='ipsIndicator {{if \in_array( $row->$idField, $table->contentPostedIn )}}ipsIndicator--participated{{endif}}' data-ips-hook="unreadIcon"></span>
|
|
|
|
|
</a>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class='ipsIndicator ipsIndicator--read {{if \in_array( $row->$idField, $table->contentPostedIn )}}ipsIndicator--participated{{endif}}'></span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
|
|
|
|
|
<span>{{foreach $row->badges() as $badge}}{$badge|raw}{{endforeach}}</span>
|
|
|
|
|
|
|
|
|
|
{{if $row->prefix()}}
|
|
|
|
|
<span>{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}</span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
|
|
|
|
|
<a href='{$row->url( "getPrefComment" )}' title='{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}{lang="content_deleted"}{{endif}} {{if $row->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{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>
|
|
|
|
|
{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}<em class="i-color_soft">{lang="content_deleted"}</em>{{endif}}
|
|
|
|
|
</span>
|
|
|
|
|
</a>
|
|
|
|
|
</span>
|
|
|
|
|
</h4>
|
|
|
|
|
{{if \IPS\forums\Forum::getMemberListView() == 'snippet'}}
|
|
|
|
|
<div class='ipsTopicSnippet__snippet i-link-color_inherit'>
|
|
|
|
|
<p>{$row->firstComment->snippet(680)}</p>
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
<div class='ipsData__meta'>
|
|
|
|
|
<p>
|
|
|
|
|
<span>
|
|
|
|
|
{lang="ask_byline_itemprop" htmlsprintf="$row->author()->link( NULL, NULL, $row->isAnonymous() ), \IPS\DateTime::ts( $row->start_date )->html( false )"}
|
|
|
|
|
</span>
|
|
|
|
|
{{if \IPS\Request::i()->controller != 'forums'}}
|
|
|
|
|
{lang="in"} <a href="{$row->container()->url()}">{$row->container()->_title}</a>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</p>
|
|
|
|
|
{{if \count( $row->tags() )}}
|
|
|
|
|
<div>{template="tags" group="global" app="core" params="$row->tags()"}</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class='i-basis_80 i-text-align_center cForumQuestion_stat'>
|
|
|
|
|
<span>{{if $row->question_rating}}{$row->question_rating}{{else}}0{{endif}}</span>
|
|
|
|
|
<span class='i-color_soft'>{lang="votes_no_number" pluralize="$row->question_rating"}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class='i-basis_80 i-text-align_center cForumQuestion_stat'>
|
|
|
|
|
{{foreach $row->stats(FALSE) AS $k => $v}}
|
|
|
|
|
{{if $k == 'forums_comments' OR $k == 'answers_no_number'}}
|
|
|
|
|
<span>{number="$v"}</span>
|
|
|
|
|
<span class='i-color_soft'>
|
|
|
|
|
{lang="answers_no_number" pluralize="$v"}
|
|
|
|
|
{{if \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
|
|
|
|
|
<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='i-color_warning i-font-size_-2' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa-solid fa-triangle-exclamation'></i> <strong>{$unapprovedComments}</strong></a>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</span>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</div>
|
|
|
|
|
{{if $table->canModerate()}}
|
|
|
|
|
<div class='ipsData__mod'>
|
|
|
|
|
<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}}' class="ipsInput ipsInput--toggle">
|
|
|
|
|
</div>
|
|
|
|
|
{{endif}}
|
|
|
|
|
</li>
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
{{endif}}]]></template>
|
|
|
|
|
<template template_group="forums" template_name="topicHover" template_data="$topic, $overviews" template_location="front" template_app="forums"><![CDATA[
|
|
|
|
|
<div class='cTopicHovercard' data-controller='forums.front.forum.hovercard' data-topicID='{$topic->tid}'>
|
|
|
|
|
{{if \count( $overviews ) > 1}}
|
|
|
|
|
<div class="ipsTabs ipsTabs_small" id="elTopic_{$topic->tid}" data-ipsTabBar data-ipsTabBar-contentarea="#elTopic_{$topic->tid}_content">
|
|
|
|
|
<ul role="tablist">
|
|
|
|
|
<i-tabs class="ipsTabs ipsTabs--small" id="ipsTabs_topic{$topic->tid}" data-ipsTabBar data-ipsTabBar-contentarea="#ipsTabs_topic{$topic->tid}_content">
|
|
|
|
|
<div role="tablist">
|
|
|
|
|
{{foreach $overviews as $tabID => $tabData}}
|
|
|
|
|
<li>
|
|
|
|
|
<a href="#ipsTabs_elTopic_{$topic->tid}_elTopic_{$topic->tid}_{$tabID}_panel" id="elTopic_{$topic->tid}_{$tabID}" class="ipsTabs__tab" role="tab" aria-selected="{{if $tabID == 'firstPost'}}true{{else}}false{{endif}}">{lang="$tabData[0]"}</a>
|
|
|
|
|
</li>
|
|
|
|
|
<button type="button" id="ipsTabs_topic{$topic->tid}_{$tabID}" class="ipsTabs__tab" role="tab" aria-controls="ipsTabs_topic{$topic->tid}_{$tabID}_panel" aria-selected="{{if $tabID == 'firstPost'}}true{{else}}false{{endif}}">{lang="$tabData[0]"}</button>
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
{template="tabScrollers" app="core" group="global" location="global"}
|
|
|
|
|
</div>
|
|
|
|
|
<div id='elTopic_{$topic->tid}_content' class='ipsTabs__panels ipsTabs__panels--padded cTopicHovercard_container ipsScrollbar'>
|
|
|
|
|
</i-tabs>
|
|
|
|
|
<div id='ipsTabs_topic{$topic->tid}_content' class='ipsTabs__panels ipsTabs__panels--padded cTopicHovercard_container ipsScrollbar'>
|
|
|
|
|
{{else}}
|
|
|
|
|
<div class='i-padding_3 cTopicHovercard_container ipsScrollbar'>
|
|
|
|
|
{{endif}}
|
|
|
|
|
|
|
|
|
|
{{foreach $overviews as $tabID => $tabData}}
|
|
|
|
|
{{if \count( $overviews ) > 1}}
|
|
|
|
|
<div id='ipsTabs_elTopic_{$topic->tid}_elTopic_{$topic->tid}_{$tabID}_panel' class='ipsTabs__panel'>
|
|
|
|
|
<div id='ipsTabs_topic{$topic->tid}_{$tabID}_panel' class='ipsTabs__panel' role="tabpanel" aria-labelledby="ipsTabs_topic{$topic->tid}_{$tabID}" {{if $tabID != 'firstPost'}}hidden{{endif}}>
|
|
|
|
|
{{endif}}
|
|
|
|
|
<div class='ipsPhotoPanel'>
|
|
|
|
|
{template="userPhoto" group="global" app="core" params="$tabData[1]->author(), 'fluid'"}
|
|
|
|
@@ -2497,21 +2210,19 @@
|
|
|
|
|
|
|
|
|
|
<div class='ipsBox ipsPull'>
|
|
|
|
|
{{if \count( $elements ) > 1}}
|
|
|
|
|
<div class='ipsTabs ipsJS_show' id='tabs_{$id}' data-ipsTabBar data-ipsTabBar-contentArea='#ipsTabs_content_{$id}'>
|
|
|
|
|
<ul role='tablist'>
|
|
|
|
|
<i-tabs class='ipsTabs' id='ipsTabs_topicForm' data-ipsTabBar data-ipsTabBar-contentArea='#ipsTabs_topicForm_content'>
|
|
|
|
|
<div role='tablist'>
|
|
|
|
|
{{foreach $elements as $name => $content}}
|
|
|
|
|
<li>
|
|
|
|
|
<a href='#ipsTabs_tabs_{$id}_{$id}_tab_{$name}_panel' id='{$id}_tab_{$name}' class="ipsTabs__tab {{if \in_array( $name, $errorTabs )}}ipsTabs_error{{endif}}" role="tab" aria-selected="{{if $name == 'mainTab'}}true{{else}}false{{endif}}">
|
|
|
|
|
{{if \in_array( $name, $errorTabs )}}<i class="fa-solid fa-circle-exclamation"></i> {{endif}}{lang="$name"}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<button type="button" id='ipsTabs_topicForm_{$name}' class="ipsTabs__tab {{if \in_array( $name, $errorTabs )}}ipsTabs__tab--error{{endif}}" role="tab" aria-controls="ipsTabs_topicForm_{$name}_panel" aria-selected="{{if $name == 'topic_mainTab'}}true{{else}}false{{endif}}">
|
|
|
|
|
{{if \in_array( $name, $errorTabs )}}<i class="fa-solid fa-circle-exclamation"></i> {{endif}}{lang="$name"}
|
|
|
|
|
</button>
|
|
|
|
|
{{endforeach}}
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
{template="tabScrollers" app="core" group="global" location="global"}
|
|
|
|
|
</div>
|
|
|
|
|
<div id='ipsTabs_content_{$id}' class='ipsTabs__panels'>
|
|
|
|
|
</i-tabs>
|
|
|
|
|
<div id='ipsTabs_topicForm_content' class='ipsTabs__panels'>
|
|
|
|
|
{{foreach $elements as $name => $contents}}
|
|
|
|
|
<div id='ipsTabs_tabs_{$id}_{$id}_tab_{$name}_panel' class="ipsTabs__panel ipsTabs__panel--{$name}" aria-labelledby="{$id}_tab_{$name}" aria-hidden="false">
|
|
|
|
|
<div id='ipsTabs_topicForm_{$name}_panel' class="ipsTabs__panel ipsTabs__panel--{$name}" role="tabpanel" aria-labelledby="ipsTabs_topicForm_{$name}" {{if $name != 'topic_mainTab'}}hidden{{endif}}>
|
|
|
|
|
|
|
|
|
|
{{if $hasModOptions && $name == 'topic_mainTab'}}
|
|
|
|
|
<div class='ipsColumns ipsColumns--new-topic ipsColumns--lines'>
|
|
|
|
@@ -3100,7 +2811,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
|
|
|
|
|
{{if $comment->author()->member_id}}
|
|
|
|
|
<!-- Expand mini profile -->
|
|
|
|
|
<button class='ipsEntry__topButton ipsEntry__topButton--profile' type='button' aria-controls='mini-profile-{$comment->$idField}' aria-expanded='false' data-ipscontrols aria-label="Author stats" data-ipstooltip><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
|
|
|
|
<button class='ipsEntry__topButton ipsEntry__topButton--profile' type='button' aria-controls='mini-profile-{$comment->$idField}' aria-expanded='false' data-ipscontrols aria-label='{lang="author_stats"}' data-ipstooltip><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
|
|
|
|
{{endif}}
|
|
|
|
|
|
|
|
|
|
{template="miniProfile" app="core" group="global" params="$comment, $comment->$idField"}
|
|
|
|
@@ -3653,7 +3364,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
<li class='ipsData__item'>
|
|
|
|
|
<a href='{$comment->url()}' class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$comment->item()->title}</span></a>
|
|
|
|
|
{{if in_array($layout, array("wallpaper", "featured", "grid"))}}
|
|
|
|
|
<figure class='ipsData__image' data-show-on="wallpaper featured grid">
|
|
|
|
|
<figure class='ipsData__image'>
|
|
|
|
|
{{if $image = $comment->item()->primaryImage()}}
|
|
|
|
|
<img src="{$image->url}" alt="{$comment->item()->title}" loading="lazy">
|
|
|
|
|
{{else}}
|
|
|
|
@@ -3661,7 +3372,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
{{endif}}
|
|
|
|
|
</figure>
|
|
|
|
|
{{else}}
|
|
|
|
|
<figure class='ipsData__icon' data-hide-on="wallpaper featured grid">
|
|
|
|
|
<figure class='ipsData__icon'>
|
|
|
|
|
{template="userPhoto" app="core" group="global" params="$comment->author(), 'fluid'"}
|
|
|
|
|
</figure>
|
|
|
|
|
{{endif}}
|
|
|
|
@@ -3707,7 +3418,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
<template template_group="widgets" template_name="topicFeedRow" template_data="$topic, $layout='table', $isCarousel=false" template_location="front" template_app="forums"><![CDATA[<li data-ips-hook="row" class="ipsData__item {{if method_exists( $topic, 'tableClass' ) && $topic->tableClass()}}ipsData__item--{$topic->tableClass()}{{endif}} {{if $topic->hidden()}}ipsModerated{{endif}}">
|
|
|
|
|
<a href='{$topic->url( "getPrefComment" )}' class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$topic->mapped('title')}</span></a>
|
|
|
|
|
{{if in_array($layout, array("wallpaper", "featured", "grid"))}}
|
|
|
|
|
<figure class='ipsData__image' data-show-on="wallpaper featured grid">
|
|
|
|
|
<figure class='ipsData__image'>
|
|
|
|
|
{{if $image = $topic->primaryImage()}}
|
|
|
|
|
<img src="{$image->url}" alt="{$topic->mapped( 'title' )}" loading="lazy">
|
|
|
|
|
{{else}}
|
|
|
|
@@ -3715,7 +3426,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
{{endif}}
|
|
|
|
|
</figure>
|
|
|
|
|
{{else}}
|
|
|
|
|
<figure class='ipsData__icon' data-hide-on="wallpaper featured grid">
|
|
|
|
|
<figure class='ipsData__icon'>
|
|
|
|
|
{template="userPhoto" app="core" group="global" params="$topic->author(), 'fluid'"}
|
|
|
|
|
</figure>
|
|
|
|
|
{{endif}}
|
|
|
|
@@ -3742,7 +3453,7 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
|
|
|
|
|
{{endif}}
|
|
|
|
|
{{endif}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class='ipsData__meta' data-hide-on="mini-grid">
|
|
|
|
|
<div class='ipsData__meta'>
|
|
|
|
|
{lang="byline_name_date" htmlsprintf="$topic->author()->link( NULL, NULL, $topic->isAnonymous() ), \IPS\DateTime::ts( $topic->mapped('date') )->html(FALSE)"}
|
|
|
|
|
</div>
|
|
|
|
|
{{if $layout === "featured"}}
|
|
|
|
|