Просмотр файла modules/comments/index.php

Размер файла: 4.99Kb
  1. <?php
  2.  
  3. // проверка наличия авторизации
  4. if (!isset($_GET['module_id']) && !isset($_GET['m']))
  5. {
  6. # Перенаправляем на главную
  7. header('Location: /');
  8. }
  9.  
  10. # Заголовок модуля
  11. $system['page_title'] = 'Комментарии';
  12.  
  13. # Шапка модуля
  14. require_once(HOME .'/incfiles/header.php');
  15.  
  16. # Инициализация переменных
  17. $m = txt($_GET['m']); // название модуля
  18. $m_id = num($_GET['m_id']); // ID раздела модуля
  19.  
  20. // привязка к email
  21. if (isset($_POST['message']))
  22. {
  23. # E-mail
  24. $message = txt($_POST['message']);
  25. if (empty($message)) $err .= 'Не введено сообщение<br />';
  26. # Проверка длины логина
  27. if (!empty($message) && (strlen_rus($message) < 3 || strlen_rus($message) > 5000)) $err .= 'Неверная длина сообщения. Допустимо от 3 до 5000 символов<br />';
  28. # Проверка занятости логина
  29. if (mysql_result(mysql_query("SELECT COUNT(*) FROM `comments` WHERE `text` = '". input($message) ."' AND `m` = '". $m ."' AND `m_id` = '". $m_id ."'"), 0) != 0) $err .= 'Такое сообщение уже существует<br />';
  30. if (!isset($err))
  31. {
  32. # Сохраняем данные
  33. mysql_query("INSERT INTO `comments` SET `user_id` = '$user[id]', `m` = '". input($m) ."', `m_id` = '". num($m_id) ."', `text` = '". input($message) ."', `time` = '". time() ."'");
  34. echo '<div class="title">Добавление комментария</div>
  35. <div class="menu">
  36. Ваш комментарий успешно добавлен
  37. </div>';
  38. echo '<div class="block">
  39. &raquo; <a href="/comments/index.php?m='. input($m) .'&amp;m_id='. num($m_id) .'">К комментариям</a><br />
  40. &raquo; <a href="/">На главную</a>
  41. </div>';
  42. # Ноги модуля
  43. require_once(HOME .'/incfiles/footer.php');
  44. }
  45. }
  46.  
  47. error($err);
  48.  
  49. # Заголовок
  50. echo '<div class="title">Список комментариев</div>';
  51.  
  52. # Кол-во комментариев
  53. $k_comments = mysql_result(mysql_query("SELECT COUNT(*) FROM `comments` WHERE `m` = '". input($m) ."' AND `m_id` = '". num($m_id) ."'"), 0);
  54.  
  55. # Старт навигации
  56. nav_start($k_comments, 15);
  57.  
  58. if ($k_comments == 0)
  59. {
  60. echo '<div class="menu">Комментариев нет</div>';
  61. }
  62. else
  63. {
  64. # Запрос для вывода массива
  65. $sql_comments = mysql_query("SELECT * FROM `comments` WHERE `m` = '". input($m) ."' AND `m_id` = '". num($m_id) ."' ORDER BY time LIMIT $start, 15");
  66. # Для зебры
  67. $i = 1;
  68.  
  69. # Цикл с выводом комментариев
  70. while ($comment = mysql_fetch_assoc($sql_comments))
  71. {
  72. # Определяем кратность, для зебры
  73. if ($i % 2) $zebra = true;
  74. else $zebra = false;
  75. # Массив с данными пользователя
  76. $comment_user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '$comment[user_id]' LIMIT 1"));
  77. echo '<div class="menu'. ($zebra == false?'_2':NULL) .'">
  78. '. icon($comment_user['id']) .' <a href="/user/user.php?user_id='. $comment_user['id'] .'">'. nick($comment_user['id']) .'</a>'. online($comment_user['id']) .' ('. vtime($comment['time']) .')'. (isset($user)?' [<a href="/comments/index.php?m='. input($m) .'&amp;m_id='. num($m_id) .'&amp;reply_nick='. $comment_user['nick'] .'">отв</a>]':NULL) .'
  79. '. (!empty($comment_user['user_motto'])?'<br /><span class="small_info">'. $comment_user['user_motto'] .'</span>':NULL) .'
  80. <br />
  81. '. output($comment['text']) .'
  82. </div>';
  83. # Для зебры
  84. $i++;
  85. }
  86. # Вывод навигации
  87. view_nav('?m='. $m .'&amp;m_id='. $m_id);
  88. }
  89.  
  90. # Форма написания сообщения
  91. if (isset($user))
  92. {
  93. echo '<hr />
  94. <form method="post" action="/comments/index.php?m='. input($m) .'&amp;m_id='. num($m_id) .'">
  95. <div class="menu">
  96. Сообщение:<br />
  97. <textarea name="message" rows="4" cols="20">'. (isset($_GET['reply_nick'])?output(txt($_GET['reply_nick'])) .', ':NULL) .'</textarea><br />
  98. <input type="submit" value="Отправить" />
  99. </div>
  100. </form>';
  101. }
  102.  
  103. # Навигация
  104. echo '<div class="block">
  105. '. (isset($user)?'&raquo; <a href="/pages/bbcode.php">Список тегов</a><br />':NULL);
  106.  
  107. // Вывод обратной ссылки на модуль
  108. if ($m == 'news') echo '&raquo; <a href="/news/news.php?news_id='. num($m_id) .'">Вернуться к новости</a><br />';
  109.  
  110. echo '&raquo; <a href="/">На главную</a>
  111. </div>';
  112.  
  113. # Ноги модуля
  114. require_once(HOME .'/incfiles/footer.php');
  115.  
  116. ?>