Файл: moduls/groups.php
Строк: 257
<?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'].'</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';
?>