/* This cronjob will send out donation reminder e-mails for every user * that hasn't received an e-mail in the past month. It will also * re-generate statistics for every campaign, and store them in the * historical statistics logs. */ /* First, we will update the exchange rates. */ Currency::UpdateRates(); /* Then, we'll start out sending reminder e-mails. */ try { $sSubscriptions = Subscription::CreateFromQuery("SELECT * FROM subscriptions WHERE `Confirmed` = 1 AND `Active` = 1 AND (`LastEmail` IS NULL OR `LastEmail` < DATE_SUB(NOW(), INTERVAL 1 MONTH))"); } catch (NotFoundException $e) { $sSubscriptions = array(); } foreach ($sSubscriptions as $sSubscription) { $sSubscription->SendPaymentRequest(); } /* Now, we'll log a historical statistics snapshot for every campaign. */ try { $sCampaigns = Campaign::CreateFromQuery("SELECT * FROM campaigns"); $found = true; } catch (NotFoundException $e) { /* No campaigns are in the database yet. */ $found = false; } if ($found) { foreach ($sCampaigns as $sCampaign) { $sCampaign->UpdateStatistics(); $sStatisticsEntry = $sCampaign->CreateStatisticsEntry(); $sStatisticsEntry->InsertIntoDatabase(); } }
/* * ReDonate is more free software. It is licensed under the WTFPL, which * allows you to do pretty much anything with it, without having to * ask permission. Commercial use is allowed, and no attribution is * required. We do politely request that you share your modifications * to benefit other developers, but you are under no enforced * obligation to do so :) * * Please read the accompanying LICENSE document for the full WTFPL * licensing text. */ if (!isset($_APP)) { die("Unauthorized."); } try { $sCampaign = Campaign::CreateFromQuery("SELECT * FROM campaigns WHERE `UrlName` = :UrlName", array(":UrlName" => $router->uParameters[1]), 5, true); } catch (NotFoundException $e) { throw new RouterException("Campaign does not exist."); } if ($sCampaign->VerifyAdministratorAccess($_SESSION['user_id']) === false) { throw new RouterException("Not authorized to administrate this campaign."); } $sCampaign->UpdateStatistics(); $sPaymentMethods = array(); try { foreach (PaymentMethod::CreateFromQuery("SELECT * FROM payment_methods WHERE `CampaignId` = :CampaignId", array(":CampaignId" => $sCampaign->sId)) as $sPaymentMethod) { $sNewMethod = $sPaymentMethod->GetLogo(); $sNewMethod['address'] = $sPaymentMethod->sAddress; $sNewMethod['id'] = $sPaymentMethod->sId; $sPaymentMethods[] = $sNewMethod; }
* to benefit other developers, but you are under no enforced * obligation to do so :) * * Please read the accompanying LICENSE document for the full WTFPL * licensing text. */ if (!isset($_APP)) { die("Unauthorized."); } $sCampaigns = array(); $sPercentages = array(); $sTotals = array(); $sProjections = array(); $sSubscribers = array(); try { foreach (Campaign::CreateFromQuery("SELECT * FROM campaigns WHERE `OwnerId` = :UserId", array(":UserId" => $sCurrentUser->sId)) as $sCampaign) { $sCampaign->UpdateStatistics(); $sPaymentMethods = array(); try { foreach (PaymentMethod::CreateFromQuery("SELECT * FROM payment_methods WHERE `CampaignId` = :CampaignId", array(":CampaignId" => $sCampaign->sId)) as $sPaymentMethod) { $sPaymentMethods[] = $sPaymentMethod->GetLogo(); } } catch (NotFoundException $e) { /* No payment methods...? */ } if ($sCampaign->sHaveData) { $sPercentages[] = $sCampaign->sDonationRate; $sTotals[] = $sCampaign->sMonthlyTotal; $sProjections[] = $sCampaign->sMonthlyProjection; } $sSubscribers[] = $sCampaign->sSubscriberCount;