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
@@ -11,11 +11,13 @@
|
||||
|
||||
namespace IPS\core\modules\front\discover;
|
||||
|
||||
use IPS\Content;
|
||||
use IPS\Content\Comment;
|
||||
use IPS\Content\Filter;
|
||||
use IPS\Content\Item;
|
||||
use IPS\Content\Search\ContentFilter;
|
||||
use IPS\Content\Search\Query;
|
||||
use IPS\Content\Search\Result\Content as SearchResultContent;
|
||||
use IPS\Content\Tag as SystemTag;
|
||||
use IPS\Content\Taggable;
|
||||
use IPS\DateTime;
|
||||
use IPS\Db;
|
||||
use IPS\Helpers\CoverPhoto;
|
||||
@@ -24,11 +26,9 @@ use IPS\Helpers\Form;
|
||||
use IPS\Helpers\Form\Date;
|
||||
use IPS\Helpers\Form\Upload;
|
||||
use IPS\Helpers\Table\Content as TableContent;
|
||||
use IPS\IPS;
|
||||
use IPS\Member;
|
||||
use IPS\Output;
|
||||
use IPS\Request;
|
||||
use IPS\Settings;
|
||||
use IPS\Theme;
|
||||
use OutOfRangeException;
|
||||
use function count;
|
||||
@@ -176,48 +176,53 @@ class tag extends Controller
|
||||
{
|
||||
$contentTypes = SystemTag::getTaggableContentTypes();
|
||||
$pinnedItems = $this->tag->getPinnedItems();
|
||||
$items = [];
|
||||
foreach( Db::i()->select( '*', [ 'core_tags', 't' ], [
|
||||
[ 't.tag_text=?', $this->tag->text ],
|
||||
[ 'p.tag_perm_visible=?', 1 ],
|
||||
[ '(p.tag_perm_text=? or ' . Db::i()->findInSet( 'p.tag_perm_text', Member::loggedIn()->groups ) . ')', '*' ]
|
||||
], 't.tag_added desc', 50 )
|
||||
->join( [ 'core_tags_perms', 'p' ], 't.tag_aai_lookup=p.tag_perm_aai_lookup and t.tag_aap_lookup=p.tag_perm_aap_lookup' ) as $row )
|
||||
|
||||
$filters = [];
|
||||
foreach( $contentTypes as $type )
|
||||
{
|
||||
if( count( $items ) >= Settings::i()->tags_landing_limit )
|
||||
$filters[] = ContentFilter::init( $type );
|
||||
}
|
||||
|
||||
$query = Query::init();
|
||||
$query->setLimit( 50 );
|
||||
$query->filterByContent( $filters );
|
||||
$query->setOrder( Query::ORDER_NEWEST_CREATED );
|
||||
|
||||
$items = [];
|
||||
foreach( $query->search( null, [ $this->tag->text ], Query::TAGS_MATCH_ITEMS_ONLY ) as $result )
|
||||
{
|
||||
/* @var SearchResultContent $result */
|
||||
$pinned = false;
|
||||
$result = $result->asArray();
|
||||
|
||||
/* If the result is a pinned item, then don't show it in the regular list */
|
||||
if( is_array( $pinnedItems ) )
|
||||
{
|
||||
break;
|
||||
foreach( $pinnedItems as $pinnedItem )
|
||||
{
|
||||
$pinnedItemIdColumn = $pinnedItem::$databaseColumnId;
|
||||
if( get_class( $pinnedItem ) == $result['indexData']['index_class'] and $pinnedItem->$pinnedItemIdColumn == $result['indexData']['index_object_id'] )
|
||||
{
|
||||
$pinned = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach( $contentTypes as $k => $itemClass )
|
||||
if( !$pinned )
|
||||
{
|
||||
if( $itemClass::$application == $row['tag_meta_app'] and $itemClass::$module == $row['tag_meta_area'] )
|
||||
try
|
||||
{
|
||||
try
|
||||
$itemClass = $result['indexData']['index_class'];
|
||||
$id = $result['indexData']['index_object_id'];
|
||||
if( is_subclass_of( $itemClass, Comment::class ) )
|
||||
{
|
||||
$item = $itemClass::load( $row['tag_meta_id'] );
|
||||
$idColumn = $itemClass::$databaseColumnId;
|
||||
$pinned = false;
|
||||
if( is_array( $pinnedItems ) )
|
||||
{
|
||||
foreach( $pinnedItems as $pinnedItem )
|
||||
{
|
||||
if( get_class( $pinnedItem ) == $itemClass and $pinnedItem->$idColumn == $item->$idColumn )
|
||||
{
|
||||
$pinned = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !$pinned )
|
||||
{
|
||||
$items[] = $item;
|
||||
}
|
||||
$itemClass = $itemClass::$itemClass;
|
||||
$id = $result['indexData']['index_item_id'];
|
||||
}
|
||||
catch( OutOfRangeException ){}
|
||||
break;
|
||||
$items[] = $itemClass::load( $id );
|
||||
}
|
||||
catch( OutOfRangeException ){}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ class register extends Controller
|
||||
{
|
||||
Output::i()->redirect( Url::internal( 'app=nexus&module=store&controller=store&do=register', 'front', 'store' ) );
|
||||
}
|
||||
else if ( Member::loggedIn()->canAccessModule( Module::get( 'nexus', 'subscriptions' ) ) and ( Settings::i()->nexus_subs_register ) )
|
||||
else if ( Member::loggedIn()->canAccessModule( Module::get( 'nexus', 'subscriptions' ) ) and Settings::i()->nexus_subs_enabled and Settings::i()->nexus_subs_register )
|
||||
{
|
||||
Output::i()->redirect( Url::internal( 'app=nexus&module=subscriptions&controller=subscriptions®ister=1', 'front', 'nexus_subscriptions' ) );
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class themeeditor extends Controller
|
||||
*/
|
||||
public function manage(): void
|
||||
{
|
||||
if ( ! Member::loggedIn()->isAdmin() ) /* @todo add perm checks in Admin CP */
|
||||
if( !Member::loggedIn()->modPermission( 'can_use_theme_editor' ) )
|
||||
{
|
||||
Output::i()->error( 'no_permission', '2S164/1', 403, '' );
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user