PageRenderTime 49ms CodeModel.GetById 10ms RepoModel.GetById 1ms app.codeStats 0ms

/v1.4/puslapiai/pm.php

http://mightmedia.googlecode.com/
PHP | 269 lines | 237 code | 13 blank | 19 comment | 91 complexity | 1f4e9c8be2191a1df948facc1177fb15 MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.0, GPL-2.0
  1. <?php
  2. /**
  3. * @Projektas: MightMedia TVS
  4. * @Puslapis: www.coders.lt
  5. * @$Author: P.Dambrauskas $
  6. * @copyright CodeRS Š2008
  7. * @license GNU General Public License v2
  8. * @$Revision: 1174 $
  9. * @$Date: 2009-03-22 14:14:45 +0100 (Sun, 22 Mar 2009) $
  10. **/
  11. if (!isset($_SESSION['username'])) {
  12. header("Location: /");
  13. }
  14. unset($text);
  15. if (isset($url['u']) && !empty($url['u'])) {
  16. $user = input(base64_decode($url['u']));
  17. } else {
  18. $user = '';
  19. }
  20. if (isset($url['i']) && isnum($url['i']) && $url['i'] > 0) {
  21. $pid = (int)$url['i'];
  22. } else {
  23. $pid = 0;
  24. } //kam atsakom
  25. if (isset($url['d']) && isnum($url['d']) && $url['d'] > 0) {
  26. $did = (int)$url['d'];
  27. } else {
  28. $did = 0;
  29. } //ka trinam
  30. if (isset($url['p']) && isnum($url['p']) && $url['p'] > 0) {
  31. $p = (int)$url['p'];
  32. } else {
  33. $p = 0;
  34. } //puslapiavimas
  35. if (isset($url['a']) && isnum($url['a']) && $url['a'] >= 0) {
  36. $a = (int)$url['a'];
  37. } else {
  38. $a = 0;
  39. } //inbox arba outbox
  40. if (isset($url['o']) && !empty($url['o']) && $url['o'] != null) {
  41. $order = input($url['o']);
  42. } else {
  43. $order = 'date';
  44. } //lygiavimas
  45. if (isset($url['s']) && !empty($url['s']) && $url['s'] != null) {
  46. $s = input($url['s']);
  47. }
  48. //paieska
  49. switch ($order) {
  50. case "{$lang['user']['pm_time']}:":
  51. {
  52. $order = "date";
  53. break;
  54. }
  55. case "{$lang['user']['pm_from']}:":
  56. {
  57. $order = "from";
  58. break;
  59. }
  60. case "{$lang['user']['pm_subject']}:":
  61. {
  62. $order = "title";
  63. break;
  64. }
  65. default:
  66. {
  67. $order = "date";
  68. break;
  69. }
  70. }
  71. $limit = 30;
  72. $uzeris = mysql_fetch_assoc(mysql_query1("SELECT `pm_viso`,`nick` FROM " . LENTELES_PRIESAGA . "users WHERE nick='" . $_SESSION['username'] . "'"));
  73. $pm_sk = kiek("private_msg", "WHERE `to`=" . escape($uzeris['nick']));
  74. $date['m'] = 'Viso';
  75. $date['d'] = $pm_sk;
  76. // ################# Trinam zinute ###########################
  77. if (isset($url['d']) && isnum($url['d']) && $url['d'] >= 0 && isset($_SESSION['username'])) {
  78. if ($url['d'] == 0) {
  79. mysql_query1("DELETE FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE `to`=" . escape($_SESSION['username']));
  80. header("Location: ?id," . $url['id'] . ";p," . $url['p'] . "");
  81. } elseif ((int)$url['d'] > 0) {
  82. mysql_query1("DELETE FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE `to`=" . escape($_SESSION['username']) . " AND `id`=" . escape((int)$url['d']));
  83. header("Location: ?id," . $url['id'] . ";p," . $url['p'] . "");
  84. }
  85. }
  86. // ################# Siunciam zinute ##########################
  87. if (isset($_POST['action']) && $_POST['action'] == 'pm_send' && isset($_SESSION['username'])) {
  88. $from = $_SESSION['username'];
  89. $to = input($_POST['to']);
  90. if ($to == $_SESSION['username']) {
  91. $error = "{$lang['user']['pm_error']}<br />";
  92. }
  93. $title = (isset($_POST['title']) && !empty($_POST['title']) ? input($_POST['title']) : "{$lang['user']['pm_nosubject']}");
  94. if (!isset($title)) {
  95. $title = "{$lang['user']['pm_nosubject']}";
  96. }
  97. $msg = $_POST['msg'];
  98. $date = time();
  99. $sql = mysql_query1("SELECT nick,email FROM " . LENTELES_PRIESAGA . "users WHERE nick=" . escape($to) . " LIMIT 1");
  100. if (mysql_num_rows($sql) == 0) {
  101. $error = "{$lang['user']['pm_noreceiver']}";
  102. }
  103. if (!isset($error)) {
  104. if (kiek("private_msg", "WHERE `to`=" . escape($to) . "") < 51) {
  105. $result = mysql_query1("INSERT INTO `" . LENTELES_PRIESAGA . "private_msg` (`from`, `to`, `title`, `msg`, `read`, `date`) VALUES (" . escape($from) . ", " . escape($to) . ", " . escape($title) . ", " . escape($msg) . ", 'NO', '" . $date . "')");
  106. if (!$result) {
  107. $error = "{$lang['user']['pm_error']}";
  108. }
  109. if ($result) {
  110. $error = "{$lang['user']['pm_sent']}";
  111. msg("{$lang['user']['pm_sent']}", $error);
  112. unset($result, $error, $sql, $_POST);
  113. redirect("?id," . $url['id'] . "", "meta");
  114. }
  115. } else {
  116. //kas cia? $sql = mysql_fetch_assoc($sql); //$result = mysql_query1("INSERT INTO `private_msg` (`from`, `to`, `title`, `msg`, `read`, `date`) VALUES (" . escape($conf['Pavadinimas']) .", " . escape($to) .", " . escape("J?s? pašto d?žut? pilna") .", " . escape("J?s? pašto d?žut? užsipild?. Kiti svetain?s lankytojai jums nebegali si?sti žinu??i?.") .", 'NO', '" . $date ."')");
  117. klaida("{$lang['system']['error']}", "{$lang['user']['pm_users'] } <b>" . $to . "</b> {$lang['user']['pm_full']}.");
  118. redirect("?id," . $url['id'] . "", "meta");
  119. }
  120. }
  121. }
  122. // ######### Paneles rodymas ir zinuciu isvedimas ######################
  123. $text = "
  124. <fieldset>
  125. <legend>{$lang['user']['pm_freespace']}</legend>
  126. <table border=0>
  127. <tr>
  128. <td>
  129. {$lang['user']['pm_left']}: <b>" . ($uzeris['pm_viso'] - $pm_sk) . " {$lang['user']['pm_of']} <b>" . $uzeris['pm_viso'] . "</b></b><br />
  130. ";
  131. $pm_img = substr($pm_sk, 0, -1);
  132. $pm_img = "<img src='images/pm/" . (empty($pm_img) ? '0' : $pm_img) . ".gif'/>";
  133. $text .= $pm_img . "
  134. </td>
  135. </tr>
  136. <tr>
  137. <td></td>
  138. </tr>
  139. </table>
  140. </fieldset>
  141. <fieldset>
  142. <legend>{$lang['user']['pm_actions']}</legend>
  143. <table width='100%'>
  144. <tr>
  145. <td>
  146. <div class=\"blokas\"><center><a href='?id," . $url['id'] . ";n,1'><img src=\"images/pm/new.png\" alt=\"{$lang['user']['pm_new']}\" />{$lang['user']['pm_new']}</a></center></div>
  147. <div class=\"blokas\"><center><a href='?id," . $url['id'] . ";a,1'><img src=\"images/pm/inbox.png\" alt=\"{$lang['user']['pm_inbox']}\" />{$lang['user']['pm_inbox']}</a></center></div>
  148. <div class=\"blokas\"><center><a href='?id," . $url['id'] . ";a,2'><img src=\"images/pm/outbox.png\" alt=\"{$lang['user']['pm_outbox']}\" />{$lang['user']['pm_outbox']}</a></center></div>
  149. <div class=\"blokas\"><center><a href='?id," . $url['id'] . ";d,0' ><img src=\"images/pm/delete_all.png\" alt=\"{$lang['user']['pm_delete_all']}\" />{$lang['user']['pm_delete_all']}</a></center></div>
  150. </td>
  151. </tr>
  152. </table>
  153. </fieldset>";
  154. // ################### Siusti nauja zinute arba atsakyti i esancia ######################################
  155. if (isset($url['n'])) {
  156. if (!empty($url['n']) && (int)$url['n']) {
  157. // ############### Jei nera paspaustas atsakyti mygtukas sukuriam paprasta forma #################
  158. //if (isset($error) && !empty($error)) { msg("D?mesio!",$error); }
  159. if (isset($user) && (int)$pid > 0) {
  160. $sql = mysql_fetch_assoc(mysql_query1("SELECT * FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE `from`=" . escape($user) . " AND `id`=" . escape($pid) . ""));
  161. if ($sql['read'] == "NO") {
  162. mysql_query1("UPDATE `" . LENTELES_PRIESAGA . "private_msg` SET `read`='YES' WHERE `id`=" . escape($pid));
  163. }
  164. }
  165. $text .= "
  166. <fieldset>
  167. <legend>" . ((isset($user) && (int)$pid > 0) ? "{$lang['user']['pm_reply']}" : "{$lang['user']['pm_send']}") . " </legend>
  168. <form name=\"msg\" action=\"?id," . $url['id'] . ";\" method=\"post\">
  169. <table border=0 width=\"100%\">
  170. <tr>
  171. <td width=\"15%\" class=\"sarasas\">{$lang['user']['pm_to']}:</td>
  172. <td>
  173. <input type=\"text\" name=\"to\" value=\"" . (isset($user) && $_SESSION['username'] != $user ? strtolower($user) : '') . "\" />
  174. </td>
  175. </tr>
  176. <tr>
  177. <td class=\"sarasas\">{$lang['user']['pm_subject']}:</td>
  178. <td><input name=\"title\" type=\"text\" size=\"50\" value=\"" . ((isset($user) && (int)$pid > 0) ? "Re: " . trimlink($sql['title'], 40) : "") . "\" style=\"width:95%\"></td>
  179. </tr>
  180. <tr>
  181. <td valign='top' align='left' class=\"sarasas\">{$lang['user']['pm_message']}:</td>
  182. <td><textarea name=\"msg\" rows=\"10\" cols=\"50\" wrap=\"on\" style=\"width:95%\">" . ((isset($user) && (int)$pid > 0) ? "[quote=" . $user . "]" . input(trim(preg_replace(array("#\[quote=(http://)?(.*?)\](.*?)\[/quote]#si", "[/quote]"), "", $sql['msg']))) . "[/quote]\n\n" : "") . "</textarea>
  183. <br />
  184. " . bbk("msg") . "
  185. <br />
  186. <input type=\"submit\" value=\"" . ((isset($user) && (int)$pid > 0) ? "{$lang['user']['pm_reply']}" : "{$lang['user']['pm_send']}") . "\">
  187. <input type=\"hidden\" name=\"action\" value=\"pm_send\" />
  188. </td>
  189. </tr>
  190. </table>
  191. </form>
  192. </fieldset><script>addText('msg', '', '');</script>
  193. ";
  194. //}
  195. } else {
  196. header("Location: ?");
  197. }
  198. }
  199. lentele("{$lang['user']['pm_panel']}", $text);
  200. unset($text);
  201. // ##################### Perziureti zinute ######################
  202. if (isset($url['v'])) {
  203. if (!empty($url['v']) && (int)$url['v'] > 0 && isnum($url['v'])) {
  204. $sql = mysql_fetch_assoc(mysql_query1("SELECT `msg`, `from`,`to`, `title`,(SELECT `id` AS `nick_id` FROM `" . LENTELES_PRIESAGA . "users` WHERE `nick`= `" . LENTELES_PRIESAGA . "private_msg`.`from`) AS `from_id` FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE (`to`=" . escape($_SESSION['username']) . " OR `from`=" . escape($_SESSION['username']) . ") AND `id`=" . escape($url['v'])));
  205. if ($sql) {
  206. $laiskas = "
  207. <div style=\"background:#FFFFD4 url('images/pm/underline.gif'); font-size:14px; padding-left:10px; padding-right:5px; line-height: 16px;\"><b>{$lang['user']['pm_from']}:</b> " . $sql['from'] . "<br><b>{$lang['user']['pm_to']}:</b> " . $sql['to'] . "<br> <b>{$lang['user']['pm_subject']}:</b> " . (isset($sql['title']) && !empty($sql['title']) ? input(trimlink($sql['title'], 40)) : "{$lang['user']['pm_nosubject']}") . "<br><br><b>{$lang['user']['pm_message']}:</b><br>" . bbcode(wrap($sql['msg'], 40)) . "<br><br></div>
  208. " . (strtolower($sql['to']) == strtolower($_SESSION['username']) ? "<form name=\"replay_pm\" action='?id," . $conf['puslapiai']['pm.php']['id'] . ";n,1;u," . str_replace("=", "", base64_encode($sql['from'])) . ";i," . $url['v'] . "' method=\"post\">
  209. <input type=\"submit\" value=\"{$lang['user']['pm_reply']}\"/> <input type=\"button\" value=\"{$lang['user']['pm_delete']}\" onclick=\"location.href='" . url("d," . $url['v'] . ";v,0") . "'\"/>
  210. </form>" : "") . "
  211. ";
  212. lentele("{$lang['user']['pm_message']}", $laiskas);
  213. mysql_query1("UPDATE `" . LENTELES_PRIESAGA . "private_msg` SET `read`='YES' WHERE `id`=" . escape($url['v']) . " AND `to`=" . escape($_SESSION['username']) . "");
  214. }
  215. }
  216. }
  217. if (defined("LEVEL") && LEVEL > 0 && $a == 1 && !isset($s)) {
  218. include_once ("priedai/class.php");
  219. $sql = mysql_query1("SELECT `id`, `read`,`from`, IF(`from` = '', 'Sve??ias',`from`) AS `Nuo`,(SELECT `id` AS `nick_id` FROM `" . LENTELES_PRIESAGA . "users` WHERE `nick`= `" . LENTELES_PRIESAGA . "private_msg`.`from`) AS `from_id`, INSERT(LEFT(`msg`,80),80,3,'...') AS `Žinut?`, IF(`title` = '', 'Be pavadinimo',INSERT(LEFT(`title`,80),80,3,'...')) AS `Pavadinimas`, `date` AS `Data` FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE `to`=" . escape($_SESSION['username']) . " ORDER BY `" . LENTELES_PRIESAGA . "private_msg`.`$order` DESC LIMIT $p,$limit") or die(mysql_error());
  220. if (mysql_num_rows($sql) > 0) {
  221. $bla = new Table();
  222. $info = array();
  223. while ($row = mysql_fetch_assoc($sql)) {
  224. if ($row['read'] == "NO") {
  225. $extra = "<img src='images/pm/pm_new.png' />";
  226. } else {
  227. $extra = "<img src='images/pm/pm_read.png' />";
  228. }
  229. $info[] = array("" => $extra, "{$lang['user']['pm_subject']}:" => "<a href='?id," . $url['id'] . ";v," . $row['id'] . "' style=\"display: block\">" . (isset($row['Pavadinimas']) && !empty($row['Pavadinimas']) ? input(trimlink($row['Pavadinimas'], 40)) : "{$lang['user']['pm_nosubject']}") . "</a></div>", "{$lang['user']['pm_from']}:" => user($row['Nuo'], $row['from_id']), "{$lang['user']['pm_time']}:" => kada(date('Y-m-d H:i:s ', $row['Data'])), " " => "<a href='?id," . $url['id'] . ";n,1;u," . str_replace("=", "", base64_encode($row['from'])) . ";i," . $row['id'] . "'><img src='images/pm/replay.png' border=0 alt=\"{$lang['user']['pm_reply']}\" title=\"{$lang['user']['pm_reply']}\"/></a><a href='" . url('d,' . $row['id'] . '') . "'><img src='images/pm/delete.png' border=0 alt=\"{$lang['user']['pm_delete']}\" title=\"{$lang['user']['pm_delete']}\"/></a>");
  230. }
  231. lentele("{$lang['user']['pm_inbox']}", puslapiai($p, $limit, $pm_sk, 10) . "<br/>" . $bla->render($info) . "<br/>" . puslapiai($p, $limit, $pm_sk, 10));
  232. } else {
  233. lentele("{$lang['user']['pm_inbox']}", "{$lang['user']['pm_empty_msg']}");
  234. }
  235. }
  236. if (defined("LEVEL") && LEVEL > 0 && $a == 2 && !isset($s)) {
  237. include_once ("priedai/class.php");
  238. $sql = mysql_query1("SELECT `id`, `read`, IF(`to` = '', 'Sve??ias',`to`) AS `to`, INSERT(LEFT(`msg`,80),80,3,'...') AS `Žinut?`, IF(`title` = '', 'Be pavadinimo',INSERT(LEFT(`title`,80),80,3,'...')) AS `Pavadinimas`,(SELECT `id` AS `nick_id` FROM `" . LENTELES_PRIESAGA . "users` WHERE `nick`= `" . LENTELES_PRIESAGA . "private_msg`.`to`) AS `to_id`, `date` AS `Data` FROM `" . LENTELES_PRIESAGA . "private_msg` WHERE `from`=" . escape($_SESSION['username']) . " ORDER BY `" . LENTELES_PRIESAGA . "private_msg`.`$order` DESC LIMIT $p,$limit") or die(mysql_error());
  239. if (mysql_num_rows($sql) > 0) {
  240. $bla = new Table();
  241. $info = array();
  242. while ($row = mysql_fetch_assoc($sql)) {
  243. if ($row['read'] == "NO") {
  244. $extra = "<img src='images/pm/pm_new.png' />";
  245. } else {
  246. $extra = "<img src='images/pm/pm_read.png' />";
  247. }
  248. $info[] = array("" => $extra, "{$lang['user']['pm_subject']}:" => "<a href='?id," . $url['id'] . ";v," . $row['id'] . "' title=\"{$lang['user']['pm_time']}: <b>" . date('Y-m-d H:i:s', $row['Data']) . "</b><br/>{$lang['user']['pm_message']}: <i>" . nl2br(strip_tags(input(str_replace(array("[", "]"), "", $row['Žinut?'])))) . "</i><br/>\" style=\"display: block\">" . input(trimlink($row['Pavadinimas'], 40)) . "</a>", "{$lang['user']['pm_to']}:" => user($row['to'], $row['to_id']), "{$lang['user']['pm_time']}:" => kada(date('Y-m-d H:i:s ', $row['Data'])));
  249. }
  250. asort($info);
  251. lentele("{$lang['user']['pm_outbox']}", puslapiai($p, $limit, $pm_sk, 10) . "<br/>" . $bla->render($info) . "<br/>" . puslapiai($p, $limit, $pm_sk, 10), "");
  252. } else {
  253. lentele("{$lang['user']['pm_outbox']}", "{$lang['user']['pm_empty_msg']}");
  254. }
  255. }
  256. ?>