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
@@ -224,7 +224,7 @@ class menu extends Controller
|
||||
'title' => 'delete',
|
||||
'link' => Url::internal( "app=core&module=applications&controller=menu&do=remove&id={$item['id']}" )->csrf(),
|
||||
'icon' => 'times-circle',
|
||||
'data' => [ 'confirm' => '' ]
|
||||
'data' => ['delete' => ''],
|
||||
];
|
||||
|
||||
$icon = null;
|
||||
|
||||
@@ -389,10 +389,16 @@ class emoticons extends Controller
|
||||
{
|
||||
try
|
||||
{
|
||||
File::get( 'core_Emoticons', $emoticon['image'] )->delete();
|
||||
File::get( 'core_Emoticons', $emoticon['image_2x'] )->delete();
|
||||
if( $emoticon['image'] )
|
||||
{
|
||||
File::get( 'core_Emoticons', $emoticon['image'] )->delete();
|
||||
}
|
||||
if( $emoticon['image_2x'] )
|
||||
{
|
||||
File::get( 'core_Emoticons', $emoticon['image_2x'] )->delete();
|
||||
}
|
||||
}
|
||||
catch ( UnderflowException $e ) { }
|
||||
catch ( OutOfRangeException $e ) { }
|
||||
}
|
||||
|
||||
Db::i()->delete( 'core_emoticons', array( 'emo_set=?', $set ) );
|
||||
|
||||
@@ -769,7 +769,7 @@ class advertisements extends Controller
|
||||
|
||||
/* Any additional settings to save? */
|
||||
$additionalSettings = array(
|
||||
'ad_apps' => ( isset( $values['ad_apps'] ) AND $values['ad_apps'] != 0 ) ? array_keys( $values['ad_apps'] ) : 0
|
||||
'ad_apps' => ( isset( $values['ad_apps'] ) AND is_array( $values['ad_apps'] ) ) ? array_keys( $values['ad_apps'] ) : 0
|
||||
);
|
||||
|
||||
if( $values['ad_type'] == Advertisement::AD_EMAIL )
|
||||
|
||||
@@ -238,7 +238,7 @@ class seo extends Controller
|
||||
$value = $values['use_robotstxt_custom_editor'];
|
||||
}
|
||||
|
||||
$form->saveAsSettings( [ 'robots_txt' => $value ] );
|
||||
$form->saveAsSettings( [ 'robots_txt' => $value, 'seo_reduce_links' => $values['seo_reduce_links'] ] );
|
||||
|
||||
Session::i()->log( 'acplog__robotstxt_edited' );
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ class membersactivity extends Controller
|
||||
/* And now build the table */
|
||||
$table = new Db( 'core_members', Request::i()->url()->setQueryString( array( 'postDateStart' => $startTime, 'postDateEnd' => $endTime, 'postGroups' => is_array( $groups ) ? implode( ',', $groups ) : NULL ) ), $where );
|
||||
|
||||
$table->include = array( 'name', 'email', 'member_posts', 'member_last_post', 'group_name', 'ip_address' );
|
||||
$table->include = array( 'name', 'email', 'member_last_post', 'group_name', 'ip_address' );
|
||||
$table->mainColumn = 'name';
|
||||
$table->langPrefix = 'activity_';
|
||||
$table->rowClasses = array( 'email' => array( 'ipsTable_wrap' ), 'group_name' => array( 'ipsTable_wrap' ) );
|
||||
|
||||
@@ -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