Version 4.7.13

This commit is contained in:
Neo committed 2025-12-19 16:14:56 -08:00
1 parent fd22d99e69
commit 7124a02564
954 files changed
+29277 -59308

No files matched your search

+2 -3
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="convert">
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="107643" javascript_position="1000050">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -45,7 +45,7 @@
}
} );
}(jQuery, _));</file>
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -98,7 +98,6 @@ controllers</order>
<order app="global" path="/dev/js//library/">underscore
jquery
mustache
IntersectionObserver
Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="convert" version="107643">
<app key="convert" version="107712">
<word key="__app_convert" js="0">Converter</word>
<word key="menu__convert_manage" js="0">Conversions</word>
<word key="menu__convert_manage_manage_start" js="0">Start New Conversion</word>
+31 -1
View File
@@ -424,5 +424,35 @@
"107640": "4.7.8 Beta 1",
"107641": "4.7.8 Beta 2",
"107642": "4.7.8 Beta 3",
"107643": "4.7.8"
"107643": "4.7.8",
"107644": "4.7.8",
"107645": "4.7.8",
"107660": "4.7.9 Beta 1",
"107661": "4.7.9 Beta 2",
"107662": "4.7.9 Beta 3",
"107663": "4.7.9",
"107664": "4.7.9",
"107665": "4.7.9",
"107666": "4.7.9",
"107667": "4.7.9",
"107668": "4.7.9",
"107680": "4.7.10 Beta 1",
"107681": "4.7.10 Beta 2",
"107682": "4.7.10",
"107683": "4.7.10",
"107684": "4.7.10",
"107690": "4.7.11 Beta 1",
"107691": "4.7.11 Beta 2",
"107692": "4.7.11",
"107693": "4.7.11",
"107694": "4.7.11",
"107695": "4.7.11.1",
"107700": "4.7.12 Beta 1",
"107701": "4.7.12 Beta 2",
"107702": "4.7.12 Beta 3",
"107703": "4.7.12 Beta 4",
"107704": "4.7.12",
"107710": "4.7.13 Beta 1",
"107711": "4.7.13 Beta 2",
"107712": "4.7.13"
}
@@ -0,0 +1,23 @@
{
"id": 107644,
"name": "4.7.8",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107645,
"name": "4.7.8",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107660,
"name": "4.7.9 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107661,
"name": "4.7.9 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107662,
"name": "4.7.9 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107663,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107664,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107665,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107666,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107667,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107668,
"name": "4.7.9",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107680,
"name": "4.7.10 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107681,
"name": "4.7.10 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107682,
"name": "4.7.10",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107683,
"name": "4.7.10",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107684,
"name": "4.7.10",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107690,
"name": "4.7.11 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107691,
"name": "4.7.11 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107692,
"name": "4.7.11",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107693,
"name": "4.7.11",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107694,
"name": "4.7.11",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107695,
"name": "4.7.11.1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107700,
"name": "4.7.12 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": true,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": true,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"files": {
"added": [],
"edited": [],
"removed": []
},
"orders": {
"added": [],
"edited": [
"global\/\/dev\/js\/\/library\/"
],
"removed": []
}
}
@@ -0,0 +1,23 @@
{
"id": 107701,
"name": "4.7.12 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107702,
"name": "4.7.12 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107703,
"name": "4.7.12 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107704,
"name": "4.7.12",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107710,
"name": "4.7.13 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107711,
"name": "4.7.13 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107712,
"name": "4.7.13",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1357,12 +1357,17 @@ class _Cms extends Core
{
\IPS\Db::i()->update( 'cms_databases', array( 'database_field_title' => $titleField, 'database_field_content' => $contentField ), array( "database_id=?", $inserted_id ) );
\IPS\Lang::saveCustom( 'cms', "content_db_{$inserted_id}", $name );
\IPS\Lang::saveCustom( 'cms', "module__cms_records{$inserted_id}", $name );
\IPS\Lang::saveCustom( 'cms', "content_db_{$inserted_id}_desc", $desc );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_sl_{$inserted_id}", $sln );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_pl_{$inserted_id}", $pln );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_su_{$inserted_id}", $scn );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_pu_{$inserted_id}", $pcn );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_ia_{$inserted_id}", $ia );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_sl_{$inserted_id}_pl", $pcn );
\IPS\Lang::saveCustom( 'cms', "cms_create_menu_records_{$inserted_id}", "{$scn} in {$name}" );
\IPS\Lang::saveCustom( 'cms', "digest_area_cms_records{$inserted_id}", $pcn );
\IPS\Lang::saveCustom( 'cms', "cms_records{$inserted_id}_pl", $scn );
}
else
{
@@ -1515,12 +1515,12 @@ class _Downloads extends Core
$map['id1_from_parent'] = FALSE;
$map['id2_from_parent'] = FALSE;
/* Some set up */
if ( !isset( $info['id3'] ) )
if ( !isset( $map['id3'] ) )
{
$info['id3'] = NULL;
$map['id3'] = NULL;
}
if ( \is_null( $info['id3'] ) OR $info['id3'] != 'review' )
if ( \is_null( $map['id3'] ) OR $map['id3'] != 'review' )
{
$map['id2_type'] = 'downloads_comments';
}
+208 -4
View File
@@ -205,15 +205,37 @@ class _Nexus extends \IPS\convert\Library
'link_type' => 'nexus_coupons'
);
break;
case 'convertNexusSubscriptionPackages':
$return[ $k ] = [
'step_title' => 'convert_nexus_subscription_packages',
'step_method' => 'convertNexusSubscriptionPackages',
'ips_rows' => \IPS\Db::i()->select( 'COUNT(*)', 'nexus_member_subscription_packages' ),
'source_rows' => [ 'table' => $v['table'], 'where' => $v['where'] ],
'per_cycle' => 200,
'dependencies' => [],
'link_type' => 'nexus_subscription_package'
];
break;
case 'convertNexusInvoices':
$dependencies = array();
foreach( array( 'convertNexusCustomers', 'convertNexusPackages', 'convertNexusSubscriptionPackages' ) as $dependency )
{
$canConvert = $this->getConvertableItems();
if ( isset( $canConvert[ $dependency ] ) )
{
$dependencies[] = $dependency;
}
}
$return[ $k ] = array(
'step_title' => 'convert_nexus_invoices',
'step_method' => 'convertNexusInvoices',
'ips_rows' => \IPS\Db::i()->select( 'COUNT(*)', 'nexus_invoices' ),
'source_rows' => array( 'table' => $v['table'], 'where' => $v['where'] ),
'per_cycle' => 200,
'dependencies' => array( 'convertNexusCustomers', 'convertNexusPackages' ),
'dependencies' => $dependencies,
'link_type' => 'nexus_invoices',
);
break;
@@ -242,13 +264,23 @@ class _Nexus extends \IPS\convert\Library
break;
case 'convertNexusPurchases':
$dependencies = array();
foreach( array( 'convertNexusCustomers', 'convertNexusPackages', 'convertNexusInvoices', 'convertNexusSubscriptionPackages' ) as $dependency )
{
$canConvert = $this->getConvertableItems();
if ( isset( $canConvert[ $dependency ] ) )
{
$dependencies[] = $dependency;
}
}
$return[ $k ] = array(
'step_title' => 'convert_nexus_purchases',
'step_method' => 'convertNexusPurchases',
'ips_rows' => \IPS\Db::i()->select( 'COUNT(*)', 'nexus_purchases' ),
'source_rows' => array( 'table' => $v['table'], 'where' => $v['where'] ),
'per_cycle' => 200,
'dependencies' => array( 'convertNexusCustomers', 'convertNexusPackages', 'convertNexusInvoices' ),
'dependencies' => $dependencies,
'link_type' => 'nexus_purchases'
);
break;
@@ -433,6 +465,10 @@ class _Nexus extends \IPS\convert\Library
);
break;
case 'convertNexusSubscriptionPackages':
$return['convertNexusSubscriptionPackages'] = [ 'nexus_member_subscription_packages' => NULL ];
break;
case 'convertNexusPaymentMethods':
$return['convertNexusPaymentMethods'] = array( 'nexus_paymethods' => NULL );
break;
@@ -1199,6 +1235,173 @@ class _Nexus extends \IPS\convert\Library
return $insertedId;
}
/**
* Convert a subscription package
*
* @param array $info Info
* @param string|NULL $filePath Path to images
* @return int|bool The ID of the newly inserted package, or FALSE on failure
*/
public function convertNexusSubscriptionPackage( $info, $filePath=NULL )
{
/* !Required: ID */
if ( !isset( $info['sp_id'] ) )
{
$this->software->app->log( 'nexus_package_missing_id', __METHOD__, \IPS\convert\App::LOG_WARNING );
return FALSE;
}
if ( isset( $info['sp_name'] ) )
{
$name = $info['sp_name'];
unset( $info['sp_name'] );
}
else
{
$name = "Untitled Subscription {$info['sp_id']}";
}
if ( isset( $info['sp_description'] ) )
{
$description = $info['sp_description'];
unset( $info['sp_description'] );
}
else
{
$description = '';
}
/* !Required: Price */
if( !isset( $info['sp_price'] ) )
{
$this->software->app->log( 'nexus_subscription_missing_price', __METHOD__, \IPS\convert\App::LOG_WARNING, $info['sp_id'] );
return FALSE;
}
/* Primary User Group */
if( isset( $info['sp_primary_group'] ) )
{
$info['sp_primary_group'] = $this->software->app->getLink( $info['sp_primary_group'], 'core_groups', TRUE );
}
/* Secondary User Groups */
if( isset( $info['sp_secondary_group'] ) )
{
$e = explode( ',', $info['sp_secondary_group'] );
$newSecondaryGroups = [];
array_walk( $info['sp_secondary_group'], function( $group, $key, &$newSecondaryGroups )
{
try
{
$newSecondaryGroups[] = $this->software->app->getLink( $group, 'core_groups', TRUE );
}
catch( \OutOfRangeException $ex ) { }
}, $newSecondaryGroups );
}
if ( !isset( $info['sp_position'] ) )
{
try
{
$position = \IPS\Db::i()->select( 'MAX(p_position)', 'nexus_subscription_packages' )->first();
$info['sp_position'] = $position + 1;
}
catch( \UnderflowException $e ) { }
}
/* Base Price */
if( isset( $info['sp_price'] ) AND \count( $info['sp_price'] ) )
{
$newOptions = array(
'cost' => [],
'term' => $info['sp_price']['term'],
'unit' => $info['sp_price']['unit'],
'add' => isset( $info['sp_price']['add'] ) ? $info['sp_price']['add'] : false
);
foreach ( $info['sp_price']['cost'] as $currency => $cost )
{
$price = new \IPS\nexus\Money( $cost, $currency );
$newOptions['cost'][ $currency ] = [ 'amount' => $price->amount, 'currency' => $currency ];
}
}
$basePrice = $newOptions;
unset( $info['sp_price'] );
/* Renewal costs & terms */
if( isset( $info['sp_renew_options'] ) AND \count( $info['sp_renew_options'] ) )
{
$newOptions = array(
'cost' => [],
'term' => $info['sp_renew_options']['term'],
'unit' => $info['sp_renew_options']['unit'],
'add' => isset( $info['sp_renew_options']['add'] ) ? $info['sp_renew_options']['add'] : false
);
foreach ( $info['sp_renew_options']['cost'] as $currency => $cost )
{
$price = new \IPS\nexus\Money( $cost, $currency );
$newOptions['cost'][ $currency ] = [ 'amount' => $price->amount, 'currency' => $currency ];
}
$info['sp_renew_options'] = json_encode( $newOptions );
}
$image = isset( $info['sp_image'] ) ? $info['sp_image'] : NULL;
unset( $info['sp_image'] );
$package = array(
'sp_reg_show' => 0,
'sp_featured' => 0,
'sp_price' => json_encode( $basePrice ),
'sp_tax' => 0,
'sp_primary_group' => 0,
'sp_secondary_group' => '',
'sp_return_primary' => 1,
'sp_position' => 0,
'sp_image' => NULL,
'sp_gateways' => '*',
'sp_renew_options' => '',
'sp_count_active' => 0,
'sp_count_inactive' => 0
);
/* Images */
if( $image )
{
if ( ( isset( $image['data'] ) AND \is_null( $image['data'] ) ) AND !\is_null( $filePath ) )
{
$filedata = @file_get_contents( rtrim( $filePath, '/' ) . '/' . $image['filename'] );
unset( $filepath );
}
if ( $filedata )
{
try
{
$info['sp_image'] = (string) \IPS\File::create( 'nexus_Products', $image['filename'], $filedata );
}
catch( \Exception $e ) {}
}
}
/* Save Package Data */
$insertedId = \IPS\Db::i()->insert( 'nexus_member_subscription_packages', $this->_getValues( $package, $info ) );
$originalId = $info['sp_id'];
unset( $info['sp_id'] );
/* Custom lang strings */
\IPS\Lang::saveCustom( 'nexus', "nexus_subs_{$insertedId}", $name );
\IPS\Lang::saveCustom( 'nexus', "nexus_subs_{$insertedId}_desc", $description );
/* Add Link */
$this->software->app->addLink( $insertedId, $originalId, 'nexus_members_subs_pkg' );
return $insertedId;
}
/**
* Convert an invoice
*
@@ -1239,7 +1442,8 @@ class _Nexus extends \IPS\convert\Library
{
try
{
$item['itemID'] = $this->software->app->getLink( $item['itemID'], 'nexus_packages' );
$item['itemID'] = $this->software->app->getLink( $item['itemID'], $item['item_type'] ?? 'nexus_packages' );
unset( $item['item_type'] );
$newItems[] = $item;
}
catch( \OutOfRangeException $e ) {}
@@ -1457,7 +1661,7 @@ class _Nexus extends \IPS\convert\Library
return FALSE;
}
$info['ps_item_id'] = $this->software->app->getLink( $info['ps_item_id'], 'nexus_packages' );
$info['ps_item_id'] = $this->software->app->getLink( $info['ps_item_id'], $info['ps_link_type'] ?? 'nexus_packages' );
try
{
@@ -482,6 +482,13 @@ class _Wordpress extends \IPS\convert\Software
{
$meta[$m['meta_key']] = $m['meta_value'];
}
/* No filename, no convert */
if( !isset( $meta['_wp_attached_file'] ) )
{
$libraryClass->setLastKeyValue( $row['ID'] );
continue;
}
$filename = explode( '/', $meta['_wp_attached_file'] );
$filename = array_pop( $filename );
@@ -688,7 +688,7 @@ class _Invisioncommunity extends \IPS\convert\Software
unset( $row['members_bitoptions'], $row['members_bitoptions2'] );
$path = $this->app->_session['more_info']['convertMembers']['upload_path'] . '/';
$libraryClass->convertMember( $row, $profileFields, $profilePhotoName, $path . ( isset( $bits ) ? $bits[0] : '' ), NULL, $coverPhotoName, $path . ( isset( $coverBits[0] ) ? $coverBits[0] : '' ) );
$libraryClass->convertMember( $row, $profileFields, $profilePhotoName, $path . ( isset( $bits[0] ) ? $bits[0] : '' ), NULL, $coverPhotoName, $path . ( isset( $coverBits[0] ) ? $coverBits[0] : '' ) );
/* Any friends need converting to followers? */
foreach( $this->db->select( '*', 'core_follow', array( 'follow_app=? AND follow_area=? AND follow_rel_id=?', 'core', 'member', $row['member_id'] ) ) as $follow )
@@ -31,7 +31,7 @@ class _Wpforo extends \IPS\convert\Software
public static function softwareName()
{
/* Child classes must override this method */
return "wpForo (1.9.x)";
return "wpForo (2.1.x)";
}
/**
@@ -406,19 +406,27 @@ class _Wpforo extends \IPS\convert\Software
foreach( $this->fetch( 'users', 'users.ID' )->join( 'wpforo_profiles', "users.ID=wpforo_profiles.userid" ) AS $user )
{
try
{
$joined = ( new \IPS\DateTime( $user['user_registered'] ) )->getTimestamp();
}
catch( \ValueError $e )
{
$joined = time();
}
/* Main Members Table */
$info = [
'member_id' => $user['ID'],
'member_group_id' => $user['groupid'],
'mgroup_others' => $user['secondary_groups'],
'name' => $user['username'],
'mgroup_others' => $user['secondary_groupids'],
'name' => $user['display_name'],
'email' => $user['user_email'],
'joined' => new \IPS\DateTime( $user['user_registered'] ),
'joined' => $joined,
'conv_password' => $user['user_pass'],
'temp_ban' => $user['status'] == 'blocked' ? -1 : 0,
'signature' => static::fixPostData( $user['signature'] ?: '' ),
'last_visit' => new \IPS\DateTime( $user['last_login'] ),
'last_activity' => new \IPS\DateTime( $user['last_login'] ),
'last_visit' => $user['online_time'],
'last_activity' => $user['online_time']
];
$fields = [];
@@ -462,7 +470,7 @@ class _Wpforo extends \IPS\convert\Software
/* Take a guess */
foreach( [ 'jpg', 'png', 'jpeg', 'gif' ] as $ext )
{
$filename = \strtolower( \str_replace( '_', '', \preg_replace( '/\s|\.(?=.*\.)/i', '-',$user['username'] ) ) ) . '_' . $user['ID'] . '.' . $ext;
$filename = \strtolower( \str_replace( '_', '', \preg_replace( '/\s|\.(?=.*\.)/i', '-',$user['display_name'] ) ) ) . '_' . $user['ID'] . '.' . $ext;
if( file_exists( $avatarPath . '/' . $filename ) )
{
@@ -611,8 +611,22 @@ class _Xenforo extends \IPS\convert\Software
{
$post = preg_replace( '#\[quote=&quot;([a-zA-Z0-9-_ ]+)(,([a-z0-9\s:])+)?(,([a-z0-9\s:])+)?&quot;]#i', "[quote name='$1']", $post );
}
// finally, give us the post back.
/* Tables */
if ( \stristr( $post, '[table]' ) )
{
$search = array( '[table]', '[/table]', '[th]', '[/th]', '[tr]', '[/tr]', '[td]', '[/td]' );
$replace = array( '<table>', '</table>', '<th>', '</th>', '<tr>', '</tr>', '<td>', '</td>' );
$post = str_ireplace( $search, $replace, $post );
}
/* Spoilers */
if ( \preg_match( "#\[spoiler=#i", $post ) )
{
$post = preg_replace( '/\[spoiler=(&quot;|&#039;|)([a-zA-Z0-9-_ ]+)(&quot;|&#039;|)\]/i', "[spoiler]", $post );
}
return $post;
}
@@ -147,7 +147,7 @@ class _Bbpress extends \IPS\convert\Software
$libraryClass::setKey( 'ID' );
/* Which username type? */
$userName = $this->app->_parent->_session['more_info']['convertMembers']['username'] == 'username' ? 'user_login' : 'display_name';
$userName = ( isset( $this->app->_parent->_session['more_info']['convertMembers']['username'] ) AND $this->app->_parent->_session['more_info']['convertMembers']['username'] == 'username') ? 'user_login' : 'display_name';
foreach( $this->fetch( 'posts', 'ID', array( 'post_type=?', 'topic' ) ) AS $row )
{
@@ -189,7 +189,7 @@ class _Bbpress extends \IPS\convert\Software
$libraryClass::setKey( 'ID' );
/* Which username type? */
$userName = $this->app->_parent->_session['more_info']['convertMembers']['username'] == 'username' ? 'user_login' : 'display_name';
$userName = ( isset( $this->app->_parent->_session['more_info']['convertMembers']['username'] ) AND $this->app->_parent->_session['more_info']['convertMembers']['username'] == 'username') ? 'user_login' : 'display_name';
foreach( $this->fetch( 'posts', 'ID', array( '(post_type=? OR post_type=?)', 'topic', 'reply' ) ) AS $row )
{
@@ -31,7 +31,7 @@ class _Wpforo extends \IPS\convert\Software
public static function softwareName()
{
/* Child classes must override this method */
return "wpForo (1.9.x)";
return "wpForo (2.1.x)";
}
/**
@@ -324,10 +324,10 @@ class _Wpforo extends \IPS\convert\Software
$libraryClass->convertForumsPost( $info );
/* Reputation */
foreach( $this->db->select( '*', 'wpforo_likes', [ 'postid=?', $row['postid'] ] ) AS $rep )
foreach( $this->db->select( '*', 'wpforo_reactions', [ 'postid=? AND type=?', $row['postid'], 'up' ] ) AS $rep )
{
$libraryClass->convertReputation( [
'id' => $rep['likeid'],
'id' => $rep['reactionid'],
'app' => 'forums',
'type' => 'pid',
'type_id' => $row['postid'],
@@ -109,7 +109,7 @@ trait Xenforo
imagefill( $image->image, 0, 0, imagecolorallocatealpha( $image->image, 0, 0, 0, 127 ) );
/* Extract sprite */
imagecopy( $image->image, $this->_spriteImages[ $key ]->image, 0, 0, abs( $spriteParams['x'] ) * $multiplier, abs( $spriteParams['y'] ) * $multiplier, $spriteParams['w'] * $multiplier, $spriteParams['h'] * $multiplier );
imagecopy( $image->image, $this->_spriteImages[ $key ]->image, 0, 0, abs( (int) $spriteParams['x'] ) * $multiplier, abs( (int) $spriteParams['y'] ) * $multiplier, $spriteParams['w'] * $multiplier, $spriteParams['h'] * $multiplier );
/* x2 image? */
$return = array();