Вход Регистрация
Файл: CMS/core/modules/users_lenta.php
Строк: 197
<?php

if (!defined('CMS')) { die('Access Denied!'); }

# Вспомогательная функция bb_code
function helper_bb($str '') {

    global 
$config;

    
$str preg_replace('#[blog=(.*?)](.*?)[/blog]#si''<a href="' $config['site_url'] . '/blog/' gen_uri('post''1'RND) . '">2</a>'$str);
    
$str preg_replace('#[gallery=(.*?)](.*?)[/gallery]#si''<a href="' $config['site_url'] . '/gallery/' gen_uri('photo''1'RND) . '">2</a>'$str);
    
$str preg_replace('#[forum=(.*?)](.*?)[/forum]#si''<a href="' $config['site_url'] . '/forum/' gen_uri('topic''1'RND) . '">2</a>'$str);
    
$str preg_replace('#[files=(.*?)](.*?)[/files]#si''<a href="' gen_uri('file''1'RND) . '">2</a>'$str);
    return 
$str;
}

if (
$is_logged) {

    
$error '';

    if (!empty(
$mod) && $mod == 'add_authors') {

        
$user = !empty($_REQUEST['user']) ? check($_REQUEST['user']) : '';

        if (!empty(
$_POST['submit'])) {

          
$user = !empty($_REQUEST['user']) ? check($_REQUEST['user']) : '';

          if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
$user != $log || is_admin(array(101))) {

              
$is_user = (int) $db->selectCell("SELECT `users_id` FROM ?_users WHERE `users_login` = ? LIMIT 1;"$user);

              if (
$is_user 0) {

                
$addstr = (int) $db->selectCell("SELECT `sub_id` FROM ?_users_lenta_subscribe 
                                                 WHERE `sub_subscriber` = ? AND `sub_publisher` = ? LIMIT 1;"
$log$user);

                if (
$addstr 1) {

                  if (
$uset['users_timeaddlist'] < SITE_TIME) {

                      
$db->query("INSERT INTO ?_users_lenta_subscribe (`sub_subscriber`, `sub_publisher`, `sub_time`)
                                  VALUES (?, ?, ?);"
$log$userSITE_TIME);

                      
$db->query("UPDATE ?_users SET `users_timeaddlist` = ? WHERE `users_login` = ?"SITE_TIME 300$log);

                      
$is_ignor = (int) $db->selectCell("SELECT `ignore_id` FROM ?_users_ignor_list 
                                                         WHERE `ignore_user` = ? AND `ignore_name` = ? LIMIT 1;"
$user$log);

                      if (
$is_ignor 1) {

                        
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?"$user);

                        
$priv  '<img src="' $config['site_url'] . '/images/icons/qlt_lenta.png" class="icon" alt="" /> ';
                        
$priv .= 'Пользователь [b]' nickname($log) . '[/b] добавил вас в свою ленту событий!';

                        
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
                                    VALUES (?, ?, ?, ?);"
$user$log$privSITE_TIME);
              }

                      
$inSes->addMessage('Автор успешно добавлен!''ok');

                      
gen_red('authors'''RND);
                  }
                  else 
$inSes->addMessage('Ошибка! Нельзя слишком часто добавлять авторов в ленту, подождите 5 минут!');
                }
                else 
$inSes->addMessage('Ошибка! Вы уже подписаны на ленту событий данного пользователя!');
              }
              else 
$inSes->addMessage('Ошибка! Данного пользователя не существует!');
            }
            else 
$inSes->addMessage('Ошибка! Запрещено добавлять свой логин!');
          }
          else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
        }

        
show_header('Добавление автора в Ленту');
        echo 
'<div class="b">' blink('[!]');
    echo 
' После добавления автора в Ленту, Вы будете получать уведомления обо всех его новых темах, добавляемых файлах, и.т.д.';
    echo 
'Добавляйте в Ленту только тех авторов, которые Вам действительно интересны.';
        echo 
'</div>';
        echo 
'<div class="b form"><form action="?rnd=' $_SESSION['token'] . '" method="post">';
        echo 
'Логин юзера:<br /><input type="text" name="user" value="' request('user') . '" />';
        echo 
'<input type="submit" class="btns" name="submit" value="Добавить" /></form></div>';
        echo 
'<div class="b">' icon('return.png');
        echo 
'<a href="' gen_uri('lenta'''RND) . '">Лента событий</a> | ';
        echo 
'<a href="' gen_uri('authors'''RND) . '">Список авторов</a></div>';

    }
    else if (!empty(
$mod) && $mod == 'authors') {   

        if (!empty(
$_GET['del'])) {

          if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
$id 0) {

              
$db->query("DELETE FROM ?_users_lenta_subscribe WHERE `sub_subscriber` = ? AND `sub_id` = ?;"$log$id);
            
              
$db->query("OPTIMIZE TABLE ?_users_lenta, ?_users_lenta_subscribe");

              
$inSes->addMessage('Выбранные пользователи успешно удалены!''ok');
            }
            else 
$inSes->addMessage('Ошибка! Не выбран пользователь для удаления!');
          }
          else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');

          
gen_red('authors'''RND); 
        }

        
show_header('Список авторов');

        
$onpage = !empty($config['news_num']) ? (int) $config['news_num'] : 10;

        if (
$page 1$from = ($page 1) * $onpage; else $from 0;

        
$rows $db->selectPage($total"SELECT `s`.*, `v`.`visit_nowtime`, `u`.`users_gender`
                                         FROM ?_users_lenta_subscribe `s` 
                                         LEFT JOIN ?_users_visit `v`
                                         ON `s`.`sub_publisher` = `v`.`visit_user`
                                         LEFT JOIN ?_users `u`
                                         ON `s`.`sub_publisher` = `u`.`users_login`
                                         WHERE `s`.`sub_subscriber` = ?
                                         ORDER BY `s`.`sub_time` DESC LIMIT ?d, ?d"
$log$from$onpage);

        if (!empty(
$rows) && $total 0) {

            
$i $from 1;
            foreach(
$rows as $row) {

                echo 
'<div class="b">';
                echo 
$i++ .  '. ' user_visit_icon($row['sub_publisher'], $row['users_gender'], $row['visit_nowtime']) . ' '
                echo 
'<b>' users_anketa($row['sub_publisher']) . '</b> ';
                echo 
'[<a href="' gen_uri('authors'$row['sub_id'], 'del=1&amp;rnd=' $_SESSION['token']) . '">Удалить</a>]';
                echo 
'<div class="right"> (' get_date($row['sub_time']) . ')</div><br />';
                echo 
'</div>';
            }

            echo 
show_pages('authors'RND'p');
        }
        else {

            
show_error('Ваша лента пока пуста.');
        }

        echo 
'<div class="b">' icon('return.png');
        echo 
'<a href="' gen_uri('lenta'''RND) . '">Лента событий</a> | ';
        echo 
'<a href="' gen_uri('add_authors'''RND) . '">Добавить автора</a></div>';

    }
    else {

        if (!empty(
$_POST['del'])) {

          if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

              
$del intar($_POST['del']);

              if (!empty(
$del)) {

                  
$del is_array($del) ? $del : array($del);

                  
$del implode(','$del);

                  
$db->query("DELETE FROM ?_users_lenta WHERE `lenta_subscriber` = ? AND `lenta_id` IN (" $del ");"$log);

                  
$db->query("OPTIMIZE TABLE ?_users_lenta;");

                  
$inSes->addMessage('Выбранные сообщения успешно удалены!''ok');
              }
              else 
$inSes->addMessage('Ошибка удаления! Отсутствуют выбранные сообщения!');
          }
          else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');

          
gen_red('lenta'''RND); 
        }

        
show_header('Лента событий');

        
$onpage = !empty($config['ignor_num']) ? num($config['ignor_num']) : 10;

        if (
$page 1$from = ($page 1) * $onpage; else $from 0;

        
$rows $db->selectPage($total"SELECT `l`.*, `v`.`visit_nowtime`, `u`.`users_gender`
                                         FROM ?_users_lenta `l` 
                                         LEFT JOIN ?_users_visit `v`
                                         ON `l`.`lenta_publisher` = `v`.`visit_user`
                                         LEFT JOIN ?_users `u`
                                         ON `l`.`lenta_publisher` = `u`.`users_login`
                                         WHERE `l`.`lenta_subscriber` = ?
                                         ORDER BY `l`.`lenta_time` DESC LIMIT ?d, ?d"
$log$from$onpage);

        if (!empty(
$rows) && $total 0) {

            echo 
'<form action="?rnd=' $_SESSION['token'] . '" method="post" name="lenta">';

            
$i $from 1;
            foreach(
$rows as $row) {

                echo 
'<div class="b">';
                echo 
$i++ .  '. ' user_visit_icon($row['lenta_publisher'], $row['users_gender'], $row['visit_nowtime']) . ' '
                echo 
'<b>' users_anketa($row['lenta_publisher']) . '</b> ';
                echo 
'<div class="right"> (' get_date($row['lenta_time']) . ')</div><br />';
                echo 
nl2br(bb_code($row['lenta_message'])) . '<br />';
                echo 
'<input type="checkbox" name="del[]" value="' $row['lenta_id'] . '" /> ';
                echo 
'</div>';

            }
            echo 
'<div class="b">';
            echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
            echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></form></div>';

            echo 
show_pages('lenta'RND'p');

            echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.lenta;
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    for (var i=0;i<frm.elements.length;i++) {
        var elmnt = frm.elements[i];
        if (elmnt.type=='checkbox') {
            if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
        }
    }
}
-->
</script>

JSCRIPT;


            if (
$total $config['max_lenta_list']) { // Авто чистка ленты

                
$limit = ($total $config['max_lenta_list']);

                
$dels  $db->select("SELECT * FROM ?_users_lenta
                                      WHERE `lenta_subscriber` = ?
                                      ORDER BY `lenta_time` ASC LIMIT ?d, ?d"
$log0$limit);

                if (!empty(
$dels)) {

                    foreach(
$dels as $del) {

                        
$db->query("DELETE FROM ?_users_lenta WHERE `lenta_subscriber` = ? AND `lenta_id` = ?"$log$del['lenta_id']);
                    }

                    
$db->query("OPTIMIZE TABLE ?_users_lenta;");
                }
            }
        }
        else {

            
show_error('Ваша лента пока пуста.');
            
?>
            <div class="b">
        С помощью ленты вы можете отслеживать всю активность ваших друзей или других обитателей <?=$config['site_name']?>.<br />
        Если вас заинтересовал какой-то человек, зайдите на его страницу и нажмите <span style="color:blue">Добавить в ленту</span>.<br />
            </div>
            <?php
        
}

        echo 
'<div class="b">' icon('mail.png');
        echo 
'<a href="' gen_uri('authors'''RND) . '">Список авторов</a><br />';
        echo 
icon('add.png') . '<a href="' gen_uri('add_authors'''RND) . '">Добавить автора</a></div>';
    }
}
else {

    
show_header('Лента событий');
    
show_login('Вы не авторизованы, чтобы изменять свои данные, необходимо');
}

?>
Онлайн: 0
Реклама