Path: blob/master/src/applications/fund/phortune/FundBackerCart.php
12256 views
<?php12final class FundBackerCart extends PhortuneCartImplementation {34private $initiativePHID;5private $initiative;67public function setInitiativePHID($initiative_phid) {8$this->initiativePHID = $initiative_phid;9return $this;10}1112public function getInitiativePHID() {13return $this->initiativePHID;14}1516public function setInitiative(FundInitiative $initiative) {17$this->initiative = $initiative;18return $this;19}2021public function getInitiative() {22return $this->initiative;23}2425public function getName(PhortuneCart $cart) {26return pht('Fund Initiative');27}2829public function willCreateCart(30PhabricatorUser $viewer,31PhortuneCart $cart) {3233$initiative = $this->getInitiative();34if (!$initiative) {35throw new PhutilInvalidStateException('setInitiative');36}3738$cart->setMetadataValue('initiativePHID', $initiative->getPHID());39}4041public function loadImplementationsForCarts(42PhabricatorUser $viewer,43array $carts) {4445$phids = array();46foreach ($carts as $cart) {47$phids[] = $cart->getMetadataValue('initiativePHID');48}4950$initiatives = id(new FundInitiativeQuery())51->setViewer($viewer)52->withPHIDs($phids)53->execute();54$initiatives = mpull($initiatives, null, 'getPHID');5556$objects = array();57foreach ($carts as $key => $cart) {58$initiative_phid = $cart->getMetadataValue('initiativePHID');5960$object = id(new FundBackerCart())61->setInitiativePHID($initiative_phid);6263$initiative = idx($initiatives, $initiative_phid);64if ($initiative) {65$object->setInitiative($initiative);66}6768$objects[$key] = $object;69}7071return $objects;72}7374public function getCancelURI(PhortuneCart $cart) {75return '/'.$this->getInitiative()->getMonogram();76}7778public function getDoneURI(PhortuneCart $cart) {79return '/'.$this->getInitiative()->getMonogram();80}8182public function getDoneActionName(PhortuneCart $cart) {83return pht('Return to Initiative');84}8586}878889