Version 4.3.0

This commit is contained in:
Neo committed 2025-12-19 05:47:12 -08:00
1 parent 96997ddd8e
commit fe1acf984a
1349 files changed
+116159 -67711

No files matched your search

+21 -14
View File
@@ -171,7 +171,7 @@ class _Results extends \ArrayIterator
{
$this->itemData[ $itemClass ][ $itemId ] = $itemData;
if ( isset( $itemClass::$databaseColumnMap ) and isset( $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ] ) )
if ( isset( $itemClass::$databaseColumnMap ) and isset( $itemClass::$databaseColumnMap['author'] ) and isset( $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ] ) )
{
$memberId = $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ];
$membersToLoad[ $memberId ] = $memberId;
@@ -236,16 +236,16 @@ class _Results extends \ArrayIterator
/* Load data for the "I posted in this" stars */
if ( count( $itemIndexIds ) and \IPS\Member::loggedIn()->member_id )
{
$this->iPostedIn = iterator_to_array( \IPS\Db::i()->select( 'index_item_index_id', 'core_search_index', array( array( \IPS\Db::i()->in( 'index_item_index_id', $itemIndexIds ) ), array( 'index_author=?', \IPS\Member::loggedIn()->member_id ) ) )->setKeyField('index_item_index_id') );
$this->iPostedIn = \IPS\Content\Search\Index::i()->iPostedIn( $itemIndexIds, \IPS\Member::loggedIn() );
}
/* Load tags and prefixes */
if ( count( $itemIndexIds ) )
if ( count( $itemIndexIds ) and \IPS\Settings::i()->search_method == 'mysql' )
{
$this->tags = iterator_to_array( \IPS\Db::i()->select( 'index_id, GROUP_CONCAT(index_tag) as index_tags', 'core_search_index_tags', array( array( \IPS\Db::i()->in( 'index_id', $itemIndexIds ) ), array( 'index_is_prefix = 0' ) ), NULL, NULL, 'index_id' )->setKeyField('index_id') );
$this->prefixes = iterator_to_array( \IPS\Db::i()->select( 'index_id, index_tag as index_prefix', 'core_search_index_tags', array( array( \IPS\Db::i()->in( 'index_id', $itemIndexIds ) ), array( 'index_is_prefix = 1' ) ) )->setKeyField('index_id') );
}
/* Set that we're initiated */
$this->initated = TRUE;
}
@@ -280,7 +280,8 @@ class _Results extends \ArrayIterator
{
/* This should not happen in production, so debug log and move on to the next item */
\IPS\Log::debug( "index_item_id ID " . $data['index_item_id'] . " for " . $itemClass . " has no itemData" , 'searchResults' );
return static::next();
static::next();
return static::current();
}
$itemData = $this->itemData[ $itemClass ][ $data['index_item_id'] ];
@@ -288,7 +289,7 @@ class _Results extends \ArrayIterator
{
$itemData['profile'] = $this->authorData[ $data['index_container_id'] ];
}
if ( isset( $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ] ) )
if ( isset( $itemClass::$databaseColumnMap['author'] ) and isset( $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ] ) )
{
$memberId = $itemData[ $itemClass::$databasePrefix . $itemClass::$databaseColumnMap['author'] ];
if ( isset( $this->authorData[ $memberId ] ) )
@@ -301,7 +302,7 @@ class _Results extends \ArrayIterator
{
$data['index_tags'] = $this->tags[ $data['index_item_index_id'] ]['index_tags'];
}
if ( isset( $this->prefixes[ $data['index_item_index_id'] ]) )
{
$data['index_prefix'] = $this->prefixes[ $data['index_item_index_id'] ]['index_prefix'];
@@ -432,7 +433,7 @@ class _Results extends \ArrayIterator
/* Users registered */
if ( in_array( 'register', $extra ) )
{
$where = array( array( 'joined>?', $lastTime ), array( 'name<>?', '' ) );
$where = array( array( 'joined>?', $lastTime ), array( '( name<>? and email<>? )', '', '' ), array( 'temp_ban!=?', '-1' ) );
if ( $firstTime )
{
$where[] = array( 'joined<?', $firstTime );
@@ -441,12 +442,18 @@ class _Results extends \ArrayIterator
{
$where[] = array( 'core_members.member_id=?', $author->member_id );
}
foreach ( \IPS\Db::i()->select( 'core_members.member_id, core_members.name, core_members.members_seo_name, core_members.joined, core_validating.new_reg', 'core_members', $where, 'joined DESC', 10 )
->join( 'core_validating', 'core_validating.member_id=core_members.member_id' ) as $member )
{
foreach (
\IPS\Db::i()->select( implode( ', ', array_merge( array_map( function( $c ) { return "core_members.{$c}"; }, \IPS\Member::columnsForPhoto() ), array( 'core_members.joined', 'core_validating.new_reg' ) ) ), 'core_members', $where, 'joined DESC', 10 )
->join( 'core_validating', 'core_validating.member_id=core_members.member_id' )
as $member ) {
if ( empty( $member['new_reg'] ) )
{
$extraItems[] = new Result\Custom( \IPS\DateTime::ts( $member['joined'] ), \IPS\Member::loggedIn()->language()->addToStack( 'activity_member_joined', FALSE, array( 'htmlsprintf' => \IPS\Theme::i()->getTemplate( 'global', 'core', 'front' )->userLinkFromData( $member['member_id'], $member['name'], $member['members_seo_name'] ) ) ) );
$extraItems[] = new Result\Custom(
\IPS\DateTime::ts( $member['joined'] ),
\IPS\Member::loggedIn()->language()->addToStack( 'activity_member_joined', FALSE, array( 'htmlsprintf' => \IPS\Theme::i()->getTemplate( 'global', 'core', 'front' )->userLinkFromData( $member['member_id'], $member['name'], $member['members_seo_name'] ) ) ),
\IPS\Theme::i()->getTemplate( 'global', 'core', 'front' )->userPhotoFromData( $member['member_id'], $member['name'], $member['members_seo_name'], \IPS\Member::photoUrl( $member ), 'tiny' )
);
}
}
}
@@ -454,7 +461,7 @@ class _Results extends \ArrayIterator
/* Users changed photo */
if ( in_array( 'photo', $extra ) )
{
$where = array( array( 'photo_last_update>?', $lastTime ) );
$where = array( array( 'photo_last_update>? AND photo_last_update>(joined+300)', $lastTime ), array( '( name<>? and email<>? )', '', '' ) );
if ( $firstTime )
{
$where[] = array( 'photo_last_update<?', $firstTime );
@@ -525,7 +532,7 @@ class _Results extends \ArrayIterator
}
else
{
$class = 'IPS\\' . $follow['follow_app'] . '\\' . ucfirst( $follow['follow_area'] );
$class = 'IPS\\' . $follow['follow_app'] . '\\' . mb_ucfirst( $follow['follow_area'] );
try
{