PageRenderTime 43ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/nacridan/conquest/cqalias.inc.php

https://gitlab.com/nacridan/Nacridan
PHP | 207 lines | 195 code | 12 blank | 0 comment | 5 complexity | 91fbcf41f7e626536122776961d922b8 MD5 | raw file
  1. <?php
  2. DEFINE("MAXCONTACT", 40);
  3. class CQAlias extends HTMLObject
  4. {
  5. public $db;
  6. public $curplayer;
  7. public $nacridan;
  8. public function CQAlias($nacridan, $db)
  9. {
  10. $this->db = $db;
  11. $this->nacridan = $nacridan;
  12. $this->curplayer = $this->nacridan->loadCurSessPlayer($db);
  13. }
  14. public function toString()
  15. {
  16. $curplayer = $this->curplayer;
  17. $db = $this->db;
  18. $id = $curplayer->get("id");
  19. $err = "";
  20. $aliasContent = "";
  21. $aliasName = "";
  22. if (isset($_POST["Del"])) {
  23. $err = $this->deleteAlias($db);
  24. }
  25. if (isset($_POST["Edit"])) {
  26. if (isset($_POST["check"][0])) {
  27. $dbs = new DBCollection("SELECT name,alias FROM MailAlias WHERE id_Player=" . $id . " AND id=\"" . $_POST["check"][0] . "\"", $db);
  28. if (! $dbs->eof()) {
  29. $aliasName = $dbs->get("name");
  30. $arr = array_keys(unserialize($dbs->get("alias")));
  31. $aliasContent = "";
  32. foreach ($arr as $value)
  33. $aliasContent .= $value . ",";
  34. }
  35. }
  36. }
  37. if (isset($_POST["Add"])) {
  38. $err = $this->addAlias($id, $_POST["AliasName"], $_POST["AliasContent"], $db);
  39. }
  40. $str = "<form name='form' method='POST' action='" . CONFIG_HOST . "/conquest/conquest.php?center=search' target='_self'>";
  41. $str .= "<table class='maintable centerareawidth'>";
  42. $str .= "<tr><td class='mainbgtitle'>";
  43. $str .= "<b><h1>" . $curplayer->get('name') . "</h1></b></td>";
  44. $str .= "</tr>";
  45. $str .= "<tr><td class='mainbgtitle tabmenu'>" . "<label>Rechercher : <input type='text' name='query' size='20px'/> " . "</label>
  46. <input id='Search' type='submit' name='Search' value='" . localize("Recherche") . "' />
  47. <span class='mainbgtitle' style='font-size: 10px;'>&nbsp;&nbsp;&nbsp;&nbsp; Attention la recherche ne s'effectue pas dans les alertes.</span></td></tr>";
  48. $str .= "</table>";
  49. $str .= "</form>\n";
  50. $str .= "<form name='form' method='POST' action='" . CONFIG_HOST . "/conquest/conquest.php?center=alias' target='_self'>";
  51. $str .= "<table class='maintable centerareawidth'>";
  52. $str .= "<tr>";
  53. $str .= "<td class='mainbgtitle'><b>" . localize('M E S S A G E R I E') . "</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class='mainerror'>" . $err . "</span>";
  54. $str .= "</td>";
  55. $str .= "</tr>";
  56. $str .= "<tr>";
  57. $str .= "<td class='mainbgtitle'>";
  58. $str .= "<a href='../conquest/conquest.php?center=compose' class='tabmenu'>" . localize('Composer un Message') . "</a> | ";
  59. $str .= "<a href='../conquest/conquest.php?center=mail&mail=1' class='tabmenu'>" . localize('Message(s) Reçu(s)') . "</a> | ";
  60. $str .= "<a href='../conquest/conquest.php?center=mail&mail=2' class='tabmenu'>" . localize('Message(s) Envoyé(s)') . "</a> | ";
  61. $str .= "<a href='../conquest/conquest.php?center=contact' class='tabmenu'>" . localize('Contacts') . " </a> |\n";
  62. $str .= "<a href='../conquest/conquest.php?center=alias' class='tabmenu'>" . localize('Alias') . " </a> |\n";
  63. $str .= "<a href='../conquest/conquest.php?center=archive' class='tabmenu'>" . localize('Archive(s)') . " </a>\n";
  64. $str .= "</td>\n";
  65. $str .= "</tr>\n";
  66. $str .= "</table>\n";
  67. $str .= "<table class='maintable centerareawidth'><tr><td class='mainbglabel' width='150px'><b>" . localize('Nom de L\'Alias :') . "</b></td><td>\n";
  68. $str .= "<input type='text' id='Name' name='AliasName' value='" . htmlspecialchars($aliasName, ENT_QUOTES, 'UTF-8') . "' style='width:450px;'></td></tr>";
  69. $str .= "<tr><td class='mainbglabel' width='150px' valign='top'><b>" . localize('Destinataire :') . "</b></td><td class='mainbgtitle'>";
  70. $dbp = new DBCollection("SELECT id_Player\$friend,name FROM MailContact LEFT JOIN Player ON id_Player\$friend=Player.id WHERE id_Player=" . $curplayer->get("id"), $db, 0, 0);
  71. $item[] = array(
  72. localize("-- Le(s) Contact(s) Enregistré(s)--") => - 1
  73. );
  74. while (! $dbp->eof()) {
  75. $item[] = array(
  76. $dbp->get("name") => $dbp->get("id_Player\$friend")
  77. );
  78. $dbp->next();
  79. }
  80. $str .= "<select id='DestDrop' class='cqselector' style='width:250px;' name='DestDrop' onChange='javascript:addDest(\"AliasContent\",this,\"" . localize("Pour limiter le SPAM, le nombre de destinaire est limité à 10") . "\")'>";
  81. $str .= "<option value='0' selected='selected'>" . localize('-- Choisissez un destinataire --') . "</option>";
  82. foreach ($item as $arr) {
  83. foreach ($arr as $key => $val) {
  84. if ($val == - 1)
  85. $str .= "<optgroup class='group' label='" . $key . "' />";
  86. else
  87. $str .= "<option value='" . $val . "'>" . $key . "</option>";
  88. }
  89. }
  90. $str .= "</select><br/>";
  91. $str .= "(" . localize('Le nom de chaque destinataire doit être séparé par une virgule') . ")<br/>";
  92. $str .= "<tr><td class='mainbglabel' width='150px'><b>" . localize('Contenu de l\'Alias :') . "</b></td><td class='mainbgtitle'><textarea id='AliasContent' style='width:450px;' name='AliasContent' rows='5' cols='40'>" . htmlspecialchars($aliasContent, ENT_QUOTES, 'UTF-8') . "</textarea></td></tr>";
  93. $str .= "</table>";
  94. $str .= "<input id='Add' type='submit' name='Add' value='" . localize('Créer / Mise à Jours') . "' />";
  95. $str .= "<br/><br/><br/><br/>";
  96. $str .= "<table class='maintable centerareawidth'>\n";
  97. $str .= "<tr>\n";
  98. $str .= "<td width='30px'><a href='#' class='all' onclick=\"invertCheckboxes('form'); return false;\"><img src='../pics/misc/all.gif' style='border: 0' /></a></td>\n";
  99. $str .= "<td class='mainbglabel'>" . localize("Nom de L'Alias") . "</td>\n";
  100. $str .= "</tr>\n";
  101. $str .= "</table>\n";
  102. $str .= "<table class='maintable centerareawidth'>\n";
  103. $dbc = new DBCollection("SELECT MailAlias.id,id_Player,alias,name FROM MailAlias WHERE id_Player =" . $id, $db);
  104. $data = array();
  105. while (! $dbc->eof()) {
  106. $alias = $dbc->get("name");
  107. $arr = array_keys(unserialize($dbc->get("alias")));
  108. $body = "";
  109. foreach ($arr as $value)
  110. $body .= $value . " / ";
  111. $data[] = array(
  112. "id" => $dbc->get("id"),
  113. "name" => $alias . " : " . $body
  114. );
  115. $dbc->next();
  116. }
  117. $cpt = 0;
  118. foreach ($data as $arr) {
  119. $str .= sprintf("<tr><td class='mainbgtitle' width='30px'><input name='check[]' type='checkbox' value='%s'/>", $arr["id"]);
  120. $str .= "</td>";
  121. $str .= sprintf("<td class='mainbgtitle' align='left'>%s</td></tr>\n", $arr["name"]);
  122. $cpt ++;
  123. }
  124. $str .= "</table>";
  125. if ($cpt) {
  126. $str .= "<input id='Edit' type='submit' name='Edit' value='" . localize("Editer") . "' />";
  127. $str .= "<input id='Del' type='submit' name='Del' value='" . localize("Effacer") . "' />";
  128. }
  129. $str .= "<input name='idform' type='hidden' value='" . getCurrentPageId() . "' />\n";
  130. $str .= "</form>\n";
  131. return $str;
  132. }
  133. public function addAlias($id, $name, $alias, $db)
  134. {
  135. require_once (HOMEPATH . "/factory/MailFactory.inc.php");
  136. $dest = explode(",", $alias);
  137. $cond = MailFactory::getNamesCond($dest, MAXCONTACT);
  138. $dbp = new DBCollection("SELECT id,name FROM Player WHERE " . $cond, $db);
  139. $dest = array();
  140. while (! $dbp->eof()) {
  141. $dest[$dbp->get("name")] = $dbp->get("id");
  142. $dbp->next();
  143. }
  144. $alias = serialize($dest);
  145. $dbs = new DBCollection("SELECT id FROM MailAlias WHERE id_Player=" . $id . " AND name=\"" . addslashes($name) . "\"", $db);
  146. if ($dbs->eof())
  147. $dbi = new DBCollection("INSERT INTO MailAlias (id_Player,name,alias) VALUES (\"" . $id . "\",\"" . addslashes($name) . "\",'" . addslashes($alias) . "');", $db, 0, 0, false);
  148. else
  149. $dbi = new DBCollection("UPDATE MailAlias SET alias='" . addslashes($alias) . "' WHERE id=" . $dbs->get("id"), $db, 0, 0, false);
  150. if ($dbi->errorNoDB() == 0) {
  151. return localize("Alias ajouté");
  152. } else {
  153. return localize("Erreur");
  154. }
  155. }
  156. public function deleteAlias($db)
  157. {
  158. $msgToDelete = "";
  159. if (isset($_POST["check"]))
  160. $msgToDelete = getSQLCondFromArray(quote_smart($_POST["check"]), "id", "OR");
  161. if ($msgToDelete != "") {
  162. $dbm = new DBCollection("DELETE FROM MailAlias WHERE " . $msgToDelete, $db, 0, 0, false);
  163. return localize("Alias effacé(s)");
  164. } else {
  165. return localize("Aucun Alias effacé");
  166. }
  167. }
  168. }
  169. ?>