[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/cms/src/controller/ -> AdminImageController.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  lmb_require('limb/cms/src/controller/AdminNodeWithObjectController.class.php');
  10  lmb_require('limb/cms/src/model/lmbCmsImage.class.php');
  11  lmb_require('limb/cms/src/model/lmbCmsImageFileObject.class.php');
  12  
  13  /**

  14   * class AdminImageController.

  15   *

  16   * @package cms

  17   * @version $Id: AdminImageController.class.php 5945 2007-06-06 08:31:43Z pachanga $

  18   */
  19  class AdminImageController extends AdminNodeWithObjectController
  20  {
  21    protected $_object_class_name = 'lmbCmsImage';
  22    protected $_controller_name = 'image';
  23    protected $_form_name = 'image_form';
  24    protected $_generate_identifier = true;
  25  
  26    protected function _import()
  27    {
  28      $this->item->import($this->request);
  29      $this->node->import($this->request);
  30  
  31      if($original = $this->_uploadFile('original_image'))
  32      {
  33        if($original_size = $this->request->get('original_size'))
  34          $original->resize($original_size);
  35  
  36        $this->item->setOriginal($original);
  37      }
  38  
  39      if($thumbnail = $this->_uploadFile('thumbnail_image'))
  40      {
  41        if($thumbnail_size = $this->request->get('thumbnail_size'))
  42          $thumbnail->resize($thumbnail_size);
  43        $this->item->setThumbnail($thumbnail);
  44      }
  45      else
  46      {
  47        $thumbnail = clone($original);
  48  
  49        if($thumbnail_size = $this->request->get('thumbnail_size'))
  50          $thumbnail->resize($thumbnail_size);
  51        else
  52          $thumbnail->resize(150);
  53  
  54        $this->item->setThumbnail($thumbnail);
  55      }
  56  
  57      if($icon = $this->_uploadFile('icon_image'))
  58      {
  59        if($icon_size = $this->request->get('icon_size'))
  60          $icon->resize($icon_size);
  61  
  62        $this->item->setIcon($icon);
  63      }
  64      else
  65      {
  66        $icon = clone($original);
  67  
  68        if($icon_size = $this->request->get('icon_size'))
  69          $icon->resize($icon_size);
  70        else
  71          $icon->resize(50);
  72  
  73        $this->item->setIcon($icon);
  74      }
  75    }
  76  
  77    function _uploadFile($field)
  78    {
  79      if (isset($_FILES[$field]) &&
  80          !is_null($_FILES[$field]['tmp_name']) &&
  81          is_uploaded_file($_FILES[$field]['tmp_name']))
  82      {
  83        $file = $_FILES[$field];
  84        $file_name = $file['name'];
  85  
  86        $image = new lmbCmsImageFileObject();
  87        $image->setFileName($file_name);
  88        $image->setMimeType($file['type']);
  89  
  90        try
  91        {
  92          $image->loadFile($file['tmp_name']);
  93        }
  94        catch(lmbFsException $e)
  95        {
  96          $this->toolkit->flashError('File upload error!');
  97        }
  98  
  99        return $image;
 100      }
 101    }
 102  
 103    function doShow()
 104    {
 105      if($image = FileObject :: findById('lmbCmsImage', (int)$this->request->get('id')))
 106      {
 107        header('Content-type: ' . $image->thumbnail->getMimeType());
 108        header('Content-Disposition: filename=' . $image->thumbnail->getName());
 109        print(file_get_contents($image->thumbnail->getFilePath()));
 110        exit();
 111      }
 112    }
 113  }
 114  
 115  ?>


Generated: Sat Aug 30 04:38:32 2008 Cross-referenced by PHPXref 0.7