View file moduls/groups.php

File size: 18.16Kb
<?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">Аватар загружен &rarr; <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">Сообщество удалено &rarr; <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">Изменили информацию о сообществе &rarr; <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">Приглашение отправлено &rarr; <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">Вышли из сообщества &rarr; <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">Вступили &rarr; <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&amp;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">Сообщество создано &rarr; <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';
?>