Ejemplo n.º 1
0
 public function addAction()
 {
     // web page title
     $this->view->title = "Ajout d'un produit";
     //        $this->_registry->currentEditLanguage = $this->_defaultEditLanguage;
     // variables
     $returnAction = $this->_getParam('return');
     $baseDir = $this->view->baseUrl();
     $cancelUrl = $baseDir . "/" . $this->_moduleTitle . "/" . $this->_name . "/" . $this->_defaultAction . "/";
     if ($returnAction) {
         $returnUrl = $this->_moduleTitle . "/" . $this->_name . "/" . $returnAction;
     } else {
         $returnUrl = $this->_moduleTitle . "/" . $this->_name . "/" . $this->_defaultAction . "/";
     }
     if ($this->view->aclIsAllowed($this->_moduleTitle, 'edit', true)) {
         $imageSrc = $this->view->baseUrl() . "/icons/image_non_ disponible.jpg";
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($formData[$this->_imageSrc] != "") {
                 if ($formData[$this->_imageSrc] != "") {
                     $imageSrc = $this->_rootImgPath . "tmp/mcith/mcith_" . $formData[$this->_imageSrc];
                 }
             }
         }
         $langId = $this->_defaultEditLanguage;
         $oCollections = new ProductsObject();
         $collectionData = $oCollections->getAll($langId, true);
         $this->view->assign('collectionData', $collectionData);
         // generate the form
         $form = new FormProducts(array('moduleName' => $this->_moduleTitle . '/' . $this->_name, 'baseDir' => $baseDir, 'cancelUrl' => $cancelUrl, 'imageSrc' => $imageSrc, 'imgField' => $this->_imageSrc, 'dataId' => '', 'isNewImage' => true));
         $this->view->form = $form;
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($form->isValid($formData)) {
                 $oData = new ProductsObject();
                 $newData = array_merge($formData['productFormLeft'], $formData['productFormRight'], $formData['productFormBotPub'], $formData['productFormBotPro']);
                 $formattedName = Cible_FunctionsGeneral::formatValueForUrl($newData['PI_Name']);
                 $newData['PI_ValUrl'] = $formattedName;
                 $recordID = $oData->insert($newData, $this->_registry->currentEditLanguage);
                 // ADD Association
                 if (array_key_exists("collectionSet", $formData)) {
                     foreach ($formData['collectionSet'] as $collectionID) {
                         $oAssociation = new ProductsAssociationData();
                         $associateData = $oAssociation->createRow();
                         $associateData->AP_MainProductID = $recordID;
                         $associateData->AP_RelatedProductID = $collectionID;
                         $associateData->save();
                     }
                 }
                 /* IMAGES */
                 mkdir($this->_imageFolder . $recordID) or die("Could not make directory");
                 mkdir($this->_imageFolder . $recordID . "/tmp") or die("Could not make directory");
                 if ($form->getSubForm('productFormRight')->getValue($this->_imageSrc) != '') {
                     $config = Zend_Registry::get('config')->toArray();
                     $srcOriginal = $this->_imageFolder . "tmp/" . $newData[$this->_imageSrc];
                     $originalMaxHeight = $config[$this->_moduleTitle]['image']['original']['maxHeight'];
                     $originalMaxWidth = $config[$this->_moduleTitle]['image']['original']['maxWidth'];
                     $originalName = str_replace($newData[$this->_imageSrc], $originalMaxWidth . 'x' . $originalMaxHeight . '_' . $newData[$this->_imageSrc], $newData[$this->_imageSrc]);
                     $srcMedium = $this->_imageFolder . "tmp/medium_" . $newData[$this->_imageSrc];
                     $mediumMaxHeight = $config[$this->_moduleTitle]['image']['medium']['maxHeight'];
                     $mediumMaxWidth = $config[$this->_moduleTitle]['image']['medium']['maxWidth'];
                     $mediumName = str_replace($newData[$this->_imageSrc], $mediumMaxWidth . 'x' . $mediumMaxHeight . '_' . $newData[$this->_imageSrc], $newData[$this->_imageSrc]);
                     $srcThumb = $this->_imageFolder . "tmp/thumb_" . $newData[$this->_imageSrc];
                     $thumbMaxHeight = $config[$this->_moduleTitle]['image']['thumb']['maxHeight'];
                     $thumbMaxWidth = $config[$this->_moduleTitle]['image']['thumb']['maxWidth'];
                     $thumbName = str_replace($newData[$this->_imageSrc], $thumbMaxWidth . 'x' . $thumbMaxHeight . '_' . $newData[$this->_imageSrc], $newData[$this->_imageSrc]);
                     copy($srcOriginal, $srcMedium);
                     copy($srcOriginal, $srcThumb);
                     Cible_FunctionsImageResampler::resampled(array('src' => $srcOriginal, 'maxWidth' => $originalMaxWidth, 'maxHeight' => $originalMaxHeight));
                     Cible_FunctionsImageResampler::resampled(array('src' => $srcMedium, 'maxWidth' => $mediumMaxWidth, 'maxHeight' => $mediumMaxHeight));
                     Cible_FunctionsImageResampler::resampled(array('src' => $srcThumb, 'maxWidth' => $thumbMaxWidth, 'maxHeight' => $thumbMaxHeight));
                     rename($srcOriginal, $this->_imageFolder . $recordID . "/" . $originalName);
                     rename($srcMedium, $this->_imageFolder . $recordID . "/" . $mediumName);
                     rename($srcThumb, $this->_imageFolder . $recordID . "/" . $thumbName);
                 }
                 if (isset($formData['submitSaveClose'])) {
                     $this->_redirect($returnUrl);
                 } else {
                     $this->_redirect($this->_moduleTitle . "/" . $this->_name . "/edit/productID/" . $recordID);
                 }
             } else {
                 if (array_key_exists("collectionSet", $formData)) {
                     $this->view->assign('collectionChoice', $formData['collectionSet']);
                 } else {
                     $this->view->assign('collectionChoice', array());
                 }
                 $form->populate($formData);
             }
         }
     }
 }