Version 4.5.0
This commit is contained in:
1 parent
1a0c7fd3c2
commit
f79dcf067a
3791 files changed
+248032
-76372
No files matched your search
@@ -11,7 +11,7 @@
|
||||
namespace IPS\Content\Api;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
@@ -48,7 +48,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Pinned? */
|
||||
if ( isset( \IPS\Request::i()->pinned ) AND in_array( 'IPS\Content\Pinnable', class_implements( $itemClass ) ) )
|
||||
if ( isset( \IPS\Request::i()->pinned ) AND \in_array( 'IPS\Content\Pinnable', class_implements( $itemClass ) ) )
|
||||
{
|
||||
if ( \IPS\Request::i()->pinned )
|
||||
{
|
||||
@@ -61,7 +61,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Featured? */
|
||||
if ( isset( \IPS\Request::i()->featured ) AND in_array( 'IPS\Content\Featurable', class_implements( $itemClass ) ) )
|
||||
if ( isset( \IPS\Request::i()->featured ) AND \in_array( 'IPS\Content\Featurable', class_implements( $itemClass ) ) )
|
||||
{
|
||||
if ( \IPS\Request::i()->featured )
|
||||
{
|
||||
@@ -74,11 +74,11 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Locked? */
|
||||
if ( isset( \IPS\Request::i()->locked ) AND in_array( 'IPS\Content\Lockable', class_implements( $itemClass ) ) )
|
||||
if ( isset( \IPS\Request::i()->locked ) AND \in_array( 'IPS\Content\Lockable', class_implements( $itemClass ) ) )
|
||||
{
|
||||
if ( isset( static::$databaseColumnMap['locked'] ) )
|
||||
{
|
||||
$where[] = array( $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['locked'] . '=?', intval( \IPS\Request::i()->locked ) );
|
||||
$where[] = array( $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['locked'] . '=?', \intval( \IPS\Request::i()->locked ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -87,7 +87,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Hidden */
|
||||
if ( isset( \IPS\Request::i()->hidden ) AND in_array( 'IPS\Content\Hideable', class_implements( $class ) ) )
|
||||
if ( isset( \IPS\Request::i()->hidden ) AND \in_array( 'IPS\Content\Hideable', class_implements( $class ) ) )
|
||||
{
|
||||
if ( \IPS\Request::i()->hidden )
|
||||
{
|
||||
@@ -114,7 +114,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Has poll? */
|
||||
if ( isset( \IPS\Request::i()->hasPoll ) AND in_array( 'IPS\Content\Polls', class_implements( $itemClass ) ) )
|
||||
if ( isset( \IPS\Request::i()->hasPoll ) AND \in_array( 'IPS\Content\Polls', class_implements( $itemClass ) ) )
|
||||
{
|
||||
if ( \IPS\Request::i()->hasPoll )
|
||||
{
|
||||
@@ -127,11 +127,11 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
|
||||
/* Sort */
|
||||
if ( isset( \IPS\Request::i()->sortBy ) and in_array( \IPS\Request::i()->sortBy, array( 'date' ) ) )
|
||||
if ( isset( \IPS\Request::i()->sortBy ) and \in_array( \IPS\Request::i()->sortBy, array( 'date' ) ) )
|
||||
{
|
||||
$sortBy = $class::$databasePrefix . $class::$databaseColumnMap[ \IPS\Request::i()->sortBy ];
|
||||
}
|
||||
if ( isset( \IPS\Request::i()->sortBy ) and in_array( \IPS\Request::i()->sortBy, array( 'title' ) ) )
|
||||
if ( isset( \IPS\Request::i()->sortBy ) and \in_array( \IPS\Request::i()->sortBy, array( 'title' ) ) )
|
||||
{
|
||||
$sortBy = $itemClass::$databasePrefix . $itemClass::$databaseColumnMap[ \IPS\Request::i()->sortBy ];
|
||||
}
|
||||
@@ -139,7 +139,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
{
|
||||
$sortBy = $class::$databasePrefix . $class::$databaseColumnId;
|
||||
}
|
||||
$sortDir = ( isset( \IPS\Request::i()->sortDir ) and in_array( mb_strtolower( \IPS\Request::i()->sortDir ), array( 'asc', 'desc' ) ) ) ? \IPS\Request::i()->sortDir : 'asc';
|
||||
$sortDir = ( isset( \IPS\Request::i()->sortDir ) and \in_array( mb_strtolower( \IPS\Request::i()->sortDir ), array( 'asc', 'desc' ) ) ) ? \IPS\Request::i()->sortDir : 'asc';
|
||||
|
||||
/* Get results */
|
||||
if ( $this->member and !$byPassPerms )
|
||||
@@ -149,8 +149,38 @@ class _CommentController extends \IPS\Api\Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = \IPS\Db::i()->select( '*', $class::$databaseTable, $where, "{$sortBy} {$sortDir}" )->join( $itemClass::$databaseTable, $itemClass::$databasePrefix . $itemClass::$databaseColumnId . '=' . $class::$databasePrefix . $class::$databaseColumnMap['item'] );
|
||||
$count = \IPS\Db::i()->select( 'COUNT(*)', $class::$databaseTable, $where )->join( $itemClass::$databaseTable, $itemClass::$databasePrefix . $itemClass::$databaseColumnId . '=' . $class::$databasePrefix . $class::$databaseColumnMap['item'] )->first();
|
||||
$itemWhere = array();
|
||||
|
||||
/* And no PBR or queued for deletion things either */
|
||||
if ( isset( $class::$databaseColumnMap['hidden'] ) )
|
||||
{
|
||||
$col = $class::$databaseTable . '.' . $class::$databasePrefix . $class::$databaseColumnMap['hidden'];
|
||||
$where[] = array( "{$col}!=-2 AND {$col} !=-3" );
|
||||
}
|
||||
else if ( isset( $class::$databaseColumnMap['approved'] ) )
|
||||
{
|
||||
$col = $class::$databaseTable . '.' . $class::$databasePrefix . $class::$databaseColumnMap['approved'];
|
||||
$where[] = array( "{$col}!=-2 AND {$col}!=-3" );
|
||||
}
|
||||
|
||||
/* We also need to check the item for soft delete and post before register */
|
||||
if( \in_array( 'IPS\Content\Hideable', class_implements( $itemClass ) ) )
|
||||
{
|
||||
/* No matter if we can or cannot view hidden items, we do not want these to show: -2 is queued for deletion and -3 is posted before register */
|
||||
if ( isset( $itemClass::$databaseColumnMap['hidden'] ) )
|
||||
{
|
||||
$col = $itemClass::$databaseTable . '.' . $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['hidden'];
|
||||
$itemWhere[] = array( "{$col}!=-2 AND {$col} !=-3" );
|
||||
}
|
||||
else if ( isset( $itemClass::$databaseColumnMap['approved'] ) )
|
||||
{
|
||||
$col = $itemClass::$databaseTable . '.' . $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['approved'];
|
||||
$itemWhere[] = array( "{$col}!=-2 AND {$col} !=-3" );
|
||||
}
|
||||
}
|
||||
|
||||
$query = \IPS\Db::i()->select( '*', $class::$databaseTable, $where, "{$sortBy} {$sortDir}" )->join( $itemClass::$databaseTable, array_merge( array( array( $class::$databaseTable . "." . $class::$databasePrefix . $class::$databaseColumnMap['item'] . "=" . $itemClass::$databaseTable . "." . $itemClass::$databasePrefix . $itemClass::$databaseColumnId ) ), $itemWhere ), 'STRAIGHT_JOIN' );
|
||||
$count = \IPS\Db::i()->select( 'COUNT(*)', $class::$databaseTable, $where )->join( $itemClass::$databaseTable, array_merge( array( array( $class::$databaseTable . "." . $class::$databasePrefix . $class::$databaseColumnMap['item'] . "=" . $itemClass::$databaseTable . "." . $itemClass::$databasePrefix . $itemClass::$databaseColumnId ) ), $itemWhere ), 'STRAIGHT_JOIN' )->first();
|
||||
}
|
||||
|
||||
/* Return */
|
||||
@@ -207,9 +237,9 @@ class _CommentController extends \IPS\Api\Controller
|
||||
|
||||
/* Create post */
|
||||
$class = $this->class;
|
||||
if ( in_array( 'IPS\Content\Review', class_parents( $class ) ) )
|
||||
if ( \in_array( 'IPS\Content\Review', class_parents( $class ) ) )
|
||||
{
|
||||
$comment = $class::create( $item, $content, FALSE, intval( \IPS\Request::i()->rating ), $author->member_id ? NULL : $author->real_name, $author, $date, ( !$this->member and \IPS\Request::i()->ip_address ) ? \IPS\Request::i()->ip_address : \IPS\Request::i()->ipAddress(), $hidden );
|
||||
$comment = $class::create( $item, $content, FALSE, \intval( \IPS\Request::i()->rating ), $author->member_id ? NULL : $author->real_name, $author, $date, ( !$this->member and \IPS\Request::i()->ip_address ) ? \IPS\Request::i()->ip_address : \IPS\Request::i()->ipAddress(), $hidden );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -221,7 +251,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
{
|
||||
if ( $item::$firstCommentRequired and !$comment->isFirst() )
|
||||
{
|
||||
if ( in_array( 'IPS\Content\Searchable', class_implements( $class ) ) )
|
||||
if ( \in_array( 'IPS\Content\Searchable', class_implements( $class ) ) )
|
||||
{
|
||||
\IPS\Content\Search\Index::i()->index( $item->firstComment() );
|
||||
}
|
||||
@@ -321,7 +351,7 @@ class _CommentController extends \IPS\Api\Controller
|
||||
{
|
||||
$ratingChanged = TRUE;
|
||||
$ratingColumn = $comment::$databaseColumnMap['rating'];
|
||||
$comment->$ratingColumn = intval( \IPS\Request::i()->rating );
|
||||
$comment->$ratingColumn = \intval( \IPS\Request::i()->rating );
|
||||
}
|
||||
|
||||
/* Save and return */
|
||||
|
||||
Reference in new issue
Block a user