Skip to content

Commit db7d91e

Browse files
feat: Add images to digital rewards
Add images in the user campaign area where campaign and milestone rewards are digital. refactor: Handle past campaign no image refactor: Handle Other Campaigns no image refactor: Handle Milestones With No Image
1 parent 0df7ff8 commit db7d91e

File tree

5 files changed

+101
-14
lines changed

5 files changed

+101
-14
lines changed

code/web/interface/themes/responsive/MyAccount/myCampaigns.tpl

+58-10
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@
2323
<td>{$campaign->name}</td>
2424
<td>{$campaign->startDate}</td>
2525
<td>{$campaign->endDate}</td>
26-
<td>{$campaign->rewardName}</td>
26+
<td>
27+
{$campaign->rewardName}
28+
{if $campaign->rewardType === 1 && $campaign->rewardExists}
29+
<img src="{$campaign->badgeImage}" alt="{$campaign->rewardName}" style="max-width:100px; max-height:100px;" />
30+
{/if}
31+
</td>
2732
<td>{$campaign->numCompletedMilestones} / {$campaign->numCampaignMilestones}</td>
2833
<td>
2934
<button class="btn btn-primary btn-sm" onclick="AspenDiscovery.Account.unenroll({$campaign->id}, {$userId});">{translate text="Unenroll" isPublicFacing=true}</button>
@@ -49,7 +54,12 @@
4954
{foreach from=$campaign->milestones item="milestone"}
5055
<tr>
5156
<td>{$milestone->name}</td>
52-
<td>{$milestone->rewardName}</td>
57+
<td>
58+
{$milestone->rewardName}
59+
{if $milestone->rewardType === 1 && $milestone->rewardExists}
60+
<img src="{$milestone->rewardImage}" alt="{$milestone->rewardName}" style="max-width:100px; max-height:100px;" />
61+
{/if}
62+
</td>
5363
<td>
5464
{$milestone->completedGoals}/ {$milestone->totalGoals}
5565
{foreach from=$milestone->progressData item="progressData"}
@@ -91,7 +101,12 @@
91101
{if $campaign->isActive}
92102
<tr>
93103
<td>{$campaign->name}</td>
94-
<td>{$campaign->rewardName}</td>
104+
<td>
105+
{$campaign->rewardName}
106+
{if $campaign->rewardType === 1 && $campaign->rewardExists}
107+
<img src="{$campaign->badgeImage}" alt="{$campaign->rewardName}" style="max-width:100px; max-height:100px;" />
108+
{/if}
109+
</td>
95110
<td>{$campaign->endDate}</td>
96111
{if $campaign->enrolled}
97112
<td>{translate text="Enrolled" isPublicFacing=true}</td>
@@ -129,7 +144,12 @@
129144
{foreach from=$campaign->milestones item="milestone"}
130145
<tr>
131146
<td>{$milestone->name}</td>
132-
<td>{$milestone->rewardName}</td>
147+
<td>
148+
{$milestone->rewardName}
149+
{if $milestone->rewardType === 1 && $milestone->rewardExists}
150+
<img src="{$milestone->rewardImage}" alt="{$milestone->rewardName}" style="max-width:100px; max-height:100px;" />
151+
{/if}
152+
</td>
133153
<td>
134154
{$milestone->completedGoals}/ {$milestone->totalGoals}
135155
{foreach from=$milestone->progressData item="progressData"}
@@ -172,7 +192,12 @@
172192
{if $campaign->isUpcoming}
173193
<tr>
174194
<td>{$campaign->name}</td>
175-
<td>{$campaign->rewardName}</td>
195+
<td>
196+
{$campaign->rewardName}
197+
{if $campaign->rewardType === 1 && $campaign->rewardExists}
198+
<img src="{$campaign->rewardImage}" alt="{$campaign->rewardName}" style="max-width:100px; max-height:100px;" />
199+
{/if}
200+
</td>
176201
<td>{$campaign->startDate}</td>
177202
{if $campaign->enrolled}
178203
<td>{translate text="Enrolled" isPublicFacing=true}</td>
@@ -206,7 +231,12 @@
206231
{foreach from=$campaign->milestones item="milestone"}
207232
<tr>
208233
<td>{$milestone->name}</td>
209-
<td>{$milestone->rewardName}</td>
234+
<td>
235+
{$milestone->rewardName}
236+
{if $milestone->rewardType === 1 && $milestone->rewardExists}
237+
<img src="{$milestone->rewardImage}" alt="{$milestone->rewardName}" style="max-width:100px; max-height:100px;" />
238+
{/if}
239+
</td>
210240
</tr>
211241
{/foreach}
212242
</tbody>
@@ -232,7 +262,12 @@
232262
<td>{$campaign->name}</td>
233263
<td>{$campaign->startDate}</td>
234264
<td>{$campaign->endDate}</td>
235-
<td>{$campaign->rewardName}</td>
265+
<td>
266+
{$campaign->rewardName}
267+
{if $campaign->rewardType === 1 && $campaign->rewardExists}
268+
<img src="{$campaign->rewardImage}" alt="{$campaign->rewardName}" style="max-width:100px; max-height:100px;" />
269+
{/if}
270+
</td>
236271
<td>
237272
<button class="btn btn-primary btn-small" onclick="togglePastCampaignInfo({$resultIndex});">{translate text="Campaign Information" isPublicFacing=true}</button>
238273
</td>
@@ -250,7 +285,12 @@
250285
{foreach from=$campaign->milestones item="milestone"}
251286
<tr>
252287
<td>{$milestone->name}</td>
253-
<td>{$milestone->rewardName}</td>
288+
<td>
289+
{$milestone->rewardName}
290+
{if $milestone->rewardType === 1 && $milestone->rewardExists}
291+
<img src="{$milestone->rewardImage}" alt="{$milestone->rewardName}" style="max-width:100px; max-height:100px;" />
292+
{/if}
293+
</td>
254294
</tr>
255295
{/foreach}
256296
</tbody>
@@ -278,7 +318,10 @@
278318
<td>{$campaign->startDate}</td>
279319
<td>{$campaign->endDate}</td>
280320
<td>
281-
{$campaign->rewardName}<br>
321+
{$campaign->rewardName}
322+
{if $campaign->rewardType === 1 && $campaign->rewardExists}
323+
<img src="{$campaign->rewardImage}" alt="{$campaign->rewardName}" style="max-width:100px; max-height:100px;" />
324+
{/if}<br>
282325
{if $campaign->campaignRewardGiven}
283326
<strong>{translate text="Reward Received"}</strong>
284327
{/if}
@@ -307,7 +350,12 @@
307350
{$milestone->progress}%
308351
</div>
309352
</td>
310-
<td>{$milestone->rewardName}</td>
353+
<td>
354+
{$milestone->rewardName}
355+
{if $milestone->rewardType === 1 && $milestone->rewardExists}
356+
<img src="{$milestone->rewardImage}" alt="{$milestone->rewardName}" style="max-width:100px; max-height:100px;" />
357+
{/if}
358+
</td>
311359
<td>
312360
{if $milestone->rewardGiven}
313361
{translate text="Reward Given" isPublicFacing=true}

code/web/services/MyAccount/MyCampaigns.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,20 @@ function getCampaigns() {
5858

5959
//Find out if user is enrolled in campaign
6060
$campaign->enrolled = $campaign->isUserEnrolled($userId);
61-
6261
//Find out if campaign is active
6362
$campaign->isActive = isset($activeCampaigns[$campaignId]);
6463

6564
//Find out if campaign in upcoming
6665
$campaign->isUpcoming = isset($upcomingCampaigns[$campaignId]);
6766

6867
//Get campaign reward name
69-
$campaign->rewardName = $campaign->getRewardName();
68+
$rewardDetails = $campaign->getRewardDetails();
69+
if ($rewardDetails) {
70+
$campaign->rewardName = $rewardDetails['name'];
71+
$campaign->rewardType = $rewardDetails['rewardType'];
72+
$campaign->badgeImage = $rewardDetails['badgeImage'];
73+
$campaign->rewardExists = $rewardDetails['rewardExists'];
74+
}
7075

7176
// if ($campaign->enrolled) {
7277
//Fetch milestones for this campaign

code/web/sys/Community/Campaign.php

+23-2
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,16 @@ public function getMilestones(){
274274
return $this->_availableMilestones;
275275
}
276276

277-
public function getRewardName() {
277+
public function getRewardDetails() {
278278
$reward = new Reward();
279279
$reward->id = $this->campaignReward;
280280
if ($reward->find(true)) {
281-
return $reward->name;
281+
return [
282+
'name' => $reward->name,
283+
'rewardType' => $reward->rewardType,
284+
'badgeImage' => $reward->getDisplayUrl(),
285+
'rewardExists' => !empty($reward->badgeImage),
286+
];
282287
}
283288
return null;
284289
}
@@ -592,11 +597,27 @@ public function getPastCampaigns(int $userId): array {
592597
$campaignReward = new Reward();
593598
$campaignReward->id = $campaign->campaignReward;
594599
if ($campaignReward->find(true)) {
600+
$pastCampaignList[$campaign->id]->rewardId = $campaignReward->id;
595601
$pastCampaignList[$campaign->id]->rewardName = $campaignReward->name;
602+
$pastCampaignList[$campaign->id]->rewardType = $campaignReward->rewardType;
603+
$pastCampaignList[$campaign->id]->rewardImage = $campaignReward->getDisplayUrl();
604+
if (!empty($campaignReward->badgeImage)) {
605+
$pastCampaignList[$campaign->id]->rewardExists = true;
606+
}
596607
}
597608

598609
// Fetch campaign milestones and their rewards using mapping
599610
$milestones = CampaignMilestone::getMilestoneByCampaign($campaign->id);
611+
// foreach ($milestones as $milestone) {
612+
// $milestoneReward = new Reward();
613+
// $milestoneReward->id = $milestone->campaignReward;
614+
// if ($milestoneReward->find(true)) {
615+
// $milestone->rewardName = $milestoneReward->name;
616+
// $milestone->rewardType = $milestone->rewardType;
617+
// $milestone->rewardImage = $milestoneReward->getDisplayUrl();
618+
// $milestone->rewardExists = !empty($milestoneReward->badgeImage);
619+
// }
620+
// }
600621
$pastCampaignList[$campaign->id]->milestones = $milestones;
601622

602623
// Check if user is enrolled

code/web/sys/Community/CampaignMilestone.php

+7
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ public static function getMilestoneByCampaign($campaignId) {
9797
$reward->id = $rewardId;
9898
if ($reward->find(true)) {
9999
$milestoneObj->rewardName = $reward->name;
100+
$milestoneObj->rewardType = $reward->rewardType;
101+
$milestoneObj->rewardImage = $reward->getDisplayUrl();
102+
if (!empty($reward->badgeImage)) {
103+
$milestoneObj->rewardExists = true;
104+
} else {
105+
$milestoneObj->rewardExists = false;
106+
}
100107
}
101108
}
102109
$milestones[] = $milestoneObj;

code/web/sys/Community/Reward.php

+6
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ public function getDisplayUrl(): string {
6060
return '/Community/ViewImage?size=' .$size . '&id=' . $this->id;
6161
}
6262

63+
public function getShareUrl(): string {
64+
global $serverName;
65+
$size = 'full';
66+
return 'http://' . $serverName . '/Community/ViewImage?size=' . $size . '&id=' . $this->id;
67+
}
68+
6369
public function uploadImage() {
6470
if (!empty($this->badgeImage)) {
6571
global $serverName;

0 commit comments

Comments
 (0)