Вход Регистрация
Файл: Arhmobi_esdcms/status/status_komm.php
Строк: 133
<?php

include_once '../sys/inc/start.php';
if (
AJAX)
    
$doc = new document_json(1);
else
    
$doc = new document(1);
$doc->title __('Комментарии статуса');
if (!isset(
$_GET['id']) || !is_numeric($_GET['id'])) {
    
header('Refresh: 1; url=./');
    
$doc->err(__('Ошибка выбора статуса'));
    exit;
}
$id_st = (int) $_GET['id'];

$q $db->prepare("SELECT * FROM `status` WHERE `id` = ?");
$q->execute(Array($id_st));
    if (!
$status $q->fetch()) {
    
header('Refresh: 1; url=./');
    
$doc->err(__('Статус не найден'));
    exit;
}


$avtor = new user((int) $status ['id_user']);
$doc->title __('Комментарии статуса ');

$listing = new listing();
$post $listing->post();
$post->title $avtor->nick();
$post->content '<div class="DCMS_st"></div><div class="DCMS_st2">' text::toOutput($status ['msg']) . '</div>';
$listing->display();
//Удаление комента
if (isset($_GET['comment']) && $user->id == $avtor->id) {

    
$id_message = (int) $_GET['comment'];
    
$q $db->prepare("SELECT * FROM `status_komm` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_message));
    if (!
$message =$q->fetch()) {
        
$doc->err(__('Комментарий не найден'));
 
header('Refresh: 1; url=?id=' $status['id'] . '&' passgen() . '&' SID);
    } else {

        
$q $db->prepare("DELETE FROM `status_komm` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_message));
        
$doc->msg(__('Комментарий успешно удален'));
 
header('Refresh: 1; url=?id=' $status['id'] . '&' passgen() . '&' SID);
    }
}


   
$ank = (empty($_GET ['id'])) ? $user : new user((int)$_GET ['id']);
$pages = new pages($db->query("SELECT COUNT(*) FROM `status_komm` WHERE `id_status` = '" $status['id'] . "'")->fetchColumn());
$pages->this_page();
$can_write true;
if (!
$user->is_writeable) {
    
$doc->msg(__('Писать запрещено'), 'write_denied');
    
$can_write false;
}
if (
$can_write && $pages->this_page == 1) {
    if (isset(
$_POST['send']) && isset($_POST['message']) && isset($_POST['token']) && $user->group) {
        
$message = (string)$_POST['message'];
        
$users_in_message text::nickSearch($message);
        
$message text::input_text($message);

        if (!
antiflood::useToken($_POST['token'], 'status_komm')) {
            
// нет токена (обычно, повторная отправка формы)
        
} elseif ($dcms->censure && $mat is_valid::mat($message)) {
            
$doc->err(__('Обнаружен мат: %s'$mat));
        } elseif (
$message) {
           
// $user->balls += $dcms->add_balls_chat ;
       
if ($users_in_message) {
            for (
$i 0$i count($users_in_message) && $i 20$i++) {
                
$user_id_in_message $users_in_message[$i];
                if (
$user_id_in_message == $user->id) {
                    continue;
                }
                
$ank_in_message = new user($user_id_in_message);
                if (
$ank_in_message->notice_mention) {
                    
$ank_in_message->mess("[user]{$user->id}[/user] упомянул" . ($user->sex '' 'а') . " о Вас в комментарии к [url=/status/status_komm.php?id=" $status['id'] . "]Статусу[/url]");
                }
            }
        }
        elseif (
$avtor->id != $user->id) {
$avtor->mess("[user]{$user->id}[/user] оставил" . ($user->sex '' 'а') . " комментарий у вас [url=/status/status_komm.php?id=".$status['id']."]в статусе[/url]");}

        
        
$res $db->prepare("INSERT INTO `status_komm` (`id_user`, `time`, `msg`, `id_status`) VALUES (?,?, ?, ?)");
            
$res->execute(Array($user->idTIME$messageintval($status['id'])));
            
            
        
header('Refresh: 1; url=?id=' $status['id'] . '&' passgen() . '&' SID);
        
$doc->ret(__('Вернуться'), '?' passgen());
        
$doc->msg(__('Успешно отправлено'));

            if (
$doc instanceof document_json) {
                
$doc->form_value('message''');
                
$doc->form_value('token'antiflood::getToken('status_komm'));
            }

            exit;
        } else {
            
$doc->err(__('Комментарий пуст'));
        }

        if (
$doc instanceof document_json)
            
$doc->form_value('token'antiflood::getToken('status_komm'));
    }

    if (
$user->group) {
        
$message_form '';
        if (isset(
$_GET ['message']) && is_numeric($_GET ['message'])) {
            
$id_message = (int)$_GET ['message'];
            
$q $db->prepare("SELECT * FROM `status_komm` WHERE `id` = ? LIMIT 1");
            
$q->execute(Array($id_message));
            if (
$message $q->fetch()) {
                
$ank = new user($message['id_user']);
                if (isset(
$_GET['reply'])) {
                    
$message_form '@' $ank->login ',';
                } elseif (isset(
$_GET['quote'])) {
                    
$message_form "@$ank->login, [quote id_user="{$ank->id}" time="{$message['time']}"]{$message['message']}[/quote]";
                }
            }
        }

        if (!
AJAX) {
            
$form = new form('?id=' $status['id'] . '&amp;' passgen());
            
$form->refresh_url('?id=' $status['id'] . '&amp;' passgen());
            
$form->setAjaxUrl('?id=' $status['id'] . '&amp;' passgen());
            
$form->hidden('token'antiflood::getToken('status_komm'));
            
$form->textarea('message'__('Комментарий'), $message_formtrue);
            
$form->button(__('Отправить'), 'send'false);
            
$form->display();
        }
    }
}


$listing = new listing();

// привязываем форму к листингу, чтобы листинг мог обновиться при отправке формы через AJAX
if (!empty($form))
    
$listing->setForm($form);
$q $db->query("SELECT * FROM `status_komm` WHERE `id_status` = '" $status['id'] . "' ORDER BY `id` DESC LIMIT " $pages->limit);
$after_id false;

if (
$arr $q->fetchAll()) {
    foreach (
$arr AS $message) {
     
$ank = new user($message['id_user']);
        
$post $listing->post();
        
$post->id 'status_komm_' $message['id'];
    
$post->url '/profile.view.php?id=' $ank->id;
        
$post->time misc::when($message['time']);
      
$post->title $ank->nick();
 
$post->image $ank->ava();
        
$post->post text::toOutput($message['msg']);
       
 if (
$user->id) {
        
$post->action('reply''?id=' $status['id'] . '&amp;message=' $message['id'] . '&amp;reply');
        
$post->action('quote''?id=' $status['id'] . '&amp;message=' $message['id'] . '&amp;quote');
    }
   
        if (
$user->group >= || $user->id == $avtor->id) {
            
$post->action('delete''?id=' $status['id'] . '&amp;comment=' $message['id'] . '&amp;page=' $pages->this_page);
        } 

        if (!
$doc->last_modified)
            
$doc->last_modified $message['time'];

        if (
$doc instanceof document_json)
            
$doc->add_post($post$after_id);

        
$after_id $post->id;
    }
}

if (
$doc instanceof document_json && !$arr){
    
$post = new listing_post(__('Комментария отсутствуют'));
    
$post->icon('empty');
    
$doc->add_post($post);
}

$listing->setAjaxUrl('?id=' $status['id'] . '&amp;page=' $pages->this_page);
$listing->display(__('Комментария отсутствуют'));
$pages->display('?id=' $status['id'] . '&amp;'); // вывод страниц

if ($doc instanceof document_json)
    
$doc->set_pages($pages);
$doc->ret(__('Вернуться в анкету'), '/profile.view.php?id=' $avtor->id);
Онлайн: 0
Реклама