Файл: adultscript-2.0.3-pro/files/modules/user/components/banner.php
Строк: 105
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_user_banner extends VModule_user
{
public function __construct()
{
parent::__construct();
}
public function render()
{
if (!VCfg::get('user.advertising')) {
VModule::load('404', true);
}
VAuth::check('Registered');
$user_id = (int) $_SESSION['user_id'];
$username = $_SESSION['username'];
$errors = array();
$messages = array();
$warnings = array();
$added = false;
$adv = array(
'status' => 0, 'type' => 'html',
'title' => '', 'description' => '', 'url' => '', 'code' => '',
'image_type' => 'url', 'image_url' => '', 'image_ext' => '',
);
$this->db->query("SELECT adv_group_id
FROM #__adv_groups
WHERE adv_group_slug = 'user-player'
LIMIT 1");
$group_id = (int) $this->db->fetch_field('adv_group_id');
if (isset($_POST['submit-banner'])) {
$filter = VF::factory('filter');
$type = $filter->get('type');
if ($type == 'text') {
$title = $filter->get('title');
$description = $filter->get('description');
$url = $filter->get('url');
if ($title == '') {
$errors[] = __('banner-title-empty');
} else {
$adv['title'] = $title;
}
if ($description != '') {
$adv['description'] = $description;
}
} elseif ($type == 'html') {
$code = trim($_POST['code']);
if ($code == '') {
$errors[] = __('banner-code-empty');
} else {
$adv['code'] = $code;
}
} elseif ($type == 'image') {
$url = $filter->get('url');
$image_type = $filter->get('image_type');
if ($image_type == 'url') {
$image_url = $filter->get('image_url');
if ($image_url == '') {
$errors[] = __('banner-image-empty');
} elseif (!VValid::url($image_url)) {
$errors[] = __('banner-image-invalid');
} else {
$adv['image_url'] = $image_url;
}
} elseif ($image_type == 'file') {
if ($_FILES['image_file']['tmp_name'] != '') {
if (is_uploaded_file($_FILES['image_file']['tmp_name'])) {
$file = $_FILES['image_file']['tmp_name'];
$filename = $_FILES['image_file']['name'];
$ext = VFile::ext($filename);
$valid = false;
if ($ext == 'gif') {
$valid = imagecreatefromgif($file);
} elseif ($ext == 'png') {
$valid = imagecreatefrompng($file);
} elseif ($ext == 'jpeg' OR $ext == 'jpg') {
$valid = imagecreatefromjpeg($file);
} else {
$errors[] = __('banner-image-format');
}
if (!$valid) {
$errors[] = __('banner-image-upload');
}
} else {
$errors[] = __('banner-image-file');
}
} else {
$errors[] = __('banner-image-select');
}
} else {
$errors[] = __('banner-image-type-invalid');
}
} else {
$errors[] = __('banner-type-invalid');
}
if (isset($url)) {
if ($url == '') {
$errors[] = __('banner-url-empty');
} elseif (!VValid::url($url)) {
$errors[] = __('banner-url-invalid');
} else {
$adv['url'] = $url;
}
}
$adv['type'] = $type;
$adv['image_type'] = (isset($image_type)) ? $image_type : 'url';
if (!$errors) {
$ext = (isset($ext)) ? $ext : '';
$this->db->query("SELECT adv_id FROM #__adv WHERE user_id = ".$user_id." LIMIT 1");
if (!$this->db->affected_rows()) {
$this->db->query("INSERT INTO #__adv
SET user_id = ".$user_id.",
adv_group_id = ".$group_id.",
adv_name = 'User Player Advertising (".$this->db->escape($username).")',
adv_desc = 'User Player Advertising (".$this->db->escape($username).")',
type = '".$this->db->escape($type)."',
title = '".$this->db->escape($adv['title'])."',
description = '".$this->db->escape($adv['description'])."',
url = '".$this->db->escape($adv['url'])."',
code = '".$this->db->escape($adv['code'])."',
image_type = '".$this->db->escape($adv['image_type'])."',
image_url = '".$this->db->escape($adv['image_url'])."',
image_ext = '".$this->db->escape($ext)."',
status = '0'");
if ($this->db->affected_rows()) {
$adv_id = (int) $this->db->get_last_insert_id('#__adv');
$this->db->query("UPDATE #__adv_groups
SET total_ads = total_ads+1
WHERE adv_group_id = ".$group_id."
LIMIT 1");
} else {
$errors[] = 'Failed to add advertising! Application error!?';
}
} else {
$adv_id = (int) $this->db->fetch_field('adv_id');
$this->db->query("UPDATE #__adv
SET adv_name = 'User Player Advertising (".$this->db->escape($username).")',
adv_desc = 'User Player Advertising (".$this->db->escape($username).")',
type = '".$this->db->escape($type)."',
title = '".$this->db->escape($adv['title'])."',
description = '".$this->db->escape($adv['description'])."',
url = '".$this->db->escape($adv['url'])."',
code = '".$this->db->escape($adv['code'])."',
image_type = '".$this->db->escape($adv['image_type'])."',
image_url = '".$this->db->escape($adv['image_url'])."',
image_ext = '".$this->db->escape($ext)."',
status = '0'
WHERE adv_id = ".$adv_id."
AND user_id = ".$user_id."
LIMIT 1");
$updated = true;
}
if (!$errors) {
if (isset($file)) {
if (!move_uploaded_file($file, MEDIA_DIR.'/banners/'.$adv_id.'.'.$ext)) {
$errors[] = 'Failed to move uploaded file! Permissions problem!?';
}
}
if (isset($updated)) {
$messages[] = __('banner-updated');
} else {
$messages[] = __('banner-added');
}
}
}
}
$this->db->query("SELECT adv_id, type, title, description, url, code,
image_type, image_url, image_ext, status
FROM #__adv
WHERE adv_group_id = ".$group_id."
AND user_id = ".$user_id."
LIMIT 1");
if ($this->db->affected_rows()) {
$adv = $this->db->fetch_assoc();
$added = true;
}
$this->tpl->menu = 'home';
$this->tpl->colmenu = 'advertising';
$this->tpl->submenu = 'user-avatar';
$this->tpl->meta_title = __('banner-meta-title');
$this->tpl->user_id = $user_id;
$this->tpl->errors = $errors;
$this->tpl->messages = $messages;
$this->tpl->warnings = $warnings;
$this->tpl->adv = $adv;
$this->tpl->added = $added;
$this->tpl->load(array('header', 'user_banner', 'footer'));
$this->tpl->display();
}
}