Version 4.1.19
This commit is contained in:
1 parent
28bd025b35
commit
2bd5025018
2674 files changed
+233518
-77766
No files matched your search
@@ -5,7 +5,8 @@
|
||||
"core_members",
|
||||
{
|
||||
"name": "cm_credits",
|
||||
"type": "TEXT"
|
||||
"type": "TEXT",
|
||||
"comment": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -17,7 +18,8 @@
|
||||
"name": "cm_no_sev",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"default": "0"
|
||||
"default": "0",
|
||||
"comment": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -29,7 +31,8 @@
|
||||
"name": "cm_return_group",
|
||||
"type": "SMALLINT",
|
||||
"length": 3,
|
||||
"default": "0"
|
||||
"default": "0",
|
||||
"comment": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
/**
|
||||
* @brief 4.0.0 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 30 Oct 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
/**
|
||||
* @brief 4.0.0 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 17 Feb 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
/**
|
||||
* @brief 4.0.0 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Feb 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 4.0.0 RC 5 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage Blog
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 5 May 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 4.0.5 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage Blog
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 5 May 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -102,8 +102,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 4.0.99 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage Commerce
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 23 Jul 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
@@ -206,6 +206,12 @@ class _Upgrade
|
||||
{
|
||||
foreach ( $decoded as $countryCode => $locations )
|
||||
{
|
||||
/* 3.x treated a null value for locations as '*'. 4.x is much more strict over allowed values */
|
||||
if ( !$locations )
|
||||
{
|
||||
$locations = $decoded[ $countryCode ] = '*';
|
||||
}
|
||||
|
||||
if ( $locations != '*' and isset( $statesFrom3[ $countryCode ] ) and isset( \IPS\GeoLocation::$states[ $countryCode ] ) )
|
||||
{
|
||||
foreach ( $locations as $i => $location )
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.5 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 24 Nov 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101017;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.5 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Fix nexus_package_base_prices
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$offset = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
|
||||
|
||||
if ( !$offset )
|
||||
{
|
||||
\IPS\Db::i()->dropTable( 'nexus_package_base_prices', TRUE );
|
||||
|
||||
$schema = array(
|
||||
'name' => 'nexus_package_base_prices',
|
||||
'columns' => array(
|
||||
'id' => array(
|
||||
'name' => 'id',
|
||||
'type' => 'BIGINT',
|
||||
'length' => '20',
|
||||
'unsigned' => true,
|
||||
'zerofill' => false,
|
||||
'binary' => false,
|
||||
'allow_null' => false,
|
||||
'default' => NULL,
|
||||
'auto_increment' => true,
|
||||
),
|
||||
),
|
||||
'indexes' => array(
|
||||
'PRIMARY' => array (
|
||||
'type' => 'primary',
|
||||
'name' => 'PRIMARY',
|
||||
'columns' => array( 'id' )
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
foreach ( \IPS\nexus\Money::currencies() as $currency )
|
||||
{
|
||||
$schema['columns'][ $currency ] = array(
|
||||
'name' => $currency,
|
||||
'type' => 'FLOAT'
|
||||
);
|
||||
}
|
||||
|
||||
\IPS\Db::i()->createTable( $schema );
|
||||
}
|
||||
|
||||
$select = \IPS\Db::i()->select( '*', 'nexus_packages', NULL, 'p_id', array( $offset, 100 ) );
|
||||
if ( count( $select ) )
|
||||
{
|
||||
foreach ( $select as $row )
|
||||
{
|
||||
$basePrices = json_decode( $row['p_base_price'], TRUE );
|
||||
|
||||
$insert = array( 'id' => $row['p_id'] );
|
||||
foreach ( \IPS\nexus\Money::currencies() as $currency )
|
||||
{
|
||||
if ( isset( $basePrices[ $currency ] ) )
|
||||
{
|
||||
$insert[ $currency ] = $basePrices[ $currency ]['amount'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$insert[ $currency ] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
\IPS\Db::i()->insert( 'nexus_package_base_prices', $insert );
|
||||
}
|
||||
|
||||
return $offset + 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
unset( $_SESSION['_step1Count'] );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// You can create as many additional methods (step2, step3, etc.) as is necessary.
|
||||
// Each step will be executed in a new HTTP request
|
||||
}
|
||||
@@ -130,8 +130,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"1": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
"name": "nexus_billing_agreements",
|
||||
"columns": {
|
||||
"ba_id": {
|
||||
"name": "ba_id",
|
||||
"type": "BIGINT",
|
||||
"length": 20,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "ID Number",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": true,
|
||||
"binary": false
|
||||
},
|
||||
"ba_gw_id": {
|
||||
"name": "ba_gw_id",
|
||||
"type": "VARCHAR",
|
||||
"length": 255,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "The ID assigned by the gateway",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"ba_method": {
|
||||
"name": "ba_method",
|
||||
"type": "INT",
|
||||
"length": 5,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "Payment method ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"ba_member": {
|
||||
"name": "ba_member",
|
||||
"type": "MEDIUMINT",
|
||||
"length": 8,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Customer ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"ba_started": {
|
||||
"name": "ba_started",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "Unix timestamp of when billing agreement was created",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"ba_next_cycle": {
|
||||
"name": "ba_next_cycle",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Timestamp of when the next payment will be made or NULL if there was an error last time",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"ba_canceled": {
|
||||
"name": "ba_canceled",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": "0",
|
||||
"comment": "If the agreement has been canceled",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"columns": [
|
||||
"ba_id"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
{
|
||||
"name": "t_billing_agreement",
|
||||
"type": "BIGINT",
|
||||
"length": 20,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "If the transaction is part of a billing agreement, its ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_purchases",
|
||||
{
|
||||
"name": "ps_billing_agreement",
|
||||
"type": "BIGINT",
|
||||
"length": 20,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "If paid by a billing agreement, its ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.6 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 18 Nov 2015
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101021;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.6 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Fix Pending Invoices
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$perCycle = 500;
|
||||
$did = 0;
|
||||
$limit = intval( \IPS\Request::i()->extra );
|
||||
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
|
||||
|
||||
foreach( \IPS\Db::i()->select( '*', 'nexus_purchases', array( 'ps_invoice_pending!=?', 0 ), 'ps_id', array( $limit, $perCycle ) ) as $row )
|
||||
{
|
||||
if( $cutOff !== null AND time() >= $cutOff )
|
||||
{
|
||||
return ( $limit + $did );
|
||||
}
|
||||
|
||||
$did++;
|
||||
|
||||
/* If this invoice doesn't exist, update the row */
|
||||
try
|
||||
{
|
||||
$pendingInvoice = \IPS\nexus\Invoice::load( $row['ps_invoice_pending'] );
|
||||
}
|
||||
catch( \OutOfRangeException $e )
|
||||
{
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_invoice_pending' => 0 ), array( "ps_id=?", $row['ps_id'] ) );
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If this purchase is listed in the list of renewal_ids, do nothing - the invoice is correct. */
|
||||
if ( in_array( $row['ps_id'], $pendingInvoice->renewal_ids ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Otherwise, let's try and work it out. */
|
||||
try
|
||||
{
|
||||
$pendingInvoice = \IPS\nexus\Invoice::constructFromData( \IPS\Db::i()->select( '*', 'nexus_invoices', array( 'i_status=? AND ' . \IPS\Db::i()->findInSet( 'i_renewal_ids', array( $row['ps_id'] ) ), \IPS\nexus\Invoice::STATUS_PENDING ) )->first() );
|
||||
|
||||
/* It is - update the row. */
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_invoice_pending' => $pendingInvoice->id, 'ps_invoice_warning_sent' => 1 ), array( "ps_id=?", $row['ps_id'] ) );
|
||||
}
|
||||
catch( \UnderflowException $e )
|
||||
{
|
||||
/* No invoice exists. */
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_invoice_pending' => 0 ), array( "ps_id=?", $row['ps_id'] ) );
|
||||
}
|
||||
}
|
||||
|
||||
if( $did )
|
||||
{
|
||||
return ( $limit + $did );
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Store certain informaiton in settings to ease performance on menu
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step2()
|
||||
{
|
||||
foreach ( array(
|
||||
'billing_agreement_gateways' => count( \IPS\nexus\Gateway::billingAgreementGateways() ),
|
||||
) as $k => $v )
|
||||
{
|
||||
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => $v ), array( 'conf_key=?', $k ) );
|
||||
\IPS\Settings::i()->$k = $v;
|
||||
}
|
||||
|
||||
unset( \IPS\Data\Store::i()->settings );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"1": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
"name": "nexus_cart_uploads",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "BIGINT",
|
||||
"length": "20",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"binary": false,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"auto_increment": true,
|
||||
"comment": "ID Number"
|
||||
},
|
||||
"session_id": {
|
||||
"name": "session_id",
|
||||
"type": "VARCHAR",
|
||||
"length": 128,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "The session ID which uploaded the file",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"time": {
|
||||
"name": "time",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Unix timestamp of when the file was uploaded",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"item_id": {
|
||||
"name": "item_id",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "The ID number of the item in the cart",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"columns": [
|
||||
"id"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
},
|
||||
"session_id": {
|
||||
"type": "key",
|
||||
"name": "session_id",
|
||||
"columns": [
|
||||
"session_id"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"type": "key",
|
||||
"name": "time",
|
||||
"columns": [
|
||||
"time"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"method": "update",
|
||||
"params": [
|
||||
"core_attachments_map",
|
||||
{
|
||||
"id3": "purchase"
|
||||
},
|
||||
[
|
||||
"location_key=? AND id3 IS NULL",
|
||||
"nexus_Purchases"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.9 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 5 Feb 2016
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101026;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.9 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Fix Customer Addresses
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$perCycle = 500;
|
||||
$did = 0;
|
||||
$limit = intval( \IPS\Request::i()->extra );
|
||||
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
|
||||
|
||||
foreach( \IPS\Db::i()->select( '*', 'nexus_customer_addresses', array(), NULL, array( $limit, $perCycle ) ) as $row )
|
||||
{
|
||||
if( $cutOff !== null AND time() >= $cutOff )
|
||||
{
|
||||
return ( $limit + $did );
|
||||
}
|
||||
|
||||
$did++;
|
||||
|
||||
$address = json_decode( $row['address'], TRUE );
|
||||
|
||||
if( $address['addressLines'][0] == NULL )
|
||||
{
|
||||
array_shift( $address['addressLines'] );
|
||||
\IPS\Db::i()->update( 'nexus_customer_addresses', array( 'address' => json_encode( $address ) ), array( 'id=?', $row['id'] ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( $did )
|
||||
{
|
||||
return ( $limit + $did );
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom title for this step
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function step1CustomTitle()
|
||||
{
|
||||
return "Fixing customer addresses";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.13 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 29 May 2016
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101034;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.13 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Fix donation goal tallies
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array(
|
||||
'table' => 'nexus_donate_logs',
|
||||
'query' => "UPDATE " . \IPS\Db::i()->prefix . "nexus_donate_goals SET d_current=COALESCE( (SELECT SUM(dl_amount) FROM " . \IPS\Db::i()->prefix . "nexus_donate_logs WHERE " . \IPS\Db::i()->prefix . "nexus_donate_logs.dl_goal=" . \IPS\Db::i()->prefix . "nexus_donate_goals.d_id), 0)"
|
||||
) ) );
|
||||
|
||||
if ( count( $toRun ) )
|
||||
{
|
||||
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'nexus', 'extra' => array( '_upgradeStep' => 2 ) ) );
|
||||
|
||||
/* Queries to run manually */
|
||||
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom title for this step
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function step1CustomTitle()
|
||||
{
|
||||
return "Adjusting Nexus donation goals";
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix old support requests that may not have a severity set
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step2()
|
||||
{
|
||||
$defaultSeverity = \IPS\nexus\Support\Severity::load( TRUE, 'sev_default' );
|
||||
|
||||
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array(
|
||||
'table' => 'nexus_support_requests',
|
||||
'query' => "UPDATE " . \IPS\Db::i()->prefix . "nexus_support_requests SET r_severity={$defaultSeverity->id} WHERE r_severity=0"
|
||||
) ) );
|
||||
|
||||
if ( count( $toRun ) )
|
||||
{
|
||||
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'nexus', 'extra' => array( '_upgradeStep' => 3 ) ) );
|
||||
|
||||
/* Queries to run manually */
|
||||
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom title for this step
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function step2CustomTitle()
|
||||
{
|
||||
return "Updating support request severities";
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.1.0 Alpha 5 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.14 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Commerce
|
||||
* @since 26 Jul 2016
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101042;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.14 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* The upgrader from 3.x previously didn't remove the "nexus" element in nexus_purchases.ps_extra
|
||||
*
|
||||
* @return mixed If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$offset = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
|
||||
$select = \IPS\Db::i()->select( '*', 'nexus_purchases', NULL, 'ps_id', array( $offset, 500 ) );
|
||||
if ( count( $select ) )
|
||||
{
|
||||
foreach ( $select as $row )
|
||||
{
|
||||
$extra = json_decode( $row['ps_extra'], TRUE );
|
||||
if ( isset( $extra['nexus'] ) )
|
||||
{
|
||||
$extra = $extra['nexus'];
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array(
|
||||
'ps_extra' => json_encode( $extra ),
|
||||
), array( 'ps_id=?', $row['ps_id'] ) );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $offset + 500;
|
||||
}
|
||||
else
|
||||
{
|
||||
unset( $_SESSION['_step1Count'] );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom title for this step
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function step1CustomTitle()
|
||||
{
|
||||
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
|
||||
|
||||
if( !isset( $_SESSION['_step1Count'] ) )
|
||||
{
|
||||
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'nexus_purchases' )->first();
|
||||
}
|
||||
|
||||
return "Upgrading commmerce purchases (Upgraded so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
[
|
||||
{
|
||||
"method": "addIndex",
|
||||
"params": [
|
||||
"nexus_customer_addresses",
|
||||
{
|
||||
"type": "key",
|
||||
"name": "member",
|
||||
"columns": [
|
||||
"member"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "update",
|
||||
"params": [
|
||||
"nexus_support_replies",
|
||||
{
|
||||
"reply_hidden": 1
|
||||
},
|
||||
[
|
||||
"reply_hidden=? AND reply_type=?",
|
||||
0,
|
||||
"h"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_package_fields",
|
||||
{
|
||||
"name": "cf_invoice",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": "1",
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
"name": "nexus_support_default_content",
|
||||
"columns": {
|
||||
"staff_id": {
|
||||
"name": "staff_id",
|
||||
"type": "MEDIUMINT",
|
||||
"length": 8,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "ID Number of staff member",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": true,
|
||||
"binary": false
|
||||
},
|
||||
"content": {
|
||||
"name": "content",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Default editor content",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"columns": [
|
||||
"staff_id"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,395 @@
|
||||
{
|
||||
"1": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
"name": "nexus_support_streams",
|
||||
"columns": {
|
||||
"stream_id": {
|
||||
"name": "stream_id",
|
||||
"type": "BIGINT",
|
||||
"length": 20,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "ID Number",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": true,
|
||||
"binary": false
|
||||
},
|
||||
"stream_departments": {
|
||||
"name": "stream_departments",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Comma-delimited list of department IDs or NULL for all",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_statuses": {
|
||||
"name": "stream_statuses",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Comma-delimited list of status IDs or NULL for all",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_severities": {
|
||||
"name": "stream_severities",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Comma-delimited list of severity IDs or NULL for all",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_staff": {
|
||||
"name": "stream_staff",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Comma-delimited list of staff IDs or NULL for all",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_from_email": {
|
||||
"name": "stream_from_email",
|
||||
"type": "VARCHAR",
|
||||
"length": 255,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "From email address, or NULL for any",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_search_term": {
|
||||
"name": "stream_search_term",
|
||||
"type": "VARCHAR",
|
||||
"length": 255,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Search term, or NULL for none",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_started": {
|
||||
"name": "stream_started",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Number of hours to restrict started time to, or NULL for no restriction",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_last_reply": {
|
||||
"name": "stream_last_reply",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Number of hours to restrict last reply time to, or NULL for no restriction",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_last_staff_reply": {
|
||||
"name": "stream_last_staff_reply",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Number of hours to restrict last staff reply time to, or NULL for no restriction",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_owner": {
|
||||
"name": "stream_owner",
|
||||
"type": "MEDIUMINT",
|
||||
"length": 8,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": "",
|
||||
"comment": "The ID number of the staff member who owns the stream",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_position": {
|
||||
"name": "stream_position",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": "",
|
||||
"comment": "Order in staff members streams",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_last_new_reply": {
|
||||
"name": "stream_last_new_reply",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Number of hours to restrict reopened time to, or NULL for no restriction",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_tracked": {
|
||||
"name": "stream_tracked",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": "0",
|
||||
"comment": "Boolean value indicating if only tracked requests should be included",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_title": {
|
||||
"name": "stream_title",
|
||||
"type": "VARCHAR",
|
||||
"length": 255,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "The name of the stream",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"stream_temporary": {
|
||||
"name": "stream_temporary",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": "1",
|
||||
"comment": "If this has not yet been saved by its owner",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"columns": [
|
||||
"stream_id"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
},
|
||||
"list": {
|
||||
"type": "key",
|
||||
"name": "list",
|
||||
"columns": [
|
||||
"stream_owner",
|
||||
"stream_position"
|
||||
],
|
||||
"length": [
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"method": "dropColumn",
|
||||
"params": [
|
||||
"nexus_support_severities",
|
||||
"sev_icon"
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"method": "changeColumn",
|
||||
"params": [
|
||||
"nexus_licensekeys",
|
||||
"lkey_activate_data",
|
||||
{
|
||||
"name": "lkey_activate_data",
|
||||
"type": "MEDIUMTEXT",
|
||||
"length": 0,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"4": {
|
||||
"method": "delete",
|
||||
"params": [
|
||||
"core_sys_lang_words",
|
||||
"word_app='nexus' AND word_key='previous_day'"
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"method": "delete",
|
||||
"params": [
|
||||
"core_sys_lang_words",
|
||||
"word_app='nexus' AND word_key='next_day'"
|
||||
]
|
||||
},
|
||||
"6": {
|
||||
"method": "renameTable",
|
||||
"params": [
|
||||
"nexus_support_default_content",
|
||||
"nexus_support_staff_preferences"
|
||||
]
|
||||
},
|
||||
"7": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_support_staff_preferences",
|
||||
{
|
||||
"name": "action",
|
||||
"type": "VARCHAR",
|
||||
"length": 32,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "Default action when replying to a support request",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"8": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
"name": "nexus_support_staff_dpt_order",
|
||||
"columns": {
|
||||
"staff_id": {
|
||||
"name": "staff_id",
|
||||
"type": "MEDIUMINT",
|
||||
"length": 8,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": "",
|
||||
"comment": "The staff's member ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"department_id": {
|
||||
"name": "department_id",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"comment": "The department ID",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"dpt_position": {
|
||||
"name": "dpt_position",
|
||||
"type": "INT",
|
||||
"length": 10,
|
||||
"decimals": null,
|
||||
"values": null,
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "The department position",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"staff_and_department": {
|
||||
"type": "unique",
|
||||
"name": "staff_and_department",
|
||||
"columns": [
|
||||
"staff_id",
|
||||
"department_id"
|
||||
],
|
||||
"length": [
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
+11
-30
@@ -1,16 +1,16 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.0.13 Upgrade Code
|
||||
* @brief 4.1.17 Beta 3 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
{subpackage}
|
||||
* @since 11 Aug 2015
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Commerce
|
||||
* @since 28 Nov 2016
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_100044;
|
||||
namespace IPS\nexus\setup\upg_101075;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
@@ -20,40 +20,21 @@ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.0.13 Upgrade Code
|
||||
* 4.1.17 Beta 3 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Remove purchases from not existing members
|
||||
* Remove orphaned data from deleted payment gateways
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$offset = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
|
||||
\IPS\Db::i()->delete( 'nexus_customer_cards', \IPS\Db::i()->in( 'card_method', array_values( iterator_to_array( \IPS\Db::i()->select( 'm_id', 'nexus_paymethods' ) ) ), TRUE ) );
|
||||
\IPS\Db::i()->delete( 'nexus_billing_agreements', \IPS\Db::i()->in( 'ba_method', array_values( iterator_to_array( \IPS\Db::i()->select( 'm_id', 'nexus_paymethods' ) ) ), TRUE ) );
|
||||
|
||||
$select = new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'nexus_purchases', NULL, 'ps_id', array( $offset, 500) ), 'IPS\nexus\Purchase' );
|
||||
if ( count ( $select ) )
|
||||
{
|
||||
foreach ( $select as $purchase )
|
||||
{
|
||||
try {
|
||||
$member = \IPS\Member::load( $purchase->ps_member );
|
||||
}
|
||||
catch ( \OutOfRangeException $e )
|
||||
{
|
||||
$purchase->delete();
|
||||
}
|
||||
}
|
||||
return $offset + 500;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
unset( $_SESSION['_step1Count'] );
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// You can create as many additional methods (step2, step3, etc.) as is necessary.
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"1": {
|
||||
"method": "changeColumn",
|
||||
"params": [
|
||||
"nexus_purchases",
|
||||
"ps_custom_fields",
|
||||
{
|
||||
"name": "ps_custom_fields",
|
||||
"type": "MEDIUMTEXT",
|
||||
"length": 0,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"method": "changeColumn",
|
||||
"params": [
|
||||
"nexus_support_requests",
|
||||
"r_cfields",
|
||||
{
|
||||
"name": "r_cfields",
|
||||
"type": "MEDIUMTEXT",
|
||||
"length": 0,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"method": "addIndex",
|
||||
"params": [
|
||||
"nexus_purchases",
|
||||
{
|
||||
"type": "key",
|
||||
"name": "ps_parent",
|
||||
"columns": [
|
||||
"ps_parent"
|
||||
],
|
||||
"length": [
|
||||
null
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief 4.1.18.1 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Commerce
|
||||
* @since 20 Jan 2017
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\setup\upg_101088;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 4.1.18.1 Upgrade Code
|
||||
*/
|
||||
class _Upgrade
|
||||
{
|
||||
/**
|
||||
* Convert custom customer field database schemas if needed
|
||||
*
|
||||
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
$queries = array();
|
||||
|
||||
foreach( \IPS\Db::i()->select( '*', 'nexus_customer_fields', array( "f_type IN( 'Editor','Codemirror','TextArea','Upload','Address','Select' )" ) ) as $field )
|
||||
{
|
||||
\IPS\Db::i()->returnQuery = TRUE;
|
||||
|
||||
if( \IPS\Db::i()->checkForIndex( 'nexus_customers', 'field_' . $field['f_id'] ) )
|
||||
{
|
||||
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->dropIndex( 'nexus_customers', 'field_' . $field['f_id'] ) );
|
||||
}
|
||||
|
||||
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->changeColumn( 'nexus_customers', 'field_' . $field['f_id'], array( 'name' => 'field_' . $field['f_id'], 'type' => 'MEDIUMTEXT' ) ) );
|
||||
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->addIndex( 'nexus_customers', array( 'type' => 'fulltext', 'name' => 'field_' . $field['f_id'], 'columns' => array( 'field_' . $field['f_id'] ) ) ) );
|
||||
\IPS\Db::i()->returnQuery = FALSE;
|
||||
}
|
||||
|
||||
if( count( $queries ) )
|
||||
{
|
||||
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( $queries );
|
||||
|
||||
if ( count( $toRun ) )
|
||||
{
|
||||
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'nexus', 'extra' => array( '_upgradeStep' => 2 ) ) );
|
||||
|
||||
/* Queries to run manually */
|
||||
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom title for this step
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function step1CustomTitle()
|
||||
{
|
||||
return "Adjusting customer custom field definitions";
|
||||
}
|
||||
}
|
||||
@@ -149,8 +149,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -301,8 +300,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -408,8 +406,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -512,8 +509,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -564,8 +560,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -686,8 +681,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -920,8 +914,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "MyISAM"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1104,8 +1097,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.2 Alpha 1 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
@@ -105,7 +105,7 @@ class _Upgrade
|
||||
|
||||
$p_id = \IPS\Db::i()->insert( 'nexus_packages', array(
|
||||
'p_name' => $row['ap_name'],
|
||||
'p_seo_name' => \IPS\Http\Url::seoTitle( $row['ap_name'] ),
|
||||
'p_seo_name' => \IPS\Http\Url\Friendly::seoTitle( $row['ap_name'] ),
|
||||
'p_desc' => $row['ap_desc'],
|
||||
'p_group' => $extra[0],
|
||||
'p_stock' => -1,
|
||||
|
||||
@@ -261,8 +261,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -439,8 +438,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.2 Alpha 2 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -100,8 +100,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -227,8 +227,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -439,8 +438,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -533,8 +531,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.4.0 Beta 1 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.4.2 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -13,19 +13,6 @@
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"method": "insert",
|
||||
"params": [
|
||||
"nexus_gateways",
|
||||
{
|
||||
"g_key": "sagepay",
|
||||
"g_name": "Sage Pay (Form Integration)",
|
||||
"g_testmode": 0,
|
||||
"g_position": null,
|
||||
"g_payout": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
@@ -422,12 +409,11 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
@@ -440,7 +426,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"4": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
@@ -453,7 +439,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"6": {
|
||||
"5": {
|
||||
"method": "addIndex",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
@@ -466,7 +452,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"7": {
|
||||
"6": {
|
||||
"method": "addIndex",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
@@ -480,7 +466,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"8": {
|
||||
"7": {
|
||||
"method": "addIndex",
|
||||
"params": [
|
||||
"nexus_transactions",
|
||||
@@ -495,7 +481,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"9": {
|
||||
"8": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_packages",
|
||||
@@ -506,7 +492,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"10": {
|
||||
"9": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
@@ -777,12 +763,11 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
"11": {
|
||||
"10": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_support_departments",
|
||||
@@ -794,7 +779,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"12": {
|
||||
"11": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_support_tracker",
|
||||
@@ -807,7 +792,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"13": {
|
||||
"12": {
|
||||
"method": "addColumn",
|
||||
"params": [
|
||||
"nexus_support_replies",
|
||||
@@ -820,7 +805,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"14": {
|
||||
"13": {
|
||||
"method": "createTable",
|
||||
"params": [
|
||||
{
|
||||
@@ -943,8 +928,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.5.0 Alpha 1 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -140,8 +140,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.5.0 Alpha 2 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -88,8 +88,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @brief 1.5.0 Beta 1 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 19 Dec 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -102,8 +102,7 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
"collation": "utf8mb4_unicode_ci"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
/**
|
||||
* @brief Upgrader: Custom Upgrade Options
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 5 Jun 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
@@ -1454,7 +1454,7 @@
|
||||
"allow_null": false,
|
||||
"default": null,
|
||||
"auto_increment": true,
|
||||
"comment": "7000ecf615d786cfb5f17c6febb9d858"
|
||||
"comment": "ID Number"
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
/**
|
||||
* @brief 4.0.0 Upgrade Code
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @package IPS Community Suite
|
||||
* @subpackage Nexus
|
||||
* @since 10 Feb 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
@@ -30,18 +30,26 @@ class _Upgrade
|
||||
* @return mixed If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
public function step1()
|
||||
{
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => \IPS\Db::i()->select( 'g_key', 'nexus_gateways', array( 'g_id=m_gateway' ) ) ) );
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_gateway' => \IPS\Db::i()->select( 'g_key', 'nexus_gateways', array( 'g_id=po_gateway' ) ) ) );
|
||||
{
|
||||
/* Update nexus_paymethods and nexus_payouts to adjust the gateway keys, if we have any gateways set up */
|
||||
if( \IPS\Db::i()->select( 'COUNT(*)', 'nexus_gateways' )->first() > 0 )
|
||||
{
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => \IPS\Db::i()->select( 'g_key', 'nexus_gateways', array( 'g_id=m_gateway' ) ) ) );
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_gateway' => \IPS\Db::i()->select( 'g_key', 'nexus_gateways', array( 'g_id=po_gateway' ) ) ) );
|
||||
}
|
||||
|
||||
/* We need to fix the gateway keys for payouts for our own internal gateways - 3rd party gateways should do the same in their own upgrade routines */
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_gateway' => 'PayPal' ), array( 'po_gateway=?', 'paypal' ) );
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_gateway' => 'Manual' ), array( 'po_gateway=?', 'manual' ) );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'TwoCheckout' ), array( 'm_gateway=?', '2checkout' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'AuthorizeNet' ), array( 'm_gateway=?', 'authnet' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'Manual' ), array( 'm_gateway=?', 'manual' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'PayPal' ), array( 'm_gateway=?', 'paypal' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'PayPal' ), array( 'm_gateway=?', 'paypalpro' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'SagePay' ), array( 'm_gateway=?', 'sagepay' ) );
|
||||
\IPS\Db::i()->update( 'nexus_paymethods', array( 'm_gateway' => 'Stripe' ), array( 'm_gateway=?', 'stripe' ) );
|
||||
|
||||
\IPS\Db::i()->delete( 'nexus_paymethods', array( 'm_gateway=?', 'sagepay' ) );
|
||||
|
||||
\IPS\Db::i()->dropTable('nexus_gateways');
|
||||
|
||||
return TRUE;
|
||||
@@ -72,13 +80,28 @@ class _Upgrade
|
||||
foreach ( $select as $customer )
|
||||
{
|
||||
$address = new \IPS\GeoLocation;
|
||||
$address->addressLines[] = $customer['cm_address_1'];
|
||||
$address->addressLines[0] = $customer['cm_address_1'];
|
||||
if ( $customer['cm_address_2'] )
|
||||
{
|
||||
$address->addressLines[] = $customer['cm_address_2'];
|
||||
$address->addressLines[1] = $customer['cm_address_2'];
|
||||
}
|
||||
|
||||
$state = $customer['cm_state'];
|
||||
|
||||
/* IPS4 requires the full state name to be stored. */
|
||||
if ( $customer['cm_state'] AND $customer['cm_country'] )
|
||||
{
|
||||
if ( isset( \IPS\nexus\Customer\Address::$stateCodes[ $customer['cm_country'] ] ) )
|
||||
{
|
||||
if ( isset( \IPS\nexus\Customer\Address::$stateCodes[ $customer['cm_country'] ][ $customer['cm_state'] ] ) )
|
||||
{
|
||||
$state = \IPS\nexus\Customer\Address::$stateCodes[ $customer['cm_country'] ][ $customer['cm_state'] ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$address->city = $customer['cm_city'];
|
||||
$address->region = $customer['cm_state'];
|
||||
$address->region = $state;
|
||||
$address->postalCode = $customer['cm_zip'];
|
||||
$address->country = $customer['cm_country'];
|
||||
|
||||
@@ -154,36 +177,39 @@ class _Upgrade
|
||||
*/
|
||||
public function step3()
|
||||
{
|
||||
\IPS\Db::i()->addColumn( 'nexus_package_base_prices', array(
|
||||
'name' => \IPS\Settings::i()->nexus_currency,
|
||||
'type' => 'FLOAT'
|
||||
) );
|
||||
if ( ! isset( \IPS\Request::i()->run_anyway ) )
|
||||
{
|
||||
\IPS\Db::i()->addColumn( 'nexus_package_base_prices', array(
|
||||
'name' => \IPS\Settings::i()->nexus_currency,
|
||||
'type' => 'FLOAT'
|
||||
) );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_fraud_rules', "f_amount_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', f_amount_unit, '}' )", 'f_amount_unit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_fraud_rules', array( 'f_amount_unit' => '[]' ), 'f_amount_unit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_by_purchases_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_by_purchases_unit, '}' )", 'rrule_by_purchases_unit>0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_purchase_amount_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_purchase_amount_unit, '}' )", 'rrule_purchase_amount_unit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', array( 'rrule_purchase_amount_unit' => '' ), 'rrule_purchase_amount_unit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_commission_limit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_commission_limit, '}' )", 'rrule_commission_limit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', array( 'rrule_commission_limit' => '[]' ), 'rrule_commission_limit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referrals', "amount=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', amount, '}' )" );
|
||||
|
||||
\IPS\Db::i()->addColumn( 'nexus_support_departments', array(
|
||||
'name' => \IPS\Settings::i()->nexus_currency,
|
||||
'type' => 'FLOAT'
|
||||
) );
|
||||
\IPS\Db::i()->update( 'nexus_support_departments', "dpt_ppi=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":{\"amount\":', dpt_ppi, ',\"currency\":\"', '" . \IPS\Settings::i()->nexus_currency . "', '\"}}' )", "dpt_ppi<>'*'" );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_transactions', array( 't_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_invoices', array( 'i_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_renewal_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_donate_goals', array( 'd_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
}
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_fraud_rules', "f_amount_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', f_amount_unit, '}' )", 'f_amount_unit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_fraud_rules', array( 'f_amount_unit' => '[]' ), 'f_amount_unit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_by_purchases_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_by_purchases_unit, '}' )", 'rrule_by_purchases_unit>0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_purchase_amount_unit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_purchase_amount_unit, '}' )", 'rrule_purchase_amount_unit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', array( 'rrule_purchase_amount_unit' => '' ), 'rrule_purchase_amount_unit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', "rrule_commission_limit=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', rrule_commission_limit, '}' )", 'rrule_commission_limit>0' );
|
||||
\IPS\Db::i()->update( 'nexus_referral_rules', array( 'rrule_commission_limit' => '[]' ), 'rrule_commission_limit=0' );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_referrals', "amount=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', amount, '}' )" );
|
||||
|
||||
\IPS\Db::i()->addColumn( 'nexus_support_departments', array(
|
||||
'name' => \IPS\Settings::i()->nexus_currency,
|
||||
'type' => 'FLOAT'
|
||||
) );
|
||||
\IPS\Db::i()->update( 'nexus_support_departments', "dpt_ppi=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":{\"amount\":', dpt_ppi, ',\"currency\":\"', '" . \IPS\Settings::i()->nexus_currency . "', '\"}}' )", "dpt_ppi<>'*'" );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_transactions', array( 't_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_invoices', array( 'i_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_renewal_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_payouts', array( 'po_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
\IPS\Db::i()->update( 'nexus_donate_goals', array( 'd_currency' => \IPS\Settings::i()->nexus_currency ) );
|
||||
|
||||
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array(
|
||||
'table' => 'core_members',
|
||||
'query' => "UPDATE " . \IPS\Db::i()->prefix . "core_members SET cm_credits=CONCAT( '{\"" . \IPS\Settings::i()->nexus_currency . "\":', cm_credits, '}' );"
|
||||
@@ -191,10 +217,10 @@ class _Upgrade
|
||||
|
||||
if ( count( $toRun ) )
|
||||
{
|
||||
$mr = \IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'nexus', 'extra' => array( '_upgradeStep' => 4 ) ) );
|
||||
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'nexus', 'extra' => array( '_upgradeStep' => 4 ) ) );
|
||||
|
||||
/* Queries to run manually */
|
||||
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => $mr ) ) ) );
|
||||
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@@ -346,8 +372,10 @@ class _Upgrade
|
||||
{
|
||||
foreach ( \IPS\Db::i()->select( '*', 'nexus_hosting_servers' ) as $server )
|
||||
{
|
||||
$nameservers = explode( '<br />', $server['server_nameservers'] );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_hosting_servers', array(
|
||||
'server_nameservers' => json_encode( explode( '<br />', $server['server_nameservers'] ) ),
|
||||
'server_nameservers' => implode( ',', $nameservers ),
|
||||
'server_extra' => json_encode( \unserialize( $server['server_extra'] ) ),
|
||||
), array( 'server_id=?', $server['server_id'] ) );
|
||||
}
|
||||
@@ -723,7 +751,7 @@ class _Upgrade
|
||||
}
|
||||
|
||||
/**
|
||||
* Translatables: Support Severities
|
||||
* Upgrade Support Severities
|
||||
*
|
||||
* @return mixed If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
|
||||
*/
|
||||
@@ -738,6 +766,29 @@ class _Upgrade
|
||||
\IPS\Lang::saveCustom( 'nexus', "nexus_severity_{$row['sev_id']}", $row['sev_name'] );
|
||||
}
|
||||
|
||||
/* 3.x did not allow for uploading an icon, but rather looped over a specific directory - we need to convert these */
|
||||
if ( $row['sev_icon'] )
|
||||
{
|
||||
$path = \IPS\ROOT_PATH . '/' . \IPS\CP_DIRECTORY . '/applications_addon/ips/nexus/skin_cp/images/severities/' . $row['sev_icon'] . '.png';
|
||||
if ( file_exists( $path ) )
|
||||
{
|
||||
try
|
||||
{
|
||||
$url = \IPS\File::create( 'nexus_Support', $row['sev_icon'] . '.png', @file_get_contents( $path ) );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_support_severities', array( 'sev_icon' => (string) $url ), array( "sev_id=?", $row['sev_id'] ) );
|
||||
}
|
||||
catch( \Exception $e )
|
||||
{
|
||||
\IPS\Db::i()->update( 'nexus_support_severities', array( 'sev_icon' => NULL ), array( "sev_id=?", $row['sev_id'] ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
\IPS\Db::i()->update( 'nexus_support_severities', array( 'sev_icon' => NULL ), array( "sev_id=?", $row['sev_id'] ) );
|
||||
}
|
||||
}
|
||||
|
||||
return $offset + 100;
|
||||
}
|
||||
else
|
||||
@@ -823,8 +874,35 @@ class _Upgrade
|
||||
{
|
||||
\IPS\Lang::saveCustom( 'nexus', "nexus_tax_{$row['t_id']}", $row['t_name'] );
|
||||
|
||||
$unserialized = \unserialize( $row['t_rate'] );
|
||||
$save = array();
|
||||
|
||||
foreach ( $unserialized as $rate )
|
||||
{
|
||||
$rateToSave = array( 'locations' => array(), 'rate' => floatval( $rate['rate'] ) );
|
||||
if ( $rate['applies'] === '*' )
|
||||
{
|
||||
$rateToSave['locations'] = '*';
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ( $rate['applies'] as $location => $subLocations )
|
||||
{
|
||||
if ( count( $subLocations ) )
|
||||
{
|
||||
$rateToSave['locations'][ $location ] = $subLocations;
|
||||
}
|
||||
else
|
||||
{
|
||||
$rateToSave['locations'][ $location ] = '*';
|
||||
}
|
||||
}
|
||||
}
|
||||
$save[] = $rateToSave;
|
||||
}
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_tax', array(
|
||||
't_rate' => json_encode( \unserialize( $row['t_rate'] ) ),
|
||||
't_rate' => json_encode( $save ),
|
||||
), array( 't_id=?', $row['t_id'] ) );
|
||||
}
|
||||
|
||||
@@ -869,7 +947,7 @@ class _Upgrade
|
||||
{
|
||||
\IPS\Lang::saveCustom( 'nexus', "nexus_stockaction_{$row['action_id']}", $row['action_name'] );
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_support_stock_actions', array( 'action_message' => \IPS\Text\Parser::parseStatic( $row['action_message'], TRUE, NULL, NULL, TRUE, TRUE, TRUE ) ), array( 'action_id=?', $row['action_id'] ) );
|
||||
\IPS\Db::i()->update( 'nexus_support_stock_actions', array( 'action_message' => \IPS\Text\Parser::parseStatic( $row['action_message'], TRUE, NULL, NULL, TRUE, TRUE, TRUE ), 'action_show_in' => '*' ), array( 'action_id=?', $row['action_id'] ) );
|
||||
}
|
||||
|
||||
return $offset + 100;
|
||||
@@ -941,7 +1019,8 @@ class _Upgrade
|
||||
}
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_customer_fields', array(
|
||||
'f_extra' => json_encode( \unserialize( $row['f_extra'] ) ),
|
||||
/* Use array_map to remove any occurances of \r after string split */
|
||||
'f_extra' => json_encode( array_map( 'trim', explode( "\n", $row['f_extra'] ) ) ),
|
||||
'f_type' => $type,
|
||||
'f_multiple' => $multiple,
|
||||
), array( 'f_id=?', $row['f_id'] ) );
|
||||
@@ -1526,9 +1605,15 @@ class _Upgrade
|
||||
{
|
||||
foreach ( $select as $row )
|
||||
{
|
||||
$extra = \unserialize( $row['ps_extra'] );
|
||||
if ( isset( $extra['nexus'] ) )
|
||||
{
|
||||
$extra = $extra['nexus'];
|
||||
}
|
||||
|
||||
\IPS\Db::i()->update( 'nexus_purchases', array(
|
||||
'ps_custom_fields' => json_encode( \unserialize( $row['ps_custom_fields'] ) ),
|
||||
'ps_extra' => json_encode( \unserialize( $row['ps_extra'] ) ),
|
||||
'ps_extra' => json_encode( $extra ),
|
||||
'ps_grouped_renewals' => $row['ps_grouped_renewals'] ? json_encode( \unserialize( $row['ps_grouped_renewals'] ) ) : '',
|
||||
), array( 'ps_id=?', $row['ps_id'] ) );
|
||||
}
|
||||
@@ -1658,6 +1743,7 @@ class _Upgrade
|
||||
public function finish()
|
||||
{
|
||||
\IPS\Task::queue( 'core', 'RebuildPosts', array( 'class' => 'IPS\nexus\Package\Review' ), 2 );
|
||||
\IPS\Task::queue( 'core', 'RebuildPosts', array( 'class' => 'IPS\nexus\Support\Reply' ), 2 );
|
||||
\IPS\Task::queue( 'core', 'RebuildNonContentPosts', array( 'extension' => 'nexus_Admin' ), 2 );
|
||||
\IPS\Task::queue( 'core', 'RebuildNonContentPosts', array( 'extension' => 'nexus_Customer' ), 2 );
|
||||
|
||||
|
||||
Reference in new issue
Block a user