PageRenderTime 47ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/demos/WoWAchievements.php

https://github.com/bforchhammer/bnetlib
PHP | 195 lines | 175 code | 16 blank | 4 comment | 4 complexity | 30b0d8fb096b4b2fc5743393dfef1de9 MD5 | raw file
  1. <?php
  2. include dirname(__DIR__) . '/autoload_register.php';
  3. ?>
  4. <!doctype html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title>Achievements Demo</title>
  9. </head>
  10. <style type="text/css" media="screen">
  11. body{color:#444;background:#ddd;font:normal 14px/20px 'Helvetica Neue',Helvetica,Arial,sans-serif}
  12. a{color:#82bd1a;text-decoration:none}
  13. a:hover{text-decoration:underline}
  14. article a{font-weight:bold}
  15. p,dl{margin:0 0 15px}
  16. h1,h2,h3{color:#555;margin:0 0 30px}
  17. h1{font-size:28px}
  18. h2{font-size:21px}
  19. h3{font-size:17px}
  20. hgroup h1{margin:0 0 15px}
  21. p:last-child,dl:last-child{margin:0}
  22. #main{width:800px;margin:75px auto}
  23. #lib{font-size:40px}
  24. #lib a{color:#444}
  25. #lib a:hover,#lib a:focus{color:#82bd1a;text-decoration:none}
  26. footer{clear:both;color:#999;font-size:11px}
  27. section>section{margin:0;width:800px}
  28. 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}
  29. section>ul{margin:0;padding:0;list-style:none;font-weight:bold}
  30. header>section{top:0;right:2px;float:right;position:relative}
  31. section>ul>li{font-size:13px;margin-left:5px;display:inline-block}
  32. .nav-space{margin-left:25px}
  33. 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}
  34. .inner{padding:30px}
  35. section>ul>li>a:hover,section>ul>li>a:focus{color:#eee;background:#82bd1a;text-decoration:none}
  36. table{width:100%;border-spacing:0;border-collapse:collapse;margin-bottom:25px}
  37. table:last-of-type{margin:0}
  38. th{font-weight:bold}
  39. th,td{padding:4px 7px;text-align:right}
  40. td{border-top:1px solid #d0d0d0}
  41. tr:hover{background:#f5f5f5}
  42. tr tr:hover{background:#e9e9e9}
  43. table.center th,table.center td{text-align:center}
  44. table th:last-child,table td:last-child{text-align:left}
  45. </style>
  46. <body>
  47. <div id="main">
  48. <header>
  49. <section>
  50. <ul>
  51. <li>Docs:</li>
  52. <li><a href="http://coss.github.com/bnetlib/api" title="API Documentation">API</a></li>
  53. <li><a href="http://coss.github.com/bnetlib" title="End User Documentation">End-User</a></li>
  54. <li class="nav-space">Downlaod:</li>
  55. <li><a href="https://github.com/coss/bnetlib/zipball/master" title="Download as .zip">Zip</a></li>
  56. <li><a href="https://github.com/coss/bnetlib/tarball/master" title="Download as .tar.gz">Tar</a></li>
  57. <li class="nav-space">Actions:</li>
  58. <li><a href="https://github.com/coss/bnetlib" title="Fork bnetlib on GitHub">Fork</a></li>
  59. <li><a href="https://github.com/coss/bnetlib/toggle_watch" title="Watch bnetlib on GitHub">Watch</a></li>
  60. <li><a href="https://github.com/coss/bnetlib/issues" title="Report an Issue">Issues</a></li>
  61. </ul>
  62. </section>
  63. <h1 id="lib"><a href="http://coss.github.com/bnetlib" title="End User Documentation">bnetlib</a></h1>
  64. </header>
  65. <section>
  66. <section>
  67. <article>
  68. <div class="inner">
  69. <h1>Achievements Demo</h1>
  70. <?php
  71. use bnetlib\Locale\Locale;
  72. use bnetlib\Connection\Stub;
  73. use bnetlib\WorldOfWarcraft;
  74. $locale = new Locale(Stub::LOCALE_GB, WorldOfWarcraft::SHORT_NAME);
  75. $wow = new WorldOfWarcraft(new Stub());
  76. $wow->getConnection()->setOptions(array(
  77. 'defaults' => array(
  78. 'region' => Stub::REGION_EU
  79. )
  80. ));
  81. $wow->getServiceLocator()->setLocale($locale);
  82. $achievement = $wow->getAchievement(array('id' => 12345));
  83. $achievementData = $wow->getCharacterAchievements();
  84. printf('<h2>%s</h2>', $achievement->getName());
  85. echo '<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody>';
  86. $criteriaString = '<table><thead><tr><th>Id</th><th>Description</th></tr></thead><tbody>';
  87. foreach ($achievement->getCriteria() as $criteria) {
  88. $criteriaString .= sprintf(
  89. '<tr><td>%d</td><td>%s</td></tr>',
  90. $criteria->getId(),
  91. $criteria->getDescription()
  92. );
  93. }
  94. $criteriaString .= '</tbody></table>';
  95. if ($achievement->hasRewardItems()) {
  96. $rewardString = '<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody>';
  97. foreach ($achievement->getRewardItems() as $item) {
  98. $rewardString .= sprintf(
  99. '<tr><td>Id</td><td>%d</td></tr>',
  100. $item->getId()
  101. );
  102. $rewardString .= sprintf(
  103. '<tr><td>Name</td><td>%s</td></tr>',
  104. $item->getName()
  105. );
  106. $rewardString .= sprintf(
  107. '<tr><td>Icon</td><td>%s</td></tr>',
  108. $item->getIcon()
  109. );
  110. $rewardString .= sprintf(
  111. '<tr><td>Quality</td><td>%s (Level: %d)</td></tr>',
  112. $item->getQualityLocale(),
  113. $item->getQuality()
  114. );
  115. $rewardString .= sprintf(
  116. '<tr><td>Tooltip</td><td>%s</td></tr>',
  117. print_r($item->getTooltipParams(), true)
  118. );
  119. }
  120. $rewardString .= '</tbody></table>';
  121. } else {
  122. $rewardString = '';
  123. }
  124. echo '<tr>';
  125. echo '<td>Id</td>';
  126. printf('<td>%d</td>', $achievement->getId());
  127. echo '</tr><tr>';
  128. echo '<td>Points</td>';
  129. printf('<td>%d</td>', $achievement->getPoints());
  130. echo '</tr><tr>';
  131. echo '<td>Description</td>';
  132. printf('<td>%s</td>', $achievement->getDescription());
  133. echo '</tr><tr>';
  134. echo '<td>Icon</td>';
  135. printf('<td>%s</td>', $achievement->getIcon());
  136. echo '</tr><tr>';
  137. echo '<td>Criteria</td>';
  138. printf('<td>%s</td>', $criteriaString);
  139. echo '</tr><tr>';
  140. echo '<td>Reward String</td>';
  141. printf('<td>%s</td>', $achievement->getReward());
  142. echo '</tr><tr>';
  143. echo '<td>Reward Item</td>';
  144. printf('<td>%s</td>', $rewardString);
  145. echo '</tr>';
  146. echo '</tbody></table>';
  147. echo '<h2>Character Achievements</h2>';
  148. echo '<table class="center"><thead><tr><th>Id</th><th>Points</th><th>Criteria</th><th>';
  149. echo 'Reward</th><th>Item</th><th class="left">Name</th></tr></thead><tbody>';
  150. $listAchievements = function ($av) use (&$listAchievements) {
  151. if ($av->isAchievement()) {
  152. echo '<tr>';
  153. printf('<td>%d</td>', $av->getId());
  154. printf('<td>%d</td>', $av->getPoints());
  155. printf('<td>%s</td>', ($av->hasCriteria()) ? 'Yes' : 'No');
  156. printf('<td>%s</td>', ($av->hasReward()) ? 'Yes' : 'No');
  157. printf('<td>%s</td>', ($av->hasRewardItem()) ? 'Yes' : 'No');
  158. printf('<td class="left">%s</td>', $av->getName());
  159. echo '</tr>';
  160. } else {
  161. foreach ($av as $sAv) {
  162. $listAchievements($sAv);
  163. }
  164. }
  165. };
  166. foreach ($achievementData as $av) {
  167. $listAchievements($av);
  168. }
  169. echo '</tbody></table>';
  170. ?>
  171. </div>
  172. </article>
  173. </section>
  174. <footer>
  175. Š 2012 Eric Boh. All rights reserved.
  176. </footer>
  177. </div>
  178. </body>
  179. </html>