Version 5.0.6

This commit is contained in:
Neo committed 2025-12-19 18:55:49 -08:00
1 parent a3a4a9ccbd
commit b89858b2ff
1214 files changed
+92828 -14859

No files matched your search

+151 -51
View File
@@ -132,7 +132,12 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
-->
<div class='ipsData__item cSubscriptions
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "block:before", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<div class="ipsData__item cSubscriptions
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->id ) and \IPS\Widget\Request::i()->id == $package->id ):
@@ -166,29 +171,34 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->ui( 'css' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'
"
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
>
data-ips-hook="block">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "block:inside-start", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $package->_image || $showImagePlaceholder ):
$return .= <<<IPSCONTENT
<div class='ipsData__image' aria-hidden='true'>
<div class="ipsData__image" aria-hidden="true">
IPSCONTENT;
if ( $package->_image ):
$return .= <<<IPSCONTENT
<img src='
<img src="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->_image->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy' alt=''>
" loading="lazy" alt="">
IPSCONTENT;
@@ -209,9 +219,19 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsData__content'>
<div class="ipsData__main">
<h2 class='ipsData__title'>
<div class="ipsData__content">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "header:before", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<div class="ipsData__main" data-ips-hook="header">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "header:inside-start", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<h2 class="ipsData__title">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -253,7 +273,17 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->description, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "header:inside-end", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "header:after", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -261,7 +291,7 @@ IPSCONTENT;
if ( $subscription and $subscription->package and $subscription->package->id === $package->id ):
$return .= <<<IPSCONTENT
<div class='cSubscriptionRenew
<div class="cSubscriptionRenew
IPSCONTENT;
if ( $subscription->active ):
@@ -276,7 +306,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
i-text-align_center i-font-weight_600 i-margin-bottom_2'>
i-text-align_center i-font-weight_600 i-margin-bottom_2">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $subscription->currentBlurb(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -318,8 +348,18 @@ IPSCONTENT;
if ( $subscription->purchase->expire and ( $canRenewUntil = $subscription->purchase->canRenewUntil( NULL,TRUE ) or ( $subscription->purchase->can_reactivate ) or ( $pendingInvoice = $subscription->purchase->invoice_pending and $pendingInvoice->status === $pendingInvoice::STATUS_PENDING ) or $subscription->purchase->canCancel()) ):
$return .= <<<IPSCONTENT
<div class='cSubscriptionInfo'>
<ul class='ipsButtons ipsButtons--fill'>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoActivePurchase:before", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<div class="cSubscriptionInfo" data-ips-hook="infoActivePurchase">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoActivePurchase:inside-start", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<ul class="ipsButtons ipsButtons--fill">
IPSCONTENT;
@@ -331,7 +371,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $pendingInvoice->checkoutUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class='ipsButton ipsButton--positive' title="
" class="ipsButton ipsButton--positive" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_pay_now_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -352,22 +392,22 @@ elseif ( $canRenewUntil ):
$return .= <<<IPSCONTENT
<li>
<a href='
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=clients&controller=purchases&do=renew&id={$subscription->purchase->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, "front", "clientspurchaserenew", array( \IPS\Http\Url\Friendly::seoTitle( $subscription->purchase->name ) ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class='ipsButton ipsButton--positive' title='
" class="ipsButton ipsButton--positive" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'purchase_renew_now_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'
"
IPSCONTENT;
if ( $canRenewUntil === TRUE or $canRenewUntil > 1 ):
$return .= <<<IPSCONTENT
data-ipsDialog data-ipsDialog-size='narrow'
data-ipsdialog data-ipsdialog-size="narrow"
IPSCONTENT;
endif;
@@ -388,17 +428,17 @@ elseif ( $renewOptions = json_decode( $package->renew_options, TRUE ) and \count
$return .= <<<IPSCONTENT
<li>
<a href='
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=reactivate&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, "front", "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class='ipsButton ipsButton--positive' title='
" class="ipsButton ipsButton--positive" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'purchase_renew_now_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
@@ -420,22 +460,22 @@ if ( $subscription->purchase->canCancel() ):
$return .= <<<IPSCONTENT
<li>
<a href='
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=clients&controller=purchases&do=cancel&id={$subscription->purchase->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, "front", "clientspurchasecancel", array( \IPS\Http\Url\Friendly::seoTitle( $subscription->purchase->name ) ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
&ref=
&amp;ref=
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( base64_encode( \IPS\Http\Url::internal( 'app=nexus&module=subscriptions&controller=subscriptions', 'front', 'nexus_subscriptions' ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--negative" data-confirm data-confirmSubMessage='
" class="ipsButton ipsButton--negative" data-confirm data-confirmsubmessage="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'purchase_cancel_renewal_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
@@ -451,7 +491,17 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoActivePurchase:inside-end", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoActivePurchase:after", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -464,8 +514,18 @@ IPSCONTENT;
elseif ( $upgradeCost !== NULL ):
$return .= <<<IPSCONTENT
<div class='cSubscriptionInfo'>
<ul class='ipsButtons ipsButtons--fill'>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoExpiredPurchase:before", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<div class="cSubscriptionInfo" data-ips-hook="infoExpiredPurchase">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoExpiredPurchase:inside-start", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<ul class="ipsButtons ipsButtons--fill">
IPSCONTENT;
@@ -479,51 +539,51 @@ IPSCONTENT;
if ( $upgradeCost->amount->isZero() ):
$return .= <<<IPSCONTENT
<a href='
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--inherit" data-change-subscription data-change-message='
" class="ipsButton ipsButton--inherit" data-change-subscription data-change-message="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_no_charge', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
elseif ( !$subscription->active ):
$return .= <<<IPSCONTENT
<a href='
</a><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--inherit" data-change-subscription data-change-message='
" class="ipsButton ipsButton--inherit" data-change-subscription data-change-message="
IPSCONTENT;
$sprintf = array($subscription->package->_title, $package->_title, $upgradeCost); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_confirm_switch', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<a href='
</a><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--inherit" data-change-subscription data-change-message='
" class="ipsButton ipsButton--inherit" data-change-subscription data-change-message="
IPSCONTENT;
$sprintf = array($subscription->package->_title, $package->_title, $upgradeCost); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_confirm_upgrade', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
@@ -575,17 +635,17 @@ IPSCONTENT;
if ( $upgradeCost->amount->isZero() ):
$return .= <<<IPSCONTENT
<a href='
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--negative" data-change-subscription data-change-message='
" class="ipsButton ipsButton--negative" data-change-subscription data-change-message="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_no_charge', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
@@ -598,17 +658,17 @@ IPSCONTENT;
$upgradeCost = new \IPS\nexus\Money( $upgradeCost->amount->absolute(), $upgradeCost->currency );
$return .= <<<IPSCONTENT
<a href='
</a><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--negative" data-change-subscription data-change-message='
" class="ipsButton ipsButton--negative" data-change-subscription data-change-message="
IPSCONTENT;
$sprintf = array($subscription->package->_title, $package->_title, $upgradeCost); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_confirm_switch', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
'>
">
IPSCONTENT;
@@ -621,12 +681,12 @@ IPSCONTENT;
$upgradeCost = new \IPS\nexus\Money( $upgradeCost->amount->absolute(), $upgradeCost->currency );
$return .= <<<IPSCONTENT
<a href='
</a><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=change&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--negative" data-change-subscription data-change-message='"
" class="ipsButton ipsButton--negative" data-change-subscription data-change-message='"
IPSCONTENT;
$sprintf = array($subscription->package->_title, $package->_title, $upgradeCost); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_sub_change_confirm_downgrade', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
@@ -677,7 +737,17 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoExpiredPurchase:inside-end", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoExpiredPurchase:after", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -696,19 +766,39 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='cSubscriptionInfo'>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoNoPurchase:before", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<div class="cSubscriptionInfo" data-ips-hook="infoNoPurchase">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoNoPurchase:inside-start", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=purchase&id={$package->id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "nexus_subscription", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class="ipsButton ipsButton--primary">
" class="ipsButton ipsButton--primary">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nexus_subs_buy', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoNoPurchase:inside-end", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "infoNoPurchase:after", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -716,7 +806,17 @@ endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "block:inside-end", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "nexus/front/subscription/row", "block:after", [ $package,$subscription,$showImagePlaceholder ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
return $return;