3 final class FundBackerCart
extends PhortuneCartImplementation
{
5 private $initiativePHID;
8 public function setInitiativePHID($initiative_phid) {
9 $this->initiativePHID
= $initiative_phid;
13 public function getInitiativePHID() {
14 return $this->initiativePHID
;
17 public function setInitiative(FundInitiative
$initiative) {
18 $this->initiative
= $initiative;
22 public function getInitiative() {
23 return $this->initiative
;
26 public function getName(PhortuneCart
$cart) {
27 return pht('Fund Initiative');
30 public function willCreateCart(
31 PhabricatorUser
$viewer,
34 $initiative = $this->getInitiative();
36 throw new PhutilInvalidStateException('setInitiative');
39 $cart->setMetadataValue('initiativePHID', $initiative->getPHID());
42 public function loadImplementationsForCarts(
43 PhabricatorUser
$viewer,
47 foreach ($carts as $cart) {
48 $phids[] = $cart->getMetadataValue('initiativePHID');
51 $initiatives = id(new FundInitiativeQuery())
55 $initiatives = mpull($initiatives, null, 'getPHID');
58 foreach ($carts as $key => $cart) {
59 $initiative_phid = $cart->getMetadataValue('initiativePHID');
61 $object = id(new FundBackerCart())
62 ->setInitiativePHID($initiative_phid);
64 $initiative = idx($initiatives, $initiative_phid);
66 $object->setInitiative($initiative);
69 $objects[$key] = $object;
75 public function getCancelURI(PhortuneCart
$cart) {
76 return '/'.$this->getInitiative()->getMonogram();
79 public function getDoneURI(PhortuneCart
$cart) {
80 return '/'.$this->getInitiative()->getMonogram();
83 public function getDoneActionName(PhortuneCart
$cart) {
84 return pht('Return to Initiative');