Advertisement
Guest User

Untitled

a guest
Nov 21st, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.51 KB | None | 0 0
  1. <?php
  2. namespace MyNews\Controller;
  3. use Zend\Mvc\Controller\AbstractActionController;
  4. use MyNews\Entity\Image;
  5. use Zend\View\Model\JsonModel;
  6. use MyNews\Repository\Images as ImageRepository;
  7. use Albums\Repository\Albums as AlbumsRepository;
  8. use MyNews\Repository\Feeds as FeedsRepository;
  9. use MyNews\Entity\Feed;
  10.  
  11. class ImageLibrary {
  12.  
  13.     private $fileName;
  14.     private $fileExtension;
  15.     private $imageInstance;
  16.  
  17.  
  18.     function __construct($postImage){
  19.         include (__DIR__.'/../lib/class.upload.php');
  20.         $this->imageInstance = new \upload($postImage);
  21.         if ($this->imageInstace->uploaded && $this->imageInstace->file_is_image){
  22.  
  23.         } else {
  24.             throw new \Exception('Upload error');
  25.         }
  26.  
  27.     }
  28.  
  29.  
  30.     function processImage($postImage) {
  31.  
  32.  
  33.             $fileNameBody = sha1($newImg->getId().' ksdkmldsfmkdlfd '.$user->getId());
  34.  
  35.             $this->imageInstace->file_new_name_body = $fileNameBody;
  36.             $this->imageInstace->Process("public/users/images/");
  37.             if (!$this->imageInstace->processed){
  38.                 die('{"error"}');
  39.             }
  40.  
  41.  
  42.             $this->imageInstace->file_new_name_body = 'mid_'.$fileNameBody;
  43.  
  44.             $this->imageInstace->image_resize = true;
  45.             $this->imageInstace->image_x = 500;
  46.             $this->imageInstace->image_y = 500;
  47.             $this->imageInstace->image_precrop = true;
  48.             $this->imageInstace->image_ratio_crop = true;
  49.             $this->imageInstace->Process("public/users/images/");
  50.  
  51.             //$this->imageInstace->clean();
  52.             if (!$this->imageInstace->processed){
  53.                 die('error');
  54.             }
  55.  
  56.  
  57.             $this->imageInstace->file_new_name_body = 'ava_'.$fileNameBody;
  58.             $this->imageInstace->image_resize = true;
  59.             $this->imageInstace->image_x = 142;
  60.             $this->imageInstace->image_y = 142;
  61.             $this->imageInstace->image_precrop = true;
  62.             $this->imageInstace->image_ratio_crop = true;
  63.             $this->imageInstace->Process("public/users/images/");
  64.             //$this->imageInstace->clean();
  65.             if (!$this->imageInstace->processed){
  66.                 die('error');
  67.             }
  68.  
  69.  
  70.             $this->imageInstace->file_new_name_body = 'cov_'.$fileNameBody;
  71.             $this->imageInstace->image_resize = true;
  72.             $this->imageInstace->image_x = 646;
  73.             $this->imageInstace->image_y = 352;
  74.             $this->imageInstace->image_precrop = true;
  75.             $this->imageInstace->image_ratio_crop = true;
  76.             $this->imageInstace->Process("public/users/images/");
  77.             //$this->imageInstace->clean();
  78.             if (!$this->imageInstace->processed){
  79.                 die('error');
  80.             }
  81.  
  82.            // return array()
  83.                 //echo $this->imageInstace->log;
  84.  
  85.             }
  86.  
  87.  
  88.  
  89.  
  90.     /**
  91.      * @return mixed
  92.      */
  93.     public function getFileExtension()
  94.     {
  95.         return $this->fileExtension;
  96.     }
  97.  
  98.     /**
  99.      * @param mixed $fileExtension
  100.      */
  101.     public function setFileExtension($fileExtension)
  102.     {
  103.         $this->fileExtension = $fileExtension;
  104.     }
  105.  
  106.     /**
  107.      * @return mixed
  108.      */
  109.     public function getFileName()
  110.     {
  111.         return $this->fileName;
  112.     }
  113.  
  114.     /**
  115.      * @param mixed $fileName
  116.      */
  117.     public function setFileName($fileName)
  118.     {
  119.         $this->fileName = $fileName;
  120.     }
  121.  
  122. }
  123.  
  124.  
  125. class ImageController extends AbstractActionController {
  126.  
  127.     public function uploadImageAction()
  128.     {
  129.         $user = $this->zfcUserAuthentication()->getIdentity();
  130.         include (__DIR__.'/../lib/class.upload.php');
  131.         $foo = new \upload($_FILES['image']);
  132.         if ($user && $foo->uploaded && $foo->file_is_image){
  133.  
  134.             $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
  135.             $newImg = new Image();
  136.  
  137.             $newImg->setUser($user);
  138.             $newImg->setPubDate(new \DateTime());
  139.             $newImg->setFileName('_empty');
  140.             $em->persist($newImg);
  141.             $em->flush();
  142.  
  143.             $fileNameBody = sha1($newImg->getId().' ksdkmldsfmkdlfd '.$user->getId());
  144.  
  145.             $foo->file_new_name_body = $fileNameBody;
  146.             $foo->Process("public/users/images/");
  147.             if (!$foo->processed){
  148.                 die('{"error"}');
  149.             }
  150.  
  151.  
  152.             $foo->file_new_name_body = 'mid_'.$fileNameBody;
  153.            
  154.             $foo->image_resize = true;
  155.             $foo->image_x = 500;
  156.             $foo->image_y = 500;
  157.             $foo->image_precrop = true;
  158.             $foo->image_ratio_crop = true;
  159.             $foo->Process("public/users/images/");
  160.  
  161.             //$foo->clean();
  162.             if (!$foo->processed){
  163.                 die('error');
  164.             }
  165.  
  166.  
  167.             $foo->file_new_name_body = 'ava_'.$fileNameBody;
  168.             $foo->image_resize = true;
  169.             $foo->image_x = 142;
  170.             $foo->image_y = 142;
  171.             $foo->image_precrop = true;
  172.             $foo->image_ratio_crop = true;
  173.             $foo->Process("public/users/images/");
  174.             //$foo->clean();
  175.             if (!$foo->processed){
  176.                 die('error');
  177.             }
  178.  
  179.  
  180.             $foo->file_new_name_body = 'cov_'.$fileNameBody;
  181.             $foo->image_resize = true;
  182.             $foo->image_x = 646;
  183.             $foo->image_y = 352;
  184.             $foo->image_precrop = true;
  185.             $foo->image_ratio_crop = true;
  186.             $foo->Process("public/users/images/");
  187.             //$foo->clean();
  188.             if (!$foo->processed){
  189.                 die('error');
  190.             }
  191.  
  192.             //echo $foo->log;
  193.  
  194.  
  195.             $newImg->setFileName($fileNameBody.'.'.$foo->file_src_name_ext);
  196.  
  197.  
  198.             $em->persist($newImg);
  199.             $em->flush();
  200.  
  201.  
  202.             $model = new JsonModel(Image::createDump($newImg));
  203.             $model->setTerminal(true);
  204.             return $model;
  205.  
  206.         } else {
  207.             echo '{"upload error"}';
  208.             //var_dump($_FILES['image']);
  209.         }
  210.  
  211.  
  212.         die();
  213.  
  214.     }
  215.  
  216.  
  217.  
  218.     public function getImageAction()
  219.     {
  220.         $id = $this->params()->fromPost('imageId');
  221.  
  222.         $imageRepository = new ImageRepository($this->getServiceLocator()->get('Doctrine\ORM\EntityManager'));
  223.         $image = $imageRepository->getById($id);
  224.  
  225.         $model = new JsonModel(Image::createDump($image));
  226.  
  227.         $model->setTerminal(true);
  228.  
  229.         return $model;
  230.  
  231.  
  232.     }
  233.  
  234.     public function editImageAction()
  235.     {
  236.         $id = $this->params()->fromPost('id');
  237.         $title = $this->params()->fromPost('title');
  238.         $albumName = $this->params()->fromPost('albumName');
  239.         $description = $this->params()->fromPost('description');
  240.  
  241.         //TODO костыль
  242.  
  243.         $user = $this->zfcUserAuthentication()->getIdentity();
  244.  
  245.         $imageRepository = new ImageRepository($this->getServiceLocator()->get('Doctrine\ORM\EntityManager'));
  246.  
  247.         $image = $imageRepository->getByIdAndUser($id, $user);
  248.  
  249.         //TODO To Repository or service
  250.         if ($image){
  251.             $image->setTitle($title);
  252.             $image->setDescription($description);
  253.             if ($albumName){
  254.  
  255.                 $albumRepository = new AlbumsRepository($this->getServiceLocator()->get('Doctrine\ORM\EntityManager'));
  256.                 $feedsRepository = new FeedsRepository($this->getServiceLocator()->get('Doctrine\ORM\EntityManager'));
  257.                    
  258.                 $album = $albumRepository->getOrCreateAlbumWithTitle($albumName, $user);
  259.                
  260.                 $image->setAlbum($album);
  261.  
  262.  
  263.                
  264.                 //var_dump($image);
  265.                 if (!$feedsRepository->getFeedOfImage($image)){
  266.                  
  267.                     $feed = new Feed();
  268.                     $feed->setFeedType(FEED::FEED_TYPE_ALBUM);
  269.                     $feed->setImage($image);
  270.                     $feed->setPubDate(new \DateTime());
  271.                     $feed->setUser($user);
  272.                     $feedsRepository->save($feed);  
  273.                 }
  274.  
  275.             }
  276.            
  277.  
  278.             $imageRepository->save($image);
  279.             if ($album){
  280.                 $albumRepository->updateAlbumsImageData($album);  
  281.                 $albumRepository->save($album);
  282.             }
  283.  
  284.                    
  285.  
  286.  
  287.             $model = new JsonModel(Image::createDump($image));
  288.  
  289.         } else {
  290.             $model = new JsonModel(array('result'=>false));
  291.         }
  292.  
  293.         $model->setTerminal(true);
  294.  
  295.         return $model;
  296.  
  297.  
  298.     }
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement