Вход Регистрация
Файл: 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($fileMEDIA_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();                                                               
    }
}
Онлайн: 4
Реклама