This repository has been archived by the owner on May 5, 2023. It is now read-only.
/
helper.php
executable file
·61 lines (49 loc) · 2.13 KB
/
helper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
/**
* @author Branko Wilhelm <branko.wilhelm@gmail.com>
* @link http://www.z-index.net
* @copyright (c) 2011 - 2015 Branko Wilhelm
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die;
class ModWowLatestGuildAchievementsHelper extends WoWModuleAbstract
{
protected function getInternalData()
{
$wow = WoW::getInstance();
try {
$adapter = $wow->getAdapter('WoWAPI');
$result = $adapter->getData('guild');
} catch (Exception $e) {
return $e->getMessage();
}
$achievements = array();
foreach ($result->body->achievements->achievementsCompleted as $key => $achievement) {
$achievements[$achievement] = new stdClass;
$achievements[$achievement]->timestamp = $result->body->achievements->achievementsCompletedTimestamp[$key];
}
arsort($achievements);
$achievements = array_slice($achievements, 0, $this->params->module->get('rows', 10) ? $this->params->module->get('rows', 10) : count($achievements), true);
foreach ($achievements as $key => $achievement) {
try {
$result = $adapter->getAchievement($key);
} catch (Exception $e) {
unset($achievements[$key]);
continue;
}
$achievements[$key]->id = $key;
$achievements[$key]->name = $result->body->title;
$achievements[$key]->image = 'http://media.blizzard.com/wow/icons/18/' . $result->body->icon . '.jpg';
$achievements[$key]->link = $wow->getBattleNetUrl() . 'achievement#15080:a' . $key; // TODO 15080 ??
$achievements[$key]->link = $this->link($achievements[$key]);
$achievements[$key]->raw = $result->body;
}
return $achievements;
}
private function link(stdClass $achievement)
{
$sites['battle.net'] = $achievement->link;
$sites['wowhead.com'] = 'http://' . $this->params->global->get('locale') . '.wowhead.com/achievement=' . $achievement->id;
return $sites[$this->params->global->get('link')];
}
}