/demos/WoWAchievements.php
PHP | 195 lines | 175 code | 16 blank | 4 comment | 4 complexity | 30b0d8fb096b4b2fc5743393dfef1de9 MD5 | raw file
- <?php
- include dirname(__DIR__) . '/autoload_register.php';
- ?>
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Achievements Demo</title>
- </head>
- <style type="text/css" media="screen">
- body{color:#444;background:#ddd;font:normal 14px/20px 'Helvetica Neue',Helvetica,Arial,sans-serif}
- a{color:#82bd1a;text-decoration:none}
- a:hover{text-decoration:underline}
- article a{font-weight:bold}
- p,dl{margin:0 0 15px}
- h1,h2,h3{color:#555;margin:0 0 30px}
- h1{font-size:28px}
- h2{font-size:21px}
- h3{font-size:17px}
- hgroup h1{margin:0 0 15px}
- p:last-child,dl:last-child{margin:0}
- #main{width:800px;margin:75px auto}
- #lib{font-size:40px}
- #lib a{color:#444}
- #lib a:hover,#lib a:focus{color:#82bd1a;text-decoration:none}
- footer{clear:both;color:#999;font-size:11px}
- section>section{margin:0;width:800px}
- article{background:#fff;margin-bottom:25px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.25);-moz-box-shadow:0 0 3px rgba(0,0,0,.25);-o-box-shadow:0 0 3px rgba(0,0,0,.25);box-shadow:0 0 3px rgba(0,0,0,.25);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}
- section>ul{margin:0;padding:0;list-style:none;font-weight:bold}
- header>section{top:0;right:2px;float:right;position:relative}
- section>ul>li{font-size:13px;margin-left:5px;display:inline-block}
- .nav-space{margin-left:25px}
- nav a,section>ul>li>a{color:#eee;line-height:1;background:#888;padding:4px 7px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}
- .inner{padding:30px}
- section>ul>li>a:hover,section>ul>li>a:focus{color:#eee;background:#82bd1a;text-decoration:none}
- table{width:100%;border-spacing:0;border-collapse:collapse;margin-bottom:25px}
- table:last-of-type{margin:0}
- th{font-weight:bold}
- th,td{padding:4px 7px;text-align:right}
- td{border-top:1px solid #d0d0d0}
- tr:hover{background:#f5f5f5}
- tr tr:hover{background:#e9e9e9}
- table.center th,table.center td{text-align:center}
- table th:last-child,table td:last-child{text-align:left}
- </style>
- <body>
- <div id="main">
- <header>
- <section>
- <ul>
- <li>Docs:</li>
- <li><a href="http://coss.github.com/bnetlib/api" title="API Documentation">API</a></li>
- <li><a href="http://coss.github.com/bnetlib" title="End User Documentation">End-User</a></li>
- <li class="nav-space">Downlaod:</li>
- <li><a href="https://github.com/coss/bnetlib/zipball/master" title="Download as .zip">Zip</a></li>
- <li><a href="https://github.com/coss/bnetlib/tarball/master" title="Download as .tar.gz">Tar</a></li>
- <li class="nav-space">Actions:</li>
- <li><a href="https://github.com/coss/bnetlib" title="Fork bnetlib on GitHub">Fork</a></li>
- <li><a href="https://github.com/coss/bnetlib/toggle_watch" title="Watch bnetlib on GitHub">Watch</a></li>
- <li><a href="https://github.com/coss/bnetlib/issues" title="Report an Issue">Issues</a></li>
- </ul>
- </section>
- <h1 id="lib"><a href="http://coss.github.com/bnetlib" title="End User Documentation">bnetlib</a></h1>
- </header>
- <section>
- <section>
- <article>
- <div class="inner">
- <h1>Achievements Demo</h1>
- <?php
- use bnetlib\Locale\Locale;
- use bnetlib\Connection\Stub;
- use bnetlib\WorldOfWarcraft;
- $locale = new Locale(Stub::LOCALE_GB, WorldOfWarcraft::SHORT_NAME);
- $wow = new WorldOfWarcraft(new Stub());
- $wow->getConnection()->setOptions(array(
- 'defaults' => array(
- 'region' => Stub::REGION_EU
- )
- ));
- $wow->getServiceLocator()->setLocale($locale);
- $achievement = $wow->getAchievement(array('id' => 12345));
- $achievementData = $wow->getCharacterAchievements();
- printf('<h2>%s</h2>', $achievement->getName());
- echo '<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody>';
- $criteriaString = '<table><thead><tr><th>Id</th><th>Description</th></tr></thead><tbody>';
- foreach ($achievement->getCriteria() as $criteria) {
- $criteriaString .= sprintf(
- '<tr><td>%d</td><td>%s</td></tr>',
- $criteria->getId(),
- $criteria->getDescription()
- );
- }
- $criteriaString .= '</tbody></table>';
- if ($achievement->hasRewardItems()) {
- $rewardString = '<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody>';
- foreach ($achievement->getRewardItems() as $item) {
- $rewardString .= sprintf(
- '<tr><td>Id</td><td>%d</td></tr>',
- $item->getId()
- );
- $rewardString .= sprintf(
- '<tr><td>Name</td><td>%s</td></tr>',
- $item->getName()
- );
- $rewardString .= sprintf(
- '<tr><td>Icon</td><td>%s</td></tr>',
- $item->getIcon()
- );
- $rewardString .= sprintf(
- '<tr><td>Quality</td><td>%s (Level: %d)</td></tr>',
- $item->getQualityLocale(),
- $item->getQuality()
- );
- $rewardString .= sprintf(
- '<tr><td>Tooltip</td><td>%s</td></tr>',
- print_r($item->getTooltipParams(), true)
- );
- }
- $rewardString .= '</tbody></table>';
- } else {
- $rewardString = '';
- }
- echo '<tr>';
- echo '<td>Id</td>';
- printf('<td>%d</td>', $achievement->getId());
- echo '</tr><tr>';
- echo '<td>Points</td>';
- printf('<td>%d</td>', $achievement->getPoints());
- echo '</tr><tr>';
- echo '<td>Description</td>';
- printf('<td>%s</td>', $achievement->getDescription());
- echo '</tr><tr>';
- echo '<td>Icon</td>';
- printf('<td>%s</td>', $achievement->getIcon());
- echo '</tr><tr>';
- echo '<td>Criteria</td>';
- printf('<td>%s</td>', $criteriaString);
- echo '</tr><tr>';
- echo '<td>Reward String</td>';
- printf('<td>%s</td>', $achievement->getReward());
- echo '</tr><tr>';
- echo '<td>Reward Item</td>';
- printf('<td>%s</td>', $rewardString);
- echo '</tr>';
- echo '</tbody></table>';
- echo '<h2>Character Achievements</h2>';
- echo '<table class="center"><thead><tr><th>Id</th><th>Points</th><th>Criteria</th><th>';
- echo 'Reward</th><th>Item</th><th class="left">Name</th></tr></thead><tbody>';
- $listAchievements = function ($av) use (&$listAchievements) {
- if ($av->isAchievement()) {
- echo '<tr>';
- printf('<td>%d</td>', $av->getId());
- printf('<td>%d</td>', $av->getPoints());
- printf('<td>%s</td>', ($av->hasCriteria()) ? 'Yes' : 'No');
- printf('<td>%s</td>', ($av->hasReward()) ? 'Yes' : 'No');
- printf('<td>%s</td>', ($av->hasRewardItem()) ? 'Yes' : 'No');
- printf('<td class="left">%s</td>', $av->getName());
- echo '</tr>';
- } else {
- foreach ($av as $sAv) {
- $listAchievements($sAv);
- }
- }
- };
- foreach ($achievementData as $av) {
- $listAchievements($av);
- }
- echo '</tbody></table>';
- ?>
- </div>
- </article>
- </section>
- <footer>
- Š 2012 Eric Boh. All rights reserved.
- </footer>
- </div>
- </body>
- </html>