Version 5.0.0 beta 6
This commit is contained in:
1 parent
57d9db6ce2
commit
fa2a720105
115 files changed
+1823
-1147
No files matched your search
@@ -265,17 +265,6 @@
|
||||
"forum settings"
|
||||
]
|
||||
},
|
||||
"app=forums&module=forums&controller=settings&searchResult=form_forums_default_view": {
|
||||
"lang_key": "forums_default_view",
|
||||
"restriction": "settings_access",
|
||||
"keywords": [
|
||||
"fluid",
|
||||
"grid",
|
||||
"mode",
|
||||
"table",
|
||||
"view"
|
||||
]
|
||||
},
|
||||
"app=forums&module=forums&controller=settings&searchResult=form_forums_helpful_highlight": {
|
||||
"lang_key": "forums_helpful_highlight",
|
||||
"restriction": "settings_access",
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<acpsearch key="app=forums&module=forums&controller=savedActions&searchResult=form_new_topic_title_end"><![CDATA[{"lang_key":"topic_title_end","restriction":"savedActions_manage","keywords":["add end","add title","end title"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=savedActions&searchResult=form_new_topic_title_st"><![CDATA[{"lang_key":"topic_title_st","restriction":"savedActions_manage","keywords":["add start","add title","start title"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=settings"><![CDATA[{"lang_key":"menu__forums_forums_settings","restriction":"settings_access","keywords":["forum settings"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=settings&searchResult=form_forums_default_view"><![CDATA[{"lang_key":"forums_default_view","restriction":"settings_access","keywords":["fluid","grid","mode","table","view"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=settings&searchResult=form_forums_helpful_highlight"><![CDATA[{"lang_key":"forums_helpful_highlight","restriction":"settings_access","keywords":["helpful","solution","solved"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=settings&searchResult=form_forums_posts_per_page"><![CDATA[{"lang_key":"forums_posts_per_page","restriction":"settings_access","keywords":["posts per page"]}]]></acpsearch>
|
||||
<acpsearch key="app=forums&module=forums&controller=settings&searchResult=form_forums_rss"><![CDATA[{"lang_key":"forums_rss","restriction":"settings_access","keywords":["rss export"]}]]></acpsearch>
|
||||
|
||||
@@ -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="5000031" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.flow.js" javascript_type="controller" javascript_version="5000032" 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="5000031" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumList.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000100"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -340,7 +340,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="5000031" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumPage.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000100"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -397,7 +397,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="5000031" javascript_position="1000100">/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.hovercard.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000100">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -447,7 +447,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="5000031" 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="5000032" javascript_position="1000050"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -512,7 +512,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="5000031" javascript_position="1000050">/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.activity.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000050">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -534,7 +534,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="5000031" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.answers.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000050"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -674,7 +674,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="5000031" javascript_position="1000050">/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.reply.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000050">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -703,7 +703,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="5000031" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.solved.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000050"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -741,7 +741,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="5000031" javascript_position="1000050">/**
|
||||
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.view.js" javascript_type="controller" javascript_version="5000032" javascript_position="1000050">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<language>
|
||||
<app key="forums" version="5000031">
|
||||
<app key="forums" version="5000032">
|
||||
<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>
|
||||
|
||||
@@ -695,7 +695,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<li data-ips-hook="topicRow" data-controller="cloud.front.realtime.forumsTopicRow" class="ipsData__item ipsData__item--snippet {{if $row->groupsPosted}}ipsData__item--highlighted{{endif}}{{if $row->isAssignedToMember()}} ipsData__item--assigned{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsData__item--{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}}{{if $row->isFutureDate()}} ipsModerated--alternate{{endif}}" data-rowID='{$row->$idField}' {{if isset($row->locationHash)}}data-location='{$row->locationHash}'{{endif}}' {{if $row->unread()}}data-ips-unread{{else}}data-ips-read{{endif}}>
|
||||
<li data-ips-hook="topicRow" data-controller="cloud.front.realtime.forumsTopicRow" class="ipsData__item ipsData__item--snippet {{if $row->groupsPosted}}ipsData__item--highlighted{{endif}}{{if $row->isAssignedToMember()}} ipsData__item--assigned{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsData__item--{$row->tableClass()}{{endif}} {{if $row->hidden() or $row->isFutureDate()}}ipsModerated{{endif}}{{if $row->isFutureDate()}} ipsModerated--alternate{{endif}} {$row->ui( 'css' )}" data-rowID='{$row->$idField}' {{if isset($row->locationHash)}}data-location='{$row->locationHash}'{{endif}} {{if $row->unread()}}data-ips-unread{{else}}data-ips-read{{endif}} {$row->ui( 'dataAttributes' )}>
|
||||
<a href='{$row->url( "getPrefComment" )}' class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$row->mapped('title')}</span></a>
|
||||
<div class='ipsData__icon'>
|
||||
{template="userPhoto" app="core" group="global" params="$row->author(), 'fluid'"}
|
||||
|
||||
@@ -279,5 +279,6 @@
|
||||
"5000028": "5.0.0 Beta 2",
|
||||
"5000029": "5.0.0 Beta 3",
|
||||
"5000030": "5.0.0 Beta 4",
|
||||
"5000031": "5.0.0 Beta 5"
|
||||
"5000031": "5.0.0 Beta 5",
|
||||
"5000032": "5.0.0 Beta 6"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": [
|
||||
"app=forums&module=forums&controller=settings&searchResult=form_forums_default_view"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"id": 5000032,
|
||||
"name": "5.0.0 Beta 6",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeeditor": true,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"acpSearchKeywords": true,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/forums\/topicRowSnippet"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"categories": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"settings": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"layout_forums_forum",
|
||||
"layout_forums_topic",
|
||||
"layout_forums_post",
|
||||
"layout_forum_topic_view_firstpost"
|
||||
],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -671,10 +671,11 @@ class Forum extends Model implements Permissions
|
||||
/**
|
||||
* Get last post data
|
||||
*
|
||||
* @param int $count Max number of items, most available is 5
|
||||
* @param int $count Max number of items, most available is 5
|
||||
* @param bool $isChild
|
||||
* @return array|null
|
||||
*/
|
||||
public function lastPost( int $count=1 ): ?array
|
||||
public function lastPost( int $count=1, $isChild=false ): ?array
|
||||
{
|
||||
if ( $count > 5 )
|
||||
{
|
||||
@@ -743,7 +744,7 @@ class Forum extends Model implements Permissions
|
||||
foreach( $this->children() as $child )
|
||||
{
|
||||
/* We need to merge all children and pick the top 5 */
|
||||
if ( $childLastPost = $child->lastPost( $count ) )
|
||||
if ( $childLastPost = $child->lastPost( $count, true ) )
|
||||
{
|
||||
$results = $results + $childLastPost;
|
||||
}
|
||||
@@ -785,25 +786,14 @@ class Forum extends Model implements Permissions
|
||||
{
|
||||
foreach( $lastPostData as $lastPostTime => $lastPost )
|
||||
{
|
||||
if ( $lastPost['last_poster_id'] )
|
||||
{
|
||||
$lastAuthor = Member::load( $lastPost['last_poster_id'] );
|
||||
}
|
||||
else
|
||||
{
|
||||
$lastAuthor = new Member;
|
||||
if ( $lastPost['last_poster_name'] )
|
||||
{
|
||||
$lastAuthor->name = $lastPost['last_poster_name'];
|
||||
}
|
||||
}
|
||||
|
||||
if ( $this->sub_can_post and !$this->permission_showtopic and ! $this->can('read') )
|
||||
{
|
||||
$lastPost['last_title'] = null;
|
||||
}
|
||||
|
||||
$results[ $lastPostTime ] = array(
|
||||
'author' => $lastAuthor,
|
||||
'author' => null,
|
||||
'_author' => ! empty( $lastPost['last_poster_id'] ) ? $lastPost['last_poster_id'] : ( $lastPost['last_poster_name'] ?? '' ),
|
||||
'topic_url' => Url::internal( "app=forums&module=forums&controller=topic&id={$lastPost['last_id']}", 'front', 'forums_topic', array( $lastPost['seo_last_title'] ) ),
|
||||
'topic_title' => $lastPost['last_title'],
|
||||
'date' => $lastPostTime,
|
||||
@@ -818,7 +808,7 @@ class Forum extends Model implements Permissions
|
||||
{
|
||||
/* @var Forum $child */
|
||||
/* We need to merge all children and pick the top 5 */
|
||||
if ( $childLastPost = $child->lastPost( $count ) )
|
||||
if ( $childLastPost = $child->lastPost( $count, true ) )
|
||||
{
|
||||
if( is_array( $childLastPost ) )
|
||||
{
|
||||
@@ -836,6 +826,42 @@ class Forum extends Model implements Permissions
|
||||
|
||||
if ( count( $results ) )
|
||||
{
|
||||
/* Don't process the author details if we're not going to use them */
|
||||
if ( ! $isChild )
|
||||
{
|
||||
$membersToLoad = [];
|
||||
|
||||
/* Let's get the author details */
|
||||
foreach ( $results as $timestamp => $data )
|
||||
{
|
||||
if ( $data['_author'] and is_int( $data['_author'] ) )
|
||||
{
|
||||
$membersToLoad[ $timestamp ] = $data['_author'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( $data['_author'] and is_string( $data['_author'] ) )
|
||||
{
|
||||
$results[ $timestamp ]['author'] = new Member;
|
||||
$results[ $timestamp ]['author']->name = $data['_author'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( count( $membersToLoad ) )
|
||||
{
|
||||
$membersLoaded = iterator_to_array( Db::i()->select( '*', 'core_members', [ Db::i()->in( 'member_id', $membersToLoad ) ] )->setKeyField( 'member_id' ) );
|
||||
|
||||
foreach ( $membersToLoad as $timestamp => $memberId )
|
||||
{
|
||||
if ( isset( $membersLoaded[$memberId] ) )
|
||||
{
|
||||
$results[$timestamp]['author'] = Member::constructFromData( $membersLoaded[$memberId] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
krsort( $results );
|
||||
if ( $count === 1 )
|
||||
{
|
||||
|
||||
@@ -369,6 +369,22 @@ class Post extends Comment implements Embeddable,
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom where conditions used specifically for finding comments
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
public static function findCommentWhere() : array|null
|
||||
{
|
||||
/* If we feature the first post, then pagination is all wrong */
|
||||
if( Member::loggedIn()->getLayoutValue( 'forum_topic_view_firstpost' ) )
|
||||
{
|
||||
return [ 'new_topic=?', 0 ];
|
||||
}
|
||||
|
||||
return parent::findCommentWhere();
|
||||
}
|
||||
|
||||
/**
|
||||
* [ActiveRecord] Save
|
||||
@@ -398,10 +414,7 @@ class Post extends Comment implements Embeddable,
|
||||
static::recordSync( $item );
|
||||
}
|
||||
}
|
||||
catch( OutOfRangeException $e )
|
||||
{
|
||||
$item = NULL;
|
||||
}
|
||||
catch( OutOfRangeException $e ){}
|
||||
|
||||
parent::delete();
|
||||
|
||||
|
||||
@@ -979,6 +979,18 @@ class Topic extends Item implements Embeddable,
|
||||
$topic->state = 'closed';
|
||||
}
|
||||
}
|
||||
|
||||
if ( Bridge::i()->featureIsEnabled( 'realtime' ) )
|
||||
{
|
||||
$hash = [
|
||||
'app' => 'forums',
|
||||
'module' => 'forums',
|
||||
'controller' => 'topic',
|
||||
'id' => $topic->tid
|
||||
];
|
||||
Bridge::i()->addAdditionalLocation( $hash );
|
||||
$topic->locationHash = Bridge::i()->getLocationHash( $hash );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !empty( $openIds ) )
|
||||
|
||||
Reference in new issue
Block a user