Version 4.2.0

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

No files matched your search

+14 -8
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Nexus Application Class
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Feb 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus;
@@ -33,7 +32,7 @@ class _Application extends \IPS\Application
{
if ( \IPS\Request::i()->app == 'nexus' and \IPS\Request::i()->module == 'payments' and \IPS\Request::i()->section == 'receive' and \IPS\Request::i()->validate == 'paypal' )
{
if ( \IPS\Request::i()->txn_type == 'subscr_payment' and \IPS\Request::i()->payment_status == 'Completed' )
if ( ( \IPS\Request::i()->txn_type == 'subscr_payment' or \IPS\Request::i()->txn_type == 'recurring_payment' ) and \IPS\Request::i()->payment_status == 'Completed' )
{
try
{
@@ -42,7 +41,14 @@ class _Application extends \IPS\Application
/* Get the subscription */
try
{
$subscription = \IPS\Db::i()->select( '*', 'nexus_subscriptions', array( 's_gateway_key=? AND s_id=?', 'paypal', \IPS\Request::i()->subscr_id ) )->first();
if( \IPS\Request::i()->txn_type == 'subscr_payment' )
{
$subscription = \IPS\Db::i()->select( '*', 'nexus_subscriptions', array( 's_gateway_key=? AND s_id=?', 'paypal', \IPS\Request::i()->subscr_id ) )->first();
}
else
{
$subscription = \IPS\Db::i()->select( '*', 'nexus_subscriptions', array( 's_gateway_key=? AND s_id=?', 'paypalpro', \IPS\Request::i()->recurring_payment_id ) )->first();
}
$items = \unserialize( $subscription['s_items'] );
if ( !is_array( $items ) or empty( $items ) )
{
@@ -67,7 +73,7 @@ class _Application extends \IPS\Application
{
$memberId = intval( \IPS\Request::i()->custom );
$item = \IPS\Db::i()->select( '*', 'nexus_purchases', array( "ps_member=? AND ps_name=?", $memberId, $itemName ), 'ps_start DESC' )->first();
$item = \IPS\Db::i()->select( '*', 'nexus_purchases', array( "ps_member=? AND ps_name=?", $memberId, \IPS\Request::i()->item_name ), 'ps_start DESC' )->first();
}
/* If the purchase isn't valid or was cancelled just exit */
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Invoices API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 9 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief License Key API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Purchases API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Shipments API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Support Replies API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 11 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Support Requests API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 4 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Transactions API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
+4 -5
View File
@@ -1,13 +1,12 @@
<?php
/**
* @brief Withdrawals API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 10 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\api;
@@ -1,13 +1,12 @@
<?php
/**
* @brief {class}
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
{subpackage}
* @since {date}
* @version SVN_VERSION_NUMBER
*/
namespace IPS\{app}\extensions\nexus\Item;
+5 -5
View File
@@ -2146,9 +2146,9 @@
</td>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 15px; color: #333333; line-height: 21px">
<span style="color: #8d8d8d">{$item->quantity} x</span> {$item->name}
{{if $item instanceof \IPS\nexus\Invoice\Item\Renewal}}
{{if ( $item instanceof \IPS\nexus\Invoice\Item\Renewal ) AND $purchase = $item->getPurchase()}}
<span style="color: #8d8d8d; font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 15px;">
({$email->language->addToStack('ps_expire', FALSE)}: {expression="\IPS\nexus\Purchase::load( $item->id )->expire->localeDate( $invoice->member )"})
({$email->language->addToStack('ps_expire', FALSE)}: {expression="$purchase->expire->localeDate( $invoice->member )"})
</span>
{{endif}}
</td>
@@ -2274,13 +2274,13 @@
{expression="$email->language->addToStack( 'monitor_email_acknowledged', FALSE, array( 'sprintf' => array( $server->hostname, $by ) ) )"}
{$email->language->addToStack('monitor_email_reset', FALSE)}: {setting="base_url"}applications/nexus/interface/monitoring/respond.php?a=r&server={$server->id}&by={$encoded}]]></template_content_plaintext></template><template><template_app>nexus</template_app><template_name>staffReply</template_name><template_content_html><![CDATA[{$email->language->addToStack("staffreply_header", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}<br />
{$email->language->addToStack('monitor_email_reset', FALSE)}: {setting="base_url"}applications/nexus/interface/monitoring/respond.php?a=r&server={$server->id}&by={$encoded}]]></template_content_plaintext></template><template><template_app>nexus</template_app><template_name>staffReply</template_name><template_content_html><![CDATA[{$email->language->addToStack( $message->item()->replies == 1 ? "staffcreate_header" : "staffreply_header", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}<br />
<br />
<table width='100%' cellpadding='15' cellspacing='0' border='0' style='background: #f5f5f5'>
<tr>
<td dir='{dir}'>
<h2 style='margin: 0; font-size: 19px; font-weight: 500'>Re: {$message->item()->title}</h2>
<h2 style='margin: 0; font-size: 19px; font-weight: 500'>{{if $message->item()->replies > 1}}Re: {{endif}}{$message->item()->title}</h2>
{$email->parseTextForEmail( $message->content(), $email->language )|raw}
</td>
</tr>
@@ -2295,7 +2295,7 @@
<br />
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>
<br />
<div style="font-size: 0px; line-height: 0px; color:#ffffff !important;">{$email->language->addToStack("support_reply_email_id", FALSE, array( 'sprintf' => array( '[SR' . $message->item()->id . '.' . $message->item()->email_key . ']' ) ) )}</div>]]></template_content_html><template_data>$message, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("staffreply_header", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}
<div style="font-size: 0px; line-height: 0px; color:#ffffff !important;">{$email->language->addToStack("support_reply_email_id", FALSE, array( 'sprintf' => array( '[SR' . $message->item()->id . '.' . $message->item()->email_key . ']' ) ) )}</div>]]></template_content_html><template_data>$message, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack( $message->item()->replies == 1 ? "staffcreate_header" : "staffreply_header", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}
-----
{expression="\IPS\Email::buildPlaintextBody( $message->content() )"}
-----
+1 -1
View File
@@ -140,7 +140,7 @@
},
"clients": {
"friendly": "clients",
"real": "app=nexus&module=clients&controller=invoices"
"real": "app=nexus&module=clients&controller=splash"
},
"referral": {
"friendly": "refer/{#id}",
+205 -98
View File
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="nexus">
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.billingForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.billingForm.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.checkout.billingAddress.js
*
@@ -53,9 +53,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.checkout.register.js - Register form during checkout
*
@@ -84,9 +84,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.checkout.review.js - Review page in checkout process
*
@@ -117,9 +117,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.shippingForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.shippingForm.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.checkout.shippingForm.js - Address book for shipping form
*
@@ -140,9 +140,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/clients" javascript_name="ips.clients.referrals.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/clients" javascript_name="ips.clients.referrals.js" javascript_type="controller" javascript_version="102002" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.clients.referrals.js - Referrals section
*
@@ -169,9 +169,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/customer" javascript_name="ips.customer.stats.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/customer" javascript_name="ips.customer.stats.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.nexus.customer.stats.js
*
@@ -195,9 +195,9 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.authorizenet.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.authorizenet.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.gateways.authorizenet.js - Authorize.Net DPM controller
*
@@ -255,9 +255,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="102002" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.gateways.stripe.js - Stripe controller
*
@@ -361,6 +361,13 @@
cvc: scope.find('[data-card="ccv"]').val(),
exp_month: expmonth,
exp_year: scope.find('[data-card="exp_year"]').val(),
name: scope.attr('data-name'),
address_line1: scope.attr('data-address1'),
address_line2: scope.attr('data-address2'),
address_city: scope.attr('data-city'),
address_state: scope.attr('data-state'),
address_zip: scope.attr('data-zip'),
address_country: scope.attr('data-country')
}, function(status,response){
loading.remove();
wizardContainer.show();
@@ -403,9 +410,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/hosting" javascript_name="ips.nexus.hosting.accountform.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/hosting" javascript_name="ips.nexus.hosting.accountform.js" javascript_type="controller" javascript_version="102002" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.nexus.hosting.accountform.js
*
@@ -435,9 +442,9 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="102002" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.misc.print.js - Makes the page print
*
@@ -457,9 +464,9 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.productoptions.js
*
@@ -512,9 +519,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.productselector.js
*
@@ -572,9 +579,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.cartReview.js - Cart review screen
*
@@ -672,9 +679,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150">/**
* IPS Community Suite 4
* (c) 2015 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.currencySelect.js - Alert when changing currency
*
@@ -712,9 +719,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.giftCard.js - Gift card purchase screen
*
@@ -800,9 +807,9 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.packagePage.js
*
@@ -922,7 +929,6 @@
// Are we already running inside of a dialog?
if( self.scope.closest('.ipsDialog').length ){
var dialogContent = self.scope.closest('.ipsDialog').find('.ipsDialog_content');
//see https://community.invisionpower.com/4bugtrack/active-reports/4013-adding-consecutive-items-from-the-list-to-the-cart-increases-number-of-continuecheckout-windows-r8137/
// We need to destroy this controller before updating the content so that event handlers are unregistered,
// otherwise this controller will continue listening for addToCart events and trigger multiple dialogs.
self.trigger('destroy');
@@ -1015,9 +1021,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="102002" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.store.register.js - Register screen in Nexus
*
@@ -1164,9 +1170,9 @@
},
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.emailsetup.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.emailsetup.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.emailsetup.js
*
@@ -1200,9 +1206,9 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.filterCheckboxSet.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.filterCheckboxSet.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.filterForm.js
*
@@ -1229,7 +1235,11 @@
*/
checkAll: function (e) {
e.preventDefault();
$( this.scope ).find('input[type=&quot;checkbox&quot;]').prop( 'checked', true );
this.scope
.find('input[type=&quot;checkbox&quot;]')
.prop( 'checked', true )
.closest('.ipsSideMenu_item')
.addClass('ipsSideMenu_itemActive');
},
/**
@@ -1240,14 +1250,18 @@
*/
checkNone: function (e) {
e.preventDefault();
$( this.scope ).find('input[type=&quot;checkbox&quot;]').prop( 'checked', false );
this.scope
.find('input[type=&quot;checkbox&quot;]')
.prop( 'checked', false )
.closest('.ipsSideMenu_item')
.removeClass('ipsSideMenu_itemActive');
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.list.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.list.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.list.js - Controller for main support request list
*
@@ -1265,6 +1279,7 @@
initialize: function () {
this.on( 'click', '[data-action="reloadTable"]', this.reloadTableClick );
this.on( 'menuItemSelected', this.itemSelected );
this.on( 'click', '[data-action="quickToggleCount"]', this.streamCountClicked );
this.on( 'change', '[data-action="quickToggle"]', this.toggleStream );
this.on( 'click', '[data-action="editStream"]', this.editStream );
this.on( 'click', 'tr.cNexusSupportTable_row', this.rowClick );
@@ -1293,6 +1308,16 @@
e.preventDefault();
this._reloadTable( $(e.target).attr('href') );
},
/**
* Event handler to toggle stream when count is clicked
*
* @param {event} e Event object
* @return {void}
*/
streamCountClicked: function(e) {
$(e.target).next('label').click();
},
/**
* Event handler for toggling a stream radio
@@ -1302,13 +1327,27 @@
*/
toggleStream: function (e) {
if ( $(e.target).attr('value') != 'custom' ) {
this.scope.find('[data-role="mainTable"]').show();
this._reloadTable( $(e.target).attr('data-url') );
} else if ( this._storedCustomForm ) {
var form = $(this.scope).find('[data-role="filterForm"]');
form.html( this._storedCustomForm );
this._storedCustomForm = '';
$( document ).trigger( 'contentChange', [ form ] );
$('#elRadio_stream_custom').click();
} else {
if ( this._storedCustomForm ) {
var form = $(this.scope).find('[data-role="filterForm"]');
form.html( this._storedCustomForm );
this._storedCustomForm = '';
$( document ).trigger( 'contentChange', [ form ] );
$('#elRadio_stream_custom').click();
}
$( e.target )
.closest('.ipsTabs')
.find('.ipsTabs_item')
.removeClass('ipsTabs_activeItem')
.end()
.end()
.closest('.ipsTabs_item')
.addClass('ipsTabs_activeItem');
this.scope.find('[data-role="mainTable"]').hide();
}
},
@@ -1322,8 +1361,9 @@
e.preventDefault();
var url = $(e.target).attr('href');
this.scope.find('[data-role="mainTable"]').hide();
var url = $(e.target).attr('href');
var form = $(this.scope).find('[data-role="filterForm"]');
this._storedCustomForm = form.html();
form.append( '<div class="ipsLoading ipsLoading_small cNexusFormLoading"></div>' );
@@ -1407,7 +1447,7 @@
if ( target.is('td') ) {
var checkbox = target.find('input[type="checkbox"]');
if ( checkbox.length ) {
checkbox.prop( 'checked', !checkbox.prop( 'checked' ) );
checkbox.prop( 'checked', !checkbox.prop( 'checked' ) ).trigger('change');
return;
}
}
@@ -1428,9 +1468,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.message.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.message.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.staffreply.js - Support reply processing
*
@@ -1484,9 +1524,9 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.metamenu.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.metamenu.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.metamenu.js - Makes the page print
*
@@ -1658,9 +1698,9 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.multimod.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.multimod.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.multimod.js - Controller for moderation actions in support requests
*
@@ -1758,9 +1798,58 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.pendingalert.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.packageInfo.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.packageInfo.js - Support packageInfo area
*
* Author: Rikki Tissier
*/
;( function($, _, undefined){
&quot;use strict&quot;;
ips.controller.register('nexus.admin.support.packageInfo', {
initialize: function () {
this.on( 'click', '[data-action=&quot;showMoreRows&quot;]', this.showRows );
this.on( 'click', '[data-action=&quot;showFewerRows&quot;]', this.hideRows );
},
showRows: function (e) {
e.preventDefault();
this.scope
.find('.cNexusSupportHeader_optional')
.show()
.end()
.find('[data-action=&quot;showMoreRows&quot;]')
.hide()
.end()
.find('[data-action=&quot;showFewerRows&quot;]')
.show();
ips.utils.cookie.set('showAllPackageInfo', true);
},
hideRows: function (e) {
e.preventDefault();
this.scope
.find('.cNexusSupportHeader_optional')
.hide()
.end()
.find('[data-action=&quot;showMoreRows&quot;]')
.show()
.end()
.find('[data-action=&quot;showFewerRows&quot;]')
.hide();
ips.utils.cookie.unset('showAllPackageInfo');
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.pendingalert.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.pendingalert.js - Shows an alert
*
@@ -1785,9 +1874,9 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.replyArea.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.replyArea.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.replyArea.js - Support request reply area
*
@@ -1869,9 +1958,9 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.request.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.request.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.request.js - Support request controller for keyboard shortcuts
*
@@ -1885,6 +1974,7 @@
initialize: function () {
this.on( document, 'keypress', this.keyPress );
this.on( 'quoteBuilt.quote', '.ipsQuote', this.quoteBuilt );
this.on( window, 'resize', this.resizeInfo );
this.setup();
},
@@ -1903,6 +1993,21 @@
this.scope.find('.ipsQuote:not([data-commerceHandled])').each( function () {
self._handleQuote( $( this ) );
});
this.resizeInfo();
},
resizeInfo: function () {
// Set height of ticket info panel
if( ips.utils.responsive.currentIs('phone') ){
this.scope.find('#elNexusRequestInfo').css({
height: 'auto'
});
} else {
this.scope.find('#elNexusRequestInfo').css({
height: $( window ).height() + 'px'
});
}
},
/**
@@ -1997,9 +2102,9 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.splitForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.splitForm.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.splitForm.js - Controller for link panel in editor
*
@@ -2066,9 +2171,9 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/support" javascript_name="ips.support.rate.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/support" javascript_name="ips.support.rate.js" javascript_type="controller" javascript_version="102002" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.support.rate.js
*
@@ -2088,7 +2193,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101099" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.images', " \
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="102002" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.images', " \
<div class='ipsGrid_span3 ipsAttach ipsImageAttach ipsPad_half ipsAreaBackground_light' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-isImage='1'>\
<ul class='ipsList_inline ipsImageAttach_controls'>\
<li><input type='radio' name='{{field_name}}_primary_image' value='{{id}}' title='{{#lang}}makePrimaryProductImage{{/lang}}' data-ipsTooltip></li>\
@@ -2111,7 +2216,7 @@
</div>\
");
]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101099" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="102002" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<a href='{{fullURL}}' data-fullURL='{{fullURL}}' class='cNexusProduct_primaryImage ipsContained' data-ipsLightbox data-ipsLightbox-group='product' data-ipsProductZoom>\
<img src='{{thumbURL}}' class='ipsImage ipsImage_thumb'>\
</a>\
@@ -2131,4 +2236,6 @@ app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
linkify-jquery.min.js</order>
</javascript>
+125 -51
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="nexus" version="101099">
<app key="nexus" version="102002">
<word key="__app_nexus" js="0">Commerce</word>
<word key="menutab__nexus" js="0">Commerce</word>
<word key="menutab__nexus_icon" js="0">usd</word>
@@ -30,6 +30,9 @@
<word key="__defart_support_request" js="0">support request</word>
<word key="__defart_product_reviews" js="0">product review</word>
<word key="plus_tax_rate" js="0"> + %s</word>
<word key="complete_profile_app__nexus_CustomerFields" js="0">Customer Fields</word>
<word key="profile_step_subaction_customer_fields" js="0">Fields</word>
<word key="complete_profile_customer_fields" js="0">Customer Fields</word>
<word key="paid" js="0">paid</word>
<word key="editor__nexus_Admin" js="0">Commerce Settings</word>
<word key="editor__nexus_Customer" js="0">Customer Fields</word>
@@ -65,7 +68,8 @@
<word key="nexus_nodeletedept_contactus" js="0"><![CDATA[The department you attempted to delete is currently set as the department contact us submissions are sent to. You must adjust your <a href='{internal.app=core&module=settings&controller=contactus}'>Contact Us</a> configuration before you can delete this department.]]></word>
<word key="menu__nexus_stock_gateways" js="0">Payment Methods</word>
<word key="payment_methods" js="0">Payment Methods</word>
<word key="gateways_gateway" js="0">Gateway</word>
<word key="gateways_gateway" js="0">Payment Method</word>
<word key="gateways_gateway_desc" js="0"><![CDATA[<a href='{external.payment_methods}' target='_blank'>Learn more about the different payment methods</a>]]></word>
<word key="gateways_details" js="0">Details</word>
<word key="gateway__PayPal" js="0">PayPal</word>
<word key="paymethod_name" js="0">Name</word>
@@ -82,7 +86,7 @@
<word key="paypal_billing_agreements_req_desc" js="0">Note that Billing Agreements can only be used when purchasing items with a single renewal term. If, for example, a customer purchases a product which renews every month at the same time as a product which renews every year, a Billing Agreement will not be created.</word>
<word key="paypal_billing_agreements_opt" js="0">Optional: Allow the customer to choose if they want to use a Billing Agreement or be invoiced.</word>
<word key="paypal_billing_agreements_dis" js="0">Disabled: Do not use Billing Agreements.</word>
<word key="paypal_billing_agreements_desc" js="0"><![CDATA[Billing Agreements allows for automatic recurring payments. Your account <a href='{external.paypal_app_status}' target='_blank'>must have access</a> to Subscriptions.]]></word>
<word key="paypal_billing_agreements_desc" js="0"><![CDATA[Your account <a href='{external.paypal_app_status}' target='_blank'>must have access</a> to Subscriptions. <a href='{external.billing_agreements}' target='_blank'>Important information about Billing Agreements</a>]]></word>
<word key="paypal_vault" js="0">Allow users to store card details?</word>
<word key="paypal_vault_desc" js="0">Card details are stored on PayPal's servers, not your own.</word>
<word key="paypal_client_id" js="0">Client ID</word>
@@ -98,6 +102,7 @@
<word key="stripe_publishable_key" js="0">Stripe Publishable Key</word>
<word key="stripe_cards" js="0">Allow users to store card details?</word>
<word key="stripe_cards_desc" js="0">Card details are stored on Stripe's servers, not your own.</word>
<word key="stripe_risk_level" js="0">Stripe risk evaluation: %s</word>
<word key="gateway__AuthorizeNet" js="0">Authorize.Net</word>
<word key="authorizenet_login" js="0">API Login ID</word>
<word key="authorizenet_login_desc" js="0"><![CDATA[<a href='{external.authorizenet_keys}' target='_blank'>Get your login ID and transaction key</a>]]></word>
@@ -603,6 +608,7 @@
<word key="maxmind_error_okay" js="0">Continue with transaction</word>
<word key="maxmind_error_hold" js="0">Hold for approval</word>
<word key="maxmind_error_desc" js="0">This will happen if you exceed your monthly limit.</word>
<word key="maxmind_gateways" js="0">Payment Methods</word>
<word key="add_card" js="0">Add card</word>
<word key="payment_method" js="0">How do you want to pay?</word>
<word key="testgateway_status" js="0">Status</word>
@@ -749,8 +755,9 @@
<word key="f_coupon" js="0">Coupon is used</word>
<word key="f_email" js="0">Customer's email address</word>
<word key="f_country" js="0">Billing address is in</word>
<word key="f_trans_okay" js="0">Customer has previously made transactions that were approved</word>
<word key="f_trans_fraud" js="0">Customer has previously made transactions that were blocked by fraud rules</word>
<word key="f_trans_okay" js="0">Previous successful transactions</word>
<word key="f_trans_fraud" js="0">Previous transactions that were blocked by fraud rules</word>
<word key="f_trans_fail" js="0">Previous refused or refunded transactions</word>
<word key="fraud_rule_actions_header" js="0">Then take the following action...</word>
<word key="f_action" js="0">Action to take</word>
<word key="f_action_okay" js="0">Approve</word>
@@ -781,6 +788,7 @@
<word key="f_blurb_email" js="0">Customer's email address %s %s</word>
<word key="f_blurb_trans_okay" js="0">Customer has previously made %s %d transactions that were approved</word>
<word key="f_blurb_trans_fraud" js="0">Customer has previously made %s %d transactions that were blocked by fraud rules</word>
<word key="f_blurb_trans_fail" js="0">Customer has previously made %s %d transactions that were refused or refunded</word>
<word key="f_blurb_maxmind" js="0">MaxMind score is %s %s/100</word>
<word key="f_blurb_maxmind_proxy" js="0">Likelihood IP address is an open proxy is %s %s/4</word>
<word key="f_blurb_maxmind_address_match_y" js="0">IP address country matches billing address country</word>
@@ -793,8 +801,32 @@
<word key="f_blurb_maxmind_freeemail_n" js="0">Customer is not using a free email provider</word>
<word key="f_blurb_maxmind_riskyemail_y" js="0">Customer is using a known high-risk email address</word>
<word key="f_blurb_maxmind_riskyemail_n" js="0">Customer is not using a known high-risk email address</word>
<word key="f_products" js="0">Products being purchased includes</word>
<word key="f_blurb_products" js="0">Purchasing %s</word>
<word key="f_customer_reg" js="0">Customer created account</word>
<word key="f_customer_reg_suffix" js="0">days ago</word>
<word key="f_blurb_customer_reg" js="0">Customer created account %s %d days ago</word>
<word key="f_customer_groups" js="0">Customer is in group</word>
<word key="f_blurb_customer_groups" js="0">Customer is in %s</word>
<word key="f_customer_spend" js="0">Total previous spend</word>
<word key="f_customer_spend_desc" js="0">Only counts approved, non-refunded transactions</word>
<word key="f_blurb_customer_spend" js="0">Customer has previously spent %s %s</word>
<word key="fraud_rule_conflict" js="0"><![CDATA[The rule <em>%s</em> will never be used because all transactions which match it will also match <em>%s</em>.<br>Rules are checked in the order listed and the <strong>last</strong> rule in the list that matches all conditions will be used. You should reorder your rules to ensure the desired actions are taken.]]></word>
<word key="triggered_fraud_rule" js="0">Triggered Fraud Rule</word>
<word key="f_last_okay_trans" js="0">Last successful transaction</word>
<word key="f_last_okay_trans_suffix" js="0">days ago</word>
<word key="f_blurb_last_okay_trans" js="0">Last successful transaction was %s %d days ago</word>
<word key="f_ip" js="0">IP Address</word>
<word key="f_blurb_ip" js="0">IP Address %s %s</word>
<word key="f_invalid_regex" js="0"><![CDATA[The regular expression is not valid. You must include delimiters and flags, for example <code>/^[A-Z]+$/i</code>]]></word>
<word key="fraud_customer_account" js="0">Account</word>
<word key="fraud_customer_fields" js="0">Custom Fields</word>
<word key="fraud_customer_prevtrans" js="0">Previous Transactions</word>
<word key="f_blurb_custom_bool_y" js="0">%s is yes</word>
<word key="f_blurb_custom_bool_n" js="0">%s is no</word>
<word key="f_blurb_custom_discrete" js="0">%s is %s</word>
<word key="f_blurb_custom_text" js="0">%s %s %s</word>
<word key="f_blurb_custom_numeric" js="0">%s is %s %s</word>
<word key="customerTable_cm_first_name" js="0">First Name</word>
<word key="customerTable_cm_last_name" js="0">Last Name</word>
<word key="customerTable_email" js="0">Email address</word>
@@ -810,11 +842,6 @@
<word key="account_credit_remove" js="0">%s account credit will be taken from %s.</word>
<word key="account_credit_remove_neg" js="0">This will make their account credit negative.</word>
<word key="account_credit_return" js="0">%s account credit will be returned to %s.</word>
<word key="log_type" js="0"></word>
<word key="log_date" js="0">Date/Time</word>
<word key="log_ip_address" js="0">IP Address</word>
<word key="log_data" js="0">Action</word>
<word key="log_member" js="0">Account</word>
<word key="altcontactTable_alt_id" js="0">Alternative Contact</word>
<word key="altcontactTable_purchases" js="0">Purchases</word>
<word key="altcontactTable_billing" js="0">Can view and pay invoices?</word>
@@ -873,7 +900,6 @@
<word key="manage_referrals" js="0">Manage Referrals</word>
<word key="recent_account_activity" js="0">Recent Account Activity</word>
<word key="see_all_history" js="0">See all activity</word>
<word key="customers_all_history" js="0">%s's Activity</word>
<word key="view_account" js="0">View Account</word>
<word key="no_alternate_contacts" js="0">No alternative contacts.</word>
<word key="no_addresses" js="0">No addresses.</word>
@@ -885,7 +911,7 @@
<word key="see_all_support" js="0">See {!# [?:all requests][1:one request]}</word>
<word key="see_all_invoices" js="0">See {!# [?:all invoices][1:one invoice]}</word>
<word key="see_all_purchases" js="0">See {!# [?:all purchases][1:one purchase]}</word>
<word key="no_support_requests" js="0">No support requests</word>
<word key="no_support_requests" js="0">There are no support requests to display.</word>
<word key="invoice_created" js="0">Invoice created</word>
<word key="no_invoices" js="0">This customer has no invoices</word>
<word key="avg_short" js="0">avg</word>
@@ -894,6 +920,14 @@
<word key="history_added_note" js="0">Note added %s</word>
<word key="history_edited_note" js="0">Note edited %s</word>
<word key="nexus_no_security_answers" js="0">No Security Answers</word>
<word key="loading_customer_stats" js="0">Loading customer stats...</word>
<word key="customer_tab_overview" js="0">Account Information</word>
<word key="customer_tab_cards" js="0">Credit Cards</word>
<word key="customer_tab_paypal" js="0">PayPal Agreements</word>
<word key="customer_tab_alts" js="0">Alternate Contacts</word>
<word key="customer_tab_referrers" js="0">Referrers</word>
<word key="revenue_past_12_months" js="0">Revenue, 12 months to date</word>
<word key="customer_no_history" js="0">There is no history to show for this customer.</word>
<word key="menu__nexus_customers_fields" js="0">Custom Fields</word>
<word key="nexus_customer_fields" js="0">Customer Fields</word>
<word key="customer_field_registration" js="0">Registration</word>
@@ -950,9 +984,6 @@
<word key="history_giftvoucher_redeemed" js="0">Redeemed %s Gift Card (%s) purchased by %s - account credit now %s</word>
<word key="history_giftvoucher_used" js="0">%s Gift Card (%s) used by %s</word>
<word key="history_info_change" js="0">Information changed%s:</word>
<word key="history_email_changed_from" js="0">Email address changed from %s</word>
<word key="history_name_changed_from" js="0">Name changed from %s</word>
<word key="history_password_changed" js="0">Password changed</word>
<word key="history_field_changed_from" js="0">%s changed from %s to %s</word>
<word key="history_field_changed" js="0">%s changed to %s</word>
<word key="history_address_add" js="0">%s added%s.</word>
@@ -976,6 +1007,7 @@
<word key="history_download" js="0">Downloaded %s</word>
<word key="history_support_by_email" js="0"> from incoming email</word>
<word key="history_support" js="0">%s created%s</word>
<word key="history_name_changed_from" js="0">Name changed from %s</word>
<word key="order_id" js="0">Order ID</word>
<word key="renewal" js="0">Renewal</word>
<word key="renewal_unpaid" js="0">The renewal date for %s (ID %d) will be reversed to %s</word>
@@ -1301,11 +1333,20 @@
<word key="support_stream_assigned" js="0">Assigned To Me</word>
<word key="support_stream_tracked" js="0">Tracking</word>
<word key="support_stream_last_replies" js="0">My Last Replies</word>
<word key="support_stream_other" js="0">Other</word>
<word key="support_stream_other" js="0">New Filter</word>
<word key="split_or_delete" js="0">Split or delete</word>
<word key="can_not_multimod_all" js="0">This action can not be performed because there would be no public replies left on the support request.</word>
<word key="can_not_split_notes_only" js="0">You cannot split only hidden notes. You must choose at least one message.</word>
<word key="split_request_title" js="0">%s (split from #%d)</word>
<word key="motivate_title" js="0">Awesome job!</word>
<word key="motivate_desc" js="0">There are no requests left to display for this filter!</word>
<word key="save_this_stream" js="0">Save this stream</word>
<word key="edit_this_stream" js="0">Edit this stream</word>
<word key="billing" js="0">Billing</word>
<word key="renews" js="0">Renews</word>
<word key="hosting_info" js="0">Hosting</word>
<word key="show_fewer_rows" js="0">Show fewer rows</word>
<word key="show_x_rows" js="0">Show {# [1:more row][?:more rows]}</word>
<word key="menu__nexus_support_settings" js="0">Settings</word>
<word key="support_settings" js="0">Support Settings</word>
<word key="departments" js="0">Departments</word>
@@ -1446,7 +1487,7 @@
<word key="ie_splash_intro" js="0"><![CDATA[The support system can read emails, allowing you to use all of the power of support requests but in a way which to customers appears to be a normal email conversation. Each <a href='{internal.app=nexus&module=support&controller=settings&tab=departments}'>department</a> has its own email address.]]></word>
<word key="ie_splash_methods" js="0">Emails can read in severals ways:</word>
<word key="ie_piping" js="0">Piping</word>
<word key="ie_piping_desc" js="0">With piping, when the email is received, your server sends the email straight to the support system. The server IPS Community Suite is installed on must be the same server that receives the email, and must support piping (check with your hosting provider if you're not sure).</word>
<word key="ie_piping_desc" js="0">With piping, when the email is received, your server sends the email straight to the support system. The server Invision Community is installed on must be the same server that receives the email, and must support piping (check with your hosting provider if you're not sure).</word>
<word key="ie_piping_use" js="0">Use Piping</word>
<word key="ie_pop3" js="0">POP3</word>
<word key="ie_pop3_desc" js="0">POP3 works just like an email client does on your desktop or phone. The support system periodically checks for any new email and if there are new messages, fetches and processes them (meaning there is a delay in the message being received as a support request).</word>
@@ -1602,6 +1643,7 @@
<word key="reply_action_split_new" js="0">%s created this support request by splitting another request</word>
<word key="reply_action_autoresolve_warning" js="0">Email sent to customer that the request will automatically be resolved soon.</word>
<word key="reply_action_autoresolve" js="0"><![CDATA[Automatically marked <strong>%s</strong>]]></word>
<word key="reply_action_merge" js="0">%s merged a ticket with this one</word>
<word key="support_first_message" js="0">First Message</word>
<word key="support_last_customer_reply" js="0">Latest Customer Reply</word>
<word key="support_last_staff_reply" js="0">Latest Staff Reply</word>
@@ -1616,7 +1658,7 @@
<word key="support_history_resolved" js="0">Issues Resolved</word>
<word key="support_history_up" js="0">Up from %s in the 30 days before</word>
<word key="support_history_down" js="0">Down from %s in the 30 days before</word>
<word key="support_history_daily_review" js="0">Daily Review</word>
<word key="support_history_daily_review" js="0">Daily Review for %s</word>
<word key="support_history_to_req" js="0">to request #%d</word>
<word key="support_history_assigned_1" js="0">Assigned</word>
<word key="support_history_assigned_2" js="0">request #%d to %s</word>
@@ -1667,6 +1709,7 @@
<word key="mailsub__nexus_staffReply" js="0"><![CDATA[Re: {$message->item()->title|raw}]]></word>
<word key="mailsub__nexus_staffReplyNoChrome" js="0"><![CDATA[Re: {$message->item()->title|raw}]]></word>
<word key="staffreply_header" js="0">%s has replied to your support request.</word>
<word key="staffcreate_header" js="0">%s has created a support request on your behalf.</word>
<word key="view_support_request" js="0">View Support Request</word>
<word key="or_you_can_reply" js="0">or you can reply directly to this email</word>
<word key="staffnotify_new_header" js="0">%s has created a new support request.</word>
@@ -1750,6 +1793,7 @@
<word key="pg_desc_placeholder" js="0">Click to add a description.</word>
<word key="pg_image" js="0">Cover Image</word>
<word key="package_settings" js="0">Product Settings</word>
<word key="package" js="0">Package</word>
<word key="p_type" js="0">Type</word>
<word key="p_type_Product" js="0">Normal Product</word>
<word key="p_type_Product_desc" js="0">Sell physical (items you ship to the customer) or other intangible (for example software licenses or premium membership plans) products.</word>
@@ -1920,7 +1964,7 @@
<word key="customers_currently_paying" js="0">Customers currently paying...</word>
<word key="now_pay" js="0">Now pay...</word>
<word key="any_other_amount" js="0">Any other amount</word>
<word key="change_renew_ba_blurb" js="0">Some purchase have active Billing Agreements. The terms of Billing Agreements cannot be changed. How do you want to handle these purchases?</word>
<word key="change_renew_ba_blurb" js="0">Some purchases have active Billing Agreements. The terms of Billing Agreements cannot be changed. How do you want to handle these purchases?</word>
<word key="change_renew_ba_skip" js="0">Skip purchases which have Billing Agreements</word>
<word key="change_renew_ba_cancel" js="0">Cancel Billing Agreements</word>
<word key="change_renew_ba_go_back" js="0">Go back and change options</word>
@@ -1928,6 +1972,7 @@
<word key="cf_packages" js="0">Products</word>
<word key="cf_sticky" js="0">Used to identify purchases?</word>
<word key="cf_sticky_desc" js="0">If enabled, the value will show alongside the purchase name.</word>
<word key="cf_allow_attachments" js="0">Allow attachments?</word>
<word key="custom_package_fields" js="0">Custom Fields</word>
<word key="custom_package_fields_blurb" js="0"><![CDATA[If you create select or radio fields, you can then adjust product stock levels and prices individually for each available option in the field from the <a href='{internal.app=nexus&module=store&controller=packages}'>products</a>.]]></word>
<word key="cf_purchase" js="0">Display when purchasing?</word>
@@ -1948,6 +1993,7 @@
<word key="product_reviews_pl_lc" js="0">product reviews</word>
<word key="buy_gift_voucher" js="0">Buy Gift Card</word>
<word key="gift_voucher_amount" js="0">Amount</word>
<word key="gift_voucher_color" js="0">Color</word>
<word key="gift_voucher_method" js="0">Send Gift Card By</word>
<word key="gift_voucher_print" js="0">Print</word>
<word key="gift_voucher_email" js="0">Recipient's Email Address</word>
@@ -2050,12 +2096,14 @@
<word key="about_product" js="0"><![CDATA[About <em>%s</em>]]></word>
<word key="lb" js="0">lb</word>
<word key="kg" js="0">kg</word>
<word key="renewal_amount_with_pc_saving" js="0">%s (save %s%%)</word>
<word key="renewal_amount_with_cost_saving" js="0">%s (save %s)</word>
<word key="menu__nexus_store_settings" js="0">Settings</word>
<word key="store_settings" js="0">Store Settings</word>
<word key="nexus_gift_vouchers" js="0">Gift Cards</word>
<word key="nexus_gift_vouchers_desc" js="0">Enter the amounts for the available gift cards. For example, you might create gift cards for $5, $10, $20, etc.</word>
<word key="nexus_gift_vouchers_free" js="0">Users can purchase a gift card of any amount?</word>
<word key="nexus_store_tax" js="0">Tax</word>
<word key="nexus_store_prices" js="0">Prices</word>
<word key="nexus_show_tax" js="0">Include tax in prices shown in store?</word>
<word key="nexus_store_display" js="0">Store Display</word>
<word key="nexus_purchase_settings" js="0">Purchase Settings</word>
@@ -2074,6 +2122,11 @@
<word key="nexus_reg_force" js="0">Force users to make a purchase when registering?</word>
<word key="nexus_reg_force_desc" js="0"><![CDATA[You can control which products are offered from the <a href='{internal.app=nexus&module=store&controller=packages}'>Products</a> page.]]></word>
<word key="themesetting_cm_store_view" js="0">Default Store Layout</word>
<word key="nexus_show_renew_option_savings" js="0">Show Renewal Price Savings</word>
<word key="nexus_show_renew_option_savings_desc" js="0">If a product has multiple renewal price options, the amount the customer saves by choosing a particular option can be shown.</word>
<word key="nexus_show_renew_option_savings_none" js="0">Do not show</word>
<word key="nexus_show_renew_option_savings_percent" js="0">As a percentage</word>
<word key="nexus_show_renew_option_savings_amount" js="0">As monetary value</word>
<word key="module__nexus_clients" js="0"><![CDATA[Billing & Purchases]]></word>
<word key="manage" js="0">Manage</word>
<word key="client_purchases" js="0">Manage Purchases</word>
@@ -2191,6 +2244,7 @@
<word key="orders_none" js="0">You don't have any orders to show</word>
<word key="order_title" js="0">Order</word>
<word key="order_invoice_print" js="0">Print Invoice</word>
<word key="order_po_number" js="0">PO number</word>
<word key="order_po_number_edit" js="0">Change the PO number for this invoice</word>
<word key="order_po_number_add_title" js="0">Add a PO number for this invoice</word>
<word key="order_po_number_add" js="0">Add PO number</word>
@@ -2824,42 +2878,42 @@ At this stage, no further action is required from you. We will send you an addit
<word key="email_ending_in" js="0">ending in %s</word>
<word key="email_invoice_paid" js="0">Your invoice has been marked as paid.</word>
<word key="email_invoice_shipping" js="0">We will send you another email when your items have been shipped.</word>
<word key="emailtpl_transactionWaiting" js="0">Transaction Waiting</word>
<word key="emailtpl_transactionRefunded" js="0">Transaction Refunded</word>
<word key="emailtpl_transactionHeld" js="0">Transaction Held</word>
<word key="emailtpl_transactionFailed" js="0">Transaction Failed</word>
<word key="emailtpl_transactionApproved" js="0">Transaction Approved</word>
<word key="emailtpl_transactionGatewayPending" js="0">Transaction Pending</word>
<word key="emailtpl_staffReplyPending" js="0">Staff Reply Pending</word>
<word key="emailtpl_staffReplyNoChrome" js="0">Staff Reply (No Wrapper)</word>
<word key="emailtpl_staffReply" js="0">Staff Reply</word>
<word key="emailtpl_staffNotifyReply" js="0">Staff Reply Notification</word>
<word key="emailtpl_staffNotifyNote" js="0">Staff Note Notification</word>
<word key="emailtpl_staffNotifyNew" js="0">Staff Support Request Notification</word>
<word key="emailtpl_staffAssignedReminder" js="0">Staff Support Request Assignment Reminder</word>
<word key="emailtpl_replyRequestLocked" js="0">Reply to Locked Support Request</word>
<word key="emailtpl_transactionWaiting" js="0">Transaction waiting</word>
<word key="emailtpl_transactionRefunded" js="0">Transaction refunded</word>
<word key="emailtpl_transactionHeld" js="0">Transaction held</word>
<word key="emailtpl_transactionFailed" js="0">Transaction failed</word>
<word key="emailtpl_transactionApproved" js="0">Transaction approved</word>
<word key="emailtpl_transactionGatewayPending" js="0">Transaction pending</word>
<word key="emailtpl_staffReplyPending" js="0">Staff reply pending</word>
<word key="emailtpl_staffReplyNoChrome" js="0">Staff reply (no wrapper)</word>
<word key="emailtpl_staffReply" js="0">Staff reply</word>
<word key="emailtpl_staffNotifyReply" js="0">Staff reply notification</word>
<word key="emailtpl_staffNotifyNote" js="0">Staff note notification</word>
<word key="emailtpl_staffNotifyNew" js="0">Staff support request notification</word>
<word key="emailtpl_staffAssignedReminder" js="0">Staff support request assignment reminder</word>
<word key="emailtpl_replyRequestLocked" js="0">Reply to locked support request</word>
<word key="reply_by__staff" js="0">Staff</word>
<word key="reply_by__accountowner" js="0">Account Owner</word>
<word key="reply_by__altcontact" js="0">Alternate Contact</word>
<word key="emailtpl_shipment" js="0">Shipment Notification</word>
<word key="emailtpl_purchaseNotify" js="0">Purchase Notification</word>
<word key="emailtpl_payoutComplete" js="0">Payout Notification</word>
<word key="emailtpl_newInvoice" js="0">New Invoice</word>
<word key="emailtpl_monitoring_reset" js="0">Monitoring Reset</word>
<word key="emailtpl_monitoring_panic" js="0">Monitoring Panic</word>
<word key="emailtpl_monitoring_online" js="0">Monitoring Server Online</word>
<word key="emailtpl_monitoring_offline" js="0">Monitoring Server Offline</word>
<word key="emailtpl_monitoring_acknowledged" js="0">Monitoring Acknowledged</word>
<word key="emailtpl_shipment" js="0">Shipment notification</word>
<word key="emailtpl_purchaseNotify" js="0">Purchase notification</word>
<word key="emailtpl_payoutComplete" js="0">Payout notification</word>
<word key="emailtpl_newInvoice" js="0">New invoice</word>
<word key="emailtpl_monitoring_reset" js="0">Monitoring reset</word>
<word key="emailtpl_monitoring_panic" js="0">Monitoring panic</word>
<word key="emailtpl_monitoring_online" js="0">Monitoring server online</word>
<word key="emailtpl_monitoring_offline" js="0">Monitoring server offline</word>
<word key="emailtpl_monitoring_acknowledged" js="0">Monitoring acknowledged</word>
<word key="emailtpl_monitoring_eom" js="0">Monitoring EOM</word>
<word key="emailtpl_invoiceWarning" js="0">Invoice Warning Email</word>
<word key="emailtpl_invoiceMarkedPaid" js="0">Invoice Marked Paid</word>
<word key="emailtpl_hostingError" js="0">Hosting Error</word>
<word key="emailtpl_giftVoucher" js="0">Gift Voucher</word>
<word key="emailtpl_commissionEarned" js="0">Commission Earned</word>
<word key="emailtpl_commissionRevoked" js="0">Commission Revoked</word>
<word key="emailtpl_autoresolveWarning" js="0">Support Request Auto-resolve Warning</word>
<word key="emailtpl_invoiceWarning" js="0">Invoice warning email</word>
<word key="emailtpl_invoiceMarkedPaid" js="0">Invoice marked paid</word>
<word key="emailtpl_hostingError" js="0">Hosting error</word>
<word key="emailtpl_giftVoucher" js="0">Gift voucher</word>
<word key="emailtpl_commissionEarned" js="0">Commission earned</word>
<word key="emailtpl_commissionRevoked" js="0">Commission revoked</word>
<word key="emailtpl_autoresolveWarning" js="0">Support request auto-resolve warning</word>
<word key="email_timeelapsed" js="0">Time elapsed</word>
<word key="emailtpl_unsubscribeStaffNotify" js="0">Staff Notification Unsubscribe</word>
<word key="emailtpl_unsubscribeStaffNotify" js="0">Staff notification unsubscribe</word>
<word key="block_pendingActions" js="0">Commerce Overview</word>
<word key="block_pendingActions_desc" js="0">Shows items requiring staff attention such as pending transactions and open support requests.</word>
<word key="block_donations" js="0">Donation Goals</word>
@@ -2887,6 +2941,26 @@ At this stage, no further action is required from you. We will send you an addit
<word key="MFA_nexus_BillingAgreements" js="0">Managing PayPal billing agreements</word>
<word key="MFA_nexus_BillingInfo" js="0">Editing personal billing information</word>
<word key="MFA_nexus_Cards" js="0">Managing stored cards</word>
<word key="log_type_title_invoice" js="0">Invoice Created / Changed</word>
<word key="log_type_title_transaction" js="0">Transaction Created / Changed</word>
<word key="log_type_title_shipping" js="0">Shipping Created / Changed</word>
<word key="log_type_title_purchase" js="0">Purchase Created / Changed</word>
<word key="log_type_title_comission" js="0">Commission Added / Removed</word>
<word key="log_type_title_giftvoucher" js="0">Gift Voucher Used / Redeemed</word>
<word key="log_type_title_info" js="0">Information Changed</word>
<word key="log_type_title_address" js="0">Address Changed</word>
<word key="log_type_title_card" js="0">Credit Cards Changed</word>
<word key="log_type_title_alternative" js="0">Alternative Contacts Changed</word>
<word key="log_type_title_payout" js="0">Payout Processed / Changed</word>
<word key="log_type_title_lkey" js="0">License Key Activated / Reset</word>
<word key="log_type_title_download" js="0">File Downloaded</word>
<word key="log_type_title_support" js="0">Support Request Created</word>
<word key="log_type_title_billingagreement" js="0">Billing Agreement Created / Changed</word>
<word key="log_type_title_note" js="0">Note Added</word>
<word key="log_type_title_custom" js="0">Custom</word>
<word key="a_product_in_our_store" js="0">A product in our store</word>
<word key="a_product_in_our_store_cat" js="0">In %s</word>
<word key="x_reviewed_product" js="0">%s reviewed a product</word>
<word key="payment_error" js="1">There was an error processing the payment. Please try a different payment method or contact us for assistance.</word>
<word key="support_ajax_error" js="1">An error occurred. Your session may have expired. Refresh the page and try again.</word>
<word key="click_to_show_url" js="1">Click to show real URL</word>
+1 -1
View File
@@ -13,7 +13,7 @@
"protected": 0
},
"clients": {
"default_controller": "invoices",
"default_controller": "purchases",
"protected": 0
},
"promotion": {
+252 -145
View File
@@ -2002,6 +2002,188 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_products": {
"name": "f_products",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_customer_reg": {
"name": "f_customer_reg",
"type": "CHAR",
"length": 1,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_customer_reg_unit": {
"name": "f_customer_reg_unit",
"type": "INT",
"length": 3,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_customer_groups": {
"name": "f_customer_groups",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_customer_spend": {
"name": "f_customer_spend",
"type": "CHAR",
"length": 1,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_customer_spend_unit": {
"name": "f_customer_spend_unit",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_last_okay_trans": {
"name": "f_last_okay_trans",
"type": "CHAR",
"length": 1,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_last_okay_trans_unit": {
"name": "f_last_okay_trans_unit",
"type": "INT",
"length": 3,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_ip": {
"name": "f_ip",
"type": "CHAR",
"length": 1,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_ip_unit": {
"name": "f_ip_unit",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_trans_fail": {
"name": "f_trans_fail",
"type": "CHAR",
"length": 1,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_trans_fail_unit": {
"name": "f_trans_fail_unit",
"type": "INT",
"length": 3,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_custom_fields": {
"name": "f_custom_fields",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -2324,151 +2506,6 @@
}
}
},
"nexus_customer_history": {
"name": "nexus_customer_history",
"columns": {
"log_id": {
"allow_null": false,
"auto_increment": true,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 10,
"name": "log_id",
"type": "INT",
"unsigned": false,
"values": [],
"zerofill": false
},
"log_member": {
"allow_null": false,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": "0",
"length": 20,
"name": "log_member",
"type": "BIGINT",
"unsigned": true,
"values": [],
"zerofill": false
},
"log_by": {
"name": "log_by",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": [],
"allow_null": true,
"default": "0",
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
},
"log_type": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 32,
"name": "log_type",
"type": "VARCHAR",
"unsigned": false,
"values": [],
"zerofill": false
},
"log_data": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 0,
"name": "log_data",
"type": "TEXT",
"unsigned": false,
"values": [],
"zerofill": false
},
"log_date": {
"allow_null": false,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": "0",
"length": 0,
"name": "log_date",
"type": "DOUBLE",
"unsigned": false,
"values": [],
"zerofill": false
},
"log_ip_address": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 46,
"name": "log_ip_address",
"type": "VARCHAR",
"unsigned": false,
"values": [],
"zerofill": false
}
},
"indexes": {
"PRIMARY": {
"type": "primary",
"name": "PRIMARY",
"length": [
null
],
"columns": [
"log_id"
]
},
"log_member": {
"type": "key",
"name": "log_member",
"length": [
null
],
"columns": [
"log_member"
]
},
"log_date": {
"type": "key",
"name": "log_date",
"length": [
null
],
"columns": [
"log_date"
]
},
"log_ip_address": {
"type": "key",
"name": "log_ip_address",
"length": [
null
],
"columns": [
"log_ip_address"
]
}
}
},
"nexus_payouts": {
"name": "nexus_payouts",
"columns": {
@@ -4394,6 +4431,20 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"sf_allow_attachments": {
"name": "sf_allow_attachments",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -5382,6 +5433,20 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"p_meta_data": {
"name": "p_meta_data",
"type": "BIT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -5965,6 +6030,20 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"cf_allow_attachments": {
"name": "cf_allow_attachments",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -6951,6 +7030,20 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"f_allow_attachments": {
"name": "f_allow_attachments",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -7080,6 +7173,20 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"d_name_seo": {
"name": "d_name_seo",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
+8
View File
@@ -91,6 +91,10 @@
"key": "maxmind_error",
"default": "okay"
},
{
"key": "maxmind_gateways",
"default": "*"
},
{
"key": "maxmind_key",
"default": ""
@@ -303,6 +307,10 @@
"key": "nexus_severities",
"default": "1"
},
{
"key": "nexus_show_renew_option_savings",
"default": "amount"
},
{
"key": "nexus_show_stock",
"default": "0"
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -9,7 +9,7 @@
"sc_tab_key": "custom",
"sc_show_in_vse": 0,
"sc_title": "themesetting_cm_store_view",
"sc_order": 10,
"sc_order": 11,
"sc_condition": null
}
]
+22 -1
View File
@@ -204,5 +204,26 @@
"101096": "4.1.19.2",
"101097": "4.1.19.2",
"101098": "4.1.19.3",
"101099": "4.1.19.4"
"101099": "4.1.19.4",
"101100": "4.2.0 Beta 1",
"101101": "4.2.0 Beta 1",
"101102": "4.2.0 Beta 1",
"101103": "4.2.0 Beta 1",
"101104": "4.2.0 Beta 2",
"101105": "4.2.0 Beta 3",
"101106": "4.2.0 Beta 3a",
"101107": "4.2.0 Beta 4",
"101108": "4.2.0 Beta 4",
"101109": "4.2.0 Beta 5",
"101110": "4.2.0 Beta 5a",
"101111": "4.2.0 Beta 6",
"101112": "4.2.0 Beta 6a",
"101113": "4.2.0 Beta 6a",
"101114": "4.2.0 Beta 7",
"101115": "4.2.0 Beta 7a",
"101116": "4.2.0 Beta 8",
"101117": "4.2.0 Beta 8",
"102000": "4.2.0",
"102001": "4.2.0",
"102002": "4.2.0"
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief Community Enhancements: EasyPost
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Jun 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\CommunityEnhancements;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Community Enhancements: eNom
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 08 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\CommunityEnhancements;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Community Enhancements: MaxMind
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\CommunityEnhancements;
@@ -62,8 +61,9 @@ class _MaxMind
public function edit()
{
$form = new \IPS\Helpers\Form;
$form->add( new \IPS\Helpers\Form\YesNo( 'maxmind_enable', (bool) \IPS\Settings::i()->maxmind_key, FALSE, array( 'togglesOn' => array( 'maxmind_key', 'maxmind_error' ) ) ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'maxmind_enable', (bool) \IPS\Settings::i()->maxmind_key, FALSE, array( 'togglesOn' => array( 'maxmind_key', 'maxmind_gateways', 'maxmind_error' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'maxmind_key', \IPS\Settings::i()->maxmind_key, FALSE, array(), NULL, NULL, NULL, 'maxmind_key' ) );
$form->add( new \IPS\Helpers\Form\Node( 'maxmind_gateways', ( !\IPS\Settings::i()->maxmind_gateways or \IPS\Settings::i()->maxmind_gateways === '*' ) ? 0 : explode( ',', \IPS\Settings::i()->maxmind_gateways ), FALSE, array( 'class' => 'IPS\nexus\Gateway', 'multiple' => TRUE, 'zeroVal' => 'all' ), NULL, NULL, NULL, 'maxmind_gateways' ) );
$form->add( new \IPS\Helpers\Form\Radio( 'maxmind_error', \IPS\Settings::i()->maxmind_error, FALSE, array( 'options' => array( 'okay' => 'maxmind_error_okay', 'hold' => 'maxmind_error_hold' ) ), NULL, NULL, NULL, 'maxmind_error' ) );
if ( $values = $form->values() )
{
@@ -73,12 +73,14 @@ class _MaxMind
{
unset( $values['maxmind_enable'] );
$this->testSettings( $values['maxmind_key'] );
$values['maxmind_gateways'] = is_array( $values['maxmind_gateways'] ) ? implode( ',', array_keys( $values['maxmind_gateways'] ) ) : '*';
$form->saveAsSettings( $values );
}
else
{
unset( $values['maxmind_enable'] );
$values['maxmind_key'] = '';
$values['maxmind_gateways'] = '*';
$form->saveAsSettings( $values );
}
@@ -1,12 +1,11 @@
<?php
/**
* @brief Contact Us extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 29 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\ContactUs;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Content Router extension: Reviews
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 05 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\ContentRouter;
@@ -32,10 +31,10 @@ class _Reviews
/**
* Constructor
*
* @param \IPS\Member|NULL $member If checking access, the member to check for, or NULL to not check access
* @param \IPS\Member|IPS\Member\Group|NULL $member If checking access, the member/group to check for, or NULL to not check access
* @return void
*/
public function __construct( \IPS\Member $member = NULL )
public function __construct( $member = NULL )
{
if( !isset( \IPS\Data\Store::i()->nexusPackagesWithReviews ) )
{
@@ -1,13 +1,12 @@
<?php
/**
* @brief Dashboard extension: Income
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\Dashboard;
@@ -94,7 +93,13 @@ class _Income
}
}
return $chart->render( 'LineChart' );
return $chart->render( 'AreaChart', array(
'backgroundColor' => '#ffffff',
'colors' => array( '#10967e' ),
'hAxis' => array( 'gridlines' => array( 'color' => '#f5f5f5' ) ),
'lineWidth' => 1,
'areaOpacity' => 0.4,
) );
}
/**
@@ -1,13 +1,12 @@
<?php
/**
* @brief Dashboard extension: PendingActions
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\Dashboard;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Editor Extension: Admin
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\EditorLocations;
@@ -32,7 +31,7 @@ class _Admin
*/
public function canUseHtml( $member )
{
return TRUE;
return NULL;
}
/**
@@ -151,6 +150,27 @@ class _Admin
return $this->performRebuild( $offset, $max, array( 'IPS\Text\Parser', 'rebuildAttachmentUrls' ) );
}
/**
* @brief Store image proxy status ( true = enabled )
*/
protected $_imageProxyStatus = null;
/**
* Rebuild content to add or remove image proxy
*
* @param int|null $offset Offset to start from
* @param int|null $max Maximum to parse
* @param bool $status Enable/Disable Image Proxy
* @return int Number completed
* @note This method is optional and will only be called if it exists
*/
public function rebuildImageProxy( $offset, $max, $status=TRUE )
{
$this->_imageProxyStatus = $status;
return $this->performRebuild( $offset, $max, 'parseImageProxy' );
}
/**
* Rebuild content post-upgrade
*
@@ -182,7 +202,14 @@ class _Admin
{
try
{
$rebuilt = call_user_func( $callback, $word['word_custom'] );
if( $callback == 'parseImageProxy' )
{
$rebuilt = \IPS\Text\Parser::parseImageProxy( $word['word_custom'], $this->_imageProxyStatus );
}
else
{
$rebuilt = call_user_func( $callback, $word['word_custom'] );
}
}
catch( \InvalidArgumentException $e )
{
@@ -207,7 +234,14 @@ class _Admin
{
try
{
$newMessage = call_user_func( $callback, \IPS\Settings::i()->$k );
if( $callback == 'parseImageProxy' )
{
$newMessage = \IPS\Text\Parser::parseImageProxy( \IPS\Settings::i()->$k, $this->_imageProxyStatus );
}
else
{
$newMessage = call_user_func( $callback, \IPS\Settings::i()->$k );
}
}
catch( \InvalidArgumentException $e )
{
@@ -239,7 +273,14 @@ class _Admin
/* Update */
try
{
$rebuilt = call_user_func( $callback, $package['p_page'] );
if( $callback == 'parseImageProxy' )
{
$rebuild = \IPS\Text\Parser::parseImageProxy( $package['p_page'], $this->_imageProxyStatus );
}
else
{
$rebuilt = call_user_func( $callback, $package['p_page'] );
}
}
catch( \InvalidArgumentException $e )
{
@@ -1,13 +1,12 @@
<?php
/**
* @brief Editor Extension: Customer Fields and Notes
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\EditorLocations;
@@ -34,16 +33,21 @@ class _Customer
{
return NULL;
}
/**
* Can we use attachments in this editor?
*
* @param \IPS\Member $member The member
* @param \IPS\Helpers\Form\Editor $field The editor field
* @param \IPS\Member $member The member
* @param \IPS\Helpers\Form\Editor $editor The editor instance
* @return bool|null NULL will cause the default value (based on the member's permissions) to be used, and is recommended in most cases. A boolean value will override that.
*/
public function canAttach( $member, $field )
public function canAttach( $member, $editor )
{
if( !$editor->options['allowAttachments'] )
{
return FALSE;
}
return NULL;
}
@@ -112,6 +116,27 @@ class _Customer
return $this->performRebuild( $offset, $max, array( 'IPS\Text\LegacyParser', 'parseStatic' ) );
}
/**
* @brief Store image proxy status ( true = enabled )
*/
protected $_imageProxyStatus = null;
/**
* Rebuild content to add or remove image proxy
*
* @param int|null $offset Offset to start from
* @param int|null $max Maximum to parse
* @param bool $status Enable/Disable Image Proxy
* @return int Number completed
* @note This method is optional and will only be called if it exists
*/
public function rebuildImageProxy( $offset, $max, $status=TRUE )
{
$this->_imageProxyStatus = $status;
return $this->performRebuild( $offset, $max, 'parseImageProxy' );
}
/**
* Perform rebuild - abstracted as the call for rebuildContent() and rebuildAttachmentImages() is nearly identical
*
@@ -149,7 +174,14 @@ class _Customer
{
try
{
$rebuilt = call_user_func( $callback, $member[ $fieldId ], \IPS\Member::load( $member['member_id'] ) );
if( $callback == 'parseImageProxy' )
{
$rebuilt = \IPS\Text\Parser::parseImageProxy( $member[ $fieldId ], $this->_imageProxyStatus );
}
else
{
$rebuilt = call_user_func( $callback, $member[ $fieldId ], \IPS\Member::load( $member['member_id'] ) );
}
}
catch( \InvalidArgumentException $e )
{
@@ -1,13 +1,12 @@
<?php
/**
* @brief Editor Extension: Purchase Custom Fields
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 23 Feb 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\EditorLocations;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Editor Extension: Product Reviews
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 5 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\EditorLocations;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Editor Extension: Support
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 09 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\EditorLocations;
@@ -48,6 +47,11 @@ class _Support
{
return FALSE;
}
if( !$field->options['allowAttachments'] )
{
return FALSE;
}
return NULL;
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Advertisement Images
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 14 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -60,7 +59,6 @@ class _Ads
}
}
\IPS\Db::i()->update( 'core_advertisements', array( 'ad_images' => json_encode( $images ) ), array( 'ad_id=?', $record['ad_id'] ) );
unset( \IPS\Data\Cache::i()->advertisements );
}
/**
@@ -84,13 +82,12 @@ class _Ads
}
\IPS\Db::i()->update( 'core_advertisements', array( 'ad_images' => json_encode( $images ) ), array( 'ad_id=?', $record['ad_id'] ) );
unset( \IPS\Data\Cache::i()->advertisements );
}
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Customer Fields
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -140,7 +139,7 @@ class _Customer
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Package Groups
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 5 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -81,7 +80,7 @@ class _PackageGroups
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Product Images
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 5 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -81,7 +80,7 @@ class _Products
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Purchase Custom Fields
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 23 Feb 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -132,7 +131,7 @@ class _PurchaseFields
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Referral Banners
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -81,7 +80,7 @@ class _ReferralBanners
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief File Storage Extension: Support Custom Fields
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 17 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FileStorage;
@@ -144,7 +143,7 @@ class _Support
/**
* Check if a file is valid
*
* @param \IPS\Http\Url $file The file to check
* @param string $file The file path to check
* @return bool
*/
public function isValidFile( $file )
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Addresses
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Alternative Contacts
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Billing Agreements
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 17 Dec 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Cards
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Account Credit
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Donations
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Personal Information
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Network Status
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 08 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Orders
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -61,7 +60,7 @@ class _Orders extends \IPS\core\FrontNavigation\FrontNavigationAbstract
*/
public function link()
{
return \IPS\Http\Url::internal( "app=nexus&module=clients&controller=invoices", 'front', 'clients', \IPS\Settings::i()->nexus_https );
return \IPS\Http\Url::internal( "app=nexus&module=clients&controller=invoices", 'front', 'clientsinvoices', \IPS\Settings::i()->nexus_https );
}
/**
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Purchases
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Referrals
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Store
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Front Navigation Extension: Support
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 08 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\FrontNavigation;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Nexus Incoming Email Handler
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\IncomingEmail;
@@ -81,12 +80,14 @@ class _Support
* @param \IPS\Email\Incoming\Email $email The email
* @return \IPS\nexus\Support\Request|NULL
* @note The key may come in as quoted printable
* @see <a href='https://invisionpower.com/4bugtrack/active-reports/email-replies-starting-a-new-ticket-r12922/'>Bug Report</a>
*/
protected function _emailIsReplyForRequest( \IPS\Email\Incoming\Email $email )
{
{
/* Figure out if this email belongs to an existing request */
if (
/* Look at the In-Reply-To header */
( isset( $email->headers['in-reply-to'] ) and preg_match( '/^<?IPS\-\d+\-SR(\d+)\.(.+?)(\.(\d+))?-/', $email->headers['in-reply-to'], $matches ) ) or
/* Look for [SRXX.XXX] in the raw content */
preg_match( '/\[SR(\d+?)\.(.+?)(\.(\d+))?\]/', $email->raw, $matches ) or
@@ -0,0 +1,61 @@
<?php
/**
* @brief IP Address Lookup extension
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Social Suite
* @subpackage
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
* @deprecated 4.3
*/
namespace IPS\nexus\extensions\core\IpAddresses;
/* 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;
}
/**
* IP Address Lookup extension
*/
class _CustomerHistory
{
/**
* Find Records by IP
*
* @param string $ip The IP Address
* @param \IPS\Http\Url $baseUrl URL table will be displayed on or NULL to return a count
* @return \IPS\Helpers\Table|null
*/
public function findByIp( $ip, \IPS\Http\Url $baseUrl = NULL )
{
return NULL;
}
/**
* Find IPs by Member
*
* @code
return array(
'::1' => array(
'ip' => '::1'// string (IP Address)
'count' => ... // int (number of times this member has used this IP)
'first' => ... // int (timestamp of first use)
'last' => ... // int (timestamp of most recent use)
),
...
);
* @endcode
* @param \IPS\Member $member The member
* @return array|NULL
*/
public function findByMember( $member )
{
return NULL;
}
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief IP Address Lookup extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\IpAddresses;
@@ -1,13 +1,12 @@
<?php
/**
* @brief IP Address Lookup extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\IpAddresses;
@@ -1,13 +1,12 @@
<?php
/**
* @brief IP Address Lookup extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\IpAddresses;
@@ -1,13 +1,12 @@
<?php
/**
* @brief ACP Live Search Extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\LiveSearch;
@@ -152,6 +151,13 @@ class _Nexus
}
}
/* For either, search for transaction gateway IDs */
foreach ( \IPS\Db::i()->select( '*', 'nexus_transactions', array( 't_gw_id=?', $searchTerm ) ) as $transactionData )
{
$results[] = \IPS\Theme::i()->getTemplate( 'livesearch', 'nexus' )->transaction( \IPS\nexus\Transaction::constructFromData( $transactionData ) );
}
/* Return */
return $results;
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Multi-Factor Authentication Area
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 30 Sep 2016
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MFAArea;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Member filter extension
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 20 Apr 2015
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MemberFilter;
@@ -24,6 +23,17 @@ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
*/
class _Purchases
{
/**
* Determine if the filter is available in a given area
*
* @param string $area Area to check
* @return bool
*/
public function availableIn( $area )
{
return in_array( $area, array( 'bulkmail' ) );
}
/**
* Get Setting Field
*
@@ -1,13 +1,12 @@
<?php
/**
* @brief Admin CP Member Form
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MemberForm;
@@ -24,24 +23,6 @@ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
*/
class _Nexus
{
/**
* Action Buttons
*
* @param \IPS\Member $member The Member
* @return array
*/
public function actionButtons( $member )
{
return array(
'id' => array(
'title' => 'view_customer_data',
'icon' => 'dollar',
'link' => \IPS\Http\Url::internal( "app=nexus&module=customers&controller=view&id={$member->member_id}" ),
'class' => ''
)
);
}
/**
* Process Form
*
@@ -0,0 +1,699 @@
<?php
/**
* @brief MemberHistory: Nexus
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Commerce
* @since 24 Jan 2017
*/
namespace IPS\nexus\extensions\core\MemberHistory;
/* 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;
}
/**
* Member History: Nexus
*/
class _Nexus
{
/**
* Return the valid member history log types
*
* @return array
*/
public function getTypes()
{
return array(
'invoice',
'transaction',
'shipping',
'purchase',
'comission',
'giftvoucher',
'info',
'address',
'card',
'alternative',
'payout',
'lkey',
'download',
'support',
'custom',
'billingagreement',
'note'
);
}
/**
* Parse LogData column
*
* @param string $value column value
* @param array $row entire log row
* @return string
*/
public function parseLogData( $value, $row )
{
$val = json_decode( $value, TRUE );
$byCustomer = '';
$byStaff = '';
if ( $row['log_by'] )
{
if ( $row['log_by'] === $row['log_member'] )
{
$byCustomer = \IPS\Member::loggedIn()->language()->addToStack('history_by_customer');
}
$byStaff = \IPS\Member::loggedIn()->language()->addToStack('history_by_staff', FALSE, array( 'sprintf' => array( \IPS\Member::load( $row['log_by'] )->name ) ) );
}
switch ( $row['log_type'] )
{
case 'invoice':
try
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['id'] ) );
}
catch ( \OutOfRangeException $e )
{
$invoice = $val['title'];
}
if ( isset( $val['type'] ) )
{
switch ( $val['type'] )
{
case 'status':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_status', FALSE, array( 'htmlsprintf' => array( $invoice, mb_strtolower( \IPS\Member::loggedIn()->language()->addToStack( 'istatus_' . $val['new'] ) ), $byStaff ) ) );
case 'resend':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_resend', FALSE, array( 'htmlsprintf' => array( $invoice, $byStaff, isset( $val['email'] ) ? \IPS\Member::loggedIn()->language()->addToStack( $val['email'] ? 'history_invoice_resend_email' : 'history_invoice_resend_no_email' ) : '' ) ) );
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_delete', FALSE, array( 'htmlsprintf' => array( $invoice, $byStaff ) ) );
case 'expire':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_expired', FALSE, array( 'htmlsprintf' => array( $invoice ) ) );
}
}
else
{
if ( isset( $val['system'] ) and $val['system'] )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_generated', FALSE, array( 'htmlsprintf' => array( $invoice, '' ) ) );
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_invoice_generated', FALSE, array( 'htmlsprintf' => array( $invoice, $byCustomer ?: $byStaff ) ) );
}
}
break;
case 'transaction':
try
{
$transaction = \IPS\Theme::i()->getTemplate('transactions', 'nexus')->link( \IPS\nexus\Transaction::load( $val['id'] ) );
}
catch ( \OutOfRangeException $e )
{
$transaction = \IPS\Member::loggedIn()->language()->addToStack( 'transaction_number', FALSE, array( 'htmlsprintf' => array( $val['id'] ) ) );
}
switch ( $val['type'] )
{
case 'paid':
try
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['invoice_id'] ), TRUE );
}
catch ( \OutOfRangeException $e )
{
$invoice = \IPS\Member::loggedIn()->language()->addToStack( 'invoice_number', FALSE, array( 'sprintf' => array( $val['id'] ) ) );
}
if ( isset( $val['automatic'] ) and $val['automatic'] )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_auto', FALSE, array( 'htmlsprintf' => array( $transaction, $invoice, \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_status_' . $val['status'] ) ) ) );
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_paid', FALSE, array( 'htmlsprintf' => array( $transaction, $invoice, $byStaff, \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_status_' . $val['status'] ) ) ) );
}
case 'status':
if ( $val['status'] === \IPS\nexus\Transaction::STATUS_REFUNDED or $val['status'] === \IPS\nexus\Transaction::STATUS_PART_REFUNDED )
{
if ( $val['refund'] === 'gateway' )
{
$refundedTo = ( is_object( $transaction ) and $transaction->method ) ? $transaction->method->_title : \IPS\Member::loggedIn()->language()->addToStack('history_transaction_refunded_gateway');
}
else
{
$refundedTo = mb_strtolower( \IPS\Member::loggedIn()->language()->addToStack( 'refund_method_credit' ) );
}
if ( $val['status'] === \IPS\nexus\Transaction::STATUS_REFUNDED )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_refunded', FALSE, array( 'htmlsprintf' => array( $transaction, $refundedTo, $byStaff ) ) );
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_part_refunded', FALSE, array( 'htmlsprintf' => array( new \IPS\nexus\Money( $val['amount'], $val['currency'] ), $transaction, $refundedTo, $byStaff ) ) );
}
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_status', FALSE, array( 'htmlsprintf' => array( $transaction, \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_status_' . $val['status'] ), $byStaff ) ) );
}
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_transaction_delete', FALSE, array( 'htmlsprintf' => array( $transaction, $byStaff ) ) );
}
break;
case 'shipping':
try
{
$shipment = \IPS\Theme::i()->getTemplate('shiporders', 'nexus')->link( \IPS\nexus\Shipping\Order::load( $val['id'] ) );
}
catch ( \OutOfRangeException $e )
{
$shipment = \IPS\Member::loggedIn()->language()->addToStack( 'shipment_number', FALSE, array( 'sprintf' => array( $val['id'] ) ) );
}
if ( isset( $val['type'] ) )
{
if ( $val['type'] === 'new' )
{
try
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['invoice_id'] ), TRUE );
}
catch ( \OutOfRangeException $e )
{
$invoice = \IPS\Member::loggedIn()->language()->addToStack('invoice_number', FALSE, array( 'sprintf' => array( $val['id'] ) ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_shipping_new', FALSE, array( 'htmlsprintf' => array( $shipment, $invoice ) ) );
}
elseif ( $val['type'] === 'canc' )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_shipping_canc', FALSE, array( 'htmlsprintf' => array( $shipment, $byStaff ) ) );
}
}
elseif ( isset( $val['deleted'] ) and $val['deleted'] )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_shipping_deleted', FALSE, array( 'htmlsprintf' => array( $shipment, $byStaff ) ) );
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_shipping_ship', FALSE, array( 'htmlsprintf' => array( $shipment, $byStaff ) ) );
}
break;
case 'purchase':
try
{
$purchase = \IPS\Theme::i()->getTemplate('purchases', 'nexus')->link( \IPS\nexus\Purchase::load( $val['id'] ), $val['type'] === 'change' );
}
catch ( \OutOfRangeException $e )
{
$purchase = $val['name'];
}
switch ( $val['type'] )
{
case 'new':
case 'renew':
try
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['invoice_id'] ), TRUE );
}
catch ( \OutOfRangeException $e )
{
$invoice = \IPS\Member::loggedIn()->language()->addToStack('invoice_number', FALSE, array( 'sprintf' => array( $val['invoice_id'] ) ) );
}
if ( $val['type'] === 'new' )
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_created', FALSE, array( 'htmlsprintf' => array( $purchase, $invoice ) ) );
}
else
{
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_renewed', FALSE, array( 'htmlsprintf' => array( $purchase, $invoice ) ) );
}
break;
case 'info':
if ( isset( $val['info'] ) )
{
switch ( $val['info'] )
{
case 'change_renewals':
/* A bug in an older version logged this wrong... */
if ( !isset( $val['to']['currency'] ) )
{
foreach ( $val['to']['cost'] as $currency => $amount )
{
$to = new \IPS\nexus\Purchase\RenewalTerm( new \IPS\nexus\Money( $amount['amount'], $currency ), new \DateInterval( 'P' . $val['to']['term'] . mb_strtoupper( $val['to']['unit'] ) ) );
break;
}
}
/* This is the correct way */
else
{
$to = new \IPS\nexus\Purchase\RenewalTerm( new \IPS\nexus\Money( $val['to']['cost'], $val['to']['currency'] ), new \DateInterval( 'P' . $val['to']['term']['term'] . mb_strtoupper( $val['to']['term']['unit'] ) ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_renewals_changed', FALSE, array( 'htmlsprintf' => array( $purchase, ( isset( $val['system'] ) and $val['system'] ) ? '' : $byStaff, $to ) ) );
case 'remove_renewals':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_renewals_removed', FALSE, array( 'htmlsprintf' => array( $purchase, ( isset( $val['system'] ) and $val['system'] ) ? '' : $byStaff ) ) );
}
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_edited', FALSE, array( 'htmlsprintf' => array( $purchase, ( isset( $val['system'] ) and $val['system'] ) ? '' : $byStaff ) ) );
case 'transfer_from':
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':
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 ) ) );
case 'uncancel':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_reactivated', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff ) ) );
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_deleted', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff ) ) );
case 'expire':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_expired', FALSE, array( 'htmlsprintf' => array( $purchase ) ) );
case 'change':
$by = ( isset( $val['system'] ) and $val['system'] ) ? '' : $byCustomer;
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_changed', FALSE, array( 'htmlsprintf' => array( $purchase, $val['old'], $val['name'], $by ) ) );
case 'group':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_grouped', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff ) ) );
case 'ungroup':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_purchase_ungrouped', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff ) ) );
}
break;
case 'comission':
switch ( $val['type'] )
{
case 'purchase':
case 'purchase_refund':
try
{
$purchase = \IPS\Theme::i()->getTemplate('purchases', 'nexus')->link( \IPS\nexus\Purchase::load( $val['id'] ) );
}
catch ( \OutOfRangeException $e )
{
$purchase = $val['name'];
}
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 );
}
catch ( \OutOfRangeException $e )
{
$invoice = \IPS\Member::loggedIn()->language()->addToStack('invoice_number', FALSE, array( 'sprintf' => array( $val['invoice_id'] ) ) );
}
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
{
$invoice = \IPS\Theme::i()->getTemplate('invoices', 'nexus')->link( \IPS\nexus\Invoice::load( $val['invoice_id'] ), TRUE );
}
catch ( \OutOfRangeException $e )
{
$invoice = \IPS\Member::loggedIn()->language()->addToStack( 'invoice_number', FALSE, array( 'sprintf' => array( $val['invoice_id'] ) ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_commission_bought', FALSE, array( 'htmlsprintf' => array( new \IPS\nexus\Money( $val['new_amount'], $val['currency'] ), $invoice, new \IPS\nexus\Money( $val['amount'], $val['currency'] ) ) ) );
case 'manual':
return \IPS\Member::loggedIn()->language()->addToStack( 'history_commission_manual', FALSE, array( 'sprintf' => array( $byStaff, new \IPS\nexus\Money( $val['new'], $val['currency'] ), new \IPS\nexus\Money( $val['old'], $val['currency'] ) ) ) );
}
case 'giftvoucher':
$currency = isset( $val['currency'] ) ? $val['currency'] : \IPS\nexus\Customer::load( $val['by'] )->defaultCurrency();
switch ( $val['type'] )
{
case 'used':
/* If the customer who used this gift card no longer exists, then we need to load up a guest customer object to avoid an OutOfRangeException */
try
{
$customer = \IPS\nexus\Customer::load( $val['by'] );
}
catch( \OutOfRangeException $e )
{
$customer = new \IPS\nexus\Customer;
}
return
\IPS\Member::loggedIn()->language()->addToStack( 'history_giftvoucher_used', FALSE, array( 'htmlsprintf' => array(
new \IPS\nexus\Money( $val['amount'], $currency ),
$val['code'],
\IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( $customer )
) ) );
break;
case 'redeemed':
/* If the customer who redeemed this gift card no longer exists, then we need to load up a guest customer object to avoid an OutOfRangeException */
try
{
$customer = \IPS\nexus\Customer::load( $val['ps_member'] );
}
catch( \OutOfRangeException $e )
{
$customer = new \IPS\nexus\Customer;
}
return
\IPS\Member::loggedIn()->language()->addToStack( 'history_giftvoucher_redeemed', FALSE, array( 'htmlsprintf' => array(
new \IPS\nexus\Money( $val['amount'], $currency ),
$val['code'],
\IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( $customer ),
new \IPS\nexus\Money( $val['newCreditAmount'], $currency )
) ) );
break;
}
break;
case 'info':
$changes = array( \IPS\Member::loggedIn()->language()->addToStack('history_info_change', FALSE, array( 'sprintf' => array( $byCustomer ?: $byStaff ) ) ) );
if ( isset( $val['name'] ) )
{
$name = is_array( $val['name'] ) ? implode( ' ', array_values( $val['name'] ) ) : $val['name'];
$changes[] = \IPS\Member::loggedIn()->language()->addToStack('history_name_changed_from', FALSE, array( 'sprintf' => array( $name ) ) );
}
if ( isset( $val['other'] ) )
{
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'] ) ) );
}
else
{
$changes[] = \IPS\Member::loggedIn()->language()->addToStack('history_field_changed', FALSE, array( 'sprintf' => array( \IPS\Member::loggedIn()->language()->addToStack( $change['name'] ), $change['value'] ) ) );
}
}
}
return implode( '<br>', $changes );
case 'address':
switch ( $val['type'] )
{
case 'add':
return \IPS\Member::loggedIn()->language()->addToStack('history_address_add', FALSE, array( 'sprintf' => array( (string) \IPS\GeoLocation::buildFromJson( $val['details'] ), $byCustomer ) ) );
case 'edit':
return \IPS\Member::loggedIn()->language()->addToStack('history_address_edit', FALSE, array( 'sprintf' => array( (string) \IPS\GeoLocation::buildFromJson( $val['old'] ), (string) \IPS\GeoLocation::buildFromJson( $val['new'] ), $byCustomer ) ) );
case 'primary_billing':
return \IPS\Member::loggedIn()->language()->addToStack('history_address_primary_billing', FALSE, array( 'sprintf' => array( (string) \IPS\GeoLocation::buildFromJson( $val['details'] ), $byCustomer ) ) );
case 'primary_shipping':
return \IPS\Member::loggedIn()->language()->addToStack('history_address_primary_shipping', FALSE, array( 'sprintf' => array( (string) \IPS\GeoLocation::buildFromJson( $val['details'] ), $byCustomer ) ) );
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack('history_address_delete', FALSE, array( 'sprintf' => array( (string) \IPS\GeoLocation::buildFromJson( $val['details'] ), $byCustomer ) ) );
}
break;
case 'card':
switch ( $val['type'] )
{
case 'add':
return \IPS\Member::loggedIn()->language()->addToStack('history_card_add', FALSE, array( 'sprintf' => array( $val['number'], $byCustomer ) ) );
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack('history_card_delete', FALSE, array( 'sprintf' => array( $val['number'], $byCustomer ) ) );
}
break;
case 'alternative':
$altContact = \IPS\nexus\Customer::load( $val['alt_id'] );
$altContact = $altContact->member_id ? $altContact->link() : $val['alt_name'];
switch ( $val['type'] )
{
case 'add':
return \IPS\Member::loggedIn()->language()->addToStack('history_altcontact_add', FALSE, array( 'htmlsprintf' => array( $altContact, $byCustomer ) ) );
case 'edit':
return \IPS\Member::loggedIn()->language()->addToStack('history_altcontact_edit', FALSE, array( 'htmlsprintf' => array( $altContact, $byCustomer ) ) );
case 'delete':
return \IPS\Member::loggedIn()->language()->addToStack('history_altcontact_delete', FALSE, array( 'htmlsprintf' => array( $altContact, $byCustomer ) ) );
}
break;
case 'payout':
try
{
if ( !isset( $val['payout_id'] ) )
{
throw new \OutOfRangeException;
}
$payout = \IPS\Theme::i()->getTemplate('payouts', 'nexus')->link( \IPS\nexus\Payout::load( $val['payout_id'] ) );
}
catch ( \OutOfRangeException $e )
{
if ( isset( $va['currency'] ) )
{
$payout = new \IPS\nexus\Money( $val['amount'], $val['currency'] );
}
else
{
$payout = $val['amount'];
}
}
switch ( $val['type'] )
{
case 'autoprocess':
return \IPS\Member::loggedIn()->language()->addToStack('history_payout_autoprocess', FALSE, array( 'htmlsprintf' => array( $payout ) ) );
case 'request':
return \IPS\Member::loggedIn()->language()->addToStack('history_payout_request', FALSE, array( 'htmlsprintf' => array( $payout ) ) );
case 'cancel':
return \IPS\Member::loggedIn()->language()->addToStack('history_payout_cancel', FALSE, array( 'htmlsprintf' => array( $payout, $byCustomer ?: $byStaff ) ) );
case 'processed':
return \IPS\Member::loggedIn()->language()->addToStack('history_payout_processed', FALSE, array( 'htmlsprintf' => array( $payout, $byStaff ) ) );
case 'dismissed':
return \IPS\Member::loggedIn()->language()->addToStack('history_payout_dismissed', FALSE, array( 'htmlsprintf' => array( $payout, $byStaff ) ) );
}
break;
case 'lkey':
try
{
$purchase = \IPS\Theme::i()->getTemplate('purchases', 'nexus')->link( \IPS\nexus\Purchase::load( $val['ps_id'] ) );
}
catch ( \OutOfRangeException $e )
{
if ( isset( $val['ps_name'] ) )
{
$purchase = $val['ps_name'];
}
else
{
$purchase = \IPS\Member::loggedIn()->language()->addToStack( 'purchase_number', FALSE, array( 'sprintf' => array( $val['ps_id'] ) ) );
}
}
switch ( $val['type'] )
{
case 'activated':
return \IPS\Member::loggedIn()->language()->addToStack('history_lkey_activated', FALSE, array( 'htmlsprintf' => array( $purchase ) ) );
case 'reset':
return \IPS\Member::loggedIn()->language()->addToStack('history_lkey_reset', FALSE, array( 'htmlsprintf' => array( $purchase, $byStaff, $val['new'], $val['key'] ) ) );
}
break;
case 'download':
switch ( $val['type'] )
{
case 'idm':
try
{
if ( !\IPS\Application::appIsEnabled('downloads') )
{
throw new \OutOfRangeException;
}
$options = array( 'htmlsprintf' => array( \IPS\Theme::i()->getTemplate( 'customers', 'nexus' )->downloadsLink( \IPS\downloads\File::load( $val['id'] ) ) ) );
}
catch ( \OutOfRangeException $e )
{
$options = array( 'sprintf' => array( $val['name'] ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_download', FALSE, $options );
case 'attach':
$file = \IPS\Theme::i()->getTemplate( 'editor', 'core', 'global' )->attachedFile( \IPS\Settings::i()->base_url . "applications/core/interface/file/attachment.php?id=" . $val['id'], $val['name'], FALSE );
if ( isset( $val['ps_id'] ) and $val['ps_id'] )
{
try
{
$options = array( 'htmlsprintf' => array( $file, \IPS\Theme::i()->getTemplate('purchases', 'nexus')->link( \IPS\nexus\Purchase::load( $val['ps_id'] ) ) ) );
}
catch ( \OutOfRangeException $e )
{
$options = array( 'htmlsprintf' => array( $file, htmlspecialchars( $val['ps_name'], ENT_QUOTES | \IPS\HTMLENTITIES, 'UTF-8', FALSE ) ) );
}
return \IPS\Member::loggedIn()->language()->addToStack( 'history_download_with_purchase', FALSE, $options );
}
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 '';
}
/**
* Parse LogMember column
*
* @param string $value column value
* @param array $row entire log row
* @return string
*/
public function parseLogMember( $value, $row )
{
\IPS\nexus\Customer::load( $value )->link();
}
/**
* Parse LogType column
*
* @param string $value column value
* @param array $row entire log row
* @return string
*/
public function parseLogType( $value, $row )
{
return \IPS\Theme::i()->getTemplate( 'customers', 'nexus' )->logType( $value );
}
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief Member Sync
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 31 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\MemberSync;
@@ -98,7 +97,6 @@ class _Nexus
{
\IPS\Db::i()->update( 'nexus_customer_addresses', array( 'member' => $member->member_id ), array( 'member=?', $member2->member_id ) );
\IPS\Db::i()->update( 'nexus_customer_cards', array( 'card_member' => $member->member_id ), array( 'card_member=?', $member2->member_id ) );
\IPS\Db::i()->update( 'nexus_customer_history', array( 'log_member' => $member->member_id ), array( 'log_member=?', $member2->member_id ) );
\IPS\Db::i()->update( 'nexus_invoices', array( 'i_member' => $member->member_id ), array( 'i_member=?', $member2->member_id ) );
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_member' => $member->member_id ), array( 'ps_member=?', $member2->member_id ) );
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_pay_to' => $member->member_id ), array( 'ps_pay_to=?', $member2->member_id ) );
@@ -121,7 +119,6 @@ class _Nexus
{
\IPS\Db::i()->delete( 'nexus_customer_addresses', array( 'member=?', $member->member_id ) );
\IPS\Db::i()->delete( 'nexus_customer_cards', array( 'card_member=?', $member->member_id ) );
\IPS\Db::i()->delete( 'nexus_customer_history', array( 'log_member=?', $member->member_id ) );
\IPS\Db::i()->delete( 'nexus_customers', array( 'member_id=?', $member->member_id ) );
\IPS\Db::i()->delete( 'nexus_referrals', array( 'referred_by=?', $member->member_id ) ); // Don't delete the record for the referrer if this is the referree as that's still relevant for the referree's account
\IPS\Db::i()->delete( 'nexus_alternate_contacts', array( 'main_id=? OR alt_id =?', $member->member_id, $member->member_id ) );
@@ -145,31 +142,6 @@ class _Nexus
\IPS\Db::i()->update( 'nexus_purchases', array( 'ps_pay_to' => 0 ), array( 'ps_pay_to=?', $member->member_id ) );
\IPS\Db::i()->delete( 'nexus_support_streams', array( 'stream_owner=?', $member->member_id ) );
}
/**
* Email address is changed
*
* @param \IPS\Member $member The member
* @param string $new New email address
* @param string $old Old email address
* @return void
*/
public function onEmailChange( $member, $new, $old )
{
\IPS\nexus\Customer::load( $member->member_id )->log( 'info', array( 'email' => $old ) );
}
/**
* Password is changed
*
* @param \IPS\Member $member The member
* @param string $new New password
* @return void
*/
public function onPassChange( $member, $new )
{
\IPS\nexus\Customer::load( $member->member_id )->log( 'info', array( 'password' => '' ) );
}
/**
* Member account has been updated
@@ -1,13 +1,12 @@
<?php
/**
* @brief Template Plugin - Length
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 20 Oct 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\OutputPlugins;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Template Plugin - Money
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 6 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\OutputPlugins;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Template Plugin - Weight
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 20 Oct 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\core\OutputPlugins;
@@ -0,0 +1,300 @@
<?php
/**
* @brief Profile Completion Extension
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 10 May 2017
*/
namespace IPS\nexus\extensions\core\ProfileSteps;
/* 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;
}
/**
* Profile fields extension
*/
class _CustomerFields
{
/**
* Available parent actions to complete steps
*
* @return array array( 'key' => 'lang_string' )
*/
public static function actions()
{
$return = array();
if ( \IPS\Db::i()->select( 'COUNT(*)', 'nexus_customer_fields' )->first() )
{
$return['customer_fields'] = 'complete_profile_app__nexus_CustomerFields';
}
return $return;
}
/**
* Available sub actions to complete steps
*
* @return array array( 'key' => 'lang_string' )
*/
public static function subActions()
{
$return = array();
foreach( \IPS\Db::i()->select( '*', 'nexus_customer_fields' ) as $field )
{
$field = \IPS\nexus\Customer\CustomField::constructFromData( $field );
$return['customer_fields'][ 'nexus_ccfield_' . $field->_id ] = 'nexus_ccfield_' . $field->_id;
}
return $return;
}
/**
* Can the actions have multiple choices?
*
* @param string $action Action key (basic_profile, etc)
* @return boolean
*/
public static function actionMultipleChoice( $action )
{
return TRUE;
}
/**
* Can be set as required?
*
* @return array
* @note This is intended for items which have their own independent settings and dedicated enable pages, such as MFA and Social Login integration
*/
public static function canBeRequired()
{
return array( 'customer_fields' );
}
/**
* Has a specific step been completed?
*
* @param \IPS\Member\ProfileStep The step to check
* @param \IPS\Member|NULL The member to check, or NULL for currently logged in
* @return bool
*/
public function completed( \IPS\Member\ProfileStep $step, \IPS\Member $member = NULL )
{
$member = $member ?: \IPS\Member::loggedIn();
if ( !$member->member_id )
{
return FALSE;
}
try
{
$profileFields = iterator_to_array( \IPS\Db::i()->select( '*', 'nexus_customers', array( 'member_id=?', $member->member_id ) ) );
}
catch( \Exception $e )
{
return FALSE;
}
if ( ! count( $profileFields ) )
{
return FALSE;
}
$done = 0;
foreach( $step->subcompletion_act as $item )
{
$fieldId = \substr( $item, 14 );
foreach( $profileFields AS $key => $value )
{
if ( $key == 'field_' . $fieldId )
{
if ( (bool) $value )
{
$done++;
}
}
}
}
return ( $done === count( $step->subcompletion_act ) );
}
/**
* Action URL
*
* @param string The action
* @param \IPS\Member|NULL The member, or NULL for currently logged in
* @return \IPS\Http\Url
*/
public function url( $action, \IPS\Member $member = NULL )
{
return \IPS\Http\Url::internal( "app=core&module=members&controller=profile&do=edit&id={$member->member_id}", 'front', 'edit_profile', $member->members_seo_name );
}
/**
* Post ACP Save
*
* @param \IPS\Member\ProfileStep The step
* @param array Form Values
* @return void
*/
public function postAcpSave( \IPS\Member\ProfileStep $step, array $values )
{
$subActions = static::subActions()['customer_fields'];
/* If we are going to add a profile field to a step, or even require it, we need to make sure the actual field is updated */
foreach( $subActions AS $key )
{
if ( in_array( $key, $values['step_subcompletion_act'] ) )
{
$fieldId = \substr( $key, 14 );
$update = array();
$update['f_reg_show'] = 1;
if ( $step->required )
{
$update['f_reg_require'] = 1;
}
\IPS\Db::i()->update( 'nexus_customer_fields', $update, array( "f_id=?", $fieldId ) );
}
}
}
/**
* Format Form Values
*
* @param array
* @param \IPS\Member
* @param \IPS\Helpers\Form
* @return void
*/
public static function formatFormValues( $values, &$member, &$form )
{
$member = $member ?: \IPS\Member::loggedIn();
$profileFields = array();
foreach ( \IPS\nexus\Customer\CustomField::roots() as $field )
{
if ( isset( $values[ "nexus_ccfield_{$field->_id}"] ) )
{
if( $field->required and ( $values[ "nexus_ccfield_{$field->_id}" ] === NULL or !isset( $values[ "nexus_ccfield_{$field->_id}" ] ) ) )
{
\IPS\Output::i()->error( 'reg_required_fields', '1C223/5', 403, '' );
}
$helper = $field->buildHelper();
$profileFields[ "field_{$field->_id}" ] = $helper::stringValue( $values[ "nexus_ccfield_{$field->_id}" ] );
if ( $helper instanceof \IPS\Helpers\Form\Editor )
{
$field->claimAttachments( $member->member_id );
}
}
}
if ( count( $profileFields ) )
{
try
{
\IPS\Db::i()->select( 'member_id', 'nexus_customers', array( "member_id=?", $member->member_id ) )->first();
\IPS\Db::i()->update( 'nexus_customers', $profileFields, array( "member_id=?", $member->member_id ) );
}
catch( \Exception $e )
{
\IPS\Db::i()->insert( 'nexus_customers', array_merge( array( 'member_id' => $member->member_id ), array_merge( array( 'member_id' => $member->member_id ), $profileFields ) ) );
}
}
}
/**
* Wizard Steps
*
* @param \IPS\Member\ProfileStep
* @param \IPS\Member
* @return array
*/
public static function wizard( \IPS\Member $member = NULL )
{
$include = array();
$member = $member ?: \IPS\Member::loggedIn();
$wizards = array();
foreach( \IPS\Member\ProfileStep::loadAll() AS $step )
{
if ( $step->completion_act === 'customer_fields' AND ! $step->completed( $member ) )
{
$wizards[ $step->key ] = function( $data ) use ( $member, $include, $step ) {
$form = new \IPS\Helpers\Form( 'customer_profile_fields_' . $step->id, 'profile_complete_next' );
foreach( $step->subcompletion_act as $item )
{
$id = \substr( $item, 14 );
$field = \IPS\nexus\Customer\CustomField::load( $id );
$form->add( $field->buildHelper() );
}
if ( $values = $form->values() )
{
static::formatFormValues( $values, $member, $form );
$member->save();
return $values;
}
return $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'profileCompleteTemplate' ), $step );
};
}
}
if ( count( $wizards ) )
{
return $wizards;
}
}
/**
* Resyncs when something external happens
* @param \IPS\Member\ProfileStep The step
*
* @return void
*/
public function resync( \IPS\Member\ProfileStep $step )
{
$subActions = array();
foreach( $step->subcompletion_act as $item )
{
$fieldId = \substr( $item, 12 );
try
{
\IPS\nexus\Customer\CustomField::load( $fieldId );
$subActions[] = $item;
}
catch( \OutOfRangeException $e )
{
/* No longer exists.. */
}
}
if ( count( $subActions ) and count( $subActions ) != $step->subcompletion_act )
{
$step->subcompletion_act = $subActions;
$step->save();
}
else if ( ! count( $subActions ) )
{
/* No fields left, so delete this */
$step->delete();
}
}
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief Account Credit Increase
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 25 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Bandwidth
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 11 Sep 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Coupon Discount
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 12 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Custom Package
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -111,7 +110,7 @@ class _CustomPackage extends \IPS\nexus\extensions\nexus\Item\Package
}
$form->addTab( 'package_pricing' );
$form->add( new \IPS\Helpers\Form\Number( 'p_base_price', 0, TRUE, array(), NULL, NULL, $invoice->currency ) );
$form->add( new \IPS\Helpers\Form\Number( 'p_base_price', 0, TRUE, array( 'decimals' => TRUE ), NULL, NULL, $invoice->currency ) );
$form->add( new \IPS\Helpers\Form\Node( 'p_tax', 0, FALSE, array( 'class' => 'IPS\nexus\Tax', 'zeroVal' => 'do_not_tax' ) ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'p_renews', FALSE, FALSE, array( 'togglesOn' => array( 'p_renew_options', 'p_renew' ) ), NULL, NULL, NULL, 'p_renews' ) );
$form->add( new \IPS\nexus\Form\RenewalTerm( 'p_renew_options', NULL, FALSE, array( 'currency' => $invoice->currency ), NULL, NULL, NULL, 'p_renew_options' ) );
@@ -1,13 +1,12 @@
<?php
/**
* @brief Dedicated Server
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Domain
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 08 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Donation
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Jun 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Gift Voucher
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -99,6 +98,7 @@ class _GiftVoucher extends \IPS\nexus\Invoice\Item\Purchase
public static function form( \IPS\Helpers\Form $form, \IPS\nexus\Invoice $invoice )
{
$form->add( new \IPS\Helpers\Form\Number( 'gift_voucher_amount', 0, TRUE, array(), NULL, NULL, $invoice->currency ) );
$form->add( new \IPS\Helpers\Form\Color( 'gift_voucher_color', '3b3b3b', FALSE ) );
$form->add( new \IPS\Helpers\Form\Radio( 'gift_voucher_method', 'print', TRUE, array( 'options' => array( 'email' => 'gift_voucher_email', 'print' => 'gift_voucher_print' ), 'toggles' => array( 'email' => array( 'gift_voucher_email' ) ) ) ) );
$form->add( new \IPS\Helpers\Form\Email( 'gift_voucher_email', NULL, NULL, array(), function( $val )
{
@@ -129,6 +129,7 @@ class _GiftVoucher extends \IPS\nexus\Invoice\Item\Purchase
$item->extra['sender'] = $values['gift_voucher_sender'];
$item->extra['message'] = $values['gift_voucher_message'];
$item->extra['amount'] = $values['gift_voucher_amount'];
$item->extra['color'] = $values['gift_voucher_color'];
$item->extra['currency'] = $invoice->currency;
return $item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Miscellaneous Charge
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 25 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Package
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 29 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Invoice Item Class for Shipping Charges
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 20 Mar 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Support Charge
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Apr 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Invoice Item Class for Package Upgrade Charges
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 8 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\extensions\nexus\Item;
+22 -1
View File
@@ -29,7 +29,28 @@ public static function hookData() {
'content' => '{{if \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( \'nexus\', \'store\' ) )}}
{template="cartHeader" app="nexus" group="store" params=""}
{{endif}}',
)
),
),
'mobileNavigation' =>
array (
0 =>
array (
'selector' => '#elUserNav_mobile',
'type' => 'add_inside_end',
'content' => '{{if \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( \'nexus\', \'store\' ) )}}
{template="cartHeaderMobile" app="nexus" group="store" params=""}
{{endif}}',
),
1 =>
array (
'selector' => '#elMobileDrawer > div.ipsDrawer_menu > div.ipsDrawer_content',
'type' => 'add_inside_start',
'content' => '{{if !\IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( \'nexus\', \'store\' ) )}}
<ul id=\'elUserNav_mobile\' class=\'ipsList_inline signed_in ipsClearfix\'>
{template="cartHeaderMobile" app="nexus" group="store" params=""}
</ul>
{{endif}}',
),
),
), parent::hookData() );
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief Send/Discard handler for pending support replies
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 25 Apr 2014
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -1,13 +1,12 @@
<?php
/**
* @brief 2Checkout Gateway
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Mar 2014
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -41,7 +40,7 @@ $transaction->gw_id = \IPS\Request::i()->order_number;
$transaction->save();
$maxMind = NULL;
if ( \IPS\Settings::i()->maxmind_key )
if ( \IPS\Settings::i()->maxmind_key and ( !\IPS\Settings::i()->maxmind_gateways or \IPS\Settings::i()->maxmind_gateways == '*' or in_array( $transaction->method->id, explode( ',', \IPS\Settings::i()->maxmind_gateways ) ) ) )
{
$maxMind = new \IPS\nexus\Fraud\MaxMind\Request;
$maxMind->setTransaction( $transaction );
@@ -53,5 +52,6 @@ $transaction->sendNotification();
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
\IPS\Member\Device::loadOrCreate( $memberJustCreated, FALSE )->updateAfterAuthentication( NULL );
}
\IPS\Output::i()->redirect( $transaction->url() );
@@ -1,13 +1,12 @@
<?php
/**
* @brief Authorize.Net DPM Gateway
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 17 Mar 2014
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -56,7 +55,7 @@ try
/* Create a MaxMind request */
$maxMind = NULL;
if ( \IPS\Settings::i()->maxmind_key )
if ( \IPS\Settings::i()->maxmind_key and ( !\IPS\Settings::i()->maxmind_gateways or \IPS\Settings::i()->maxmind_gateways == '*' or in_array( $transaction->method->id, explode( ',', \IPS\Settings::i()->maxmind_gateways ) ) ) )
{
$maxMind = new \IPS\nexus\Fraud\MaxMind\Request;
$maxMind->setTransaction( $transaction );
@@ -1,13 +1,12 @@
<?php
/**
* @brief PayPal Gateway
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Mar 2014
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -33,7 +32,7 @@ try
{
/* Check fraud rules */
$maxMind = NULL;
if ( \IPS\Settings::i()->maxmind_key )
if ( \IPS\Settings::i()->maxmind_key and ( !\IPS\Settings::i()->maxmind_gateways or \IPS\Settings::i()->maxmind_gateways == '*' or in_array( $transaction->method->id, explode( ',', \IPS\Settings::i()->maxmind_gateways ) ) ) )
{
$maxMind = new \IPS\nexus\Fraud\MaxMind\Request;
$maxMind->setTransaction( $transaction );
@@ -99,11 +98,11 @@ try
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
\IPS\Member\Device::loadOrCreate( $memberJustCreated, FALSE )->updateAfterAuthentication( NULL );
}
}
$transaction->sendNotification();
\IPS\Output::i()->redirect( $transaction->url() );
}
}
@@ -144,6 +143,7 @@ try
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
\IPS\Member\Device::loadOrCreate( $memberJustCreated, FALSE )->updateAfterAuthentication( NULL );
}
}
$transaction->sendNotification();
@@ -1,13 +1,12 @@
<?php
/**
* @brief License Key API
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 01 Apr 2015
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -1,13 +1,12 @@
<?php
/**
* @brief Monitoring Respond
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 07 Aug 2014
* @version SVN_VERSION_NUMBER
*/
require_once '../../../../init.php';
@@ -1,13 +1,12 @@
<?php
/**
* @brief Comission Rules
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 15 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -1,13 +1,12 @@
<?php
/**
* @brief fields
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 12 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Purchases
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 11 Feb 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -109,7 +108,7 @@ class _purchases extends \IPS\Dispatcher\Controller
{
try
{
$customFields[ $k ] = \IPS\nexus\Package\CustomField::load( $k )->displayValue( $v );
$customFields[ $k ] = \IPS\nexus\Package\CustomField::load( $k )->displayValue( $v, TRUE );
}
catch ( \OutOfRangeException $e ) { }
}
@@ -1,13 +1,12 @@
<?php
/**
* @brief referralbanners
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 18 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Referrals
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 15 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Referral Settings
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 15 Aug 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -1,13 +1,12 @@
<?php
/**
* @brief Customer Search
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 12 May 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -42,12 +41,12 @@ class _search extends \IPS\Dispatcher\Controller
*/
protected function manage()
{
$table = new \IPS\Helpers\Table\Db( 'nexus_customers', \IPS\Http\Url::internal('app=nexus&module=customers&controller=search') );
$table = new \IPS\Helpers\Table\Db( 'core_members', \IPS\Http\Url::internal('app=nexus&module=customers&controller=search') );
$table->langPrefix = 'customerTable_';
$table->joins = array(
array(
'select' => 'core_members.*',
'from' => 'core_members',
'select' => 'nexus_customers.cm_first_name, nexus_customers.cm_last_name',
'from' => 'nexus_customers',
'where' => 'core_members.member_id=nexus_customers.member_id'
),
array(
@@ -56,7 +55,7 @@ class _search extends \IPS\Dispatcher\Controller
'where' => 'nexus_customer_addresses.member=nexus_customers.member_id AND primary_billing=1'
)
);
$table->include = array( 'photo', 'cm_last_name', 'cm_first_name', 'email', 'address' );
$table->include = array( 'photo', 'name', 'cm_last_name', 'cm_first_name', 'email', 'address' );
$table->parsers = array(
'photo' => function( $val, $row )
{
@@ -69,6 +68,7 @@ class _search extends \IPS\Dispatcher\Controller
);
$table->noSort = array( 'photo', 'address' );
$table->quickSearch = 'email';
$table->rowClasses = array( 'address' => array( 'ipsTable_wrap' ) );
$table->advancedSearch = array(
'cm_first_name' => \IPS\Helpers\Table\SEARCH_CONTAINS_TEXT,
@@ -1,13 +1,12 @@
<?php
/**
* @brief View Customer
* @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
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Nexus
* @since 11 Feb 2014
* @version SVN_VERSION_NUMBER
*/
namespace IPS\nexus\modules\admin\customers;
@@ -48,6 +47,12 @@ class _view extends \IPS\Dispatcher\Controller
}
\IPS\Output::i()->cssFiles = array_merge( \IPS\Output::i()->cssFiles, \IPS\Theme::i()->css( 'customer.css', 'nexus', 'admin' ) );
if ( \IPS\Theme::i()->settings['responsive'] )
{
\IPS\Output::i()->cssFiles = array_merge( \IPS\Output::i()->cssFiles, \IPS\Theme::i()->css( 'customer_responsive.css', 'nexus', 'admin' ) );
}
\IPS\Output::i()->cssFiles = array_merge( \IPS\Output::i()->cssFiles, \IPS\Theme::i()->css( 'support.css', 'nexus', 'admin' ) );
\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'admin_customer.js', 'nexus', 'admin' ) );
\IPS\Output::i()->title = "{$this->member->cm_name}";
@@ -254,6 +259,7 @@ class _view extends \IPS\Dispatcher\Controller
$cards[ $card->id ] = array(
'id' => $card->id,
'card_type' => $cardData->type,
'card_member' => $card->member->member_id,
'card_number' => $cardData->lastFour,
'card_expire' => ( !is_null( $cardData->expMonth ) AND !is_null( $cardData->expYear ) ) ? str_pad( $cardData->expMonth , 2, '0', STR_PAD_LEFT ). '/' . $cardData->expYear : NULL
);
@@ -355,7 +361,7 @@ class _view extends \IPS\Dispatcher\Controller
$alternativeContacts->parsers = array(
'alt_id' => function( $val )
{
return \IPS\nexus\Customer::load( $val )->name;
return "<a href='" . \IPS\nexus\Customer::load( $val )->acpUrl() . "'>" . \IPS\nexus\Customer::load( $val )->name . "</a>";
},
'email' => function ( $val, $row )
{
@@ -396,6 +402,11 @@ class _view extends \IPS\Dispatcher\Controller
$alternativeContacts->rowButtons = function( $row ) use ( $member )
{
return array(
'view' => array(
'link' => $member->acpUrl(),
'title' => 'view',
'icon' => 'search'
),
'edit' => array(
'link' => $member->acpUrl()->setQueryString( array( 'do' => 'alternativeContactForm', 'alt_id' => $row['alt_id'] ) ),
'title' => 'edit',
@@ -540,8 +551,10 @@ class _view extends \IPS\Dispatcher\Controller
$sparkline->addRow( array_merge( array( $datetime ), $row ) );
}
$sparkline = $sparkline->render( 'LineChart', array(
'backgroundColor' => '#F3F3F3',
$sparkline = $sparkline->render( 'AreaChart', array(
'areaOpacity' => 0.4,
'backgroundColor' => '#fff',
'colors' => array( '#10967e' ),
'chartArea' => array(
'left' => 0,
'top' => 0,
@@ -554,10 +567,11 @@ class _view extends \IPS\Dispatcher\Controller
'count' => 0,
)
),
'height' => 60 * ceil( ( ( count( \IPS\nexus\Money::currencies() ) * 2 ) + 2 ) / 4 ),
'height' => 60,
'legend' => array(
'position' => 'none',
),
'lineWidth' => 1,
'vAxis' => array(
'baselineColor' => '#F3F3F3',
'gridlines' => array(
@@ -576,7 +590,11 @@ class _view extends \IPS\Dispatcher\Controller
$support = \IPS\Theme::i()->getTemplate('support')->requestsTableResults( $results, NULL, FALSE, $tracked, $participatedIn, FALSE );
/* History */
$history = new \IPS\nexus\Customer\History( $this->member->acpUrl()->setQueryString( 'do', 'history' ), array( 'log_member=?', $this->member->member_id ) );
$extraHistoryTypes = array( 'email_change', 'password_change', 'display_name', 'mfa', 'merged' ); // define history types from other applications to include in commerce user history, i.e. changing MFA
$memberUrl = \IPS\Member::load( $this->member->member_id )->acpUrl();
$history = new \IPS\Member\History( $memberUrl->setQueryString( array( 'do' => 'history', 'nexus_return' => 1 ) ), array( array( 'log_member=? AND ( log_app=? OR ' . \IPS\Db::i()->in( 'log_type', $extraHistoryTypes ) . ' )', $this->member->member_id, 'nexus' ) ), TRUE, FALSE, TRUE );
$history->tableTemplate = array( \IPS\Theme::i()->getTemplate( 'customers', 'nexus' ), 'historyTable' );
$history->rowsTemplate = array( \IPS\Theme::i()->getTemplate( 'customers', 'nexus' ), 'historyRows' );
$history->limit = 16;
/* Display */
@@ -590,11 +608,7 @@ class _view extends \IPS\Dispatcher\Controller
);
}
\IPS\Output::i()->sidebar['actions']['edit'] = array(
'title' => 'customer_edit_member',
'icon' => 'pencil',
'link' => \IPS\Http\Url::internal( 'app=core&module=members&controller=members&do=edit&id=' . $this->member->member_id )
);
\IPS\Output::i()->customHeader = \IPS\Theme::i()->getTemplate( 'customers' )->viewHeader( $member );
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('customers')->view( $member, (string) $notes, $noteCount, $primaryBillingAddress, (string) $cards, $cardCount, $parents, (string) $alternativeContacts, $altContactCount, $purchases, $purchaseCount, $invoices, $invoiceCount, $history, $referredBy, $referrals, $referCount, $support, $supportCount, $sparkline, $purchaseRootCount, $billingAgreements, $billingAgreementCount, $addressCount );
}
@@ -715,27 +729,6 @@ class _view extends \IPS\Dispatcher\Controller
\IPS\Output::i()->output = $purchases;
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( 'members_purchases', FALSE, array( 'sprintf' => array( $this->member->cm_name ) ) );
}
/**
* View History
*
* @return void
*/
public function history()
{
\IPS\Dispatcher::i()->checkAcpPermission( 'customers_edit_details' );
$history = new \IPS\nexus\Customer\History( $this->member->acpUrl()->setQueryString( 'do', 'history' ), array( 'log_member=?', $this->member->member_id ) );
$history->limit = 30;
\IPS\Output::i()->output = $history;
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( 'customers_all_history', FALSE, array( 'sprintf' => array( $this->member->cm_name ) ) );
\IPS\Output::i()->sidebar['actions'][] = array(
'icon' => 'arrow-left',
'title' => 'view_account',
'link' => $this->member->acpUrl()
);
}
/**
* Edit Customer Fields
Loaded 100 of 2074 files, more files were not shown because too many files have changed in this diff. Show more