[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление комментариев с премодерацией
Hunter0k
Здравствуйте, у меня не получается сделать премодерацию при добавлении комментариев. Тоесть, если пользователь добавил коммент и пока администратор его не активирует, комментарий не будет виден всем пользователям. Вот весь скрипт модуля:

main.php:
Свернутый текст


<?php
function
COMMENTS() {global $CONNECT, $Module, $Page, $Param;
if ($_SESSION['USER_LOGIN_IN'] != 1 and !$_SESSION['USER_LOGIN']) {
/*Форма коментариев для гостей*/
$Avatar = 0; echo '<br/><a href="#login_form" style="margin-left:50%" id="button">Войти</a>
<br/><br/><img src="/resource/avatar/'
.$Avatar.'.jpg" width="80" height="74" alt="Аватар" align="left" id="avatar" style="cursor:pointer;margin:0 5px 0 0" />
<form method="POST" action="/comments/add/module/'
.$Page.'/id/'.$Param['id'].'">
<textarea id="message" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required></textarea>
<br/><input type="submit" name="enter" value="Отправить" style="margin-left:97px" />
<input type="hidden" name="user_id" value="'
.$_SESSION['USER_ID'].'">
</form>
<br><br>'
;}

/*Форма коментариев для пользователей*/
else {$Avatar = (empty($_SESSION['USER_AVATAR'])) ? 0 : $_SESSION['USER_AVATAR'].'/'.$_SESSION['USER_ID'];
echo '<div><br/><br/><ul id="soc"><li>
<img src="/resource/avatar/'
.$Avatar.'.jpg" width="80" height="74" alt="Аватар" align="left" id="avatar" style="cursor:pointer;margin:0 5px 0 0" />
<ul style="top:-48px"><li><div id="count" style="padding:5px 5px 24px 5px">
<a href="/profile" id="link">Профиль</a><br><a href="/account/logout" id="link">Выход</a>
</li></ul></li></ul>
<form method="POST" action="/comments/add/module/'
.$Page.'/id/'.$Param['id'].'">
<textarea id="message" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required></textarea>
<br/><input type="submit" name="enter" value="Отправить" style="margin-left:97px" />
<input type="hidden" name="user_id" value="'
.$_SESSION['USER_ID'].'" />
</form></div><br/><br/>'
;}
$ID = ModuleID($Page);
$Param['page'] = (!$Param['page']) ? 1 : $Param['page'];

$sql = "SELECT c.`id`, c.`text`, c.user_id, c.`active`, DATE_FORMAT(c.`date`, '%d.%m.%Y, %H:%i:%s') AS date, u.avatar, u.login, u.name, u.group, u.email, u.regdate FROM `comments` AS c LEFT JOIN `users` AS u ON u.id = c.user_id WHERE c.`module` = $ID AND c.`material` = '".$Param['id']."' ORDER BY c.`id` DESC";
$Result = mysqli_query($CONNECT, $sql) or die( mysqli_error($CONNECT) );
while ($Row = mysqli_fetch_assoc($Result)) {
if (!$Row['active'] and $_SESSION['USER_GROUP'] != 2 and $Row['id']) $wait='<span> (Комментарий ожидает модерации)</span>';
/*Активация коментов*/ if (!$Row['active'] != $_SESSION['USER_ID'] and $Row['user_id'] OR $_SESSION['group'] == 2) $Active = ' [ <a href="/comments/control/id/'.$Row['id'].'/command/active">Активировать</a> ]';
/*Управление коментами*/ $Admin = ''; if ($_SESSION['USER_ID'] == $Row['user_id'] OR $_SESSION['group'] == 2) $Admin = ' [ <a href="/comments/control/action/edit/id/'.$Row['id'].'">Редактировать</a> ] [ <a href="#del">Удалить</a> ]<a href="" class="overlay" id="del"></a>
<div id="popup" style="margin-top:-37px;min-height:3em"><hr id="hr" />
<p id="logtext" style="font-size:13pt;margin:9px 0 9px 0">Предупреждение</p>
<h4>Вы действительно хотите удалить?</h4>
<div id="yes"><br/><a href="/comments/control/action/delete/id/'
.$Row['id'].'" id="yes">Да </a><a href="#1" id="no">Нет</a></div></div>';

// Если есть настройка позволяющая редактировать комментарии.
if ($Row['id'] == $_SESSION['COMMENTS_EDIT'])
$Row['text'] = '<form method="POST" action="/comments/control">
<textarea id="comedit" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required>'
.$Row['text'].'</textarea>
<br/><input type="submit" name="save" value="Сохранить" /> <input type="submit" name="cancel" value="Отменить" /></form>'
;
$Avatar = (empty($Row['avatar'])) ? 0 : $Row['avatar'].'/'.$Row['user_id'];
$Info = (empty($Row['name'])) ? '<b id="name">Аноним</b>' : '
<! --Информация о пользователе-- >
<span id="spoiler" tabindex="1"><a>'
.$Row['name'].'</a>
<div class="spoiler">
<b>Группа:</b> ('
.UserGroup($Row['group']).')
<br/><b>Имя:</b> '
.$Row['name'].'
<br/><b>E-mail:</b> '
.HideEmail($Row['email']).'
<br/><b>Дата регистрации:</b> '
.$Row['regdate'].'</p>
<a href="" style="position:relative;top:-83px;left:293px" id="close"></a>
</div></span>'
;

echo '<img src="/resource/avatar/'.$Avatar.'.jpg" width="60" height="60" alt="Аватар" align="left" id="avatar" />
<div id="comments" style="margin-left:70px">'
.$Info.$wait.'
<span style="float:right">'
.$Row['date'].$Admin.$Active.'</span><br/>'.$Row['text'].'</div><br/>';
}}
?>



add.php:
Свернутый текст


<?php
if ($_SESSION['USER_GROUP'] == 2) $Active = 1;
else $Active = 0;

if ($_POST['enter'] and $_POST['text']) {
$_POST['text'] = FormChars($_POST['text']);
$ID = ModuleID($Param['module']);
if ($ID == 1)
$Table = 'publ';
else
if
($ID == 2)
$Table = 'loads';
else
if
($ID == 3)
$Table = 'addons';

$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, 'SELECT `id` FROM `'.$Table.'` WHERE `id` = '.$Param['id']));
if (!$Row['id'])
MessageSend(1, 'Материал не найден.', '/'.$Param['module']);
$sql = "INSERT INTO `comments` SET `material` = ".$Param['id'].", `module` = $ID, `added` = '".$_SESSION[USER_LOGIN]."', `text` = '".$_POST['text']."', `date` = NOW(), `user_id` = '".(int)$_POST['user_id']."', `active` = $Active";
mysqli_query($CONNECT, $sql) or die( mysqli_error($CONNECT) );
MessageSend(3, 'Комментарий добавлен.', '/'.$Param['module'].'/material/id/'.$Param['id']);
}
?>



control.php:
Свернутый текст


<?php
if ($Param['action'] == 'delete') {
mysqli_query($CONNECT, "DELETE FROM `comments` WHERE `id` = $Param[id]");
MessageSend(3, 'Комментарий удален.');

} else if ($Param['action'] == 'edit') {
$_SESSION['COMMENTS_EDIT'] = $Param['id'];
exit(header('location: '.$_SERVER['HTTP_REFERER']));

} else if ($_POST['save']) {
mysqli_query($CONNECT, "UPDATE `comments` SET `text` = '$_POST[text]' WHERE `id` = $_SESSION[COMMENTS_EDIT]");
unset($_SESSION['COMMENTS_EDIT']);
MessageSend(3, 'Коментарий отредактирован.');

} else if ($_POST['cancel']) {
unset($_SESSION['COMMENTS_EDIT']);
MessageSend(3, 'Редактирование отмененно.');

} else if ($Param['command'] == 'active') {
mysqli_query($CONNECT, "UPDATE `comments` SET `active` = 1 WHERE `id` = $Param[id]");
MessageSend(3, 'Комментарий активирован', '/addons/material/id/'.$Param['id']);
}
?>



База данных phpmyadmin:
Свернутый текст


id - int
material - int
module - int
added - varchar
text - mediumtext
date - datetime
user_id - int
active - int

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.