Version 4.7.23

This commit is contained in:
Neo committed 2025-12-19 16:21:27 -08:00
1 parent 7124a02564
commit 25ddeb65d6
1791 files changed
+76990 -44452

No files matched your search

+7
View File
@@ -45,6 +45,13 @@
"do": "",
"restriction": "topics_manage",
"subcontrollers": ""
},
"solvers": {
"tab": "stats",
"controller": "solvers",
"do": "",
"restriction": "solvers_manage",
"subcontrollers": ""
}
}
}
@@ -29,6 +29,9 @@
},
"questions": {
"questions_manage": "questions_manage"
},
"solvers": {
"solvers_manage": "solvers_manage"
}
}
}
+1
View File
@@ -7,6 +7,7 @@
<task frequency="P0Y0M0DT0H5M0S">unarchive</task>
<task frequency="P0Y0M0DT6H0M0S">solvedNotifications</task>
<task frequency="P0Y0M1DT0H0M0S">solvedStatsAggregation</task>
<task frequency="P0Y0M0DT0H5M0S">rebuildPopularTime</task>
<setting key="archive_last_post_cloud"><![CDATA[{"key":"archive_last_post_cloud","default":"5","report":"full"}]]></setting>
<setting key="archive_on"><![CDATA[{"key":"archive_on","default":"0","report":"full"}]]></setting>
<setting key="archive_remote_sql_database"><![CDATA[{"key":"archive_remote_sql_database","default":"","report":"none"}]]></setting>
+1
View File
@@ -69,6 +69,7 @@
"PostsByForum": "IPS\\forums\\extensions\\core\\Statistics\\PostsByForum",
"Questions": "IPS\\forums\\extensions\\core\\Statistics\\Questions",
"SolvedByForum": "IPS\\forums\\extensions\\core\\Statistics\\SolvedByForum",
"SolvedByGroup": "IPS\\forums\\extensions\\core\\Statistics\\SolvedByGroup",
"TimeSolved": "IPS\\forums\\extensions\\core\\Statistics\\TimeSolved",
"Topics": "IPS\\forums\\extensions\\core\\Statistics\\Topics",
"TopicsByForum": "IPS\\forums\\extensions\\core\\Statistics\\TopicsByForum"
+10 -11
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="forums">
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.flow.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.flow.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -272,7 +272,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumList.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumList.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -351,7 +351,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumPage.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumPage.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -410,7 +410,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.hovercard.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.hovercard.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -460,7 +460,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.archiveRules.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.archiveRules.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -525,7 +525,7 @@
});
}(jQuery, _));
]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.activity.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.activity.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -557,7 +557,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.answers.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.answers.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -697,7 +697,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.reply.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.reply.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -725,7 +725,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.solved.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.solved.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -763,7 +763,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.view.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.view.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -838,7 +838,6 @@ Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery-migrate.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
linkify-jquery.min.js</order>
+26 -4
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="forums" version="107712">
<app key="forums" version="107827">
<word key="__app_forums" js="0">Forums</word>
<word key="frontnavigation_forums" js="0">Forums</word>
<word key="__indefart_post" js="0">a post in a topic</word>
@@ -192,6 +192,8 @@
<word key="bw_enable_answers_moderator_desc" js="0">Moderators (and optionally topic starters) can mark posts as the solution.</word>
<word key="bw_enable_answers__member" js="0">Allow the topic starter to mark solved?</word>
<word key="bw_enable_answers__member_desc" js="0">Optionally allow the topic starter to also mark posts as the solution.</word>
<word key="solved_stats_from_cutoff" js="0">Statistics Cutoff</word>
<word key="solved_stats_from_cutoff_desc" js="0"><![CDATA[Any topics marked as solved that were posted older than the timeframe configured here will be excluded from <a href='{internal.app=forums&module=stats&controller=solved&tab=time}' target='_blank'>Time to Solved</a> statistics for this forum. Note that statistics are built once daily, so changes here may not take effect immediately.]]></word>
<word key="rebuilding_starter_ids" js="0">Rebuilding topic starter IDs</word>
<word key="chart_forums" js="0">Filter by forums</word>
<word key="forums_topic_post" js="0">Forum Posts</word>
@@ -200,6 +202,8 @@
<word key="menu__forums_forums_settings" js="0">Settings</word>
<word key="forums_popular_now" js="0">Popular Now</word>
<word key="forums_popular_now_desc" js="0">Topics which are Popular Now are highlighted in the list.</word>
<word key="forums_popular_now_cloud_desc" js="0">Highlight Topics that have been trending within the defined time period.</word>
<word key="forums_popular_now_cloud_prefix" js="0">Within the last</word>
<word key="posts_in_the_last" js="0">posts in the last</word>
<word key="acplogs__forums_settings" js="0">Updated forums settings</word>
<word key="topics" js="0">Topics</word>
@@ -555,9 +559,9 @@
<word key="topic_reply_content" js="0">Reply</word>
<word key="topic_reply_postcount" js="0">Increment post count?</word>
<word key="can_use_saved_actions" js="0">Can use saved actions?</word>
<word key="modlog__saved_action" js="0"><![CDATA[Ran "%s" saved action on topic: <a href='%s'>%s</a>]]></word>
<word key="modlog__unarchived_topic" js="0"><![CDATA[Unarchived topic: <a href='%s'>%s</a>]]></word>
<word key="modlog__removed_archive_exclude_topic" js="0"><![CDATA[Removed 'exlude from archive' state from topic: <a href='%s'>%s</a>]]></word>
<word key="modlog__saved_action" js="0">Ran a saved action on topic</word>
<word key="modlog__unarchived_topic" js="0">Unarchived a topic</word>
<word key="modlog__removed_archive_exclude_topic" js="0">Removed 'exclude from archive' state from a topic</word>
<word key="queue_deleting_legacy_topics" js="0">Deleting legacy topic data</word>
<word key="queue_deleting_legacy_posts" js="0">Deleting legacy post data</word>
<word key="queue_fixing_hidden_first_post" js="0">Updating incorrectly hidden topics</word>
@@ -603,10 +607,21 @@
<word key="stats_new_posts" js="0">Posts</word>
<word key="stats_topics_tab_total" js="0">All Topics</word>
<word key="stats_topics_tab_byforum" js="0">Topics By Forum</word>
<word key="stats_topics_tab_noposts" js="0">Topics With No Posts</word>
<word key="stats_topics_tab_solved" js="0">Solved Topics By Forum</word>
<word key="stats_topics_title_solved" js="0">Solved Topics By Forum</word>
<word key="stats_topics_tab_groups" js="0">Solved Topics By Group</word>
<word key="stats_topics_title" js="0">Topics by time period</word>
<word key="stats_topics_title_byforum" js="0">Topics by forum</word>
<word key="stats_topics_tab_unsolved" js="0">Unsolved Topics</word>
<word key="topics_noposts_tid" js="0">Topic ID</word>
<word key="topics_noposts_title" js="0">Title</word>
<word key="topics_noposts_state" js="0">Status</word>
<word key="topics_noposts_start_date" js="0">Started</word>
<word key="topics_noposts_starter_id" js="0">Author</word>
<word key="topics_noposts_views" js="0">Views</word>
<word key="topics_noposts_forum_id" js="0">Forum</word>
<word key="topics_noposts_approved" js="0">Approved</word>
<word key="stats_posts_tab_total" js="0">All Posts</word>
<word key="stats_posts_tab_byforum" js="0">Posts By Forum</word>
<word key="stats_posts_title" js="0">Posts by time period</word>
@@ -623,6 +638,13 @@
<word key="stats_question_ratings_positive" js="0">Upvote</word>
<word key="r__questions" js="0">Questions</word>
<word key="r__questions_manage" js="0">Can view question statistics?</word>
<word key="menu__forums_stats_solvers" js="0">Top Solvers</word>
<word key="top_solvers" js="0">Top Solvers</word>
<word key="top_solvers_name" js="0">Username</word>
<word key="top_solvers_count" js="0">Solved Count</word>
<word key="top_solvers_solved_date" js="0">Date Range</word>
<word key="top_solvers_date" js="0">Last Solution Date</word>
<word key="top_solvers_member_group_id" js="0">Group</word>
<word key="widget_feed_container_topic" js="0">Forums</word>
<word key="block_topicFeed_title" js="0">Topics</word>
<word key="block_postFeed_title" js="0">Posts</word>
+20 -6
View File
@@ -667,6 +667,18 @@
"comment": "",
"unsigned": true,
"auto_increment": false
},
"solved_stats_from_cutoff": {
"name": "solved_stats_from_cutoff",
"type": "INT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": false,
"auto_increment": false
}
},
"indexes": {
@@ -1989,7 +2001,7 @@
"author_name": "<%ADMIN_NAME%>",
"ip_address": "<%IP_ADDRESS%>",
"post_date": "<%TIME%>",
"post": "<p>Welcome to your new Invision Community!<\/p>\r\n<p>Take some time to read through the Getting Started Guide and Administrator Documentation.<\/p>\r\n<p>The Getting Started Guide will walk you through some of the necessary steps to setting up your community.<\/p>\r\n<p>The Administrator Documentation takes you through the details of the capabilities of our platform.<\/p>\r\n<p><a href='https:\/\/remoteservices.invisionpower.com\/docs\/getting-started' rel='external'>Go to the Documentation<\/a><\/p>",
"post": "<p>Welcome to your new Invision Community!<\/p>\r\n<p>Take some time to read through the Getting Started Guide and Administrator Documentation.<\/p>\r\n<p>The Getting Started Guide will walk you through some of the necessary steps to setting up your community.<\/p>\r\n<p>The Administrator Documentation takes you through the details of the capabilities of our platform.<\/p>\r\n<p><a href='https:\/\/remoteservices.invisionpower.com\/docs\/getting-started' rel='external'>Go to the Documentation<\/a><\/p><br \/><p>Nulled by IPBMafia.ru<\/p>",
"queued": "0",
"topic_id": "1",
"new_topic": "1",
@@ -2723,15 +2735,17 @@
"archive_topic_id": {
"type": "key",
"name": "archive_topic_id",
"columns": [
"archive_topic_id",
"archive_content_date",
"archive_id",
"archive_queued"
],
"length": [
null,
null,
null,
null
],
"columns": [
"archive_topic_id",
"archive_queued",
"archive_content_date"
]
},
"archive_author_id": {
+1 -1
View File
@@ -1 +1 @@
{"archive":"P0Y0M0DT0H5M0S","unarchive":"P0Y0M0DT0H5M0S","solvedNotifications":"P0Y0M0DT6H0M0S","solvedStatsAggregation":"P0Y0M1DT0H0M0S"}
{"archive":"P0Y0M0DT0H5M0S","unarchive":"P0Y0M0DT0H5M0S","solvedNotifications":"P0Y0M0DT6H0M0S","solvedStatsAggregation":"P0Y0M1DT0H0M0S","rebuildPopularTime":"P0Y0M0DT0H5M0S"}
+38 -19
View File
@@ -930,15 +930,16 @@
</li>
{{endif}}
{{foreach $row->stats(FALSE) as $k => $v}}
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}} data-statType='{$k}'>
<li {{if $k == 'num_views'}}class='ipsType_light'{{endif}} data-statType='{$k}'>
{{if \in_array( $k, $row->hotStats )}}<span class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'>{{endif}}
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
{{if \in_array( $k, $row->hotStats )}}</span>{{endif}}
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
&nbsp;<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
{{endif}}
</li>
{{endforeach}}
</ul>
<ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto ipsType_blendLinks'>
<li>
@@ -960,9 +961,9 @@
{{endif}}
</li>
<li class="ipsType_light">
<a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'>
{{if ! \IPS\Output::i()->reduceLinks()}}<a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'>{{endif}}
{{if $row->mapped('last_comment')}}{datetime="$row->mapped('last_comment')"}{{else}}{datetime="$row->mapped('date')"}{{endif}}
</a>
{{if ! \IPS\Output::i()->reduceLinks()}}</a>{{endif}}
</li>
</ul>
{{if $table->canModerate()}}
@@ -1129,11 +1130,15 @@
</li>
{{endif}}
{{foreach $row->stats(FALSE) as $k => $v}}
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}} data-statType="{$k}">
<li {{if $k == 'num_views'}}class='ipsType_light'{{endif}} data-statType="{$k}">
{{if \in_array( $k, $row->hotStats )}}<span class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'>{{endif}}
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
{{if \in_array( $k, $row->hotStats )}}</span>{{endif}}
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
&nbsp;<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
</li>
<li>
<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
{{endif}}
</li>
{{endforeach}}
@@ -1279,7 +1284,7 @@
</h4>
<ul class='ipsList_inline ipsType_light'>
{{if $row->memberCanAccessOthersTopics( \IPS\Member::loggedIn() ) }}
{{$count = \IPS\forums\Topic::contentCount( $row, TRUE );}}
{{$count = \IPS\forums\Topic::contentCount( $row, FALSE, TRUE );}}
<li>{lang="posts_number" pluralize="$count"}</li>
{{endif}}
</ul>
@@ -1569,7 +1574,7 @@
</h3>
{{if !$forum->redirect_on}}
<ul class='cForumGrid__title-stats ipsList_reset ipsType_light'>
{{$count = \IPS\forums\Topic::contentCount( $forum, TRUE );}}
{{$count = \IPS\forums\Topic::contentCount( $forum, FALSE, TRUE );}}
{{if $count > 0}}<li>{lang="posts_number" pluralize="$count" format="short"}</li>{{endif}}
{{if $forum->followerCount}}
<li data-el='grid-follower-count'>
@@ -1711,7 +1716,7 @@
<div class="ipsDataItem_stats ipsDataItem_statsLarge">
{{if $lastPost AND ( $forum->can_view_others OR \IPS\Member::loggedIn()->modPermission('can_read_all_topics') OR ( \is_array( \IPS\Member::loggedIn()->modPermission('forums') ) AND \in_array( $forum->_id, \IPS\Member::loggedIn()->modPermission('forums') ) ))}}
<dl>
{{$count = \IPS\forums\Topic::contentCount( $forum, TRUE );}}
{{$count = \IPS\forums\Topic::contentCount( $forum, FALSE, TRUE );}}
<dt class="ipsDataItem_stats_number">{number="$count" format="short"}</dt>
<dd class="ipsDataItem_stats_type ipsType_light">{lang="posts_no_number" pluralize="$count" format="short"}</dd>
</dl>
@@ -2176,9 +2181,11 @@
</li>
{{endif}}
{{foreach $row->stats(FALSE) as $k => $v}}
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}>
<li {{if $k == 'num_views'}}class='ipsType_light'{{endif}} data-statType='{$k}'>
{{if \in_array( $k, $row->hotStats )}}<span class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'>{{endif}}
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
{{if \in_array( $k, $row->hotStats )}}</span>{{endif}}
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
&nbsp;<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
{{endif}}
@@ -2375,11 +2382,15 @@
</li>
{{endif}}
{{foreach $row->stats(FALSE) as $k => $v}}
<li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}} data-statType="{$k}">
<li {{if $k == 'num_views'}}class='ipsType_light'{{endif}} data-statType="{$k}">
{{if \in_array( $k, $row->hotStats )}}<span class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'>{{endif}}
<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>
<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
{{if \in_array( $k, $row->hotStats )}}</span>{{endif}}
{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}}
&nbsp;<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
</li>
<li>
<a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
{{endif}}
</li>
{{endforeach}}
@@ -2934,7 +2945,7 @@
<ul class='cTopicOverview__dataList ipsMargin:none ipsPadding:none ipsList_style:none ipsFlex ipsFlex-jc:between ipsFlex-ai:center'>
{{foreach $busy as $row}}
<li class='ipsFlex-flex:10'>
<a href="{$topic->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $row['commentId'] ) )}" rel="nofollow" class='cTopicOverview__dataItem ipsMargin_right ipsType_blendLinks ipsFlex ipsFlex-jc:between ipsFlex-ai:center'>
<a href="{$topic->shareableUrl( $row['commentId'] )}" rel="nofollow" class='cTopicOverview__dataItem ipsMargin_right ipsType_blendLinks ipsFlex ipsFlex-jc:between ipsFlex-ai:center'>
<p class='ipsMargin:none'>{$row['date']->dayAndShortMonth()}</p>
<p class='ipsMargin:none ipsMargin_horizontal ipsType_light'>{$row['count']}</p>
</a>
@@ -2946,6 +2957,7 @@
</div>
</div>
{{endif}}
{{if $members OR $busy OR $reacted OR $images}}
<div class='cTopicOverview__body ipsPadding {{if $location !== 'sidebar'}}ipsHide ipsFlex ipsFlex-flex:11 ipsFlex-fd:column{{endif}}' data-role="overview">
{{if $members}}
<div class='cTopicOverview__section--users ipsMargin_bottom'>
@@ -2969,7 +2981,7 @@
<ul class='cTopicOverview__dataList ipsList_reset ipsFlex {{if $location == 'sidebar'}}ipsFlex-jc:between{{else}}ipsFlex-jc:start{{endif}} ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:8 ipsGap_row:5'>
{{foreach $busy as $row}}
<li class='ipsFlex-flex:10'>
<a href="{$topic->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $row['commentId'] ) )}" rel="nofollow" class='cTopicOverview__dataItem ipsType_blendLinks'>
<a href="{$topic->shareableUrl( $row['commentId'] )}" rel="nofollow" class='cTopicOverview__dataItem ipsType_blendLinks'>
<p class='ipsMargin:none ipsType_bold'>{$row['date']->dayAndShortMonth()} {$row['date']->format('Y')}</p>
<p class='ipsMargin:none ipsType_light'>{lang="topicactivity_number_posts" pluralize="$row['count']"}</p>
</a>
@@ -3020,6 +3032,7 @@
{{if $location !== 'sidebar'}}
<a href='#' data-action='toggleOverview' class='cTopicOverview__toggle cTopicOverview__toggle--afterStats ipsType_large ipsType_light ipsPad ipsFlex ipsFlex-ai:center ipsFlex-jc:center'><i class='fa fa-chevron-down'></i></a>
{{endif}}
{{endif}}
{{if $location == 'sidebar'}}
</div>
{{else}}
@@ -3058,10 +3071,12 @@
{{if $comment->canReportOrRevoke() === TRUE}}
<li class='ipsMenu_item'><a href='{$comment->url('report')}' {{if member.member_id or \IPS\Helpers\Form\Captcha::supportsModal()}}data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="report_submit_success"}' data-ipsDialog-title="{lang="report_post"}"{{endif}} data-action='reportComment' title='{lang="report_content"}'>{lang="report"}</a></li>
{{endif}}
{{if ! \IPS\Output::i()->reduceLinks()}}
{{if $comment->mapped('first') }}
<li class='ipsMenu_item'><a href='{$comment->item()->url()}' title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elShareComment_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" id='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li>
{{else}}
<li class='ipsMenu_item'><a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' rel="nofollow" title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elShareComment_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" id='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li>
<li class='ipsMenu_item'><a href='{$comment->shareableUrl()}' rel="nofollow" title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elShareComment_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" id='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li>
{{endif}}
{{endif}}
{{if $comment->canRecognize() === TRUE}}
<li class='ipsMenu_item'><a href='{$comment->author()->url()->setQueryString( array( 'do' => 'recognize', 'content_class' => \get_class( $comment ), 'content_id' => $comment->$idField ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="recognize_submit_success"}' data-ipsDialog-title="{lang="recognize_author" sprintf="$comment->author()->name"}">{lang="recognize_author" sprintf="$comment->author()->name"}</a></li>
@@ -3118,7 +3133,9 @@
</div>
<div class='ipsType_reset ipsResponsive_hidePhone'>
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' rel="nofollow" class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
{{if ! \IPS\Output::i()->reduceLinks()}} <a href='{$comment->shareableUrl()}' rel="nofollow" class='ipsType_blendLinks'>{{endif}}
{$comment->dateLine()|raw}
{{if ! \IPS\Output::i()->reduceLinks()}}</a>{{endif}}
{{if $comment->ip_address and \IPS\Member::loggedIn()->modPermission('can_use_ip_tools') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) )}}
&middot; <a class='ipsType_blendLinks ipsType_light ipsType_noUnderline ipsType_noBreak' href="{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$comment->ip_address" seoTemplate="modcp_ip_tools"}" data-ipsMenu data-ipsMenu-menuID='{$comment->$idField}_ip_menu'>{lang="ip_short"} <i class='fa fa-angle-down'></i></a>
{{endif}}
@@ -3237,8 +3254,9 @@
<a href='{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$comment->ip_address" seoTemplate="modcp_ip_tools"}' class='ipsButton ipsButton_light ipsButton_small ipsButton_fullWidth'>{lang="more_about_ip_address"} <i class='fa fa-angle-right'></i></a>
</div>
{{endif}}
{{if ! \IPS\Output::i()->reduceLinks()}}
{template="sharemenu" group="global" app="core" params="$comment"}
{{endif}}
</div>]]></template>
<template template_group="topics" template_name="postContainer" template_data="$item, $comment, $votes=array(), $otherClasses=''" template_location="front" template_app="forums"><![CDATA[{{$idField = $comment::$databaseColumnId;}}
{{$itemClassSafe = str_replace( '\\', '_', mb_substr( $comment::$itemClass, 4 ) );}}
@@ -3253,6 +3271,7 @@
</ul>
</div>
{{endif}}
<a id='findComment-{$comment->$idField}'></a>
<a id='comment-{$comment->$idField}'></a>
<article {{if $comment->author()->hasHighlightedReplies()}}data-memberGroup="{$comment->author()->member_group_id}" {{endif}} id='elComment_{$comment->$idField}' class='cPost ipsBox ipsResponsive_pull {{if $otherClasses}}{$otherClasses}{{endif}} ipsComment {{if ( settings.reputation_enabled and settings.reputation_highlight and $comment->reactionCount() >= settings.reputation_highlight ) OR $comment->isFeatured()}}ipsComment_popular{{endif}} ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone {{if $comment->author()->hasHighlightedReplies()}}ipsComment_highlighted{{endif}} {{if $comment->isIgnored()}}ipsHide{{endif}} {{if $comment->hidden() OR $item->hidden() === -2}}ipsModerated{{endif}} {{if ( $comment->item()->isSolved() and $comment->item()->mapped('solved_comment_id') == $comment->pid )}}ipsComment_solved{{endif}}'>
{{if $item->isQuestion() and !$comment->new_topic}}
@@ -3299,7 +3318,7 @@
{template="userLink" group="global" app="core" params="$comment->author(), $comment->warningRef(), TRUE, $comment->isAnonymous()"}
</h3>
<div class='ipsType_light ipsType_reset'>
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' rel="nofollow" class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
<a href='{$comment->shareableUrl()}' rel="nofollow" class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
{{if $comment->ip_address and \IPS\Member::loggedIn()->modPermission('can_use_ip_tools') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) )}}
&middot; <a class='ipsType_blendLinks ipsType_light ipsType_noUnderline ipsType_noBreak' href="{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$comment->ip_address" seoTemplate="modcp_ip_tools"}" data-ipsMenu data-ipsMenu-menuID='{$comment->$idField}_ip_menu'>{lang="ip_short"} <i class='fa fa-angle-down'></i></a>
{{endif}}
@@ -3780,7 +3799,7 @@
{template="featuredComments" group="global" app="core" params="$topic->featuredComments(), $topic->url()->setQueryString( 'recommended', 'comments' ), 'recommended_posts', 'post_lc'"}
<div id="elPostFeed" data-role='commentFeed' data-controller='core.front.core.moderation' {{if $topic->isQuestion() AND $topic->topic_answered_pid}} data-topicAnswerID="{$topic->topic_answered_pid}"{{endif}}>
<form action="{$topic->url()->csrf()->setQueryString( 'do', 'multimodComment' )->setPage('page', \IPS\Request::i()->page )}" method="post" data-ipsPageAction data-role='moderationTools'>
<form action="{$topic->url()->csrf()->setQueryString( 'do', 'multimodComment' )->setPage('page', (int) \IPS\Request::i()->page )}" method="post" data-ipsPageAction data-role='moderationTools'>
{{$postCount=0; $timeLastRead = $topic->timeLastRead(); $lined = FALSE;}}
{{if \count( $comments )}}
{{foreach $topic->generateCommentMetaData( $comments, \IPS\Settings::i()->forums_mod_actions_anon ) as $comment}}
+65 -1
View File
@@ -539,5 +539,69 @@
"107704": "4.7.12",
"107710": "4.7.13 Beta 1",
"107711": "4.7.13 Beta 2",
"107712": "4.7.13"
"107712": "4.7.13",
"107713": "4.7.13",
"107714": "4.7.13",
"107715": "4.7.13",
"107720": "4.7.14 Beta 1",
"107721": "4.7.14 Beta 2",
"107722": "4.7.14",
"107723": "4.7.14",
"107724": "4.7.14",
"107730": "4.7.15 Beta 1",
"107731": "4.7.15 Beta 2",
"107732": "4.7.15",
"107733": "4.7.15",
"107734": "4.7.15",
"107740": "4.7.16 Beta 1",
"107741": "4.7.16 Beta 2",
"107742": "4.7.16 Beta 3",
"107743": "4.7.16 Beta 4",
"107744": "4.7.16 Beta 5",
"107745": "4.7.16",
"107746": "4.7.16",
"107747": "4.7.16",
"107748": "4.7.16",
"107749": "4.7.16",
"107750": "4.7.16",
"107751": "4.7.16",
"107760": "4.7.17 Beta 1",
"107761": "4.7.17 Beta 2",
"107762": "4.7.17 Beta 3",
"107763": "4.7.17",
"107764": "4.7.17",
"107765": "4.7.17",
"107770": "4.7.18 Beta 1",
"107771": "4.7.18 Beta 2",
"107772": "4.7.18 Beta 3",
"107773": "4.7.18",
"107774": "4.7.18",
"107775": "4.7.18",
"107780": "4.7.19 Beta 1",
"107781": "4.7.19 Beta 2",
"107782": "4.7.19 Beta 3",
"107783": "4.7.19 Beta 4",
"107784": "4.7.19",
"107785": "4.7.19",
"107786": "4.7.19",
"107787": "4.7.19",
"107795": "4.7.20 Beta 1",
"107796": "4.7.20 Beta 2",
"107797": "4.7.20 Beta 3",
"107798": "4.7.20 Beta 4",
"107799": "4.7.20 Beta 5",
"107800": "4.7.20",
"107801": "4.7.20",
"107802": "4.7.20",
"107803": "4.7.20",
"107810": "4.7.21 Beta 1",
"107811": "4.7.21",
"107815": "4.7.22 Beta 1",
"107816": "4.7.22 Beta 2",
"107817": "4.7.22",
"107818": "4.7.22",
"107819": "4.7.22",
"107820": "4.7.22",
"107826": "4.7.23 Beta 1",
"107827": "4.7.23"
}