PageRenderTime 59ms CodeModel.GetById 34ms RepoModel.GetById 1ms app.codeStats 0ms

/profile.reviews.php

https://bitbucket.org/DESURE/dcms
PHP | 95 lines | 72 code | 20 blank | 3 comment | 21 complexity | a7e6fe7156e942bc96fb500a695b0ca7 MD5 | raw file
  1. <?php
  2. include_once 'sys/inc/start.php';
  3. $doc = new document(); // ????????????? ????????? ??? ????????
  4. $doc->title = __('??????');
  5. if (isset($_GET['id']))
  6. $ank = new user($_GET['id']);
  7. else
  8. $ank = $user;
  9. if (!$ank->group) {
  10. $doc->access_denied(__('??? ??????'));
  11. }
  12. $can_write = true;
  13. if (!$user->is_writeable) {
  14. $doc->msg(__('?????? ?????????'), 'write_denied');
  15. $can_write = false;
  16. }
  17. $add = 1;
  18. $q = mysql_query("SELECT COUNT(*) as `count`, MAX(`time`) as `time` FROM `reviews_users` WHERE `id_user` = '$user->id' AND `id_ank` = '$ank->id'");
  19. $count = mysql_result($q, 0, 'count');
  20. $time = mysql_result($q, 0, 'time');
  21. // ??? ?????? ??????? ?????????, ??? ?????? ??? ?????? ?? ???????
  22. $add = 1 - min($count, 9) / 10;
  23. // ????????? ????? ????? ?? ???? ?????? ???? ? ?????
  24. if ($time > NEW_TIME)
  25. $add = 0;
  26. // VIP ???????????? ??????? ????????????? ???????
  27. if ($ank->is_vip)
  28. $add += $add;
  29. if ($ank->id == $user->id)
  30. $doc->title = __('?????? ??? ???');
  31. else
  32. $doc->title = __('"?????? ? "%s"', $ank->login);
  33. if ($user->group && $can_write && isset($_POST['review']) && $user->id != $ank->id && $add) {
  34. $message = text::input_text($_POST['review']);
  35. if ($message) {
  36. mysql_query("UPDATE `users` SET `rating` = `rating` + '$add' WHERE `id` = '$ank->id' LIMIT 1");
  37. mysql_query("INSERT INTO `reviews_users` (`id_user`, `id_ank`, `time`, `text`, `rating`) VALUES ('$user->id', '$ank->id', '" . TIME . "', '" . my_esc($message) . "', '$add')");
  38. header('Refresh: 1; url=?id=' . $ank->id);
  39. $doc->ret(__('?????????'), '?id=' . $ank->id);
  40. $doc->msg(__('??? ????? ??????? ????????'));
  41. $ank->mess("$user->login ???????" . ($user->sex ? '' : '?') . " ? ??? ???? [url=/profile.reviews.php]?????[/url]");
  42. exit;
  43. } else {
  44. $doc->err(__('????? ?????? ????'));
  45. }
  46. }
  47. $pages = new pages;
  48. $pages->posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `reviews_users` WHERE `id_ank` = '$ank->id'"), 0); // ?????????? ?????????
  49. $pages->this_page(); // ???????? ??????? ????????
  50. $q = mysql_query("SELECT * FROM `reviews_users` WHERE `id_ank` = '$ank->id' ORDER BY `id` DESC LIMIT $pages->limit");
  51. $listing = new listing();
  52. while ($rev = mysql_fetch_assoc($q)) {
  53. $ank2 = new user($rev['id_user']);
  54. $post = $listing -> post();
  55. $post -> title = $ank2->nick();
  56. $post -> counter = '+' . $rev['rating'];
  57. $post -> icon($ank2->icon());
  58. $post -> content = output_text($rev['text']);
  59. }
  60. $listing -> display(__('?????? ???????????'));
  61. $pages->display('?id=' . $ank->id . '&amp;'); // ????? ???????
  62. if ($user->group && $can_write && $user->id != $ank->id && $add) {
  63. $smarty = new design();
  64. $smarty->assign('method', 'post');
  65. $smarty->assign('action', '?id=' . $ank->id . '&amp;' . passgen());
  66. $elements = array();
  67. $elements[] = array('type' => 'textarea', 'title' => __('????? ? ????????????') . ' *', 'br' => 1, 'info' => array('name' => 'review'));
  68. $elements[] = array('type' => 'text', 'value' => '* ' . __('??????????? ????????? ?????? ????????????? ??????. ????? ???? ?????? ????? ??????????? ???????????? ???????.'), 'br' => 1);
  69. $elements[] = array('type' => 'submit', 'br' => 0, 'info' => array('value' => __('?????????'))); // ??????
  70. $smarty->assign('el', $elements);
  71. $smarty->display('input.form.tpl');
  72. }
  73. $doc->ret(__('? ??????'), "profile.view.php?id={$ank->id}");
  74. $doc->ret(__('?????? ????'), '/menu.user.php');
  75. ?>