@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorPhortuneApplication extends PhabricatorApplication {
4
5 public function getName() {
6 return pht('Phortune');
7 }
8
9 public function getBaseURI() {
10 return '/phortune/';
11 }
12
13 public function getShortDescription() {
14 return pht('Accounts and Billing');
15 }
16
17 public function getIcon() {
18 return 'fa-diamond';
19 }
20
21 public function getTitleGlyph() {
22 return "\xE2\x97\x87";
23 }
24
25 public function getApplicationGroup() {
26 return self::GROUP_UTILITIES;
27 }
28
29 public function isPrototype() {
30 return true;
31 }
32
33 public function isDeprecated() {
34 return true;
35 }
36
37 public function getRoutes() {
38 return array(
39 '/phortune/' => array(
40 '' => 'PhortuneLandingController',
41 'card/(?P<id>\d+)/' => array(
42 'edit/' => 'PhortunePaymentMethodEditController',
43 'disable/' => 'PhortunePaymentMethodDisableController',
44 ),
45 'cart/(?P<id>\d+)/' => array(
46 '' => 'PhortuneCartViewController',
47 'checkout/' => 'PhortuneCartCheckoutController',
48 '(?P<action>print)/' => 'PhortuneCartViewController',
49 '(?P<action>cancel|refund)/' => 'PhortuneCartCancelController',
50 'accept/' => 'PhortuneCartAcceptController',
51 'void/' => 'PhortuneCartVoidController',
52 'update/' => 'PhortuneCartUpdateController',
53 ),
54 'account/' => array(
55 '' => 'PhortuneAccountListController',
56
57 $this->getEditRoutePattern('edit/')
58 => 'PhortuneAccountEditController',
59
60 '(?P<accountID>\d+)/' => array(
61 '' => 'PhortuneAccountOverviewController',
62 'details/' => 'PhortuneAccountDetailsController',
63 'methods/' => array(
64 '' => 'PhortuneAccountPaymentMethodController',
65 '(?P<id>\d+)/' => 'PhortuneAccountPaymentMethodViewController',
66 'new/' => 'PhortunePaymentMethodCreateController',
67 ),
68 'orders/' => array(
69 '' => 'PhortuneAccountOrdersController',
70 $this->getQueryRoutePattern('list/')
71 => 'PhortuneAccountOrderListController',
72 ),
73 'charges/' => array(
74 '' => 'PhortuneAccountChargesController',
75 $this->getQueryRoutePattern('list/')
76 => 'PhortuneAccountChargeListController',
77 ),
78 'subscriptions/' => array(
79 '' => 'PhortuneAccountSubscriptionController',
80 '(?P<subscriptionID>\d+)/' => array(
81 '' => 'PhortuneAccountSubscriptionViewController',
82 'autopay/(?P<methodID>\d+)/'
83 => 'PhortuneAccountSubscriptionAutopayController',
84 $this->getQueryRoutePattern('orders/')
85 => 'PhortuneAccountOrderListController',
86 ),
87 ),
88 'managers/' => array(
89 '' => 'PhortuneAccountManagersController',
90 'add/' => 'PhortuneAccountAddManagerController',
91 ),
92 'addresses/' => array(
93 '' => 'PhortuneAccountEmailAddressesController',
94 '(?P<addressID>\d+)/' => array(
95 '' => 'PhortuneAccountEmailViewController',
96 'rotate/' => 'PhortuneAccountEmailRotateController',
97 '(?P<action>disable|enable)/'
98 => 'PhortuneAccountEmailStatusController',
99 ),
100 $this->getEditRoutePattern('edit/')
101 => 'PhortuneAccountEmailEditController',
102 ),
103 ),
104 ),
105 'product/' => array(
106 '' => 'PhortuneProductListController',
107 'view/(?P<id>\d+)/' => 'PhortuneProductViewController',
108 ),
109 'provider/' => array(
110 '(?P<id>\d+)/(?P<action>[^/]+)/'
111 => 'PhortuneProviderActionController',
112 ),
113 'external/(?P<addressKey>[^/]+)/(?P<accessKey>[^/]+)/' => array(
114 '' => 'PhortuneExternalOverviewController',
115 'unsubscribe/' => 'PhortuneExternalUnsubscribeController',
116 'order/' => array(
117 '(?P<orderID>[^/]+)/' => array(
118 '' => 'PhortuneExternalOrderController',
119 '(?P<action>print)/' => 'PhortuneExternalOrderController',
120 ),
121 ),
122 ),
123 'merchant/' => array(
124 $this->getQueryRoutePattern()
125 => 'PhortuneMerchantListController',
126 $this->getEditRoutePattern('edit/')
127 => 'PhortuneMerchantEditController',
128 '(?P<merchantID>\d+)/' => array(
129 '' => 'PhortuneMerchantOverviewController',
130 'details/' => 'PhortuneMerchantDetailsController',
131 'providers/' => array(
132 '' => 'PhortuneMerchantProvidersController',
133 '(?P<providerID>\d+)/' => array(
134 '' => 'PhortuneMerchantProviderViewController',
135 'disable/' => 'PhortuneMerchantProviderDisableController',
136 ),
137 $this->getEditRoutePattern('edit/')
138 => 'PhortuneMerchantProviderEditController',
139 ),
140 'orders/' => array(
141 '' => 'PhortuneMerchantOrdersController',
142 $this->getQueryRoutePattern('list/')
143 => 'PhortuneMerchantOrderListController',
144 ),
145 'picture/' => array(
146 'edit/' => 'PhortuneMerchantPictureController',
147 ),
148 'subscriptions/' => array(
149 '' => 'PhortuneMerchantSubscriptionsController',
150 $this->getQueryRoutePattern('list/')
151 => 'PhortuneMerchantSubscriptionListController',
152 ),
153 'managers/' => array(
154 '' => 'PhortuneMerchantManagersController',
155 'new/' => 'PhortuneMerchantAddManagerController',
156 ),
157 ),
158 ),
159 ),
160 );
161 }
162
163 protected function getCustomCapabilities() {
164 return array(
165 PhortuneMerchantCapability::CAPABILITY => array(
166 'caption' => pht('Merchant accounts can receive payments.'),
167 'default' => PhabricatorPolicies::POLICY_ADMIN,
168 ),
169 );
170 }
171
172}