PageRenderTime 65ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/nacridan/conquest/cqinfo.inc.php

https://gitlab.com/nacridan/Nacridan
PHP | 216 lines | 185 code | 30 blank | 1 comment | 48 complexity | 7a16d05c73fd94c6c5fedb51168ac162 MD5 | raw file
  1. <?php
  2. require_once (HOMEPATH . "/factory/PlayerFactory.inc.php");
  3. require_once (HOMEPATH . "/lib/utils.inc.php");
  4. class CQInfo extends HTMLObject
  5. {
  6. public $nacridan;
  7. public $curplayer;
  8. public $db;
  9. public function CQInfo($nacridan, $db)
  10. {
  11. $this->db = $db;
  12. $this->nacridan = $nacridan;
  13. $this->curplayer = $this->nacridan->loadCurSessPlayer($db);
  14. }
  15. public function getAskJoin($curplayer, $db)
  16. {
  17. $dbm = new DBCollection("SELECT count(id) AS count FROM TeamAskJoin WHERE id_Team=" . $curplayer->get("id_Team"), $db);
  18. $str = "";
  19. $add = "";
  20. if ($dbm->get("count") > 0) {
  21. $add = "!!!";
  22. $str .= localize('Nouveau(x) Demandeur(s) voulant rejoindre votre Ordre') . " : <b>" . $dbm->get("count") . " " . $add . "</b><br/>";
  23. }
  24. return $str;
  25. }
  26. public function toString()
  27. {
  28. $db = $this->db;
  29. $sess = $this->nacridan->sess;
  30. $auth = $this->nacridan->auth;
  31. $dbm = new DBCollection("SELECT Player.id_BasicRace, Player.id,Player.ap, Player.nextatb, Player.state, Player.inbuilding, Player.overload, count(Mail.id) AS count FROM Player LEFT JOIN Mail ON id_Player\$receiver = Player.id AND Mail.new=1 WHERE id_Member =" . $auth->auth["uid"] . " GROUP BY Player.id ORDER BY Player.id", $db);
  32. $dbmch = new DBCollection("SELECT Player.id,count(MailTrade.id) AS count FROM Player LEFT JOIN MailTrade ON id_Player\$receiver = Player.id AND MailTrade.new=1 WHERE id_Member =" . $auth->auth["uid"] . " GROUP BY Player.id ORDER BY Player.id", $db);
  33. $dbm2 = new DBCollection("SELECT Player.id,count(TeamAskJoin.id) AS count FROM Player LEFT JOIN Team ON Team.id_Player=Player.id LEFT JOIN TeamAskJoin ON TeamAskJoin.id_Team=Team.id WHERE id_Member =" . $auth->auth["uid"] . " GROUP BY Player.id ORDER BY Player.id", $db);
  34. $dbmalrt = new DBCollection("SELECT Player.id,count(MailAlert.id) AS count FROM Player LEFT JOIN MailAlert ON id_Player\$receiver = Player.id AND MailAlert.new=1 WHERE id_Member =" . $auth->auth["uid"] . " GROUP BY Player.id ORDER BY Player.id", $db);
  35. $players = $this->nacridan->loadSessPlayers();
  36. $i = 0;
  37. $str = displayActivePoll($auth->auth["uid"],$db);
  38. $str .= "<form name='form' method='POST' action='" . CONFIG_HOST . "/conquest/conquest.php?action=act" . "' target='_self'>";
  39. $button = 0;
  40. while (! $dbm->eof()) {
  41. $time = gmstrtotime($dbm->get("nextatb")) - date("I") * 3600;
  42. $curDate = (time());
  43. $activer = "";
  44. if ($sess->has("DLA" . $dbm->get("id"))) {
  45. $ap = $dbm->get("ap");
  46. if ($curDate > $time) {
  47. if ($this->curplayer->get("id") == $dbm->get("id")) {
  48. $activer = localize("Activer?&nbsp;&nbsp;&nbsp;&nbsp;") . "<input name='check" . $i . "' type='checkbox' value=" . $dbm->get("id") . ">";
  49. $button = 1;
  50. } else {
  51. $activer = localize("DLA activable");
  52. }
  53. }
  54. } else {
  55. $ap = localize("(session restreinte)");
  56. $activer = localize("Activer? &nbsp;&nbsp;&nbsp;&nbsp;") . "<input name='check" . $i . "' type='checkbox' value=" . $dbm->get("id") . ">";
  57. $button = 1;
  58. }
  59. $i ++;
  60. $str .= "<br/>\n";
  61. $str .= "<table class='maintable centerareawidth'>";
  62. $str .= "<tr><td colspan='3' class='mainbgtitle'><b>" . $players[$dbm->get("id")] . "</b></td></tr>";
  63. $day = localizedday(date("j M Y", $time));
  64. $hourstr = date("Y-m-d H:i:s", $time);
  65. // list($day,$hour)=preg_split(" ",$str);
  66. list ($daytmp, $hour) = explode(" ", $hourstr);
  67. if ($dbm->get("id_BasicRace") != 263 && $dbm->get("id_BasicRace") != 112) {
  68. $str .= "<tr><td class='mainbglabel cqinfotablecol1size'>&nbsp; Prochaine DLA </b></td><td class='mainbgbody'><b>" . $day . ", " . $hour . "</b></td><td>&nbsp;</td></tr>";
  69. $str .= "<tr><td class='mainbglabel cqinfotablecol1size'> &nbsp; " . localize('Nombre de PA disponible(s)') . "</td><td class='mainbgbody' width='40%'><b>" . $ap . "</b></td><td>" . $activer . "</td></tr>";
  70. }
  71. $dbv = new DBCollection("SELECT * FROM Equipment WHERE id_Player=" . $dbm->get("id") . " AND weared='YES' AND durability=0", $db);
  72. if ($dbv->count() == 1)
  73. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention ce personnage porte un équipement cassé !') . "</b></td></tr>";
  74. if ($dbv->count() > 1)
  75. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention ce personnage porte plusieurs équipements cassés !') . "</b></td></tr>";
  76. if ($dbm->get("state") == "creeping")
  77. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention ce personnage est entravé par un bolas !!!') . "</b></td>";
  78. if ($dbm->get("overload") == 1)
  79. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention ce personnage est en surcharge ! Il subira un malus de la moitié de ses PAs à la prochaine dla') . "</b></td></tr>";
  80. if ($dbm->get("overload") == 2)
  81. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention ce personnage est en lourde surcharge ! Il subira un malus des 3/4 de ses PAs à la prochaine dla') . "</b></td></tr>";
  82. $dbt = new DBCollection("SELECT Player.state FROM Player LEFT JOIN Caravan ON Caravan.id=Player.id_Caravan WHERE Caravan.id_Player=" . $dbm->get("id"), $db);
  83. if ($dbt->count() > 0 && $dbt->get("state") == "creeping")
  84. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention votre tortue est entravée par un bolas !') . " </b></td></tr>";
  85. $playerSrc = new Player();
  86. $playerSrc->load($dbm->get("id"), $db);
  87. if ((PlayerFactory::getIdArm($playerSrc, $db, 1) != 0) && ($dbm->get("inbuilding") != 0))
  88. $str .= "<tr><td colspan='3' class='mainbgbody cqinfotablecol1size'><b>&nbsp; " . localize('Attention, ce personnage se trouve dans un bâtiment l\'arme à la main.') . " </b></td></tr>";
  89. if ($dbm->get("count") > 0) {
  90. $add = "!!!";
  91. if ($dbm->get("count") == 1)
  92. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Message non lu') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbm->get("count") . " " . $add . "</b></td></tr>";
  93. else
  94. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Messages non lus') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbm->get("count") . " " . $add . "</b></td></tr>";
  95. }
  96. if ($dbmalrt->get("count") > 0) {
  97. $add = "!!!";
  98. if ($dbmalrt->get("count") == 1)
  99. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez une alerte en attente') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbmalrt->get("count") . " " . $add . "</b></td></tr>";
  100. else
  101. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez des alertes en attentes') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbmalrt->get("count") . " " . $add . "</b></td></tr>";
  102. }
  103. if ($dbmch->get("count") > 0) {
  104. $add = "!!!";
  105. if ($dbmch->get("count") == 1)
  106. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Message commercial non lu') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbmch->get("count") . " " . $add . "</b></td></tr>";
  107. else
  108. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Messages commerciaux non lus') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbmch->get("count") . " " . $add . "</b></td></tr>";
  109. }
  110. if ($dbm2->get("count") > 0) {
  111. $add = "!!!";
  112. if ($dbm2->get("count") == 1)
  113. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Nouveau Demandeur voulant rejoindre votre Ordre') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbm2->get("count") . " " . $add . "</b></tr>";
  114. else
  115. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Nouveau(x) Demandeur(s) voulant rejoindre votre Ordre') . "</b></td><td colspan='2' class='mainbgbody'><b>" . $dbm2->get("count") . " " . $add . "</b></tr>";
  116. }
  117. $unreadEvents = Event::getUnreadEventCount($playerSrc, $db);
  118. if ($unreadEvents > 0) {
  119. if ($this->curplayer->get('id') == $playerSrc->get('id')) {
  120. if ($unreadEvents == 1)
  121. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez un nouvel événement') . "</b></td><td colspan='2' class='mainbgbody'><a class='stylepc' href='".CONFIG_HOST . "/conquest/conquest.php?center=event'>Voir l'événement.</a></tr>";
  122. else
  123. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez de nouveaux événements') . "</b></td><td colspan='2' class='mainbgbody'><a class='stylepc' href='".CONFIG_HOST . "/conquest/conquest.php?center=event'>Voir les <b>".$unreadEvents."</b> évenements.</a></tr>";
  124. } else {
  125. if ($unreadEvents == 1)
  126. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez de nouveaux événements') . "</b></td><td colspan='2' class='mainbgbody'><b>Un</b> nouvel événement.</tr>";
  127. else
  128. $str .= "<tr><td class='mainbglabel'><b>&nbsp; " . localize('Vous avez de nouveaux événements') . "</b></td><td colspan='2' class='mainbgbody'><b>".$unreadEvents."</b> nouveaux événements.</tr>";
  129. }
  130. }
  131. $str .= "</table>";
  132. $dbm->next();
  133. $dbmch->next();
  134. $dbmalrt->next();
  135. $dbm2->next();
  136. }
  137. if ($button) {
  138. $str .= "<table class='maintable centerareasize'>";
  139. $str .= "<tr><td colspan='3' align='right'><input name='submitbt' type='submit' value='" . localize("Activer") . "'><input name='action' type='hidden' value='" . ATBON . "'></td></tr>";
  140. $str .= "</table>";
  141. }
  142. $str .= "<input name='idform' type='hidden' value='" . getCurrentPageId() . "' />\n";
  143. $str .= "</form>";
  144. $dbplayer = new DBCollection("SELECT Player.id,racename FROM Player WHERE status='PC' AND id_Member =" . $auth->auth["uid"], $db);
  145. $dbmax = new DBCollection("SELECT maxNbPlayers FROM Member WHERE id =" . $auth->auth["uid"], $db);
  146. if ($dbplayer->count() < $dbmax->get("maxNbPlayers")) {
  147. $str .= "<form name='form' method='POST' action='" . CONFIG_HOST . "/main/newcharacter.php' target='_self'>";
  148. $str .= "<table class='maintable centerareawidth'>";
  149. $str .= "<tr><td class='mainbglabel'><input name='submitbt' type='submit' value='Créer un personnage supplémentaire'>";
  150. $str .= "<input name='step' type='hidden' value='0' />\n";
  151. $str .= "</td></tr>";
  152. $str .= "</table>";
  153. $str .= "</form>";
  154. } elseif ($dbmax->get("maxNbPlayers") < 2) {
  155. $str .= "<table class='maintable centerareawidth'>";
  156. $str .= "<tr><td class='mainbglabel cqinfotablecol1size'><b>Soutenez l'association :</b> ";
  157. $str .= "</td> <td class='mainbgbody'> Obtenez un <a href='" . CONFIG_HOST . "/gg/ggsite/index.php?page=shop.ShopHome' class='stylepc' onclick='window.open(this.href); return false;'>personnage supplémentaire</a> ! </td></tr>";
  158. $str .= "</table>";
  159. }
  160. $dboption = new DBCollection("SELECT music FROM MemberOption WHERE id_Member =" . $auth->auth["uid"], $db);
  161. $music = $dboption->get("music");
  162. if ($music == 1) {
  163. $race = $this->curplayer->get("racename");
  164. $city = "Artasse";
  165. $playlist = getPlaylist();
  166. $str .= "<table class='maintable centerareawidth'>";
  167. $str .= "<tr><td class='mainbglabel cqinfotablecol1size'>Lecteur de musique <b>activé</b> !";
  168. $str .= "</td></tr></table>";
  169. $str .= "<script type='text/javascript' src='" . CONFIG_HOST . "/musicplayer/script.js'
  170. data-config='{\"skin\":\"skins/tunes/skin.css\",\"volume\":57,\"autoplay\":true,\"shuffle\":false,\"repeat\":1,\"placement\":\"top\",\"showplaylist\":false,\"playlist\":" . $playlist . "}' ></script>";
  171. } else {
  172. $str .= "<table class='maintable centerareawidth'>";
  173. $str .= "<tr><td class='mainbglabel cqinfotablecol1size'>Lecteur de musique <b>désactivé</b> !";
  174. $str .= "</td></tr></table>";
  175. }
  176. return $str;
  177. }
  178. public function render()
  179. {
  180. echo $this->toString();
  181. }
  182. }
  183. ?>