Version 4.2.0

This commit is contained in:
Neo committed 2025-12-19 05:44:59 -08:00
1 parent 0dc2aee5ed
commit 96997ddd8e
2074 files changed
+125454 -55780

No files matched your search

@@ -2,9 +2,9 @@
/**
* @brief Converter XenForo Class
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @package IPS Community Suite
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @package Invision Community
* @subpackage Converter
* @since 21 Jan 2015
*/
@@ -102,7 +102,8 @@ class _Xenforo extends \IPS\convert\Software
public static function checkConf()
{
return array(
'convertAttachments'
'convertAttachments',
'convertForumsPosts'
);
}
@@ -117,6 +118,28 @@ class _Xenforo extends \IPS\convert\Software
$return = array();
switch( $method )
{
case 'convertForumsPosts':
/* Get our reactions to let the admin map them */
$options = array();
$descriptions = array();
foreach( new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'core_reactions' ), 'IPS\Content\Reaction' ) AS $reaction )
{
$options[ $reaction->id ] = $reaction->_icon->url;
$descriptions[ $reaction->id ] = \IPS\Member::loggedIn()->language()->addToStack('reaction_title_' . $reaction->id ) . '<br>' . $reaction->_description;
}
$return['convertForumsPosts'] = array(
'rep_like' => array(
'field_class' => 'IPS\\Helpers\\Form\\Radio',
'field_default' => NULL,
'field_required' => TRUE,
'field_extra' => array( 'parse' => 'image', 'options' => $options, 'descriptions' => $descriptions ),
'field_hint' => NULL,
'field_validation' => NULL,
),
);
break;
case 'convertAttachments':
$return['convertAttachments'] = array(
'attach_location' => array(
@@ -523,6 +546,8 @@ class _Xenforo extends \IPS\convert\Software
'type_id' => $row['post_id'],
'member_id' => $like['user_id'],
'member_received' => $row['user_id'],
'reaction' => $this->app->_session['more_info']['convertForumsPosts']['rep_like'],
'rep_date' => $row['post_date']
) );
}
}
@@ -545,6 +570,8 @@ class _Xenforo extends \IPS\convert\Software
$latestedit = 0;
$reason = NULL;
$name = NULL;
$newText = static::fixPostData( $row['message'] );
foreach( $this->db->select( '*', 'xf_edit_history', array( "content_type=? AND content_id=?", 'post', $row['post_id'] ) ) AS $edit )
{
$libraryClass->convertEditHistory( array(
@@ -553,8 +580,11 @@ class _Xenforo extends \IPS\convert\Software
'comment_id' => $row['post_id'],
'member' => $edit['edit_user_id'],
'time' => $edit['edit_date'],
'old' => $edit['old_text']
'old' => static::fixPostData( $edit['old_text'] ),
'new' => $newText
) );
$newText = static::fixPostData( $edit['old_text'] );
if ( $edit['edit_date'] > $latestedit )
{
@@ -618,22 +648,15 @@ class _Xenforo extends \IPS\convert\Software
{
if ( $attachId !== FALSE )
{
$ourAttachment = \IPS\File::get( 'core_Attachment', \IPS\Db::i()->select( 'attach_location', 'core_attachments', array( 'attach_id=?', $attachId ) )->first() );
$pid = $this->app->getLink( $row['content_id'], 'forums_posts' );
$post = \IPS\Db::i()->select( 'post', 'forums_posts', array( "pid=?", $pid ) )->first();
if ( preg_match( "/\[ATTACH(.+?)?\]" . $row['attachment_id'] . "\[\/ATTACH\]/i", $post ) )
{
$post = preg_replace( "/\[ATTACH(.+?)?\]" . $row['attachment_id'] . "\[\/ATTACH\]/i", '<p><a href="<fileStore.core_Attachment>/' . (string) $ourAttachment . '" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="' . $attachId . '" src="<fileStore.core_Attachment>/' . (string) $ourAttachment . '" class="ipsImage ipsImage_thumbnailed" alt=""></a></p>', $post );
$post = preg_replace( "/\[ATTACH(.+?)?\]" . $row['attachment_id'] . "\[\/ATTACH\]/i", '[attachment=' . $attachId . ':name]', $post );
\IPS\Db::i()->update( 'forums_posts', array( 'post' => $post ), array( "pid=?", $pid ) );
}
else
{
$post .= '<p><a href="<fileStore.core_Attachment>/' . (string) $ourAttachment . '" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="' . $attachId . '" src="<fileStore.core_Attachment>/' . (string) $ourAttachment . '" class="ipsImage ipsImage_thumbnailed" alt=""></a></p>';
}
\IPS\Db::i()->update( 'forums_posts', array( 'post' => $post ), array( "pid=?", $pid ) );
}
}
catch( \UnderflowException $e ) {}
@@ -690,7 +713,7 @@ class _Xenforo extends \IPS\convert\Software
}
$item = $class::load( $data );
if( $item instanceof \IPS\Content\Item )
if( $item instanceof \IPS\Content )
{
if( $item->canView() )
{