Version 5.0.0 beta 6

This commit is contained in:
Neo committed 2025-12-19 17:12:27 -08:00
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&register=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, '' );
}