Файл: app/classes/FO.php
Строк: 387
<?php
class FO extends Base {
public static function index($page) {
$p = Flight::page();
$pages = $p->menu('fo_video', '/porno-obmenik-video', $page, "WHERE `moderation` = '0'", FO_PERPAGE);
$files = Flight::db()
->query("SELECT *, (SELECT COUNT(*) FROM fo_comments WHERE fo_comments.parent = fo_video.id) AS count_comments FROM `fo_video` WHERE `fo_video`.`moderation` = '0' ORDER BY `fo_video`.`id` DESC " . $p->limit())
->fetchAll();
if (!empty($_SESSION['message'])) {
$message = $_SESSION['message'];
unset($_SESSION['message']);
}
$video_moderation = Flight::db()
->query("SELECT COUNT(*) FROM `fo_video` WHERE moderation = '1'")
->fetchColumn();
parent::view('fo/files', [
'title' => 'Порно обменник видео бесплатно, файлообменник частные порно ролики, добавь свой видео на сайт бесплатно',
'description' => 'Секс Порно обменник видео бесплатно, файлообменник ххх частные порно ролики, ты тоже добавь свой видео на сайт бесплатно',
'keywords' => 'обменник, порно, видео, файлообменник, добивить, бесплатно, свой, ххх, секс, ролик, обменник, смартфон',
'files' => $files,
'fo_status' => FO_STATUS,
'nav' => '<div class="new"><b>Показать самые:</b> <a href="/porno-obmenik-video/top/views/">Просматриваемые</a> / <a href="/porno-obmenik-video/top/down/">Скачиваемые</a> / <a href="/porno-obmenik-video/top/rating/">Популярные</a> / Новые</div>',
'pagination' => $pages,
'message' => (!empty($message) ? $message : ''),
'err' => (!empty($err) ? $err : array()),
'video_moderation' => $video_moderation
]);
}
public static function top($sort, $page) {
$video_moderation = Flight::db()
->query("SELECT COUNT(*) FROM `fo_video` WHERE moderation = '1'")
->fetchColumn();
switch ($sort) {
case 'new':
$p = Flight::page();
$pages = $p->menu('fo_video', '/porno-obmenik-video/top/new', $page, "WHERE `moderation` = '0'", FO_PERPAGE);
$files = Flight::db()
->query("SELECT *, (SELECT COUNT(*) FROM fo_comments WHERE fo_comments.parent = fo_video.id) AS count_comments FROM `fo_video` WHERE `fo_video`.`moderation` = '0' ORDER BY `fo_video`.`id` DESC " . $p->limit())
->fetchAll();
parent::view('fo/files', [
'files' => $files,
'title' => 'Новые порно видео пользователей в файлообменнике частные новинки',
'description' => 'новинки видео, свежые ролики пользователей, добавь свой новый секс в обменник',
'keywords' => 'пользователи, я, добавить, новый, видео, ххх, на, сайт, бесплатно, обменник, файлов',
'pagination' => $pages,
'top_type' => 'new',
'nav' => '<div class="new"><b>Показать самые:</b> <a href="/porno-obmenik-video/top/views/">Просматриваемые</a> / <a href="/porno-obmenik-video/top/down/">Скачиваемые</a> / <a href="/porno-obmenik-video/top/rating/">Популярные</a> / Новые</div>',
'fo_status' => FO_STATUS,
'message' => (!empty($message) ? $message : ''),
'err' => (!empty($err) ? $err : array()),
'video_moderation' => $video_moderation
]);
break;
case 'views':
$p = Flight::page();
$pages = $p->menu('fo_video', '/porno-obmenik-video/top/views', $page, "WHERE `moderation` = '0'", FO_PERPAGE);
$files = Flight::db()
->query("SELECT *, (SELECT COUNT(*) FROM fo_comments WHERE fo_comments.parent = fo_video.id) AS count_comments FROM `fo_video` WHERE `fo_video`.`moderation` = '0' ORDER BY `fo_video`.`view_count` DESC " . $p->limit())
->fetchAll();
parent::view('fo/files', [
'files' => $files,
'title' => 'Просматриваемые видео пользователей сайта',
'description' => 'Самые просматриваемые видео пользователей сайта, смотрят видео посетителей обменника ххх',
'keywords' => 'самые, просматриваемые, смотреть, смотрят, больше, посетителей, видео, ххх, файлообменник, добавить, секс',
'pagination' => $pages,
'top_type' => 'new',
'nav' => '<div class="new"><b>Показать самые:</b> Просматриваемые / <a href="/porno-obmenik-video/top/down/">Скачиваемые</a> / <a href="/porno-obmenik-video/top/rating/">Популярные</a> / <a href="/porno-obmenik-video/top/new/">Новые</a></div>',
'fo_status' => FO_STATUS,
'message' => (!empty($message) ? $message : ''),
'err' => (!empty($err) ? $err : array()),
'video_moderation' => $video_moderation
]);
break;
case 'down':
$p = Flight::page();
$pages = $p->menu('fo_video', '/porno-obmenik-video/top/views', $page, "WHERE `moderation` = '0'", FO_PERPAGE);
$files = Flight::db()
->query("SELECT *, (SELECT COUNT(*) FROM fo_comments WHERE fo_comments.parent = fo_video.id) AS count_comments FROM `fo_video` WHERE `fo_video`.`moderation` = '0' ORDER BY `fo_video`.`load_count` DESC " . $p->limit())
->fetchAll();
parent::view('fo/files', [
'files' => $files,
'title' => 'Скачиваемые видео посетителей сайта, скачивают файлы из обменника',
'description' => 'больше всего Скачиваемые видео посетителей сайта, скачивают файлы из обменника, скачать видео из файлообменника бесплатно на смартфон',
'keywords' => 'скачать, видео, секс, порнуха, эротика, смартфон, ххх',
'pagination' => $pages,
'top_type' => 'down',
'nav' => '<div class="new"><b>Показать самые:</b> <a href="/porno-obmenik-video/top/views/">Просматриваемые</a> / Скачиваемые / <a href="/porno-obmenik-video/top/rating/">Популярные</a> / <a href="/porno-obmenik-video/top/new/">Новые</a></div>',
'fo_status' => FO_STATUS,
'message' => (!empty($message) ? $message : ''),
'err' => (!empty($err) ? $err : array()),
'video_moderation' => $video_moderation
]);
break;
default:
$p = Flight::page();
$pages = $p->menu('fo_video', '/porno-obmenik-video/top/views', $page, "WHERE `moderation` = '0'", FO_PERPAGE);
$files = Flight::db()
->query("SELECT *, (SELECT COUNT(*) FROM fo_comments WHERE fo_comments.parent = fo_video.id) AS count_comments FROM `fo_video` WHERE `fo_video`.`moderation` = '0' ORDER BY `fo_video`.`rating` DESC " . $p->limit())
->fetchAll();
parent::view('fo/files', [
'files' => $files,
'title' => 'Популярные порно видео пользователей файлообменник, самые лучшие ролики ххх',
'description' => 'Топ супер лучшие Популярные порно видео пользователей файлообменник, самые лучшие ролики секс обменника ххх',
'keywords' => 'топ, супер, лучшее, популярное, видео, секс, обменник',
'pagination' => $pages,
'top_type' => 'rating',
'nav' => '<div class="new"><b>Показать самые:</b> <a href="/porno-obmenik-video/top/views/">Просматриваемые</a> / <a href="/porno-obmenik-video/top/down/">Скачиваемые</a> / Популярные / <a href="/porno-obmenik-video/top/new/">Новые</a></div>',
'fo_status' => FO_STATUS,
'message' => (!empty($message) ? $message : ''),
'err' => (!empty($err) ? $err : array()),
'video_moderation' => $video_moderation
]);
break;
}
}
public static function upload() {
global $FO_whiteList;
if (!FO_STATUS) {
header("Location: /");
exit;
}
if (!empty($_POST)) {
$ip = $_SERVER['REMOTE_ADDR'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$frame = 25;
$max_size = 1048576 * FO_MAXSIZE;
$root = $_SERVER['DOCUMENT_ROOT'];
$err = array();
$file = $_FILES['file'];
$name = trim(htmlspecialchars($_POST['name']));
$name_f = trim(htmlspecialchars($_POST['name_f']));
$desc_f = trim(htmlspecialchars($_POST['desc_f']));
$comments = (empty($_POST['comments']) ? '' : trim(htmlspecialchars($_POST['comments'])));
$captcha = $_POST['captcha'];
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
$size = $file['size'];
if ($_SESSION['rand_code'] != $captcha) {
$err[] = '<b><span style="color: red;">Проверочное число введено не верно</span></b>';
}
if (empty($file['name'])) {
$err[] = '<b><span style="color: red;">Не выбран файл</span></b>';
}
if (empty($name)) {
$err[] = '<b><span style="color: red;">Заполните поле "Ваше имя"</span></b>';
}
if (empty($name_f)) {
$err[] = '<b><span style="color: red;">Заполните поле "Название видео"</span></b>';
}
if (empty($desc_f)) {
$err[] = '<b><span style="color: red;">Заполните поле "Описание видео"</span></b>';
}
if (empty($captcha)) {
$err[] = '<b><span style="color: red;">Не введен проверочный код</span></b>';
}
if (!in_array($ext, $FO_whiteList)) {
$err[] = '<b><span style="color: red;">Не допустимое расширение файла</span></b>';
}
if ($file['size'] > $max_size) {
$err[] = '<b><span style="color: red;">Размер файла превышает ' . FO_MAXSIZE . ' мб</span></b>';
}
if (strlen($desc_f) > 600) {
$err[] = '<b><span style="color: red;">Длина описания превышает 600 символов</span></b>';
}
if (empty($err)) {
// Все ОК
$alias = Base::str2url($name_f);
$alias = Base::uniqu_alias($alias);
$alias_path = PREFIX . $alias;
move_uploaded_file($file['tmp_name'], $root . '/public/video_fo/' . $alias_path . '.' . $ext);
$img_path = $root . '/public/screen_fo/'.$alias.'.png';
$movie = new ffmpeg_movie($root . '/public/video_fo/' . $alias_path . '.' . $ext);
$image = $movie->getFrame($frame);
$selfimg = $image->toGDImage();
imagepng($selfimg, $img_path);
imagedestroy($selfimg);
parent::resize($img_path, $img_path, 175, 144);
parent::watermark($img_path, $img_path);
$duration = $movie->getDuration();
$sizing = $movie->getFrameHeight().'x'.$movie->getFrameWidth();
$sett = Flight::db()
->query("SELECT cron_del FROM `fo_settings`")
->fetch();
$sql = "
INSERT INTO fo_video
(alias, ext, size, file_name, file_desc, file_comments, user_name, user_ip, user_agent, duration, sizing, date_upload, last_load, rating, moderation, cron_del)
VALUES
('{$alias}', '{$ext}', '{$size}', :name_f, :desc_f, :comments, :name, '{$ip}', :uagent, '{$duration}', '{$sizing}', UNIX_TIMESTAMP(), 0, 0, '".FO_MODER."', '".$sett['cron_del']."')
";
$result = Flight::db()->prepare($sql);
$result->bindValue(":name_f", $name_f, PDO::PARAM_STR);
$result->bindValue(":desc_f", $desc_f, PDO::PARAM_STR);
$result->bindValue(":comments", $comments, PDO::PARAM_INT);
$result->bindValue(":name", $name, PDO::PARAM_STR);
$result->bindValue(":uagent", $agent, PDO::PARAM_STR);
$result->execute();
if (FO_MODER) {
$_SESSION['message'] = '<b><span style="color: green;">Ваше видео успешно загружено! видео появится на сайте после проверки администрации сайта!</span></b>';
} else {
$_SESSION['message'] = '<b><span style="color: green;">Ваше видео успешно загружено!</span></b>';
}
$string = '';
for ($i = 0; $i < 5; $i++) {
// this numbers refer to numbers of the ascii table (lower case)
$string .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $string;
$_SESSION['captcha_time'] = time() + 600;
header("Location: /porno-obmenik-video");
exit;
}
}
$post = array();
$post['name'] = (!empty($_POST['name']) && !empty($err) ? trim(htmlspecialchars($_POST['name'])) : NULL);
$post['name_f'] = (!empty($_POST['name_f']) && !empty($err) ? trim(htmlspecialchars($_POST['name_f'])) : NULL);
$post['desc_f'] = (!empty($_POST['desc_f']) && !empty($err) ? trim(htmlspecialchars($_POST['desc_f'])) : NULL);
$post['comments'] = (!empty($_POST['comments']) && !empty($err) ? 'checked' : NULL);
parent::view('fo/upload', [
'title' => 'Добавить свое видео в порно обменник сайта, частное секс видео добавить личное, файлообменник бесплатно',
'description' => 'Бесплатно Добавить свое видео в порно обменник сайта, частное секс видео добавить личное, файлообменник бесплатно, файл на сайт свой',
'keywords' => 'бесплатно, добавить, видео, в, обменник, загрузить, upload, на, сайт, видео, ххх, личное, секс, файлообменник,',
'maxsize' => FO_MAXSIZE,
'post' => $post,
'err' => (!empty($err) ? $err : array()),
'message' => ''
]);
}
public static function video($url, $page) {
$result = Flight::db()->prepare("SELECT * FROM `fo_video` WHERE alias = :url".(!empty($_COOKIE['admin_verify']) && $_COOKIE['admin_verify'] == md5(PASSWORD) ? " && moderation = '0'" : NULL)."");
$result->bindValue(":url", $url, PDO::PARAM_STR);
$result->execute();
$file = $result->fetch(PDO::FETCH_ASSOC);
if (empty($file)) {
header("Location: /");
exit;
}
if (Flight::request()->cookies->uniq != 'fo_' . $file['id']) {
Flight::db()
->query("UPDATE `fo_video` SET `view_count` = `view_count` + 1 WHERE `id` = {$file['id']}");
setcookie('uniq', 'fo_' . $file['id'], time() + 3600 * 24, '/');
}
/* Рейтинг */
$check = Flight::db()
->query("SELECT id FROM `fo_rating_list` WHERE ip = '{$_SERVER['REMOTE_ADDR']}' && video_id = '{$file['id']}'")
->fetchAll();
/* Счетчик рейтинга (+ и -)*/
$total_plus = Flight::db()
->query("SELECT id FROM `fo_rating_list` WHERE video_id = '{$file['id']}' && type = 'plus'")
->fetchAll();
$total_plus = count($total_plus);
$total_minus = Flight::db()
->query("SELECT id FROM `fo_rating_list` WHERE video_id = '{$file['id']}' && type = 'minus'")
->fetchAll();
$total_minus = count($total_minus);
if (isset($_GET['rating']) && in_array($_GET['rating'], array('plus', 'minus'))) {
if (empty($check)) {
$updRating = ($_GET['rating'] == 'plus' ? ($file['rating'] + 1) : ($file['rating'] - 1));
$typeRating = ($_GET['rating'] == 'plus' ? 'plus' : 'minus');
Flight::db()
->query("UPDATE `fo_video` SET `rating` = '{$updRating}' WHERE `id` = {$file['id']}");
Flight::db()->query("
INSERT INTO `fo_rating_list`
(video_id, type, date, ip)
VALUES
('{$file['id']}', '{$typeRating}', UNIX_TIMESTAMP(), '{$_SERVER['REMOTE_ADDR']}')
");
$message = 'Вы успешно проголосовали ' . ($typeRating == 'plus' ? '+1' : '-1');
} else {
$message = 'Вы уже голосовали за это видео';
}
} else {
$message = null;
}
/* Добавление комментария */
if (!empty($_POST['send']) && !empty($file['file_comments'])) {
$array = array();
$ip = $_SERVER['REMOTE_ADDR'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$name = trim(htmlspecialchars($_POST['name']));
$text = trim(htmlspecialchars($_POST['text']));
if (empty($name) OR empty($text)) {
$err[] = '<b><span style="color: red;">Заполните все поля</span></b>';
}
if (!empty($text) && strlen($text) > 1000) {
$err[] = '<b><span style="color: red;">Длина комментария превышает 1000 символов</span></b>';
}
if ($_POST['captcha'] != $_SESSION['rand_code']) {
$err[] = '<b><span style="color: red;">Проверочное число введено не верно</span></b>';
}
if (empty($err)) {
$sql = "INSERT INTO fo_comments
(com_name, com_text, parent, ip, uagent, date)
VALUES
(:name, :text, :file_id, '{$ip}', :uagent, UNIX_TIMESTAMP())";
$result = Flight::db()->prepare($sql);
$result->bindValue(":name", $name, PDO::PARAM_STR);
$result->bindValue(":text", $text, PDO::PARAM_STR);
$result->bindValue(":file_id", $file['id'], PDO::PARAM_INT);
$result->bindValue(":uagent", $agent, PDO::PARAM_STR);
$result->execute();
$message = '<b><span style="color: green;">Комментарий успешно добавлен</span></b>';
$string = '';
for ($i = 0; $i < 5; $i++) {
// this numbers refer to numbers of the ascii table (lower case)
$string .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $string;
$_SESSION['captcha_time'] = time() + 600;
//header("Location: /porno-obmenik-video/" . $file['alias']);
}
}
/* Удаление комментария */
if (!empty($_GET['com_del']) && !empty($_COOKIE['admin_verify']) && $_COOKIE['admin_verify'] == md5(PASSWORD)) {
$sql = "DELETE FROM fo_comments WHERE id = :com_id";
$result = Flight::db()->prepare($sql);
$result->bindValue(":com_id", $_GET['com_del'], PDO::PARAM_INT);
$result->execute();
$message = 'Комментарий успешно удален';
}
$p = Flight::page();
$pages = $p->menu('fo_comments', '/porno-obmenik-video/' . $file['alias'], $page, "WHERE `parent` = {$file['id']}", FO_PERPAGE_COM);
$comments = Flight::db()
->query("SELECT * FROM `fo_comments` WHERE parent = '{$file['id']}' ORDER BY id DESC " . $p->limit())
->fetchAll();
$post['name'] = (!empty($_POST['name']) && !empty($err) ? trim(htmlspecialchars($_POST['name'])) : NULL);
$post['text'] = (!empty($_POST['text']) && !empty($err) ? trim(htmlspecialchars($_POST['text'])) : NULL);
parent::view('fo/video', [
'title' => $file['file_name'],
'description' => '',
'keywords' => '',
'video' => $file,
'comments' => $comments,
'message' => $message,
'check_rating' => (empty($check) ? 0 : 1),
'rating_plus' => $total_plus,
'rating_minus' => $total_minus,
'pagination' => $pages,
'post' => $post,
'err' => (!empty($err) ? $err : array()),
'admin' => (!empty($_COOKIE['admin_verify']) && $_COOKIE['admin_verify'] == md5(PASSWORD) ? true : false)
]);
}
public static function download($url) {
$result = Flight::db()->prepare("SELECT * FROM `fo_video` WHERE alias = :alias");
$result->bindValue(":alias", $url, PDO::PARAM_STR);
$result->execute();
$file = $result->fetch(PDO::FETCH_ASSOC);
if (empty($file)) {
header("Location: /");
exit;
}
Flight::db()
->query("UPDATE `fo_video` SET `last_load` = UNIX_TIMESTAMP(), `load_count` = `load_count` + 1 WHERE `id` = {$file['id']}");
Flight::redirect('/public/video_fo/'.PREFIX . $file['alias'].'.' . $file['ext']);
}
public static function online_fo($url) {
$result = Flight::db()->prepare("SELECT * FROM `fo_video` WHERE alias = :alias");
$result->bindValue(":alias", $url, PDO::PARAM_STR);
$result->execute();
$file = $result->fetch(PDO::FETCH_ASSOC);
if (empty($file) OR $file['ext'] != 'mp4') {
header("Location: /");
exit;
}
parent::view('fo/online', [
'title' => $file['file_name'],
'description' => 'Смотреть онлайн видео бесплатно',
'keywords' => 'смотреть, секс, бесплатно, онлайн, видео, порно',
'video' => $file,
'prefix' => PREFIX
]);
}
}