Файл: system/modules/api.php
Строк: 256
<?php
if(!defined('MOZG'))
die('И че ты тут забыл??');
if($ajax == 'yes')
NoAjaxQuery();
$key = 'sofwar';
$act = $_GET['act'];
if($logged){
if($ajax == 'yes')
NoAjaxQuery();
$user_id = $user_info['user_id'];
$key = '0PFXXTE349BMNFSV9801DZ843VUAA482';
$tpl->set('{hash}', md5($key.'asd4465a4das56d4as65'.$user_id));
$act = $_GET['act'];
switch($act){
case "view":
NoAjaxQuery();
$id = intval($_POST['id']);
$row = $db->super_query("SELECT `id`,`cols`,`title`,`img`,`desc` FROM `".PREFIX."_apps` WHERE id='{$id}'");
$num = $row['cols'];
//Склонение поля человека смотрящего обьявление
if($user_info['user_sex'] == '1'){
$user_sex = 'первым';
}else{
$user_sex = 'первой';
}
//Проверка устанавливал ли кто нибудь Приложения
if($row['cols'] == 0){
$application_f = 'Приложения еще ни кто не установил будь '.$user_sex;
}else{
$application_f = 'Приложения установили '.$num.' '.gram_record($num, 'apps');
}
//Если нету Изображение Приложения то ставим стандарт..
if($row['img']){
$application_img = $config['home_url'].'uploads/apps/'.$row['id'].'/'.$row['img'];
} else {
$application_img = '/images/no_apps.gif';
}
$tpl->set('{id}', $row['id']);
$tpl->set('{nums}', $application_f);
$tpl->set('{title}', $row['title']);
$tpl->set('{desc}', $row['desc']);
$tpl->set('{ava}', $application_img);
$tpl->load_template('apps/viewapplication.tpl');
$tpl->compile('content');
AjaxTpl();
die();
break;
//############### Вывод игры ###############
case "app":
$id = intval($_GET['id']);
//Создание приложения
case "create":
$metatags['title'] = 'Создание приложения';
$tpl->load_template('apps/editapp/create.tpl');
$tpl->compile('content');
break;
//Создание приложения
case "do_create":
$title = $_POST['title'];
$desc = $_POST['desc'];
$secret = md5($key.'asd4465a4das56d4as65'.rand(99,9999)); // Генерируем секретный ключ
$db->query("SET NAMES 'utf8'"); // Я почему то не смог нормально записать)
$db->query("INSERT INTO `".PREFIX."_apps` (`id`,`title`,`desc`,`secret`,`user_id`) VALUES ('','".$title."','".$desc."','".$secret."','".$user_id."') ");
$dbid = $db->insert_id();
echo $dbid;
die(); // Пришлось закрывать дальнейшию работу что бы скрипт выдал только ответ
break;
//Вкладка info
case "info":
$metatags['title'] = 'Редактирование приложения';
$id = intval($_GET['id']);
$row = $db->super_query("SELECT `id`, `title`, `desc`, `img`,`secret`,`user_id`,`admins` FROM `".PREFIX."_apps` WHERE `id`='{$id}'");
$array_admin = explode('|', $row['admins']);
if(in_array($user_id, $array_admin) or $user_id == $row['user_id'] ){
if($row['img'] == ''){
$img = '/uploads/apps/no.gif';
} else $img = '/uploads/apps/'.$row['id'].'/100_'.$row['img'];
$tpl->set('{id}', $row['id']);
$tpl->set('{title}', $row['title']);
$tpl->set('{img}', $img);
$tpl->set('{desc}', $row['desc']);
$tpl->set('{hash}', md5($id.'_'.$key));
$tpl->load_template('apps/editapp/info.tpl');
$tpl->compile('content');
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
// Сохранение страницы info
case "save_info":
NoAjaxQuery();
$id = intval($_POST['app']);
$app_hash = $_POST['app_hash'];
$title = $_POST['app_title'];
$desc = $_POST['app_desc'];
if($app_hash == md5($id.'_'.$key)){
if($title == '') die("name");
elseif($desc == '') die("desc");
$db->query("SET NAMES 'utf8'"); // Я почему то не смог нормально записать)
$db->query("UPDATE `".PREFIX."_apps` SET `title`='{$title}', `desc`='{$desc}' WHERE `id`='{$id}'");
echo "ok";
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
//Вкладка настройки
case "options":
$metatags['title'] = 'Редактирование приложения';
$id = intval($_GET['id']);
$row = $db->super_query("SELECT `id`, `title`, `desc`, `img`,`status`,`secret`,`width`,`height`,`url`,`user_id`,`admins`,`type` FROM `".PREFIX."_apps` WHERE `id`='{$id}'");
$array_admin = explode('|', $row['admins']);
if(in_array($user_id, $array_admin) or $user_id == $row['user_id'] ){
// Немного убого, но я ленив)
if($row['status'] == 1){
$option = '<option value="1" selected="selected">Приложение включено и видно всем</option><option value="-1" >Приложение отключено</option>';
}else{
$option = '<option value="1" >Приложение включено и видно всем</option><option value="-1" selected="selected">Приложение отключено</option>';
}
if($row['type'] == 1){
$type = '<option value="1" selected="selected">Iframe</option><option value="2">Flash</option>';
$tpl->set('{sflash}', 'none');
$tpl->set('{siframe}', 'table');
}else{
$type = '<option value="1">Iframe</option><option value="2" selected="selected">Flash</option>';
$tpl->set('{sflash}', 'table');
$tpl->set('{siframe}', 'none');
}
$tpl->set('{id}', $row['id']);
$tpl->set('{url}', $row['url']);
$tpl->set('{title}', $row['title']);
$tpl->set('{desc}', $row['desc']);
$tpl->set('{height}', $row['height']);
$tpl->set('{width}', $row['width']);
$tpl->set('{img}', '/uploads/apps/'.$row['id'].'/100_'.$row['img']);
$tpl->set('{status}', $row['status']);
$tpl->set('{option}', $option);
$tpl->set('{type}', $type);
$tpl->set('{secret}', $row['secret']);
$tpl->set('{hash}', md5($id.'_'.$key));
$tpl->load_template('apps/editapp/options.tpl');
$tpl->compile('content');
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
// Сохранение страницы info
case "save_options":
NoAjaxQuery();
$id = intval($_POST['app']);
$app_hash = $_POST['app_hash'];
$secret = $_POST['app_secret'];
$url = $_POST['app_url'];
$status = intval($_POST['app_status']);
$width = intval($_POST['app_width']);
$height = intval($_POST['app_height']);
$type = intval($_POST['app_type']);
if($secret == '') die("secret2");
elseif($url == '' and $type == '1') die("iframe_url");
elseif($width == '' and $type == '1') die("iframe_width");
elseif($height == '' and $type == '1') die("iframe_height");
if($app_hash == md5($id.'_'.$key)){
$db->query("UPDATE `".PREFIX."_apps` SET `secret`='{$secret}', `status`='{$status}', `url`='{$url}', `width`='{$width}', `height`='{$height}', `type`='{$type}' WHERE `id`='{$id}'");
echo "ok";
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
//Окно загрузки swf
case "load_flash":
NoAjaxQuery();
$tpl->set('{id}', intval($_GET['id']));
$tpl->load_template('/apps/editapp/load_flash.tpl');
$tpl->compile('content');
AjaxTpl();
die();
break;
case 'flash':
NoAjaxQuery();
$id = intval($_GET['id']);
$flash_tmp = $_FILES['uploadfile']['tmp_name'];
$flash_name = totranslit($_FILES['uploadfile']['name']); // оригинальное название для оприделения формата
$flash_rename = substr(md5($server_time+rand(1,100000)), 0, 15); // имя фотографии
$flash_size = $_FILES['uploadfile']['size']; // размер файла
$type = end(explode(".", $flash_name)); // формат файла
//Проверям если, формат верный то пропускаем
if(strtolower($type) == 'swf'){
$res_type = '.'.$type;
$db->query("UPDATE `".PREFIX."_apps` SET `flash`='{$flash_rename}{$res_type}' WHERE `id`='{$id}'");
$flash_dir = ROOT_DIR.'/uploads/apps/'.$id.'/';
if(!is_dir($flash_dir)){
@mkdir($flash_dir, 0777);
@chmod($flash_dir, 0777);
}
move_uploaded_file($flash_tmp, $flash_dir.$flash_rename.'.swf');
echo 'ok';
} else echo 'bad_format';
break;
//Вкладка платежи
case "payments":
$metatags['title'] = 'Редактирование приложения';
$id = intval($_GET['id']);
$row = $db->super_query("SELECT `id`,`user_id`,`balance`,`admins` FROM `".PREFIX."_apps` WHERE `id`='{$id}'");
$array_admin = explode('|', $row['admins']);
if(in_array($user_id, $array_admin) or $user_id == $row['user_id'] ){
$row1 = $db->super_query("SELECT `id`, `votes`, `from`, `whom`,`date`,`application_id` FROM `".PREFIX."_apps_transactions` WHERE `id`='{$id}' ORDER BY id DESC LIMIT 20",1);
$tpl->load_template('apps/editapp/table.tpl');
foreach($row1 as $rowsd){
$users = $db->super_query("SELECT `user_name`, `user_lastname` FROM `".PREFIX."_users` WHERE `user_id`='{$rowsd[from]}'");
if(date('Y-m-d', $rowsd['date']) == date('Y-m-d', $server_time)) $dateTell = langdate('сегодня в H:i', $rowsd['date']); else $dateTell = langdate('j F Y в H:i', $rowsd['date']);
$tpl->set('{name}', $users['user_name'].' '.$users['user_lastname']);
$tpl->set('{from}', $rowsd['from']);
$tpl->set('{whom}', $rowsd['whom']);
$tpl->set('{date}', $dateTell);
$tpl->set('{application_id}', $rowsd['application_id']);
$tpl->set('{id}', $rowsd['id']);
$tpl->set('{votes}', $rowsd['votes']);
$tpl->compile('payments');
}
$tpl->set('{id}', $id);
$tpl->set('{balance}', $row['balance']);
$tpl->load_template('apps/editapp/payments.tpl');
$tpl->set('{payments}', $tpl->result['payments']);
$tpl->compile('content');
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
//Вкладка Администраторы
case "admins":
$metatags['title'] = 'Редактирование приложения';
$id = intval($_GET['id']);
$row = $db->super_query("SELECT `id`,`user_id`,`admins` FROM `".PREFIX."_apps` WHERE `id`='{$id}'");
$array_admin = explode('|', $row['admins']);
if(in_array($user_id, $array_admin) or $user_id == $row['user_id'] ){
$array_admins = explode('|', $row['admins']);
$tpl->load_template('apps/editapp/admin_all.tpl');
foreach($array_admins as $user){
if($user){
$infoUser = $db->super_query("SELECT user_photo, user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$user}'");
if($infoUser['user_photo'])
$tpl->set('{img}', '/uploads/users/'.$user.'/50_'.$infoUser['user_photo']);
else
$tpl->set('{img}', '/images/no_ava_50.png');
$tpl->set('{name}', $infoUser['user_search_pref']);
$tpl->set('{uid}', $user);
$tpl->compile('all');
}
}
$users = $db->super_query("SELECT user_search_pref, user_photo FROM `".PREFIX."_users` WHERE `user_id`='{$row[user_id]}'");
$tpl->set('{id}', $id);
if($users['user_photo'])
$tpl->set('{img}', '/uploads/users/'.$row['user_id'].'/50_'.$users['user_photo']);
else
$tpl->set('{img}', '/images/no_ava_50.png');
$tpl->set('{name}', $users['user_search_pref']);
$tpl->set('{uid}', $row['user_id']);
$tpl->set('{hash}', md5($id.'_'.$key));
$tpl->set('{all}', $tpl->result['all']);
$tpl->load_template('apps/editapp/admins.tpl');
$tpl->compile('content');
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
case 'save_admin':
$id = intval($_POST['id']);
$app_hash = $_POST['hash'];
$addr = intval($_POST['addr']);
if($app_hash == md5($id.'_'.$key)){
//Проверяем на существование юзера
$row = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$addr}'");
if(!$row['cnt']) die('not_user');
$myRow = $db->super_query("SELECT admins,user_id FROM `".PREFIX."_apps` WHERE id = '{$id}'");
$array_admin = explode('|', $myRow['admins']);
if(!in_array($addr, $array_admin) AND $user_id != $addr AND $myRow['user_id'] != $addr){
$db->query("UPDATE `".PREFIX."_apps` SET admins_num = admins_num+1, admins = '{$myRow['admins']}|{$addr}|' WHERE id = '{$id}'");
echo 'ok';
} else echo "not";
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
die();
break;
case 'del_admin':
$id = intval($_POST['id']);
$app_hash = $_POST['hash'];
$addr = intval($_POST['addr']);
if($app_hash == md5($id.'_'.$key)){
$myRow = $db->super_query("SELECT admins,user_id FROM `".PREFIX."_apps` WHERE id = '{$id}'");
$array_admin = explode('|', $myRow['admins']);
if($myRow['user_id'] == $addr) die("general");
if(in_array($addr, $array_admin) AND $user_id != $addr){
$myRow['admins'] = str_replace("|{$addr}|", "", $myRow['admins']);
$db->query("UPDATE `".PREFIX."_apps` SET admins_num = admins_num-1, admins = '{$myRow['admins']}' WHERE id = '{$id}'");
echo 'ok';
} else echo "not";
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
die();
break;
case "del_admin_form":
$id = intval($_POST['id']);
$addr = intval($_POST['addr']);
$app_hash = $_POST['hash'];
if($app_hash == md5($id.'_'.$key)){
$app = $db->super_query("SELECT `title` FROM `".PREFIX."_apps` WHERE id = '{$id}'");
$users = $db->super_query("SELECT `user_name`, `user_lastname` FROM `".PREFIX."_users` WHERE user_id = '{$addr}'");
$tpl->set('{id}', $id);
$tpl->set('{title}', $app['title']);
$tpl->set('{uid}', $addr);
$tpl->set('{name}', $users['user_name']. ' '. $users['user_lastname']);
$tpl->load_template('apps/editapp/del_admin_form.tpl');
$tpl->compile('content');
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
AjaxTpl();
die();
$tpl->clear();
$db->free();
break;
case "search_admin":
$row = $db->super_query("SELECT user_photo, user_id FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
$tpl->load_template('apps/editapp/add_admin.tpl');
if($row['user_photo']){
$tpl->set('{ava}', $config['home_url'].'uploads/users/'.$row['user_id'].'/50_'.$row['user_photo']);
} else {
$tpl->set('{ava}', '/images/no_ava.gif');
}
$tpl->compile('content');
AjaxTpl();
die();
$tpl->clear();
$db->free();
break;
case "checkAdmin":
NoAjaxQuery();
$id = intval($_POST['id']);
$row = $db->super_query("SELECT user_photo, user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$id}'");
if($row) echo $row['user_search_pref']."|".$row['user_photo'];
die();
break;
//Удаление приложения
case "deleteapp":
$id = intval($_POST['app']);
$app_hash = $_POST['app_hash'];
if($app_hash == md5($id.'_'.$key)){
$app = $db->super_query("SELECT `title` FROM `".PREFIX."_apps` WHERE id = '{$id}'");
if($app['user_id'] == $user_id){
$db->query("DELETE FROM `".PREFIX."_apps` WHERE `id`='{$id}'");
echo "ok";
} else echo "not";
}else{
$tpl->load_template('apps/editapp/error.tpl');
$tpl->compile('content');
}
break;
//Окно загрузки фотографий
case "load_photo":
NoAjaxQuery();
$tpl->set('{id}', intval($_GET['id']));
$tpl->load_template('/apps/editapp/load_photo.tpl');
$tpl->compile('content');
AjaxTpl();
die();
break;
//Функция загрузки фото
case "upload":
NoAjaxQuery();
include ENGINE_DIR.'/classes/images.php';
$id = intval($_GET['id']);
$uploaddir = ROOT_DIR.'/uploads/apps/';
//Если нет папок юзера, то создаём её
if(!is_dir($uploaddir.$id)){
@mkdir($uploaddir.$id, 0777 );
@chmod($uploaddir.$id, 0777 );
}
//Разришенные форматы
$allowed_files = array('jpg', 'png', 'gif');
//Получаем данные о фотографии
$image_tmp = $_FILES['uploadfile']['tmp_name'];
$image_name = totranslit($_FILES['uploadfile']['name']); // оригинальное название для оприделения формата
$image_rename = substr(md5($server_time+rand(1,100000)), 0, 15); // имя фотографии
$image_size = $_FILES['uploadfile']['size']; // размер файла
$type = end(explode(".", $image_name)); // формат файла
if(in_array($type, $allowed_files)){
if($image_size < 5000000){
$res_type = '.'.$type;
$uploaddir = ROOT_DIR.'/uploads/apps/'.$id.'/'; // Директория куда загружать
if(move_uploaded_file($image_tmp, $uploaddir.$image_rename.$res_type)) {
//Создание уменьшеной копии 100х100
$tmb = new thumbnail($uploaddir.$image_rename.$res_type);
$tmb->size_auto('100x100');
$tmb->jpeg_quality(97);
$tmb->save($uploaddir.'100_'.$image_rename.$res_type);
$image_rename = $db->safesql($image_rename);
$res_type = $db->safesql($res_type);
$db->query("UPDATE `".PREFIX."_apps` SET `img`='{$image_rename}{$res_type}' WHERE `id`='{$id}'");
echo $config['home_url'].'uploads/apps/'.$id.'/100_'.$image_rename.$res_type;
} else
echo 'bad';
} else
echo 'big_size';
} else
echo 'bad_format';
break;
}
$db->free();
$tpl->clear();
} else {
$user_speedbar = 'Информация';
msgbox('', $lang['not_logged'], 'info');
}
?>