public static function GenerateUrlName($name) { $found = false; $iteration = 0; $sUrlName = ""; try { while (true) { $sUrlName = generate_urlname($name, $iteration); $result = Campaign::FindByUrlName($sUrlName); $iteration += 1; } } catch (NotFoundException $e) { /* Current UrlName is not in use */ } return $sUrlName; }
/* * 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::FindByUrlName($router->uParameters[1]); } catch (NotFoundException $e) { /* TODO: 404 via RouterException */ throw new RouterException("No such campaign."); } try { $sPaymentMethod = new PaymentMethod($router->uParameters[2]); } catch (NotFoundException $e) { throw new RouterException("No such payment method."); } if ($sPaymentMethod->sCampaignId !== $sCampaign->sId) { throw new RouterException("Payment method does not belong to campaign."); } switch ($sPaymentMethod->sType) { case PaymentMethod::PAYPAL: $sMethodName = "PayPal";