Esempio n. 1
0
 /**
  * prepare data to be returned from query
  * @param array
  * @return Person_Model_Person
  */
 protected function _prepareReturnData($data, $returnArray = true)
 {
     if (is_array($data)) {
         if (!isset($data[0])) {
             $data = array(0 => $data);
         }
         $col = array();
         foreach ($data as $row) {
             if ($row) {
                 $o = new Persons_Model_Person($row);
                 $md = new Media_Domain_Image();
                 $media = $md->getByRelation('person_media', $row['id']);
                 $o->setMedia($media);
                 $col[] = $o;
             }
         }
         if ($returnArray) {
             return $col;
         } else {
             return $col[0];
         }
     } else {
         return null;
     }
 }
 public function getAction()
 {
     $response = $this->getResponse();
     $this->_helper->viewRenderer->setNoRender(true);
     $layout = Zend_Layout::getMvcInstance();
     $layout->disableLayout();
     if ($image = $this->_getImage()) {
         $domain = new Media_Domain_Image();
         $domain->setImage($image);
         $response->setHeader('Content-Type', $image->getMimetype());
         $size = $this->_hasParam('size') ? $this->_getParam('size') : '';
         $img = $domain->loadFile($size);
         $response->setBody($img);
     } else {
         $response->setHttpResponseCode(Agana_Http_StatusCodes::HTTP_NOT_FOUND);
         $response->setBody(Agana_Http_StatusCodes::getMessageForCode(Agana_Http_StatusCodes::HTTP_NOT_FOUND));
     }
 }
Esempio n. 3
0
 /**
  * @return Media_Model_Image
  */
 public function getMedia()
 {
     if (is_null($this->media)) {
         $md = new Media_Domain_Image();
         $this->media = $md->getByRelation('person', $this->id);
         if (is_null($this->media)) {
             $this->media = new Media_Model_Image();
         }
     }
     return $this->media;
 }
 private function _updateImage()
 {
     $this->_helper->viewRenderer->setNoRender(true);
     $layout = Zend_Layout::getMvcInstance();
     $layout->disableLayout();
     $return = array('msg' => '', 'file' => array('name' => '', 'size' => '', 'url' => ''));
     if ($this->getRequest()->isPost()) {
         $allowedExtensions = null;
         $maxSize = 999999;
         $path = '';
         $options = $this->_getBootstrapOptions();
         // UPLOAD of image
         $domainImage = new Media_Domain_Image();
         $title = 'person_' . $this->_getParam('id');
         $file = $domainImage->handleUpload(APPLICATION_DATA_PATH, array('AllowedExtensions' => $options['allowedExtensions'], 'SizeLimit' => $options['maxSize'], 'Dimensions' => $options['dimensions']));
         if (isset($file['error'])) {
             $return['error'] = $file['error'];
         } else {
             // MEDIA MODEL
             $image = new Media_Model_Image();
             $image->setFile($file['name']);
             $image->setFilesize($file['size']);
             $image->setMimetype($file['type']);
             $image->setTitle($title);
             // RECOVER Media from Person
             $domainPerson = new Persons_Domain_Person();
             $person = $domainPerson->getById($this->_getParam('id'));
             $mp = $person->getMedia();
             $createPersonMedia = !isset($mp) || $mp->getId() == null;
             if (!$createPersonMedia) {
                 $image->setId($mp->getId());
             }
             $domainImage->setImage($image);
             // DELETE previous image file from disk, only if they are not the same
             if (!$createPersonMedia) {
                 if ($mp->getFile() != $image->getFile()) {
                     $domainImage->setImage($mp);
                     $domainImage->deleteFile();
                     $domainImage->setImage($image);
                 }
             }
             try {
                 // persisting media
                 $imgId = $domainImage->save();
                 // persisting person media
                 $image->setId($imgId);
                 $person->setMedia($image);
                 $domainPerson->setPerson($person);
                 if ($createPersonMedia) {
                     $domainPerson->createImageRelation();
                 }
                 $return['msg'] = $this->_translate->_('File successfully uploaded');
                 $return['file'] = $file;
             } catch (Exception $e) {
                 echo json_encode(array('error' => $e->getMessage()));
             }
         }
         echo json_encode($return);
     }
 }