AndyRussG has uploaded a new change for review. https://gerrit.wikimedia.org/r/119258
Change subject: Participation on create account via campaign url ...................................................................... Participation on create account via campaign url Change-Id: I5b943190efc0256708475c16e28078086d43d6dd --- M Campaigns.hooks.php 1 file changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Campaigns refs/changes/58/119258/1 diff --git a/Campaigns.hooks.php b/Campaigns.hooks.php index 90102c3..3289202 100644 --- a/Campaigns.hooks.php +++ b/Campaigns.hooks.php @@ -3,6 +3,7 @@ namespace Campaigns; use \DatabaseUpdater; +use \Campaigns\Setup\Setup; /** * Static methods for hooks. @@ -93,12 +94,15 @@ $displayMobile = class_exists( 'MobileContext' ) && MobileContext::singleton()->shouldDisplayMobileView(); + $campaignUrlID = + $wgRequest->getCookie( '-campaign', $wgCookiePrefix, '' ); + $event = array( 'token' => $wgRequest->getCookie( 'mediaWiki.user.id', '', '' ), 'userId' => $userId, 'userName' => $user->getName(), 'isSelfMade' => $isSelfMade, - 'campaign' => $wgRequest->getCookie( '-campaign', $wgCookiePrefix, '' ), + 'campaign' => $campaignUrlID, 'userBuckets' => $wgRequest->getCookie( 'userbuckets', '', '' ), 'displayMobile' => $displayMobile, ); @@ -114,6 +118,34 @@ } efLogServerSideEvent( 'ServerSideAccountCreation', 5487345, $event ); + + // Persist the user's membership in a campaign + $campaignStore = + Setup::getInstance()->get( 'Campaigns\Persistence\ICampaignStore' ); + + $campaign = + $campaignStore->getCampaignByUrlID( $campaignUrlID, array() ); + + // If the campaign doesn't exist, create it + if ( is_null( $campaign ) ) { + + // Scope out an unused name + $name = $campaignUrlID; + $nameSuffix = 0; + + while ( $campaignStore->existsCampaignWithName( $name ) ) { + $name = $campaignUrlID . '-' . $nameSuffix; + $nameSuffix++; + } + + // Create the campaign + $campaign = $campaignStore->createCampaign( $campaignUrlID, $name ); + } + + // Add the membership and save + $campaign->setParticipant( $userId, false ); + $campaignStore->saveCampaign( $campaign ); + return true; } -- To view, visit https://gerrit.wikimedia.org/r/119258 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5b943190efc0256708475c16e28078086d43d6dd Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Campaigns Gerrit-Branch: wip/editorcampaigns Gerrit-Owner: AndyRussG <andrew.green...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits