Version 4.1.19

This commit is contained in:
Neo committed 2025-12-19 05:38:56 -08:00
1 parent 28bd025b35
commit 2bd5025018
2674 files changed
+233518 -77766

No files matched your search

+112 -7
View File
@@ -2,9 +2,9 @@
/**
* @brief Customer History Table
* @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 18 Sep 2014
* @version SVN_VERSION_NUMBER
@@ -48,8 +48,8 @@ class _History extends \IPS\Helpers\Table\Db
if ( $showCustomer )
{
$this->include[] = 'log_member';
}
}
$this->sortBy = $this->sortBy ?: 'log_date';
$this->noSort = array( 'log_type', 'log_ip_address', 'log_data' );
$this->parsers = array(
@@ -292,9 +292,28 @@ class _History extends \IPS\Helpers\Table\Db
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_edited', FALSE, array( 'htmlsprintf' => array( $purchase, ( isset( $val['system'] ) and $val['system'] ) ? '' : $byStaff ) ) );
case 'transfer_from':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_transfer_from', FALSE, array( 'htmlsprintf' => array( $purchase, \IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( \IPS\nexus\Customer::load( $val['to'] ) ), $byStaff ) ) );
try
{
$to = \IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( \IPS\nexus\Customer::load( $val['to'] ) );
}
catch( \OutOfRangeException $e )
{
$to = \IPS\Member::loggedIn()->language()->addToStack( 'deleted_member' );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_transfer_from', FALSE, array( 'htmlsprintf' => array( $purchase, $to, $byStaff ) ) );
case 'transfer_to':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_transfer_to', FALSE, array( 'htmlsprintf' => array( $purchase, \IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( \IPS\nexus\Customer::load( $val['from'] ) ), $byStaff ) ) );
try
{
$from = \IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( \IPS\nexus\Customer::load( $val['from'] ) );
}
catch( \OutOfRangeException $e )
{
$from = \IPS\Member::loggedIn()->language()->addToStack( 'deleted_member' );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_transfer_to', FALSE, array( 'htmlsprintf' => array( $purchase, $from, $byStaff ) ) );
case 'cancel':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_canceled', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff ) ) );
@@ -336,6 +355,7 @@ class _History extends \IPS\Helpers\Table\Db
return \IPS\Member::loggedIn()->language()->addToStack( "history_commission_{$val['type']}", FALSE, array( 'htmlsprintf' => array( new \IPS\nexus\Money( $val['amount'], $val['currency'] ), $purchase ) ) );
case 'invoice':
case 'invoice_refund':
try
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['invoice_id'] ), TRUE );
@@ -345,7 +365,7 @@ class _History extends \IPS\Helpers\Table\Db
$invoice = \IPS\Member::loggedIn()->language()->addToStack('invoice_number', FALSE, array( 'sprintf' => array( $val['invoice_id'] ) ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_commission_invoice', FALSE, array( 'htmlsprintf' => array( new \IPS\nexus\Money( $val['amount'], $val['currency'] ), $invoice ) ) );
return \IPS\Member::loggedIn()->language()->addToStack( "history_commission_{$val['type']}", FALSE, array( 'htmlsprintf' => array( new \IPS\nexus\Money( $val['amount'], $val['currency'] ), $invoice ) ) );
case 'bought':
try
@@ -432,6 +452,49 @@ class _History extends \IPS\Helpers\Table\Db
{
foreach ( $val['other'] as $change )
{
/* Older versions may not have stored the display value, so we need to account for that */
if( mb_strpos( $change['name'], 'nexus_ccfield_' ) !== FALSE AND is_array( $change['value'] ) )
{
try
{
/* If it's an array, we will start first by assuming it is probably an address */
$value = \IPS\GeoLocation::buildFromJson( json_encode( $change['value'] ) )->toString( ', ' );
/* A bad address will return an empty string */
if( !$value )
{
throw new \BadFunctionCallException;
}
$change['value'] = $value;
}
/* Maybe it wasn't an address or geoip support is disabled */
catch( \BadFunctionCallException $e )
{
$_value = array();
/* We will just loop and implode so we have a string */
foreach( $change['value'] as $k => $v )
{
if( is_array( $v ) )
{
foreach( $v as $_k => $_v )
{
$_value[] = $_k . ': ' . $_v;
}
}
else
{
$_value[] = $k . ': ' . $v;
}
}
$value = implode( ', ', $_value );
$change['value'] = htmlspecialchars( $value, \IPS\HTMLENTITIES, 'UTF-8', FALSE );
}
}
if ( isset( $change['old'] ) )
{
$changes[] = \IPS\Member::loggedIn()->language()->addToStack('history_field_changed_from', FALSE, array( 'sprintf' => array( \IPS\Member::loggedIn()->language()->addToStack( $change['name'] ), $change['old'], $change['value'] ) ) );
@@ -554,11 +617,18 @@ class _History extends \IPS\Helpers\Table\Db
break;
case 'download':
switch ( $val['type'] )
{
case 'idm':
try
{
if ( \IPS\Application::appIsEnabled( 'downloads' ) === FALSE )
{
/* If the app is disabled, bubble up to avoid an \IPS\Db\Exception for missing tables - we still want to show the log */
throw new \OutOfRangeException;
}
$options = array( 'htmlsprintf' => array( \IPS\Theme::i()->getTemplate( 'customers', 'nexus' )->downloadsLink( \IPS\downloads\File::load( $val['id'] ) ) ) );
}
catch ( \OutOfRangeException $e )
@@ -585,6 +655,41 @@ class _History extends \IPS\Helpers\Table\Db
return \IPS\Member::loggedIn()->language()->addToStack( 'history_download', FALSE, array( 'htmlsprintf' => $file ) );
}
break;
case 'support':
if ( isset( $val['type'] ) and $val['type'] == 'email' )
{
$by = \IPS\Member::loggedIn()->language()->addToStack( 'history_support_by_email' );
}
else
{
$by = $byCustomer ?: $byStaff;
}
try
{
$options = array( 'htmlsprintf' => array( \IPS\Theme::i()->getTemplate( 'support', 'nexus' )->link( \IPS\nexus\Support\Request::load( $val['id'] ), FALSE ), $by ) );
}
catch ( \OutOfRangeException $e )
{
$options = array( 'sprintf' => array( $val['title'] ), 'htmlsprintf' => array( $by ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_support', FALSE, $options );
case 'billingagreement':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_billingagreement_' . $val['type'], FALSE, array( 'sprintf' => array( $val['id'], $val['gw_id'], $byCustomer ?: $byStaff ) ) );
break;
case 'note':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_' . $val . '_note', FALSE, array( 'sprintf' => $byStaff ) );
break;
case 'custom':
return $val['message'];
break;
}
return '';