ACC SHELL

Path : /srv/www/vhosts/profias/inc/admin/
File Upload :
Current File : /srv/www/vhosts/profias/inc/admin/file.php

<?php

  class File extends AdminItem
  {
    var $thumbs;
    var $thumbDirectory;
  
    
    function File($args)
    {
      $this->setBasicParametres($args);
      
      
      if (TRUE==is_array($args['thumbs']))
      {
        $this->thumbs=$args['thumbs'];
      }
      else
      {
        $this->thumbs=array(
          array(
            'width'=>'750',
            'height'=>'600',
            'directory'=>'thumb-m',
            'quality'=>'80',
          ),
          array(
            'width'=>'120',
            'height'=>'60',
            'directory'=>'thumb-s',
            'quality'=>'60',
          ),
        );
      }

      if (TRUE==isset($args['thumb_directory']))
      {
        $this->thumbDirectory=$args['thumb_directory'];
      }
      
    }
  
  
    function detail($admin)
    {
      if (TRUE==isset($this->thumbDirectory))
      {
        $tmp=$GLOBALS['db']->select(
          'path',
          'files',
          'id='.(int)$admin->dataRow[$this->formName],
          '1'
        );
    
        if (0<count($tmp))
        {
          $value='<img src="'.$admin->ftp['http_root'].''.$admin->table.$admin->id.'/'.$this->thumbDirectory.'/'.$tmp['path'].'" alt="'.$this->name.'" />';
        }
        else
        {
          $value='-';
        }
        $params=array(
          'label'=>$this->name,
          'value'=>$value,
          'in_detail'=>$this->inDetail,
        );
      }
      
      else
      {
        $params=array(); 
      }
      
      return $params;
      
    }
  
  

    function getFormParams($admin)
    {
      $result=array(
        'type'=>'file',
        'name'=>$this->formName,
        'value'=>$this->default,
        'reg'=>$this->reg,
        'css_id'=>$this->id,
        'css_class'=>$this->class,
        'spec'=>$this->spec,
        'label'=>$this->name,
        'label_id'=>$this->labelId,
        'label_class'=>$this->labelClass,
      );
    
    
      return array($result);
    }



    function getInsertParams($admin)
    {
    
    
      //print_r($admin->ftp);
    
    
      // zjisti id noveho souboru
      $id=get_auto_increment($admin->filesTable);

      $file=$_FILES[$this->formName];
      
      if (TRUE==$admin->id)
      {
        $admin_id=$admin->id;
      }
      else
      {
        $admin_id=get_auto_increment($admin->table.'s');
      }
      
      if (TRUE==$file['tmp_name'])
      {
        $row=array(
          'name'=>$file['name'],
          'path'=>(int)$id.'-'.sys_name($file['name']),
          'type'=>$file['type'],
          'size'=>$file['size'],
          
        );
        
        // pokud se jedna o obrazek ulozi se data o rozmerech
        if (TRUE==in_array($file['type'], $admin->imageTypes))
        {
          $size=getimagesize($file['tmp_name']);
          $row['width']=$size[0];
          $row['height']=$size[1];
        }
        
        
        
        // soubor se ulozi na FTP
        $conn_id=ftp_connect($admin->ftp['server']) or die('Nemohu se připojit k FTP serveru.');
        $login_result = ftp_login($conn_id, $admin->ftp['login'], $admin->ftp['password']) or die('Nemohu se pipojit k FTP serveru.');
        ftp_chdir($conn_id, $admin->ftp['root']);           
        
        @ftp_mkdir($conn_id, $admin->table.$admin_id);
        ftp_chdir($conn_id, $admin->table.$admin_id);
        
        ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY);
        

        
        
        // pokud se jedna o obrazek, upravi se do zvolenych rozmeru a ulozi do prislusnych adresaru
        if (TRUE==in_array($file['type'], $admin->imageTypes))
        {
          
          
          
    if (
      ('image/jpeg'==$file['type'])
      ||
      ('image/pjpeg'==$file['type'])
     )
     {
    $source=imagecreatefromjpeg($file['tmp_name']);
    }
    else if ('image/gif'==$file['type'])
     {
  
    $source=imagecreatefromgif($file['tmp_name']);
    }
    else if ('image/x-bmp'==$file['type'])
    {
      $source=imagecreatefromwbmp($file['tmp_name']);
    
    }
    else
     {
    $source=imagecreatefromjpeg($file['tmp_name']);
    }
      
      
          for ($i=0; $i<count($this->thumbs); $i++)
          {
            if (TRUE==$this->thumbs[$i]['directory'])
            {
              $tmp_ratio[1]=$this->thumbs[$i]['width']/$size[0];
              $tmp_ratio[2]=$this->thumbs[$i]['height']/$size[1];
              $ratio=min($tmp_ratio);

              $preview=imagecreatetruecolor($size[0]*$ratio, $size[1]*$ratio);
              imagecopyresized($preview, $source, 0, 0, 0, 0, $size[0]*$ratio, $size[1]*$ratio, $size[0], $size[1]);

    if (
      ('image/jpeg'==$file['type'])
      ||
      ('image/pjpeg'==$file['type'])
     )
     {
    imagejpeg($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
    else if ('image/gif'==$file['type'])
     {
  
    imagegif($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
    else if ('image/x-bmp'==$file['type'])
    {
    imagewbmp($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    
    }
    else
     {
    imagejpeg($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
              
              
              @ftp_mkdir($conn_id, $this->thumbs[$i]['directory']);       
              ftp_chdir($conn_id, $this->thumbs[$i]['directory']);       
              ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
              ftp_chdir($conn_id, '..');       
                          
            }
          }    
          if ($row['width'] >= $row['height']){
      
      $width = (int)(1.3*$row["height"]);
      
        
      $x = (int)(($row['width'] - $width)/2);
      $preview=imagecreatetruecolor($width,$row['height']);
      
      
      imagecopy($preview, $source, 0, 0, $x, 0, $row['width'], $row['height']);
      imagejpeg($preview, $file['tmp_name'], 100);
          
      @ftp_mkdir($conn_id, 'tmp');       
      ftp_chdir($conn_id, 'tmp');       
      ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
      ftp_chdir($conn_id, '..');
      
      $source=imagecreatefromjpeg('../files/'.$admin->table.$admin->id.'/tmp/'.$row['path']);
      $preview2 = imagecreatetruecolor(130,100);
      imagecopyresized($preview2, $source, 0, 0, 0, 0, 130, 100,$width , $row['height']);
      imagejpeg($preview2, $file['tmp_name'], 100);  
      
      @ftp_mkdir($conn_id, 'user');       
      @ftp_rmdir($conn_id, 'tmp');
      ftp_chdir($conn_id, 'user');
      ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
      ftp_chdir($conn_id, '..');      
      
    }else{
      $height = (int)($row["width"]/1.3);
           
      $x = (int)(($row['height'] - $height)/2);
      $preview=imagecreatetruecolor($row['width'],$height);
      imagecopy($preview, $source, 0, 0, 0, $x, $row['width'], $row['height']);
      imagejpeg($preview, $file['tmp_name'], 100);
          
      @ftp_mkdir($conn_id, 'tmp');       
      ftp_chdir($conn_id, 'tmp');       
      ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
      ftp_chdir($conn_id, '..');
      
      $source=imagecreatefromjpeg('../files/'.$admin->table.$admin->id.'/tmp/'.$row['path']);
      $preview2 = imagecreatetruecolor(130,100);
      imagecopyresized($preview2, $source, 0, 0, 0, 0, 130, 100,$row['width'] , $height);
      imagejpeg($preview2, $file['tmp_name'], 100);  
      
      @ftp_mkdir($conn_id, 'user');       
      @ftp_rmdir($conn_id, 'tmp');
      ftp_chdir($conn_id, 'user');
      ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
      ftp_chdir($conn_id, '..');         
      
    }    
          
        }
                
     
        
        $GLOBALS['db']->insert($admin->filesTable, $row);


        $result=array(
          'table'=>$admin->table.'s',
          'field'=>$this->field,
          'value'=>(int)$id,
        );
        
        ftp_close($conn_id);
      
      }
      
      

      return array($result);
    }  







    function getInsertMultireferenceParams($admin)
    {
    
    
      // zjisti id noveho souboru
      $id=get_auto_increment($admin->filesTable);

      $file=$_FILES[$this->formName];
      
      if (TRUE==$admin->id)
      {
        $admin_id=$admin->id;
      }
      else
      {
        $admin_id=get_auto_increment($admin->table.'s');
      }
      
      if (TRUE==$file['tmp_name'])
      {
        $row=array(
          'name'=>$file['name'],
          'path'=>(int)$id.'-'.sys_name($file['name']),
          'type'=>$file['type'],
          'size'=>$file['size'],
        );
        
        // pokud se jedna o obrazek ulozi se data o rozmerech
        if (TRUE==in_array($file['type'], $admin->imageTypes))
        {
          $size=getimagesize($file['tmp_name']);
          $row['width']=$size[0];
          $row['height']=$size[1];
        }
        
        
        
        // soubor se ulozi na FTP
        $conn_id=ftp_connect($admin->ftp['server']) or die('Nemohu se pipojit k FTP serveru.');
        $login_result = ftp_login($conn_id, $admin->ftp['login'], $admin->ftp['password']) or die('Nemohu se pipojit k FTP serveru.');
        ftp_chdir($conn_id, $admin->ftp['root']);           
        
        @ftp_mkdir($conn_id, $admin->table.$admin_id);
        ftp_chdir($conn_id, $admin->table.$admin_id);
        
        ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY);
        

        
        
        // pokud se jedna o obrazek, upravi se do zvolenych rozmeru a ulozi do prislusnych adresaru
        if (TRUE==in_array($file['type'], $admin->imageTypes))
        {
          
          
          
    if (
      ('image/jpeg'==$file['type'])
      ||
      ('image/pjpeg'==$file['type'])
     )
     {
    $source=imagecreatefromjpeg($file['tmp_name']);
    }
    else if ('image/gif'==$file['type'])
     {
  
    $source=imagecreatefromgif($file['tmp_name']);
    }
    else if ('image/x-bmp'==$file['type'])
    {
      $source=imagecreatefromwbmp($file['tmp_name']);
    
    }
    else
     {
    $source=imagecreatefromjpeg($file['tmp_name']);
    }
      
      
          for ($i=0; $i<count($this->thumbs); $i++)
          {
            if (TRUE==$this->thumbs[$i]['directory'])
            {
              $tmp_ratio[1]=$this->thumbs[$i]['width']/$size[0];
              $tmp_ratio[2]=$this->thumbs[$i]['height']/$size[1];
              $ratio=min($tmp_ratio);

              $preview=imagecreatetruecolor($size[0]*$ratio, $size[1]*$ratio);
              imagecopyresized($preview, $source, 0, 0, 0, 0, $size[0]*$ratio, $size[1]*$ratio, $size[0], $size[1]);

    if (
      ('image/jpeg'==$file['type'])
      ||
      ('image/pjpeg'==$file['type'])
     )
     {
    imagejpeg($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
    else if ('image/gif'==$file['type'])
     {
  
    imagegif($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
    else if ('image/x-bmp'==$file['type'])
    {
    imagewbmp($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    
    }
    else
     {
    imagejpeg($preview, $file['tmp_name'], $this->thumbs[$i]['quality']); 
    }
              
              
              @ftp_mkdir($conn_id, $this->thumbs[$i]['directory']);       
              ftp_chdir($conn_id, $this->thumbs[$i]['directory']);       
              ftp_put($conn_id, $row['path'], $file['tmp_name'], FTP_BINARY); 
              ftp_chdir($conn_id, '..');       
                          
            }
          }    
          
          
        }
                
     
        
        $GLOBALS['db']->insert($admin->filesTable, $row);


        $result=array(
          'table'=>$admin->table.'s',
          'field'=>$this->field,
          'value'=>(int)$id,
        );
        
        ftp_close($conn_id);
      
      }
      
      

      return array($result);
    }  




  }






?>

ACC SHELL 2018