예제 #1
0
 public function addAction()
 {
     $this->view->type = $type = $this->_getParam('type', "other");
     $this->view->title = ucfirst($type) . " Category - Add";
     $this->view->headTitle(" -  " . $this->view->title);
     $form = new Admin_Form_Category();
     $this->view->form = $form;
     //remove weight field for all type of categories except advice and wsv category
     if ($type == "album" || $type == "blog" || $type == "work" || $type == "study" || $type == "volunteer" || $type == "other") {
         $form->removeElement('weight');
     }
     //Url Link and Url Text fields should appear for WSV categories only
     if ($type != "wsv") {
         $form->removeElement('urlText');
         $form->removeElement('urlLink');
     }
     $this->view->successMsg = "";
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             $formData['type'] = $type;
             $formData['parentId'] = "0";
             $this->view->warningMsg = '';
             $model = new Application_Model_Category($formData);
             $id = $model->save();
             $upload = new Zend_File_Transfer_Adapter_Http();
             //---main image
             if ($upload->isValid('image')) {
                 $upload->setDestination("images/uploads/");
                 try {
                     $upload->receive('image');
                 } catch (Zend_File_Transfer_Exception $e) {
                     $msg = $e->getMessage();
                 }
                 $upload->setOptions(array('useByteString' => false));
                 $file_name = $upload->getFileName('image');
                 $cardImageTypeArr = explode(".", $file_name);
                 $ext = strtolower($cardImageTypeArr[count($cardImageTypeArr) - 1]);
                 $target_file_name = "category_" . $id . ".{$ext}";
                 $targetPath = 'media/picture/category/' . $type . '/' . $target_file_name;
                 $filterFileRename = new Zend_Filter_File_Rename(array('target' => $targetPath, 'overwrite' => true));
                 $filterFileRename->filter($file_name);
                 $options['image'] = $target_file_name;
                 /*--- Generate Thumbnail ---*/
                 $thumb = Base_Image_PhpThumbFactory::create($targetPath);
                 $thumb->resize(100, 100);
                 $thumb->save($targetPath = 'media/picture/category/' . $type . '/thumb_' . $target_file_name);
                 $model = new Application_Model_Category();
                 $model = $model->find($id);
                 $model->setImage($target_file_name);
                 $model->save();
             }
             //-----------
             $form->reset();
             $this->view->successMsg = "Category added successfully. Category id : {$id}";
         } else {
             $form->populate($formData);
         }
     }
 }