Файл: moduls/groups.php
Строк: 258
<?php
include_once'../system/xcms_core.php';
switch($act){
    case 'users':$title='Участники сообщества';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select `id` from `groups` where `id`='$id'")->rowCount();
        if($q){
            $total=$db->query("select `id` from `groups_users` where `group`='$id'")->rowCount();
            if($total){
                $k_page=k_page($total,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
                $sql=$db->query("select * from `groups_users` where `group`='$id' order by `id` desc limit $start, $set[p_str]");
                while($res=$sql->fetch(PDO::FETCH_ASSOC)){
                    $us=$db->query("select * from `user` where `id`='$res[user]'")->fetch(PDO::FETCH_ASSOC);
                    echo '<div class="menu">
                    '.avatar($us['avatar']).' <a href="/profile'.$res['user'].'">'.$us['login'].'</a>'.lvl($us['id'],$us['level']).on($us['visit']).'<br />';
                    if($res['user']!==$user['id'])
                        echo'<a href="/dialog/'.$res['user'].'">Написать сообщение</a>';
                    else
                        echo'<a href="/profile'.$user['id'].'">Мой профиль</a>';
                    echo'</div>';
                }
                if ($k_page>1)str('/community/'.$id.'/users/',$k_page,$page); // Вывод страниц
            }else{echo'<div class="menu">Участников еще нет</div>';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'avatar':$title='Изменяем аватар';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            if($q['user']==$user['id']){
                echo'<div class="menu">Не более 500Кб(JPG, JPEG, PNG, GIF)<br/>
                <form action = "#" method = "post" enctype = "multipart/form-data"> 
                <input type = "file" name = "somename" /> 
                <input type = "submit" value = "Загрузить" /> 
                </form></div> ';
                $uploadfile1 = rand(0,999999).$_FILES['somename']['name'];
                $ex=strtolower(substr(strrchr($uploadfile1, '.'), 1));
                $uploadfile2="../files/avatar_group/$id.$ex";
                if($ex=='jpg' or $ex=='jpeg' or $ex=='png' or $ex=='gif'){
                    if(move_uploaded_file($_FILES['somename']['tmp_name'], $uploadfile2)){
                        $db->prepare("update `groups` set `avatar`='$id.$ex' where `id`='$id'")->execute();
                        echo'<div class="menu">Аватар загружен → <a href="/community/'.$id.'">Далее</a></div>';
                    }
                }
            }else{echo'<div class="menu">Вы не администратор этого сообщества</div>';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'del':$title='Удаляем сообщество';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            if($q['user']==$user['id']){
                if(!empty($_GET['yes'])){
                    if($db->exec("delete from `groups` where `id`='$id'")==true)
                        echo'<div class="menu">Сообщество удалено → <a href="/community">Далее</a></div>';
                    else
                        echo'<div class="menu">Ошибка</div>';
                }else{
                    echo'<div class="menu"><b>Вы действительно хотите удалить сообщество?</b><br />
                    <a href="/community/'.$id.'/delete">
                    <form action="/community/'.$id.'/delete/yes" method="post">
                    <input type="submit" value="Подтвердить удаление">
                    </form>
                    <form action="/community/'.$id.'" method="post">
                    <input type="submit" value="Отменить удаление">
                    </form>
                    </div>';
                }
            }else{echo'<div class="menu">Вы не администратор этого сообщества</div>';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    break;
    
    case 'edit':$title='Редактирование сообщества';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            if($q['user']==$user['id']){
                if(!empty($_POST['name'])){
                    $name=$db->quote(protect($_POST['name']));
                    if(!empty($_POST['desc']))$desc=$db->quote(protect($_POST['desc']));else $desc=0;
                    if(!empty($_POST['admid']))$adm=$db->quote(protect($_POST['admid']));else $adm=0;
                    if($db->prepare("update `groups` set `name`=$name, `desc`=$desc, `user`=$adm where `id`='$id'")->execute()==true)
                        echo'<div class="menu">Изменили информацию о сообществе → <a href="/community/'.$id.'">Далее</a></div>';
                    else
                        echo'<div class="menu">Ошибка</div>';
                }else{
                    echo'<form action="#" method="post"><div class="menu">
                    Новое название:<br /><input type="text" name="name" value="'.$q['name'].'"><br />
                    Новое описание:<br /><textarea name="desc">'.$q['desc'].'</textarea><br />
                    Новый администратор(<b>ID</b>):<br /><input type="text" name="admid" value="'.$q['user'].'"><br />
                    <input type="submit" value="Обновить">
                    </div></form>';
                }
            }else{echo'<div class="menu">Вы не являетесь администратором этого сообщества</div>';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'invite':$title='Приглашаем в сообщество';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            if($q['type']>0){
                if($q['user']==$user['id']){
                    if(!empty($_POST['user'])){
                        $us=protect($_POST['user']);
                        $w=$db->query("select `id` from `user` where `id`='$us'")->rowCount();
                        if($w){
                            $db->query("insert into `groups_users` set `group`='$id', `user`='$us'");
                            $db->query("insert into `notice` set `to`='$us', `text`='Пользователь <a href="/profile$user[id]">$user[login]</a> пригласил вас в
                            <a href="/community/$id">сообщество <b>$q[name]</b></a>', `status`='1', `time`='$time', `user`='$user[id]'");
                            echo'<div class="menu">Приглашение отправлено → <a href="/community/'.$id.'">К сообществу</a></div>';
                        }else{echo'<div class="menu">Пользователь не найден</div>';}
                    }else{
                        echo'<form action="#" method="post"><div class="menu">
                        Введите ID пользователя: <input type="text" name="user" size="6"><input type="submit" value="Пригласить">
                        </div></form>';
                    }
                }else{echo'<div class="menu">Вы не администратор этого сообщества</div>';}
            }else{echo'<div class="menu">Это открытое сообщество</div>';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'enter':$title='Вступаем в сообщество';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            $w=$db->query("select `id` from `groups_users` where `group`='$id' and `user`='$user[id]'")->rowCount();
            if($w){
                if($db->exec("delete from `groups_users` where `group`='$id' and `user`='$user[id]'")==true)
                    echo'<div class="menu">Вышли из сообщества → <a href="/community/'.$id.'">Далее</a></div>';
                else
                    echo'<div class="menu">Ошибка</div>';
            }else{
                if($q['type']==0){
                    if($db->query("insert into `groups_users` set `group`='$id', `user`='$user[id]'")==true)
                        echo'<div class="menu">Вступили → <a href="/community/'.$id.'">К сообществу</a></div>';
                    else
                        echo'<div class="menu">Ошибка</div>';
                }else{
                    echo'<div class="menu">Это закрытое сообщество</div>';
                }
            }
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'reply':$title='Пишем на стене';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        $q=$db->query("select `id` from `groups` where `id`='$id'")->rowCount();
        if($q){
            if(($time-$user['flood'])>$da['flood']){
                $w=$db->query("select `id` from `groups_users` where `group`='$id' and `user`='$user[id]'")->rowCount();
                if($q['type']==0 or $w){
                    if(!empty($_POST['text'])){
                        $text=smiles(bb_code(nl2br(protect($_POST['text']))));
                        $text_strl=strlen($text);
                        if($text_strl>$da['min_simb']){
                            $db->prepare("update `user` set `balans`=`balans`+1, `flood`='$time' where `id`='$user[id]'")->execute();
                            if($db->query("insert into `groups_wall` set `group`='$id', `text`='$text', `user`='$user[id]', `time`='$time'")==true)
                                echo'<meta http-equiv="refresh" content="0; url = /community/'.$id.' ">';
                            else
                                echo'<div class="menu">Не удалось отправить сообщение</div>';
                        }else{echo'<div class="menu">Мин. длина текста не менее '.$da['min_simb'].' символов</div>';}
                    }else{
                        echo'<form action="#" method="post"><div class="menu">
                        <textarea name="text" placeholder="Написать сообщение.."></textarea><br />
                        <input type="submit" value="Отправить">
                        </div></form>';
                    }
                }else{echo'<div class="menu">Это закрытое сообщество</div>';}
            }else{echo'Чтобы написать, подождите '.($da['flood']-($time-$user['flood'])).' cek.';}
        }else{echo'<div class="menu">Сообщество не найдено</div>';}
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community/'.$id);
    break;
    
    case 'group':
    $q=$db->query("select * from `groups` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
    if($q){
        $w=$db->query("select `id` from `groups_users` where `group`='$id' and `user`='$user[id]'")->rowCount();
        $title=$q['name'];
        if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
        $us=$db->query("select `login` from `user` where `id`='$q[user]'")->fetch(PDO::FETCH_ASSOC);
        echo '<div class="menu">';
        if($q['avatar'])$ava=$q['avatar'];else $ava='default.png';
        echo avatar_group($ava).' '.$q['name'].'<br />
        Создатель: <a href="/profile'.$q['user'].'">'.$us['login'].'</a>';
        if($q['desc'])echo'<br />'.$q['desc'];
        echo'</div>';
        echo '<div class="head" style="text-align:center;"><b>'.$q['name'].'</b></div>';
        if($q['desc'])echo'<div class="menu"><span style="float:left;">Описание:</span>
        <div style="text-align:center;">'.$q['desc'].'</span></div></div>';
        if($user){
            echo'<div class="touch">';
            if($user['id']==$q['user'])echo'
            <div class="menu"><a href="/community/'.$id.'/edit">Редактировать сообщество</a></div>
            <div class="menu"><a href="/community/'.$id.'/avatar">Изменить аватар сообщества</a></div>
            <div class="menu"><a href="/community/'.$id.'/delete">Удалить сообщество</a></div>';
            if($user['level']>4)echo'<div class="menu"><a href="/moduls/delete.php?act=15&id='.$id.'">Удалить сообщество</a></div>';
            if($w){
                if($q['user']==$user['id'] and $q['type']>0)echo'<div class="menu"><a href="/community/'.$id.'/invite">Пригласить пользователя</a></div>';
                echo'<div class="menu"><a href="/community/'.$id.'/users">Участники сообщества
                <span style="float:right;">('.$db->query("select `id` from `groups_users` where `group`='$id'")->rowCount().')</span></a></div>
                <div class="menu"><a href="/community/'.$id.'/enter">Выйти из сообщества</a></div>';
            }else{
                if($q['type']==0)
                    echo'<div class="menu"><a href="/community/'.$id.'/enter">Вступить в сообщество</a></div>';
                else
                    echo'<div class="menu">Это закрытое сообщество, попасть в него можно только по приглашению</div>';
            }
            echo'</div>';
        }
        if($q['type']==0 or $w){
            if(($time-$user['flood'])>$da['flood']){
                echo'<div class="head" style="text-align:center;">Стена сообщества</div>';
                if($user)echo'<form action="/community/'.$id.'/reply" method="post"><div class="menu">
                <textarea name="text" placeholder="Написать сообщение.."></textarea><br />
                <input type="submit" value="Отправить">
                </div></form>';
            }else{echo'Чтобы написать, подождите '.($da['flood']-($time-$user['flood'])).' cek.';}
            $total=$db->query("select `id` from `groups_wall` where `group`='$id'")->rowCount();
            if($total){
                $k_page=k_page($total,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
                $sql=$db->query("select * from `groups_wall` where `group`='$id' order by `time` desc limit $start, $set[p_str]");
                while($res=$sql->fetch(PDO::FETCH_ASSOC)){
                    $us=$db->query("select * from `user` where `id`='$res[user]'")->fetch(PDO::FETCH_ASSOC);
                    echo'<div class="menu">
                    '.avatar($us['avatar']).' <a href="/profile'.$res['user'].'">'.$us['login'].'</a> '.lvl($us['id'],$us['level']).on($us['visit']).'<br />
                    '.clock($res['time']).'<br />'.$res['text'].'</div>';
                }
                if ($k_page>1)str('/community/'.$id.'/',$k_page,$page); // Вывод страниц
            }else{echo'<div class="menu">Стена сообщества пуста</div>';}
        }else{echo'<div class="menu">Стена доступна только для участников сообщества</div>';}
    }else{echo'<div class="menu">Сообщество не найдено</div>';}
    back('/community');
    break;
    
    case 'create':$title='Создаем сообщество';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user){
        if(!empty($_POST['name']) and !empty($_POST['type'])){
            $name=$db->quote(protect($_POST['name']));
            $types=protect($_POST['type']);
            if($types==1)$type=0;else $type=1;
            if(!empty($_POST['desc']))$desc=$db->quote(protect($_POST['desc']));else $desc=0;
            if($db->query("insert into `groups` set `name`=$name, `desc`=$desc, `time`='$time',`type`='$type', `user`='$user[id]'")==true){
                $new=$db->lastInsertId();
                $db->query("insert into `groups_users` set     `user`='$user[id]', `group`='$new'");
                echo'<div class="menu">Сообщество создано → <a href="/community/'.$new.'">К сообществу</a></div>';
            }else{echo'<div class="menu">Ошибка создания</div>';}
        }else{
            echo'<form action="#" method="post">
            <div class="menu">
            Название:<br /><input type="text" name="name"><br />
            Описание:<br /><textarea name="desc"></textarea><br />
            Тип сообщества:<br /><select name="type">
            <option value="1">Открытое</option>
            <option value="2">Закрытое</option>
            </select><br />
            <input type="submit" value="Создать">
            </div></form>';
        }
    }else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
    back('/community');
    break;
    
    default:$title='Сообщества';
    if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
    if($user)echo'<div class="touch" style="text-align:center;">
    <div class="menu"><a href="/community/create">Создать сообщество</a></div>
    <div class="menu"><a href="/profile'.$user['id'].'/community">Мои сообщества</a></div>
    </div>';
    $total=$db->query("select `id` from `groups`")->rowCount();
    if($total){
        $k_page=k_page($total,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
        $sql=$db->query("select * from `groups` order by `id` desc limit $start, $set[p_str]");
        echo'<div class="touch">';
        while($res=$sql->fetch(PDO::FETCH_ASSOC)){
            echo '<div class="menu">';
            if($res['avatar'])$ava=$res['avatar'];else $ava='default.png';
            echo avatar_group_small($ava).' <a href="/community/'.$res['id'].'">'.$res['name'];
            if($res['type']>0)echo' <span style="color:red;">[Закрытое]</span>';else echo'';
            echo'<span style="float:right;">Участников: '.$db->query("select `id` from `groups_users` where `group`='$res[id]'")->rowCount().'</span>';
            if($res['desc'])echo'<br />'.$res['desc'];
            echo'</a></div>';
        }
        echo'</div>';
        if ($k_page>1)str('/community/',$k_page,$page); // Вывод страниц
    }else{echo'<div class="menu">Сообщества еще не созданы</div>';}
    back('/');
}
if($_COOKIE['style']=='web')require_once '../system/web_foot.php'; else require_once '../system/foot.php';
?>