Version 5.0.13
This commit is contained in:
1 parent
b89858b2ff
commit
5efe744c5f
1407 files changed
+69690
-30177
No files matched your search
@@ -14,6 +14,7 @@ namespace IPS\nexus\extensions\core\AchievementAction;
|
||||
|
||||
use IPS\core\Achievements\Actions\AchievementActionAbstract;
|
||||
use IPS\core\Achievements\Rule;
|
||||
use IPS\Db;
|
||||
use IPS\Helpers\Form\Node;
|
||||
use IPS\Helpers\Form\YesNo;
|
||||
use IPS\Http\Url;
|
||||
@@ -57,7 +58,7 @@ class Subscription extends AchievementActionAbstract // NOTE: Other classes exis
|
||||
*/
|
||||
public function filters( ?array $filters, Url $url ): array
|
||||
{
|
||||
$return = array();
|
||||
$return = parent::filters( $filters, $url );
|
||||
|
||||
$return['subscriptions'] = new Node( 'achievement_filter_Subscriptions', ( $filters and isset( $filters['subscriptions'] ) and $filters['subscriptions'] ) ? $filters['subscriptions'] : 0, FALSE, [
|
||||
'url' => $url,
|
||||
@@ -84,7 +85,7 @@ class Subscription extends AchievementActionAbstract // NOTE: Other classes exis
|
||||
*/
|
||||
public function formatFilterValues( array $values ): array
|
||||
{
|
||||
$return = [];
|
||||
$return = parent::formatFilterValues( $values );
|
||||
if ( isset( $values['achievement_filter_Subscriptions'] ) )
|
||||
{
|
||||
$return['subscriptions'] = array_keys( $values['achievement_filter_Subscriptions'] );
|
||||
@@ -138,6 +139,36 @@ class Subscription extends AchievementActionAbstract // NOTE: Other classes exis
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the member has already completed this rule.
|
||||
* Used for retroactive rule completion.
|
||||
* So far, this is only used in Quests, but may be used elsewhere at a later point.
|
||||
*
|
||||
* @param Member $member
|
||||
* @param array $filters
|
||||
* @return bool
|
||||
*/
|
||||
public function isRuleCompleted( Member $member, array $filters ) : bool
|
||||
{
|
||||
$where = [
|
||||
[ 'ps_app=?', 'nexus' ],
|
||||
[ 'ps_type=?', 'subscription' ],
|
||||
[ 'ps_member=?', $member->member_id ]
|
||||
];
|
||||
|
||||
iF( !empty( $filters['subscriptions'] ) )
|
||||
{
|
||||
$where[] = [ Db::i()->in( 'ps_item_id', $filters['subscriptions'] ) ];
|
||||
}
|
||||
|
||||
if( isset( $filters['subscriptions_active'] ) )
|
||||
{
|
||||
$where[] = [ 'ps_active=?', 1 ];
|
||||
}
|
||||
|
||||
return (bool) Db::i()->select( 'count(*)', 'nexus_purchases', $where )->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get identifier to prevent the member being awarded points for the same action twice
|
||||
@@ -188,7 +219,12 @@ class Subscription extends AchievementActionAbstract // NOTE: Other classes exis
|
||||
$conditions[] = $nodeCondition;
|
||||
}
|
||||
|
||||
return Theme::i()->getTemplate( 'achievements' )->ruleDescription(
|
||||
if( $questCondition = $this->_questFilterDescription( $rule ) )
|
||||
{
|
||||
$conditions[] = $questCondition;
|
||||
}
|
||||
|
||||
return Theme::i()->getTemplate( 'achievements', 'core' )->ruleDescription(
|
||||
Member::loggedIn()->language()->addToStack( 'AchievementAction__Subscription_title' ),
|
||||
$conditions
|
||||
);
|
||||
@@ -218,7 +254,7 @@ class Subscription extends AchievementActionAbstract // NOTE: Other classes exis
|
||||
{
|
||||
return Member::loggedIn()->language()->addToStack( 'achievements_filter_Subscription_type', FALSE, [
|
||||
'htmlsprintf' => [
|
||||
Theme::i()->getTemplate( 'achievements' )->ruleDescriptionBadge( 'achievements_filter_Subscription_type',
|
||||
Theme::i()->getTemplate( 'achievements', 'core' )->ruleDescriptionBadge( 'achievements_filter_Subscription_type',
|
||||
count( $nodeNames ) === 1 ? $nodeNames[0] : Member::loggedIn()->language()->addToStack( 'achievements_filter_Subscription_pl', FALSE, [ 'sprintf' => [
|
||||
count( $nodeNames ),
|
||||
Member::loggedIn()->language()->addToStack( 'nexus_sub_package_id', FALSE, [ 'strtolower' => TRUE ] )
|
||||
|
||||
Reference in new issue
Block a user