[мод] удаление сообщений из чата

Общие обсуждения публичной версии проекта "Сверхновая"
Support forum for public version

Модератор: Gorlum

Правила форума
Внимание! Этот форум - только для обсуждения вопросов и проблем на сторонних серверах, использующих движок Сверхновой!

Для обсуждения оригинальных серверов СН существуют соответствующие форумы: для багрепортов, для обсуждение движка на офф-серверах.

Общие багрепорты и проблемы на публичных серверах обсуждаются в соответствующем форуме.

Для обсуждения работа модулей и багрепротов по их работе существует свой форум
Ответить
killer
Майор разведки
Сообщения: 292
Зарегистрирован: 03 янв 2011, 22:22
Откуда: Херсон

[мод] удаление сообщений из чата

Сообщение killer » 25 янв 2012, 17:50

Бывает леньки пойти в админку и там удалить одно сообщение потому написал себе мод,вот решил им поделиться с другими,может кому ещё понадобися :D
в chat_msg.php после:

Код: Выделить всё

$chat = array();
$start_row = $page * $page_limit;
$query = doquery("SELECT * FROM {{chat}} WHERE ally_id = '{$alliance}' ORDER BY messageid DESC LIMIT {$start_row}, {$page_limit};");
while($chat_row = mysql_fetch_object($query))
{
  // Little magik here - to retain HTML codes from DB and stripping HTML codes from nick
  $nick_stripped = htmlentities(strip_tags($chat_row->user), ENT_QUOTES, 'utf-8');
  $nick = str_replace(strip_tags($chat_row->user), $nick_stripped, $chat_row->user);
  if(!$history)
  {
    $nick = "<span style=\"cursor: pointer;\" onclick=\"addSmiley('[{$nick_stripped}]');\">{$nick}</span>";
  }
добавляем:

Код: Выделить всё

if($user[authlevel] >= 2 || $chat_row->user != "ваш_ник")
$del = "<a href=chat_del.php?id=".$chat_row->messageid." target=_blank><img src=design/images/abort.gif></a> ";
где "ваш_ник" ник главного админа:)

далее это:

Код: Выделить всё

  $chat[] = array(
    'TIME' => date(FMT_DATE_TIME, htmlentities($chat_row->timestamp, ENT_QUOTES, 'utf-8')),
    'NICK' => $nick,
    'TEXT' => cht_message_parse(htmlentities($chat_row->message, ENT_QUOTES, 'utf-8')),
  );
меняем на:

Код: Выделить всё

  $chat[] = array(
    'TIME' => date(FMT_DATE_TIME, htmlentities($chat_row->timestamp, ENT_QUOTES, 'utf-8')),
    'NICK' => $nick,
    'TEXT' => $del.cht_message_parse(htmlentities($chat_row->message, ENT_QUOTES, 'utf-8')),
  );
создаём файл chat_del.php с содержанием:

Код: Выделить всё

<?
include('common.' . substr(strrchr(__FILE__, '.'), 1));

if($user[authlevel] <= 2){
echo $lang[error_chat_del];
die();
}else{
if(isset($_GET['id']))
$messageid = $_GET['id'];
doquery("DELETE FROM {{chat}} WHERE messageid = {$messageid};");
echo '<script language="JavaScript">close();</script>';
}

?>
в language/ru/system.mo до: пихаем:

Код: Выделить всё

'error_chat_del' => 'Ваш уровень доступа не позволяет Вам сдесь находиться',
не посчитайте за набивку постов :D
Иногда пишу полезное,иногда-бред :(

Ответить

Вернуться в «[ru/en] Публичная версия/Public releases»