Version 4.7.6

This commit is contained in:
Neo committed 2025-12-19 16:05:19 -08:00
1 parent 8ba7d43898
commit 7b7404e741
1085 files changed
+30590 -7837

No files matched your search

@@ -145,6 +145,7 @@ class _gateways extends \IPS\Node\Controller
$obj->save();
\IPS\Lang::saveCustom( 'nexus', "nexus_paymethod_{$obj->id}", $name );
\IPS\Session::i()->log( 'acplogs__nexus_added_gateway', array( "nexus_paymethod_{$obj->id}" => TRUE ) );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=paymentsettings&tab=gateways') );
}
@@ -85,7 +85,7 @@ class _shippingrates extends \IPS\Node\Controller
$allAreZero = TRUE;
foreach ( $rate['min'] as $val )
{
if ( $val !== 0 )
if ( (int) $val !== 0 )
{
$allAreZero = FALSE;
}
@@ -96,7 +96,7 @@ class _shippingrates extends \IPS\Node\Controller
$haveNoLowerLimit = TRUE;
}
}
elseif ( $rate['min'] === 0 )
elseif ( (int) $rate['min'] === 0 )
{
$haveNoLowerLimit = TRUE;
}
@@ -113,13 +113,13 @@ class _shippingrates extends \IPS\Node\Controller
{
foreach ( $lastUpper as $k => $v )
{
if ( \strval( $rate['min'][ $k ] - $v ) > 0.01 ) # @note: We use strval() here to prevent PHP from applying a precision to the float, inadvertently causing this to return TRUE
if ( \strval( $rate['min'][ $k ] - $v ) >= 0.02 ) # @note: We use strval() here to prevent PHP from applying a precision to the float, inadvertently causing this to return TRUE
{
$consecutive = FALSE;
}
}
}
elseif ( \strval( $rate['min'] - $lastUpper ) > 0.01 ) # @note: We use strval() here to prevent PHP from applying a precision to the float, inadvertently causing this to return TRUE
elseif ( \strval( $rate['min'] - $lastUpper ) >= 0.02 ) # @note: We use strval() here to prevent PHP from applying a precision to the float, inadvertently causing this to return TRUE
{
$consecutive = FALSE;
}
@@ -27,7 +27,7 @@ class _transactions extends \IPS\Dispatcher\Controller
* @brief Has been CSRF-protected
*/
public static $csrfProtected = TRUE;
/**
* Execute
*
@@ -113,9 +113,9 @@ class _transactions extends \IPS\Dispatcher\Controller
\IPS\Output::i()->error( 'node_error', '2X186/9', 404, '' );
}
$method = $transaction->method;
/* Can we approve it? */
if ( !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING, \IPS\nexus\Transaction::STATUS_DISPUTED ) ) )
if ( !$method or !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING, \IPS\nexus\Transaction::STATUS_DISPUTED ) ) )
{
\IPS\Output::i()->error( 'transaction_status_err', '2X186/A', 403, '' );
}
@@ -561,7 +561,7 @@ class _transactions extends \IPS\Dispatcher\Controller
$transaction->member->log( 'transaction', array(
'type' => 'delete',
'id' => $transaction->id,
'method' => $transaction->method->id
'method' => $transaction->method ? $transaction->method->id : NULL,
) );
}
}
@@ -571,7 +571,7 @@ class _transactions extends \IPS\Dispatcher\Controller
}
/* Redirect */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=transactions') );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=transactions')->getSafeUrlFromFilters());
}
@@ -588,27 +588,27 @@ class _transactions extends \IPS\Dispatcher\Controller
switch ( \IPS\Request::i()->r )
{
case 'v':
\IPS\Output::i()->redirect( $transaction->acpUrl() );
\IPS\Output::i()->redirect( $transaction->acpUrl()->getSafeUrlFromFilters() );
break;
case 'i':
\IPS\Output::i()->redirect( $transaction->invoice->acpUrl() );
\IPS\Output::i()->redirect( $transaction->invoice->acpUrl()->getSafeUrlFromFilters() );
break;
case 'c':
\IPS\Output::i()->redirect( $transaction->member->acpUrl() );
\IPS\Output::i()->redirect( $transaction->member->acpUrl()->getSafeUrlFromFilters());
break;
case 't':
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=transactions') );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=transactions')->getSafeUrlFromFilters() );
break;
case 'n':
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=core&module=overview&controller=notifications') );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=core&module=overview&controller=notifications')->getSafeUrlFromFilters());
break;
}
}
\IPS\Output::i()->redirect( $transaction->acpUrl() );
\IPS\Output::i()->redirect( $transaction->acpUrl()->getSafeUrlFromFilters());
}
}
@@ -249,6 +249,8 @@ class _packages extends \IPS\Node\Controller
$package->reg = FALSE;
$package->save();
\IPS\Session::i()->log( 'acplogs__nexus_package_hidden', array( 'nexus_package_' . $package->id => TRUE ) );
/* Redirect */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=nexus&module=store&controller=packages" )->setQueryString( array( 'root' => ( $package->parent() ? $package->parent()->_id : '' ) ) ) );
}
@@ -120,6 +120,8 @@ class _settings extends \IPS\Dispatcher\Controller
$values['nexus_minimum_order'] = $values['nexus_minimum_order'] ? json_encode( $values['nexus_minimum_order'] ) : '';
$form->saveAsSettings( $values );
\IPS\Session::i()->log( 'acplogs__nexus_store_settings' );
/* Clear guest page caches */
\IPS\Data\Cache::i()->clearAll();
@@ -210,6 +210,8 @@ class _subscriptions extends \IPS\Node\Controller
$package->delete();
}
\IPS\Session::i()->log( 'acplogs__nexus_sub_converted', array( "nexus_subs_{$sub->id}" => TRUE ) );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=subscriptions&controller=subscriptions'), 'nexus_package_converted_lovely' );
}
@@ -253,6 +255,7 @@ class _subscriptions extends \IPS\Node\Controller
/* Are there any purchases of this product? */
if ( !isset( \IPS\Request::i()->confirmImplications ) and \IPS\Db::i()->select( 'COUNT(*)', 'nexus_purchases', array( 'ps_app=? AND ps_type=? AND ps_item_id=?', 'nexus', 'subscription', $package->id ) )->first() )
{
\IPS\Output::i()->bypassCsrfKeyCheck = TRUE;
$options = array(
'product_delete_confirm' => \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=delete&wasConfirmed=1&id={$package->_id}&confirmImplications=1" )->csrf(),
);
@@ -293,6 +296,8 @@ class _subscriptions extends \IPS\Node\Controller
$package->enabled = FALSE;
$package->save();
\IPS\Settings::i()->log( 'aplogs__nexus_sub_hidden', array( "nexus_subs_{$sub->id}" => TRUE ) );
/* Redirect */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions" ) );
}
@@ -1230,4 +1230,32 @@ class _request extends \IPS\nexus\modules\front\support\view
}
return $defaultAction;
}
/**
* Redirect to next/prev support request
*
* @return void
*/
public function nextRequest()
{
$type = \IPS\Request::i()->ty == 'next' ? 0 : 1;
try
{
$request = Support\Request::loadAndCheckPerms( \IPS\Request::i()->id );
$nextRequest = $request->nextPrevious( $type );
}
catch ( \OutOfRangeException $e )
{
\IPS\Output::i()->error( 'node_error', '2X208/N', 404, '' );
}
/* Nothing left? */
if( $nextRequest === NULL )
{
\IPS\Output::i()->error( 'next_request_not_found', '2X208/O', 404, '' );
}
\IPS\Output::i()->redirect( $nextRequest->acpUrl() );
}
}