private function getHtmlForCampaign(UploadWizardCampaign $campaign) { $config = $campaign->getParsedConfig(); $campaignURL = $campaign->getTitle()->getLocalURL(); $campaignTitle = array_key_exists('title', $config) ? $config['title'] : $campaign->getName(); $campaignDescription = array_key_exists('description', $config) ? $config['description'] : ''; $returnHTML = Html::rawElement('dt', array(), Html::rawElement('a', array('href' => $campaignURL), $campaignTitle)) . Html::element('dd', array(), $campaignDescription); return $returnHTML; }
/** * Invalidates the cache for a campaign when any of its dependents are edited. The 'dependents' * are tracked by entries in the templatelinks table, which are inserted by using the * PageContentSaveComplete hook. * * This is usually run via the Job Queue mechanism. */ public static function onLinksUpdateComplete(LinksUpdate &$linksupdate) { if (!$linksupdate->getTitle()->inNamespace(NS_CAMPAIGN)) { return true; } $campaign = new UploadWizardCampaign($linksupdate->getTitle()); $campaign->invalidateCache(); return true; }
public function execute() { global $wgUser; if (!$wgUser->isAllowed('upwizcampaigns') || $wgUser->isBlocked()) { $this->dieUsageMsg(array('badaccess-groups')); } $params = $this->extractRequestParams(); $everythingOk = true; foreach ($params['ids'] as $id) { $campaign = new UploadWizardCampaign($id); $everythingOk = $campaign->deleteFromDB() && $everythingOk; } $this->getResult()->addValue(null, 'success', $everythingOk); }
public function execute() { $params = $this->extractRequestParams(); $data = array(); $ucprop = $params['ucprop']; if (isset($params['campaigns'])) { $campaigns = $params['campaigns']; } else { $dbr = wfGetDB(DB_SLAVE); $rows = $dbr->select('uw_campaigns', 'campaign_name', '1', __METHOD__); $campaigns = array(); foreach ($rows as $row) { $campaigns[] = $row->campaign_name; } } foreach ($campaigns as $campaign) { $campaign = UploadWizardCampaign::newFromName($campaign); if ($campaign) { $data[] = $this->formatRow($campaign, $ucprop); } } $result = $this->getResult(); $result->setIndexedTagName($data, 'campaign'); $result->addValue(array('uploadcampaign'), 'campaigns', $data); }
/** * Handles the campaign parameter. * * @since 1.2 */ protected function handleCampaign() { global $wgRequest; $campaignName = $wgRequest->getVal('campaign'); if ($campaignName != '') { $campaign = UploadWizardCampaign::newFromName($campaignName, false); if ($campaign === false) { $this->displayError(wfMsgExt('mwe-upwiz-error-nosuchcampaign', 'parsemag', $campaignName)); } else { if ($campaign->getIsEnabled()) { $this->campaign = $campaignName; } else { $this->displayError(wfMsgExt('mwe-upwiz-error-campaigndisabled', 'parsemag', $campaignName)); } } } }
public function execute() { $params = $this->extractRequestParams(); $limit = $params['limit']; $this->addTables('uw_campaigns'); $this->addWhereIf(array('campaign_enabled' => 1), $params['enabledonly']); $this->addOption('LIMIT', $limit + 1); $this->addOption('ORDER BY', 'campaign_id'); // Not sure if required? $this->addFields(array('campaign_id', 'campaign_name', 'campaign_enabled')); if (!is_null($params['continue'])) { $from_id = (int) $params['continue']; $this->addWhere("campaign_id >= {$from_id}"); // Not SQL Injection, since we already force this to be an integer } $res = $this->select(__METHOD__); $result = $this->getResult(); $count = 0; foreach ($res as $row) { if (++$count > $limit) { // We have more results than $limit. Set continue $this->setContinueEnumParameter('continue', $row->campaign_id); break; } $campaign = UploadWizardCampaign::newFromName($row->campaign_name); $campaignPath = array('query', $this->getModuleName(), $row->campaign_id); $result->addValue($campaignPath, '*', json_encode($campaign->getParsedConfig())); $result->addValue($campaignPath, 'name', $campaign->getName()); $result->addValue($campaignPath, 'trackingCategory', $campaign->getTrackingCategory()->getDBKey()); $result->addValue($campaignPath, 'totalUploads', $campaign->getUploadedMediaCount()); if (UploadWizardConfig::getSetting('campaignExpensiveStatsEnabled') === true) { $result->addValue($campaignPath, 'totalContributors', $campaign->getTotalContributorsCount()); } } if (defined('ApiResult::META_CONTENT')) { $result->addIndexedTagName(array('query', $this->getModuleName()), 'campaign'); } else { $result->setIndexedTagName_internal(array('query', $this->getModuleName()), 'campaign'); } }
/** * Returns the configuration of the specified campaign, * or an empty array when the campaign is not found or not enabled. * * @since 1.2 * * @param string $campaignName * * @return array */ protected static function getCampaignConfig($campaignName) { if (!is_null($campaignName)) { $campaign = UploadWizardCampaign::newFromName($campaignName); if ($campaign !== false && $campaign->getIsEnabled()) { return $campaign->getConfigForGlobalMerge(); } } return array(); }
/** * Process the form. At this point we know that the user passes all the criteria in * userCanExecute(), and if the data array contains 'Username', etc, then Username * resets are allowed. * @param $data array * @return Bool|Array */ public function onSubmit(array $data) { $id = $data['Campaignid'] == '' ? null : $data['Campaignid']; unset($data['Campaignid']); $name = $data['Campaignname']; unset($data['Campaignname']); $enabled = $data['Campaignenabled']; unset($data['Campaignenabled']); if (is_null($id)) { $existingCampaign = UploadWizardCampaign::newFromName($name, false); $id = $existingCampaign === false ? null : $existingCampaign->getId(); } $campaign = new UploadWizardCampaign($id, $name, $enabled, $data); $success = $campaign->writeToDB(); if ($success) { return true; } else { return array(); // TODO } }
/** * Handles the campaign parameter. * * @since 1.2 */ protected function handleCampaign() { $campaignName = $this->getRequest()->getVal('campaign'); if ($campaignName != '') { $campaign = UploadWizardCampaign::newFromName($campaignName, false); if ($campaign === false) { $this->displayError($this->msg('mwe-upwiz-error-nosuchcampaign', $campaignName)->text()); } else { if ($campaign->getIsEnabled()) { $this->campaign = $campaignName; } else { $this->displayError($this->msg('mwe-upwiz-error-campaigndisabled', $campaignName)->text()); } } } }