PageRenderTime 82ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/inc/account/account.pm.php

https://bitbucket.org/wopkevries/blizzlike-313-website
PHP | 328 lines | 304 code | 22 blank | 2 comment | 53 complexity | 984f19df7cb1fb51b808ba430e67e9d5 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. if (INCLUDED!==true) { include('index.htm'); exit; }
  3. parchup();
  4. title($_LANG['ACCOUNT']['PRIVATE_MESSAGES']);
  5. parchdown();
  6. parchup(true);
  7. if (isset($_SESSION['userid'])) {
  8. if ($_POST['send']=="true") {
  9. if (strlen($_POST['uto'])<3) {
  10. $haserrors = $_LANG['ACCOUNT']['MUST_TYPE_MEMBER_NAME'];
  11. } else {
  12. $query = mysql_query("SELECT fa.id_account as id_account, a.gmlevel as gmlvl, fa.enablepm as enablepm FROM account a LEFT JOIN (forum_accounts fa) ON a.id = fa.id_account WHERE LOWER(fa.displayname)=LOWER('".$_POST['uto']."')");
  13. $my = mysql_fetch_array($query);
  14. if (mysql_num_rows($query)==0) {
  15. $haserrors = $_LANG['ACCOUNT']['MEMBER_NOT_FOUND'];
  16. } else if ($my['id_account']==$_SESSION['userid']) {
  17. $haserrors = $_LANG['ACCOUNT']['CANT_SEND_TO_YOURSELF'];
  18. } else if (verifylevel($_SESSION['userid'])<$SETTING['USER_ENABLE_PM'] AND $SETTING['USER_ENABLE_PM']>=$my['gmlvl']) {
  19. $_LANG_msg = str_replace("USER_LEVEL_USER_ENABLE_PM",$USER_LEVEL[$SETTING['USER_ENABLE_PM']],$_LANG['ACCOUNT']['CANT_SEND_WITHOUT_PRIVILEGES']);
  20. $haserrors = $_LANG_msg;
  21. } else if ($my['enablepm']==0 AND verifylevel($_SESSION['userid'])<$SETTING['USER_ENABLE_PM']) {
  22. $haserrors = $_LANG['ACCOUNT']['MEMBER_W_MESSAGES_DISABLED'];
  23. } else {
  24. $queryb = mysql_query("SELECT id_account_to FROM forum_pm WHERE id_account_to='".$my['id_account']."' AND isdeleted!='".$my['id_account']."'") OR DIE (mysql_error());
  25. if (mysql_num_rows($queryb)>=50 AND '1'>$my['gmlvl']) {
  26. $haserrors = $_LANG['ACCOUNT']['MEMBER_W_MAX_INBOX'];
  27. }
  28. }
  29. }
  30. if (strlen($_POST['usu'])<3) {
  31. $haserrors .= $_LANG['ACCOUNT']['SUBJECT_CHAR_MORE_3'];
  32. }
  33. if (strlen($_POST['ume'])<5) {
  34. $haserrors .= $_LANG['ACCOUNT']['MEX_CHAR_MORE_5'];
  35. }
  36. if ($haserrors!='') {
  37. errborder($haserrors); remslashall();
  38. } else {
  39. $queryc = mysql_query("INSERT INTO forum_pm(id_account_to, id_account_from, subject, message, isread, date, hour, issignature, isbbcode) VALUES ('".$my['id_account']."','".$_SESSION['userid']."','".$_POST['usu']."','".$_POST['ume']."','0','".date('Y-m-d')."','".date('H:i:s')."','".$_POST['issigned']."','".$_POST['isbbcode']."')") or die (mysql_error());
  40. if ($queryc) {
  41. unset($_POST['send']);
  42. unset($_POST['uto']);
  43. unset($_POST['usu']);
  44. unset($_POST['ume']);
  45. goodborder($_LANG['ACCOUNT']['MEX_SENT_OK'].'<META HTTP-EQUIV=REFRESH CONTENT="2; URL=?n=account.pm&f=outbox">'); echo '<br>'; exit;
  46. } else {
  47. errborder ($_LANG['ACCOUNT']['MEX_SENT_KO']); echo '<br>';
  48. }
  49. }
  50. }
  51. if ($_REQUEST['t']=='delete' AND ($_REQUEST['f']=='inbox' or $_REQUEST['f']=='outbox')) {
  52. if ($_REQUEST['f']=='inbox') {
  53. $source = 'to';
  54. } else if ($_REQUEST['f']=='outbox') {
  55. $source = 'from';
  56. }
  57. for($i=0;$i<count($_POST['pmdelete']);$i++) {
  58. @mysql_query("UPDATE forum_pm SET isdeleted='".$_SESSION['userid']."' WHERE id_pm='".$_POST['pmdelete'][$i]."' AND id_account_".$source."='".$_SESSION['userid']."' AND isdeleted=0") or die (mysql_error());
  59. @mysql_query("DELETE FROM forum_pm WHERE id_pm='".$_POST['pmdelete'][$i]."' AND id_account_".$source."='".$_SESSION['userid']."' AND isdeleted!='".$_SESSION['userid']."' AND isdeleted!=0") or die (mysql_error());
  60. }
  61. } else if ($_REQUEST['t']=='cancel' AND $_REQUEST['f']=='outbox') {
  62. for($i=0;$i<count($_POST['pmdelete']);$i++) {
  63. @mysql_query("DELETE FROM forum_pm WHERE id_pm='".$_POST['pmdelete'][$i]."' AND id_account_from='".$_SESSION['userid']."' AND isread=0") or die (mysql_error());
  64. }
  65. }
  66. $YESNO = array('0' => 'No', '1' => 'Yes');
  67. ?>
  68. <style type="text/css" title="currentStyle" media="screen">
  69. .avatar-nav { width: 580px; height: 27px; position: relative; display: block; margin-top: 20px; }
  70. .avatar-nav span { font-size: 11px; }
  71. .avatar-nav ol { list-style: none; margin: 0; padding: 0; }
  72. .avatar-nav ol li { position: absolute; top: 0px; width: 104px; height: 30px; background: url('new-hp/images/forum/tab-nf.gif') no-repeat top right; padding: 5px 0 0 0; text-align: center; }
  73. .avatar-nav ol li.selected { background: url('new-hp/images/forum/tab-f.gif') no-repeat top right; z-index: 90; height: 28px; }
  74. .avatar-nav ol li.selected a, #avatar-nav ol li.selected a:active, #avatar-nav ol li.selected a:visited { color: white; }
  75. .avatar-nav ol li.tab-one { right: -10px; }
  76. .avatar-nav ol li.tab-two { right: 90px; }
  77. .avatar-nav ol li.tab-three { right: 190px; }
  78. .avatar-nav span.grey { color: #666666; }
  79. span.grey { color: grey; font-size: 12px; }
  80. span.white { color: white; font-size: 12px; }
  81. span.grey a { color: orange; font-size: 12px; }
  82. span.grey a:visited { color: orange; font-size: 12px; }
  83. span.grey a:hover { color: white; font-size: 12px; }
  84. span.grey a:active { color: orange; font-size: 12px; }
  85. .avatar-nav a, #avatar-nav a:visited, #avatar-nav a:active { text-decoration: none; }
  86. .avatar-nav a:hover { color: white; text-decoration: none; }
  87. .list-avatars { width: 600px; border: 1px solid #424242; display: table; background: black; padding: 7px; color: orange; }
  88. .list-avatars h1 { color: #FF9900; padding: 10px; font-size: 18px; font-family: Georgia, 'Times New Roman', Times, serif; font-weight: normal; }
  89. .list-avatars p { margin: 5px 0 0 0; font-size: 11px; }
  90. </style>
  91. <script type="text/javascript">
  92. //<![CDATA[
  93. function toggleAlliance(thisDirectory)
  94. {
  95. document.getElementById("seventyA").className="tab-three";
  96. document.getElementById("sixtyA").className="tab-two";
  97. document.getElementById("defaultA").className="tab-one";
  98. document.getElementById(thisDirectory).className = document.getElementById(thisDirectory).className + " selected";
  99. }
  100. //]]>
  101. </script>
  102. <table align=center>
  103. <tr>
  104. <td><?php
  105. $top .= '<div class="avatar-nav">
  106. <ol>
  107. <li id="seventyA" class="tab-three ';
  108. if ($_REQUEST['f']!='send' AND $_REQUEST['f']!='outbox') { $top .= 'selected'; }
  109. $top .= '"><span class="grey"><strong><a href="?n=account.pm">'.$_LANG['ACCOUNT']['INBOX'].'</a></span></strong></li>
  110. <li id="sixtyA" class="tab-two ';
  111. if ($_REQUEST['f']=='outbox') { $top .= 'selected'; }
  112. $top .= '"><strong><span class="grey"><strong><a href="?n=account.pm&f=outbox">'.$_LANG['ACCOUNT']['OUTBOX'].'</a></span></strong></li>
  113. <li id="defaultA" class="tab-one ';
  114. if ($_REQUEST['f']=='send') { $top .= 'selected'; }
  115. $top .= '"><strong><span class="grey"><a href="?n=account.pm&f=send">'.$_LANG['ACCOUNT']['SEND'].'</a></span></strong></li>
  116. </ol>
  117. </div>';
  118. echo $top; ?>
  119. <div class="list-avatars">
  120. <span class="grey">
  121. <?php
  122. switch($_REQUEST['f']) {
  123. case "send":
  124. if ($_POST['issigned']=='') { $_POST['issigned']='1'; }
  125. if ($_POST['isbbcode']=='') { $_POST['isbbcode']='1'; }
  126. ?><h1>Send</h1>
  127. <br><form method=post action="?n=account.pm&f=send" name="accpm">
  128. <input type=hidden name="send" value="true">
  129. <table align=center width = 98% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  130. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  131. <table border=0 cellspacing=0 cellpadding=4>
  132. <tr>
  133. <td width=120 align=right>
  134. <font face="arial,helvetica" size=-1><span><b>
  135. To:
  136. </span></b></font>
  137. </td>
  138. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td><input name="uto" value="<? echo $_REQUEST['to']; echo $_POST['uto'];?>" style = "Width:250" taborder=1 /></td><td valign = "top">
  139. &nbsp;<small>(<?php echo $_LANG['ACCOUNT']['ACC_DISPLAY_NAME']; ?>)</small>
  140. </td></tr></table></td>
  141. </tr>
  142. <tr>
  143. <td align=right>
  144. <font face="arial,helvetica" size=-1><span><b>
  145. Subject:
  146. </span></b></font>
  147. </td>
  148. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td><input name="usu" value="<? echo $_POST['usu'];?>" style = "Width:250" taborder=1 /></td><td valign = "top">
  149. </td></tr></table></td>
  150. </tr>
  151. <tr>
  152. <td align=right>
  153. <font face="arial,helvetica" size=-1><span><b>
  154. </span></b></font> </td>
  155. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  156. <? bbcode_toolbar('accpm.ume');?>
  157. </td><td valign = "top">
  158. </td></tr></table></td>
  159. </tr>
  160. <tr>
  161. <td align=right valign=top>
  162. <font face="arial,helvetica" size=-1><span><b>
  163. Message: </span></b></font> </td>
  164. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  165. <textarea name="ume" rows=10 cols=63><? echo $_POST['ume']; ?></textarea>
  166. </td><td valign = "top">
  167. </td></tr></table></td>
  168. </tr>
  169. <tr>
  170. <td align=right valign=top>
  171. <font face="arial,helvetica" size=-1><span><b>
  172. Enable BBCode: </span></b></font> </td>
  173. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  174. <select name="isbbcode">
  175. <option value="1" SELECTED><?php echo $_LANG['ACCOUNT']['YES']; ?>
  176. <option value="0"><?php echo $_LANG['ACCOUNT']['NO']; ?>
  177. </select>
  178. </td><td valign = "top">
  179. </td></tr></table></td>
  180. </tr>
  181. <tr>
  182. <td align=right valign=top>
  183. <font face="arial,helvetica" size=-1><span><b>
  184. Include Signature: </span></b></font> </td>
  185. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  186. <select name="issigned">
  187. <option value="1" SELECTED><?php echo $_LANG['ACCOUNT']['YES']; ?>
  188. <option value="0"><?php echo $_LANG['ACCOUNT']['NO']; ?>
  189. </select>
  190. </td><td valign = "top">
  191. </td></tr></table></td>
  192. </tr>
  193. <tr>
  194. <td align=center valign=top colspan=2>
  195. <br><input type=image SRC="shared/wow-com/images/buttons/button-continue.gif" name="Submit" alt="Send" Width="174" Height="46" Border=0 class="button" taborder=7 >
  196. </td>
  197. </tr>
  198. </table>
  199. </td></tr></table>
  200. </td></tr></table><br>
  201. <script>
  202. document.accpm.issigned.value="<? echo $_POST['issigned']; ?>";
  203. document.accpm.isbbcode.value="<? echo $_POST['isbbcode']; ?>";
  204. </script>
  205. </form><?
  206. break;
  207. case "outbox":
  208. $body .= '<h1>'.$_LANG['ACCOUNT']['OUTBOX'];
  209. if ($_REQUEST['pm']!='') {
  210. $query = mysql_query("SELECT *, a.displayname as dn, a.signature as signa FROM forum_pm p LEFT JOIN (forum_accounts a) ON p.id_account_to = a.id_account WHERE id_account_from='".$_SESSION['userid']."' AND isdeleted!='".$_SESSION['userid']."' AND id_pm='".$_REQUEST['pm']."' GROUP BY p.id_pm") or die (mysql_error());
  211. if (mysql_num_rows($query)!=0) {
  212. $row = mysql_fetch_array($query);
  213. $body .= ' - <span style="color: white">'.$row['subject'].'</span></h1><br>
  214. To: </span><span class="white">'.$row['dn'].' in '.$row['date'].' at '.$row['hour'].'<br><br>
  215. <span class="grey">'.$_LANG['ACCOUNT']['MESSAGE'].':<br>
  216. </span><span class="white">'.bbcode($row['message'],true,true,$row['isbbcode']).'<br><br>
  217. ';
  218. if ($row['issignature']=='1') { $row = mysql_fetch_array(mysql_query("SELECT a.signature as signa FROM forum_accounts a WHERE id_account='".$_SESSION['userid']."'")); $body .= '<img src="new-hp/images/pixel.gif" style="background-color: white;" width=100% height=1><br><div style="margin-top: 10px; width: 100%; min-height: 50px; max-height: 170px; overflow: auto;">'.bbcode($row['signa']).'</div>'; }
  219. } else {
  220. errborder($_LANG['ACCOUNT']['INVALID_MEX']);
  221. }
  222. } else {
  223. $query = mysql_query("SELECT *, DATE_FORMAT(CONVERT_TZ(CONCAT(`date`, ' ', `hour`), '".$GMT[$SETTING['WEB_GMT']][0]."', '".verifygmt($_SESSION['userid'])."'), '%Y-%m-%d at %h:%i %p') as `date`, a.displayname as dn FROM forum_pm p LEFT JOIN (forum_accounts a) ON p.id_account_to = a.id_account WHERE id_account_from='".$_SESSION['userid']."' AND isdeleted!='".$_SESSION['userid']."' GROUP BY p.id_pm ORDER BY isread ASC, date DESC, hour DESC") or die (mysql_error());
  224. if (mysql_num_rows($query)>0) {
  225. $body .= '</h1><br><form method=post action="?n=account.pm&f=outbox&t=delete" name="accpm"><table width=100%>
  226. <tr>
  227. <td width=30><span class="grey">To:</td>
  228. <td width=50%><span class="grey">Subject:</td>
  229. <td width=20><span class="grey">Date:</td>
  230. <td width=20><span class="grey">Read:</td>
  231. <td><input type=checkbox onclick="chgall(this)"></td>
  232. </tr>';
  233. while ($row=mysql_fetch_array($query)) {
  234. $body .= '<tr class=grey><td><span class="grey"><a href="#">'.$row['dn'].'</td><td><span class="grey"><a href="?n=account.pm&f=outbox&pm='.$row['id_pm'].'">'.$row['subject'].'</td><td><span class="grey">'.$row['date'].'</td><td><span class="grey">'.$YESNO[$row['isread']].'</td><td><input type=checkbox name="pmdelete[]" value="'.$row['id_pm'].'"></td>';
  235. }
  236. $body .= '</table><br>
  237. <div align=right><input type=submit onclick="document.accpm.action=\'?n=account.pm&f=outbox&t=cancel\'" value ="'.$_LANG['ACCOUNT']['CANCEL_SELECTED'].'">&nbsp;<input type=submit value ="'.$_LANG['ACCOUNT']['DELETE_SELECTED'].'"></div><form>';
  238. } else {
  239. $body .= '</h1><br>'.$_LANG['ACCOUNT']['NO_MEX_SENT'];
  240. }
  241. }
  242. break;
  243. case "inbox":
  244. default:
  245. $body .= '<h1>'.$_LANG['ACCOUNT']['INBOX'];
  246. if ($_REQUEST['pm']!='') {
  247. $query = mysql_query("SELECT *, a.displayname as dn, a.signature as signa FROM forum_pm p LEFT JOIN (forum_accounts a) ON p.id_account_from = a.id_account WHERE id_account_to='".$_SESSION['userid']."' AND isdeleted!='".$_SESSION['userid']."' AND id_pm='".$_REQUEST['pm']."'GROUP BY p.id_pm") or die (mysql_error());
  248. if (mysql_num_rows($query)!=0) {
  249. $row = mysql_fetch_array($query);
  250. $body .= ' - <span style="color: white">'.$row['subject'].'</span></h1><br>
  251. From: </span><span class="white">'.$row['dn'].' in '.$row['date'].' at '.$row['hour'].'<br><br>
  252. <span class="grey">'.$_LANG['ACCOUNT']['MESSAGE'].':<br>
  253. </span><span class="white">'.bbcode($row['message'],true,true,$row['isbbcode']).'<br><br>
  254. ';
  255. if ($row['issignature']=='1') { $body .= '<img src="new-hp/images/pixel.gif" style="background-color: white;" width=100% height=1><br><div style="margin-top: 10px; width: 100%; min-height: 50px; max-height: 170px; overflow: auto;">'.bbcode($row['signa']).'</div>'; }
  256. $query = mysql_query("UPDATE forum_pm SET isread='1' WHERE id_pm='".$row['id_pm']."'") or die (mysql_error());
  257. } else {
  258. errborder($_LANG['ACCOUNT']['INVALID_MEX']);
  259. }
  260. } else {
  261. $query = mysql_query("SELECT *, DATE_FORMAT(CONVERT_TZ(CONCAT(`date`, ' ', `hour`), '".$GMT[$SETTING['WEB_GMT']][0]."', '".verifygmt($_SESSION['userid'])."'), '%Y-%m-%d at %h:%i %p') as `date`, a.displayname as dn FROM forum_pm p LEFT JOIN (forum_accounts a) ON p.id_account_from = a.id_account WHERE id_account_to='".$_SESSION['userid']."' AND isdeleted!='".$_SESSION['userid']."' GROUP BY p.id_pm ORDER BY isread ASC, date DESC, hour DESC") or die (mysql_error());
  262. if (mysql_num_rows($query)>0) {
  263. $body .= '</h1><br><form method=post action="?n=account.pm&f=inbox&t=delete" name="accpm"><table width=100%>
  264. <tr>
  265. <td width=30><span class="grey">From:</td>
  266. <td width=45%><span class="grey">Subject:</td>
  267. <td width=20><span class="grey">Date:</td>
  268. <td width=20><span class="grey">Read:</td>
  269. <td><input type=checkbox onclick="chgall(this)"></td>
  270. </tr>';
  271. $i=0;
  272. while ($row=mysql_fetch_array($query)) {
  273. $body .= '<tr class=grey><td><span class="grey"><a href="#">'.$row['dn'].'</td><td><span class="grey"><a href="?n=account.pm&f=inbox&pm='.$row['id_pm'].'">'.$row['subject'].'</td><td><span class="grey">'.$row['date'].'</td><td><span class="grey">'.$YESNO[$row['isread']] .'</td><td><input type=checkbox name="pmdelete[]" value="'.$row['id_pm'].'"></td>';
  274. if ($row['isread']=='0') { $i++; }
  275. }
  276. $tit .= ' ('.$i.' New)';
  277. $body .= '</table><br>
  278. <div align=right><input type=submit value ="'.$_LANG['ACCOUNT']['DELETE_SELECTED'].'"></div></form>';
  279. } else {
  280. $body .= '</h1><br>'.$_LANG['ACCOUNT']['NO_MEX_RECEIVED'];
  281. }
  282. }
  283. break;
  284. }
  285. echo $body;
  286. ?>
  287. <? if ($_REQUEST['pm']=='') {?>
  288. <script>
  289. function chgall(valor) {
  290. for(i=0;i<<? echo mysql_num_rows($query);?>;i++) {
  291. document.getElementsByName('pmdelete[]')[i].checked = valor.checked;
  292. }
  293. }
  294. <? } ?>
  295. </script>
  296. </span>
  297. </div>
  298. </td>
  299. </tr>
  300. </table>
  301. <?php
  302. } else {
  303. errborder($_LANG['ERROR']['NEED_LOGIN']);
  304. }
  305. parchdown();
  306. ?>