turist_ua

PhotogalleryController

Jan 15th, 2012
406
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class PhotogalleryController extends Zend_Controller_Action
  4. {
  5.     public function indexAction()
  6.     {
  7.         $this->view->title = 'Фотогалереи';
  8.         $this->view->headTitle($this->view->title, 'PREPEND');
  9.  
  10.         $photos = new Application_Model_Photogallery();
  11.         if ($this->_getParam('dep_id')) {
  12.             $cur_dep = $this->_getParam('dep_id');
  13.         } else {
  14.             $cur_dep = 1;
  15.         }
  16.         $allphotos = $photos->getPhotosFromDep($cur_dep);
  17.  
  18.         $cur_dep_object = new Application_Model_PhotogalleryDeps($cur_dep);
  19.  
  20.         $this->view->cur_dep = $cur_dep_object;
  21.  
  22.  
  23.         $sdeps = new Application_Model_PhotogalleryDeps();
  24.         $deps = $sdeps->getAllPhotogalleryDeps();
  25.  
  26.         $this->view->deps = $deps;
  27.         $this->view->photos = $allphotos;
  28.     }
  29.  
  30.     public function addAction()
  31.     {
  32.         $this->view->title = 'Добавить фото';
  33.         $this->view->headTitle($this->view->title, 'PREPEND');
  34.  
  35.         $defaultNamespace = new Zend_Session_Namespace('Default');
  36.  
  37.         $form = new Application_Form_Photogallery(array(
  38.             'type'  => 'add'
  39.         ));
  40.  
  41.         if (isset($defaultNamespace->last_photo_dep_id) && !is_null($defaultNamespace->last_photo_dep_id)) {
  42.             $form->setDefault('dep_id', $defaultNamespace->last_photo_dep_id);
  43.         }
  44.  
  45.         if ($this->getRequest()->isPost()){
  46.             if ($form->isValid($this->getRequest()->getPost())){
  47.                 $item = new Application_Model_Photogallery();
  48.                 $item->fill($form->getValues());
  49.                 $item->upd = time();
  50.                 $item->save();
  51.                 $defaultNamespace->last_photo_dep_id = $form->getValue('dep_id');
  52.                 $this->_helper->getHelper('Redirector')->gotoSimple('index',
  53.                                                        'photogallery',
  54.                                                        null,
  55.                                                        array('dep_id' => $form->getValue('dep_id'))
  56.                                                        );
  57.             }
  58.         }
  59.  
  60.         $this->view->form = $form;
  61.  
  62.     }
  63.  
  64.     public function editAction()
  65.     {
  66.         $id = $this->_getParam('id');
  67.         $item = new Application_Model_Photogallery($id);
  68.  
  69.         $this->view->title = 'Изменить фото "'.$item->photo.'"';
  70.         $this->view->headTitle($this->view->title, 'PREPEND');
  71.  
  72.         $form = new Application_Form_Photogallery(array( 'type' => 'edit', 'photo_file' => $item->photo ));
  73.  
  74.         if ($this->getRequest()->isPost()) {
  75.             if ($form->isValid($this->getRequest()->getPost())) {
  76.  
  77.                 $item->dep_id = $form->getValue('dep_id');
  78.                 $item->preivew = $form->getValue('preview');
  79.                 $item->pos = $form->getValue('pos');
  80.                 $item->slideshow = $form->getValue('slideshow');
  81.                 $item->upd = time();
  82.  
  83.                 // если поставлена галочка на удаление - то удаляем файл и пищем в БД null
  84.                 //var_dump($this->getRequest()->getParam('photo_checkbox'));
  85.                 if (!is_null($this->getRequest()->getParam('photo_checkbox')) && $this->getRequest()->getParam('photo_checkbox') == 'on') {
  86.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo))
  87.                     unlink(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo);
  88.  
  89.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo))
  90.                     unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  91.  
  92.                     $item->photo = null;
  93.                 }
  94.  
  95.                 // если указан новый файл и он загружен, то удаляем старый файл и пишем в БД новый.
  96.                 // в случае, если элемент File не заполнен, $form->photo->getFileName() == array(null) ;
  97.                 if (!is_null($form->photo->getFileName()) && count($form->photo->getFileName()) != 0) {
  98.  
  99.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo)) {
  100.                         unlink(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo);
  101.                     }
  102.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo)) {
  103.                         unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  104.                     }
  105.                     $item->photo = $form->getValue('photo');
  106.                 }
  107.  
  108.                 $item->save();
  109.  
  110.                 $this->_helper->getHelper('Redirector')->gotoSimple('index',
  111.                                                        'photogallery',
  112.                                                        null,
  113.                                                        array('dep_id' => $form->getValue('dep_id'))
  114.                                                        );
  115.             }
  116.         } else {
  117.             //var_dump($item->populateForm());
  118.             $form->populate($item->populateForm());
  119.         }
  120.         $this->view->form = $form;
  121.  
  122.     }
  123.  
  124.     public function viewAction()
  125.     {
  126.         $id = $this->_getParam('dep_id');
  127.         $dep_info = new Application_Model_PhotogalleryDeps($id);
  128.         $this->view->title = $dep_info->name;
  129.         $this->view->headTitle($dep_info->name, 'PREPEND');
  130.  
  131.         $this->view->headLink(array('href' => $this->view->baseUrl() . '/css/reset.css', 'media' => "screen", 'rel' => 'stylesheet', 'type' => 'text/css'), 'SET')
  132.                 ->appendStylesheet($this->view->baseUrl() . '/css/frontend.css', "screen")
  133.                 ->headLink(array('rel' => 'icon', 'href' => $this->view->baseUrl() . '/i/favicon.png'), 'APPEND')
  134.                 ->headLink(array('rel' => 'shortcut icon', 'href' => $this->view->baseUrl() . '/i/favicon.png'),'APPEND');
  135.  
  136.         $photos_model = new Application_Model_Photogallery();
  137.         $photos = $photos_model->getExistPhotosFromDep($id);
  138.         $this->view->photos = $photos;
  139.  
  140.         $this->_helper->layout->setLayout('frontend');
  141.     }
  142.  
  143.     public function deleteAction()
  144.     {
  145.         $id = $this->_getParam('id');
  146.         $item = new Application_Model_Photogallery($id);
  147.         if (!is_null($item->photo)){
  148.             if (file_exists(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo)) {
  149.                 unlink(PUBLIC_PATH . '/userfiles/images/full/' . $item->photo);
  150.             }
  151.             if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo)) {
  152.                 unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  153.             }
  154.         }
  155.         // т.к. после $item->delete(); объект/сущность $item будет уничтожен
  156.         $dep_id = $item->dep_id;
  157.         $item->delete();
  158.         $this->_helper->getHelper('Redirector')->gotoSimple('index',
  159.                                                      'photogallery',
  160.                                                      null,
  161.                                                      array('dep_id' => $dep_id)
  162.                                                      );
  163.     }
  164.  
  165.     public function addDepAction()
  166.     {
  167.         $this->view->title = 'Добавить фотогалерею';
  168.         $this->view->headTitle($this->view->title, 'PREPEND');
  169.  
  170.         $form = new Application_Form_PhotogalleryDeps(array('type' => 'add'));
  171.  
  172.         if ($this->getRequest()->isPost()){
  173.             if ($form->isValid($this->getRequest()->getPost())){
  174.                 $sdeps = new Application_Model_PhotogalleryDeps();
  175.                 $sdeps->fill($form->getValues());
  176.                 $sdeps->date = time();
  177.                 $sdeps->save();
  178.                 $this->_helper->redirector('index');
  179.             }
  180.         }
  181.  
  182.         $this->view->form = $form;
  183.     }
  184.  
  185.     public function editDepAction()
  186.     {
  187.         $id = $this->_getParam('id');
  188.         $item = new Application_Model_PhotogalleryDeps($id);
  189.         $this->view->title = 'Изменить информацию о фотогалерее "'.$item->name.'":';
  190.         $this->view->headTitle($this->view->title, 'PREPEND');
  191.  
  192.         $form = new Application_Form_PhotogalleryDeps(array( 'type' => 'edit', 'photo_file' => $item->photo ));
  193.  
  194.         if ($this->getRequest()->isPost()) {
  195.             if ($form->isValid($this->getRequest()->getPost())) {
  196.  
  197.                 $item->name = $form->getValue('name');
  198.                 $item->preivew = $form->getValue('preview');
  199.                 $item->content = $form->getValue('content');
  200.                 $item->pos = $form->getValue('pos');
  201.                 $item->visible = $form->getValue('visible');
  202.                 $item->date = time();
  203.  
  204.                 // если поставлена галочка на удаление - то удаляем файл и пищем в БД null
  205.                 if ($this->getRequest()->getParam('photo_checkbox') == 'on') {
  206.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo))
  207.                     unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  208.  
  209.                     $item->photo = null;
  210.                 }
  211.  
  212.                 // если указан новый файл и он загружен, то удаляем старый файл и пишем в БД новый.
  213.                 if (!is_null($form->photo->getFileName())) {
  214.                     if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo)) {
  215.                         unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  216.                     }
  217.                     $item->photo = $form->getValue('photo');
  218.                 }
  219.  
  220.                    $item->save();
  221.                 $this->_helper->redirector('index');
  222.             }
  223.         } else {
  224.             $form->populate($item->populateForm());
  225.         }
  226.         $this->view->form = $form;
  227.  
  228.     }
  229.  
  230.     public function deleteDepAction()
  231.     {
  232.         $id = $this->_getParam('id');
  233.         $item = new Application_Model_PhotogalleryDeps($id);
  234.         if (!is_null($item->photo)){
  235.                 if (file_exists(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo)) {
  236.                     unlink(PUBLIC_PATH . '/userfiles/images/thumb/' . $item->photo);
  237.                 }
  238.         }
  239.  
  240.         $item->delete();
  241.         $this->_helper->redirector('index');
  242.     }
  243.  
  244. }
RAW Paste Data