@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 PHUIBadgeExample extends PhabricatorUIExample {
4
5 public function getName() {
6 return pht('Badge');
7 }
8
9 public function getDescription() {
10 return pht('Celebrate the moments of your life.');
11 }
12
13 public function getCategory() {
14 return pht('Single Use');
15 }
16
17 public function renderExample() {
18
19 $badges1 = array();
20 $badges1[] = id(new PHUIBadgeView())
21 ->setIcon('fa-users')
22 ->setHeader(pht('High Command'))
23 ->setHref('/')
24 ->setSource('Projects (automatic)')
25 ->addByline(pht('Dec 31, 1969'))
26 ->addByline('3 Members');
27
28 $badges1[] = id(new PHUIBadgeView())
29 ->setIcon('fa-lock')
30 ->setHeader(pht('Blessed Committers'))
31 ->setSource('Projects (automatic)')
32 ->addByline(pht('Dec 31, 1969'))
33 ->addByline('12 Members');
34
35 $badges1[] = id(new PHUIBadgeView())
36 ->setIcon('fa-camera-retro')
37 ->setHeader(pht('Design'))
38 ->setSource('Projects (automatic)')
39 ->addByline(pht('Dec 31, 1969'))
40 ->addByline('2 Members');
41
42 $badges1[] = id(new PHUIBadgeView())
43 ->setIcon('fa-lock')
44 ->setHeader(pht('Blessed Reviewers'))
45 ->setSource('Projects (automatic)')
46 ->addByline(pht('Dec 31, 1969'))
47 ->addByline('3 Members');
48
49 $badges1[] = id(new PHUIBadgeView())
50 ->setIcon('fa-umbrella')
51 ->setHeader(pht('Wikipedia'))
52 ->setSource('Projects (automatic)')
53 ->addByline(pht('Dec 31, 1969'))
54 ->addByline('22 Members');
55
56 $badges2 = array();
57 $badges2[] = id(new PHUIBadgeView())
58 ->setIcon('fa-user')
59 ->setHeader(pht('User'))
60 ->setSubhead(pht('Confirmed your account.'))
61 ->setQuality(PhabricatorBadgesQuality::POOR)
62 ->setSource(pht('People (automatic)'))
63 ->addByline(pht('Dec 31, 1969'))
64 ->addByline('212 Issued (100%)');
65
66 $badges2[] = id(new PHUIBadgeView())
67 ->setIcon('fa-code')
68 ->setHeader(pht('Code Contributor'))
69 ->setSubhead(pht('Wrote code that was acceptable'))
70 ->setQuality(PhabricatorBadgesQuality::COMMON)
71 ->setSource('Diffusion (automatic)')
72 ->addByline(pht('Dec 31, 1969'))
73 ->addByline('200 Awarded (98%)');
74
75 $badges2[] = id(new PHUIBadgeView())
76 ->setIcon('fa-bug')
77 ->setHeader(pht('Task Master'))
78 ->setSubhead(pht('Closed over 100 tasks'))
79 ->setQuality(PhabricatorBadgesQuality::UNCOMMON)
80 ->setSource('Maniphest (automatic)')
81 ->addByline(pht('Dec 31, 1969'))
82 ->addByline('56 Awarded (43%)');
83
84 $badges2[] = id(new PHUIBadgeView())
85 ->setIcon('fa-star')
86 ->setHeader(pht('Code Weaver'))
87 ->setSubhead(pht('Landed 1,000 Commits'))
88 ->setQuality(PhabricatorBadgesQuality::RARE)
89 ->setSource('Diffusion (automatic)')
90 ->addByline(pht('Dec 31, 1969'))
91 ->addByline('42 Awarded (20%)');
92
93 $badges2[] = id(new PHUIBadgeView())
94 ->setIcon('fa-users')
95 ->setHeader(pht('Security Team'))
96 ->setSubhead(pht('<script>alert(1);</script>'))
97 ->setQuality(PhabricatorBadgesQuality::EPIC)
98 ->setSource('Projects (automatic)')
99 ->addByline(pht('Dec 31, 1969'))
100 ->addByline('21 Awarded (10%)');
101
102 $badges2[] = id(new PHUIBadgeView())
103 ->setIcon('fa-user')
104 ->setHeader(pht('Administrator'))
105 ->setSubhead(pht('Drew the short stick'))
106 ->setQuality(PhabricatorBadgesQuality::LEGENDARY)
107 ->setSource(pht('People (automatic)'))
108 ->addByline(pht('Dec 31, 1969'))
109 ->addByline('3 Awarded (1.4%)');
110
111 $badges2[] = id(new PHUIBadgeView())
112 ->setIcon('fa-compass')
113 ->setHeader(pht('Lead Developer'))
114 ->setSubhead(pht('Lead Developer of Software'))
115 ->setQuality(PhabricatorBadgesQuality::HEIRLOOM)
116 ->setSource(pht('Direct Award'))
117 ->addByline(pht('Dec 31, 1969'))
118 ->addByline('1 Awarded (0.4%)');
119
120 $badges3 = array();
121 $badges3[] = id(new PHUIBadgeMiniView())
122 ->setIcon('fa-book')
123 ->setHeader(pht('Documenter'));
124
125 $badges3[] = id(new PHUIBadgeMiniView())
126 ->setIcon('fa-star')
127 ->setHeader(pht('Contributor'));
128
129 $badges3[] = id(new PHUIBadgeMiniView())
130 ->setIcon('fa-bug')
131 ->setHeader(pht('Bugmeister'));
132
133 $badges3[] = id(new PHUIBadgeMiniView())
134 ->setIcon('fa-heart')
135 ->setHeader(pht('Funder'))
136 ->setQuality(PhabricatorBadgesQuality::UNCOMMON);
137
138 $badges3[] = id(new PHUIBadgeMiniView())
139 ->setIcon('fa-user')
140 ->setHeader(pht('Administrator'))
141 ->setQuality(PhabricatorBadgesQuality::RARE);
142
143 $badges3[] = id(new PHUIBadgeMiniView())
144 ->setIcon('fa-camera-retro')
145 ->setHeader(pht('Designer'))
146 ->setQuality(PhabricatorBadgesQuality::EPIC);
147
148 $flex1 = new PHUIBadgeBoxView();
149 $flex1->addItems($badges1);
150
151 $box1 = id(new PHUIObjectBoxView())
152 ->setHeaderText(pht('Project Membership'))
153 ->appendChild($flex1);
154
155 $flex2 = new PHUIBadgeBoxView();
156 $flex2->addItems($badges2);
157
158 $box2 = id(new PHUIObjectBoxView())
159 ->setHeaderText(pht('Achievements'))
160 ->appendChild($flex2);
161
162 $flex3 = new PHUIBadgeBoxView();
163 $flex3->addItems($badges3);
164 $flex3->setCollapsed(true);
165 $flex3->addClass('ml');
166
167 $box3 = id(new PHUIObjectBoxView())
168 ->setHeaderText(pht('PHUIBadgeMiniView'))
169 ->appendChild($flex3);
170
171 return array($box1, $box2, $box3);
172 }
173}