Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/photo/components/add.php
Строк: 56
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_photo_add extends VModule_photo
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
render()
    {
        
VLanguage::load('frontend.photo');

        if (!
$this->pcfg['upload_enabled']) {
            
$_SESSION['error'] = __('upload-disabled');
            
VModule::load('error'TRUE);
        }
        
        
VAuth::check('Registered');
        
        
$errors        = array();
        
$messages    = array();
        
$warnings    = array();
        
$unique     time().'_'.mt_rand();
        
$user_id    = (int) $_SESSION['user_id'];
        
$album        = array();
        
$album_id    = (int) VUri::request(2);

        
$this->db->query("SELECT album_id, title, locked
                          FROM #__photo_albums
                          WHERE album_id = "
.$album_id."
                          AND user_id = "
.$user_id."
                          AND status = '1'
                          LIMIT 1"
);
        if (
$this->db->affected_rows()) {
              
$album    $this->db->fetch_assoc();
        }
        
        if (isset(
$_POST['upload-submitted'])) {
            if (!
$file VUpload::process('image_1'$this->pcfg['photo_max_size'], $this->pcfg['photo_allowed_ext'])) {
                  
$errors array_merge($errorsVUpload::error());
            }
            
            if (!
$errors) {
                  
$filter        VF::factory('filter');
                  
$image        VF::factory('image');
                  
$images        0;
                  
$ids        = array();
                  foreach (
$_FILES as $key => $value) {
                      if (!empty(
$value['tmp_name'])) {
                          if (!
$file VUpload::process($key$this->pcfg['photo_max_size'], $this->pcfg['photo_allowed_ext'])) {
                              continue;
                        }
                                
                        if (!
$image->load($file['path'])) {
                            continue;
                        }

                        
$arr        explode('_'$key);
                        
$id            $arr['1'];
                        
$caption    $filter->get('caption_'.$id);
                        
$this->db->query("INSERT INTO #__photo
                                          SET album_id = "
.$album_id.",
                                              caption = '"
.$this->db->escape($caption)."',
                                              ext = '"
.$this->db->escape($image->src['ext'])."',
                                              size = "
.$file['size'].",
                                              add_date = '"
.date('Y-m-d h:i:s')."',
                                              status = '0'"
);
                        if (!
$this->db->affected_rows()) {
                            continue;
                        }
                        
                        
$photo_id    $this->db->get_last_insert_id('#__photo');
                        
$ext_orig   $image->src['ext'];
                        
$dst_orig   MEDIA_DIR.'/photos/orig/'.$photo_id.'.'.$ext_orig;
                        if (!
copy($file['path'], $dst_orig)) {
                              continue;
                        }
                        
                        
$dst            MEDIA_DIR.'/photos/'.$photo_id.'.'.$image->src['ext'];
                        
$dst_thumb      MEDIA_DIR.'/photos/thumbs/'.$photo_id.'.jpg';
                        
$dst_thumb_tmp  TMP_DIR.'/images/'.$photo_id.'.thumb.jpg';
                        if (
$image->src['width'] < $this->pcfg['photo_width']) {
                            
copy($file['path'], $dst);
                        } else {
                            if (!
$image->resize($this->pcfg['photo_width'], $this->pcfg['photo_height'], 'MAX_WIDTH'$dst)) {
                                continue;
                            }
                        }

                        if (!empty(
$this->pcfg['mobile'])) {
                              
$dst_mobile MEDIA_DIR.'/photos/mobile/'.$photo_id.'.'.$image->src['ext'];
                            if (
$image->src['width'] < $this->pcfg['mobile_width']) {
                                
copy($file['path'], $dst_mobile);
                            } else {
                                if (!
$image->resize($this->pcfg['mobile_width'], $this->pcfg['mobile_height'], 'MAX_WIDTH'$dst_mobile)) {
                                    continue;
                                }
                            }
                        }
                        
                        
$thumb_width    $this->pcfg['thumb_width']+30;
                        
$thumb_height   $this->pcfg['thumb_height']+100;
                        
$image->set_option('jpeg_quality'100);
                        if (!
$image->resize($thumb_width$thumb_height'MAX_HEIGHT'$dst_thumb_tmp)) {
                            continue;
                        }

                        
$image->clear();
                        
$image->load($dst_thumb_tmp);
                            
                        if (!
$image->crop_from_center($this->pcfg['thumb_width'], $this->pcfg['thumb_height'], $dst_thumb)) {
                              continue;
                        }
                            
                        ++
$images;
                        
$ids[]    = $photo_id;
                        
                        
$image->clear();

                        
VFile::delete($dst_thumb_tmp);
                      }
                  }
                  
                  if (
$images === 0) {
                      
$errors[]    = __('add-failed');
                  } else {
                      
$this->db->query("UPDATE #__photo_albums
                                        SET total_photos = total_photos+"
.$images."
                                        WHERE album_id = "
.$album_id."
                                        LIMIT 1"
);
                      
$this->db->query("UPDATE #__photo
                                        SET status = '1'
                                        WHERE album_id = "
.$album_id."
                                        AND photo_id IN ("
.implode(','array_values($ids)).")");
                      
$messages[] = __('add-success');
                  }
            }
        }
        
        
$tpl                VF::factory('template');
        
$tpl->menu          'photo';
        
$tpl->pcfg          $this->pcfg;
        
$tpl->errors        $errors;
        
$tpl->messages      $messages;
        
$tpl->warnings      $warnings;
        
$tpl->css           = array(TPL_REL.'/css/style_photo.css');
        
$tpl->album         $album;
        
$tpl->unique        $unique;
        
$tpl->extensions    $this->pcfg['photo_allowed_ext'];
        
$tpl->max_size      = ($this->pcfg['photo_max_size']*1024*1024);
        
$tpl->load(array('header''photo_add''footer'));
        
$tpl->display();    
    }
}
Онлайн: 1
Реклама