Файл: soc-set/moduls/groups/index.php
Строк: 122
<?php
require_once('../../core/start.php');
require_once('func.php');
check_auth();
switch ($select) {
default:
head('Сообщества');
panel();
$all = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS."");
if ($all == 0) {
echo DIV_AUT . 'Сообществ нет' . CLOSE_DIV;
} else {
$sql = DB::$dbs->query("SELECT * FROM ".GROUPS." ORDER BY `id` DESC ");
while($group = $sql -> fetch()) {
$peoples = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? ", array($group['id']));
echo DIV_BLOCK;
echo '<a href="'.HOME.'/groups/'.$group['id'].'/"><b>' . $group['name'] . '</b></a> ['.$peoples.' чел.]<br />';
echo $group['info'] . '<br />';
echo CLOSE_DIV;
}
}
if (check() == FALSE) {
echo DIV_LI . '[+] <a href="'.HOME.'/groups/new/">Создать сообщество</a>' . CLOSE_DIV;
} else {
echo DIV_LI . '[+] <a href="'.HOME.'/groups/'.my().'/">Мое сообщество</a>' . CLOSE_DIV;
}
$array = array('Сообщества');
nav($array);
break;
case 'view':
$id = abs(num($_GET['id']));
$group = DB::$dbs->queryFetch("SELECT * FROM ".GROUPS." WHERE `id` = ? ",array($id));
if (empty($group)) {
head('Сообщество не найдено');
echo DIV_TITLE . 'Сообщество не найдено' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <b>Сообщество не найдено</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
head('Сообщество: ' . $group['name']);
panel();
echo DIV_BLOCK . (empty($group['logo']) ? '<img src="' . HOME . '/style/img/empty_photo.gif" />' : '<img src="' . HOME . '/files/groups/mini_'.$group['logo'] . '" />') . CLOSE_DIV;
echo DIV_BLOCK;
echo '<b>' . $group['name'] . '</b><br />';
echo '<b>Описание:</b>' . text($group['info']) . '<br />';
if ($group['user_id'] != $user['user_id']) {
$sql = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `user_id` = ? ", array($group['id'], $user['user_id']));
if ($sql == FALSE) {
echo '<form action="'.HOME.'/groups/'.$group['id'].'/join/" method="POST"><input type="submit" value="Вступить" /></form>';
} else {
echo '<form action="'.HOME.'/groups/'.$group['id'].'/leave/" method="POST"><input type="submit" value="Покинуть" /></form>';
}
}
echo CLOSE_DIV;
echo ($group['user_id'] == $user['user_id'] ? DIV_LI . '<a href="'.HOME.'/groups/'.$group['id'].'/panel/"><b>Управление сообществом</b></a>' . CLOSE_DIV : NULL);
if ($group['private_forum'] == 1) {
if (check_private($group['id']) == TRUE) {
$topics = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_TOPIC." WHERE `group_id` = ? ", array($group['id']));
$posts = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_POST." WHERE `group_id` = ? ", array($group['id']));
echo DIV_LI . '<a href="'.HOME.'/groups/topics/'.$group['id'].'/">Обсуждения</a> ['.$topics.'/'.$posts.']' . CLOSE_DIV;
}
} else {
$topics = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_TOPIC." WHERE `group_id` = ? ", array($group['id']));
$posts = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_POST." WHERE `group_id` = ? ", array($group['id']));
echo DIV_LI . '<a href="'.HOME.'/groups/topics/'.$group['id'].'/">Обсуждения</a> ['.$topics.'/'.$posts.']' . CLOSE_DIV;
}
$peoples = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? ", array($group['id']));
echo DIV_LI . '<a href="'.HOME.'/groups/'.$group['id'].'/peoples/">Люди в сообществе</a> ['.$peoples.']' . CLOSE_DIV;
$admins = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `level` > ? ", array($group['id'], 0));
echo DIV_LI . '<a href="'.HOME.'/groups/'.$group['id'].'/admin/">Администрация</a> ['.$admins.']' . CLOSE_DIV;
$array = array('Сообщества');
nav($array);
require_once('../../core/stop.php');
break;
case 'admin':
$id = abs(num($_GET['id']));
$group = DB::$dbs->queryFetch("SELECT * FROM ".GROUPS." WHERE `id` = ? ",array($id));
if (empty($group)) {
head('Сообщество не найдено');
echo DIV_TITLE . 'Сообщество не найдено' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <b>Сообщество не найдено</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
head('Администрация');
echo DIV_TITLE . 'Администрация' . CLOSE_DIV;
$n = new Navigator($all,10,'id='.$group['id']);
$sql = DB::$dbs->query("SELECT * FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `level` > ? ORDER BY `id` DESC LIMIT {$n->start()}, 10", array($group['id'], 0));
while($ank = $sql -> fetch()) {
echo DIV_LI . userLink($ank['user_id']) . ' [<b>' . group_level($ank['level']) . '</b>]' . CLOSE_DIV;
}
echo $n->navi();
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <a href="'.HOME.'/groups/'.$group['id'].'/">'.$group['name'].'</a> / <b>Люди в сообществе</b>' . CLOSE_DIV;
break;
case 'peoples':
$id = abs(num($_GET['id']));
$group = DB::$dbs->queryFetch("SELECT * FROM ".GROUPS." WHERE `id` = ? ",array($id));
if (empty($group)) {
head('Сообщество не найдено');
echo DIV_TITLE . 'Сообщество не найдено' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <b>Сообщество не найдено</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
head('Люди в сообществе');
echo DIV_TITLE . 'Люди в сообществе' . CLOSE_DIV;
$n = new Navigator($all,10,'id='.$group['id']);
$sql = DB::$dbs->query("SELECT * FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? ORDER BY `id` DESC LIMIT {$n->start()}, 10", array($group['id']));
while($ank = $sql -> fetch()) {
echo DIV_LI . userLink($ank['user_id']) . ' [<b>' . group_level($ank['level']) . '</b>]' . CLOSE_DIV;
}
echo $n->navi();
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <a href="'.HOME.'/groups/'.$group['id'].'/">'.$group['name'].'</a> / <b>Люди в сообществе</b>' . CLOSE_DIV;
break;
case 'join':
$id = abs(num($_GET['id']));
$group = DB::$dbs->queryFetch("SELECT * FROM ".GROUPS." WHERE `id` = ? ",array($id));
if (empty($group)) {
head('Сообщество не найдено');
echo DIV_TITLE . 'Сообщество не найдено' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <b>Сообщество не найдено</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
$sql = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `user_id` = ? ", array($group['id'], $user['user_id']));
if ($sql == FALSE) {
DB::$dbs->query("INSERT INTO ".GROUPS_PEOPLES." (`group_id`, `user_id`, `level`) VALUES (?, ?, ?)", array($group['id'], $user['user_id'], 0));
header("Location: ".HOME."/groups/".$group['id']."/");
} else {
head('Вы уже состоите в данном сообществе');
echo DIV_TITLE . 'Вы уже состоите в данном сообществе' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <a href="'.HOME.'/groups/'.$group['id'].'/">'.$group['name'].'</a> / <b>Вы уже состоите в данном сообществе</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
break;
case 'leave':
$id = abs(num($_GET['id']));
$group = DB::$dbs->queryFetch("SELECT * FROM ".GROUPS." WHERE `id` = ? ",array($id));
if (empty($group)) {
head('Сообщество не найдено');
echo DIV_TITLE . 'Сообщество не найдено' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <b>Сообщество не найдено</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
if ($group['user_id'] == $user['user_id']) {
head('Вы не можете покинуть сообщество, т.к Вы являетесь создателем');
echo DIV_TITLE . 'Вы не можете покинуть сообщество, т.к Вы являетесь создателем' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <a href="'.HOME.'/groups/'.$group['id'].'/">'.$group['name'].'</a> / <b>Вы не можете покинуть сообщество, т.к Вы являетесь создателем</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
$sql = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `user_id` = ? ", array($group['id'], $user['user_id']));
if ($sql == TRUE) {
DB::$dbs->query("DELETE FROM ".GROUPS_PEOPLES." WHERE `group_id` = ? && `user_id` = ? ", array($group['id'], $user['user_id']));
header("Location: ".HOME."/groups/".$group['id']."/");
} else {
head('Вы не состоите в данном сообществе');
echo DIV_TITLE . 'Вы не состоите в данном сообществе' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups/">Сообщества</a> / <a href="'.HOME.'/groups/'.$group['id'].'/">'.$group['name'].'</a> / <b>Вы не состоите в данном сообществе</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
break;
case 'new':
head('Создание сообщества');
if (!empty($_POST['add'])) {
$name2 = html($_POST['name']);
$info = html($_POST['info']);
if (!empty($_FILES['file']['name'])) {
$name = $_FILES['file']['name']; # Название файла
$ext = strtolower(strrchr($name, '.')); # Расширение файла
$par = getimagesize($_FILES['file']['tmp_name']); # Разрешение изображения
$size = $_FILES['file']['size']; # Вес файла
$time = time();
$file = $time.$ext;
$pictures = array('.jpg', '.jpeg', '.gif', '.png'); # Допустимые расширения
if ($size > (1048576 * $config['max_upload_group'])) {
$err .= 'Размер фотографии превышает допустимое значение. [Max. '.$config['max_upload_group'].'Mb.]<br />';
}
if (preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, $pictures)) {
$err .= 'Не верное расширение файла.<br />';
}
}
if (empty($name2)) {
$err .= 'Заполните название сообщества<br />';
}
if (empty($info)) {
$err .= 'Заполните описание сообщества<br />';
}
if (empty($err)) {
if (empty($ext)) {
$file = 0;
}
copy($_FILES['file']['tmp_name'], '../../files/groups/'.$file); # Загружаем в оригинале
img_resize('../../files/groups/'.$file, '../../files/groups/mini_'.$file, $config['mini_logo_par'][0], $config['mini_logo_par'][1]); # Mini
DB::$dbs->query("INSERT INTO ".GROUPS." (`name`, `info`, `logo`, `user_id`, `time`, `peoples`) VALUES (?, ?, ?, ?, ?, ?)", array($name2, $info, $file, $user['user_id'], time(), 1));
$lastid = DB::$dbs->lastInsertId();
DB::$dbs->query("INSERT INTO ".GROUPS_PEOPLES." (`group_id`, `user_id`, `level`) VALUES (?, ?, ?)", array($lastid, $user['user_id'], 2));
header("Location: ".HOME."/groups/".$lastid);
} else {
echo DIV_ERROR . $err . CLOSE_DIV;
}
}
echo DIV_TITLE . 'Создание сообщества' . CLOSE_DIV;
echo DIV_AUT;
echo '<form action="#" method="POST" enctype="multipart/form-data">';
echo '<b>Название:</b> [max. 100]<br /><input type="text" name="name" /><br /><br />';
echo '<b>Описание:</b> [max. 250]<br /><textarea name="info"></textarea><br /><br />';
echo '<b>Логотип:</b> [max. '.$config['max_upload_group'].'mb., jpg, gif, png]<br /><input type="file" name="file"/><br /><br />';
echo '<input type="submit" name="add" value="Создать" /></form>';
echo CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/groups">Сообщества</a> / <b>Создание сообщества</b>' . CLOSE_DIV;
break;
}
require_once('../../core/stop.php');
?>