Beispiel #1
0
 function addAction()
 {
     $this->view->title = "Ajout d'un article à une parution";
     $this->view->assign('isXmlHttpRequest', $this->_isXmlHttpRequest);
     $this->view->assign('success', false);
     if ($this->view->aclIsAllowed('newsletter', 'manage', true)) {
         //$this->headScript()->appendFile($this->view->baseUrl() .'/js/tiny_mce/tiny_mce.js');
         //$this->view->headScript()->appendFile($this->view->baseUrl().'/js/tiny_mce/tiny_mce.js');
         $pageID = $this->_getParam('pageID');
         $releaseID = $this->_getParam('releaseID');
         $zoneID = $this->_getParam('zoneID');
         $positionID = $this->_getParam('positionID');
         $baseDir = $this->view->baseUrl();
         $imageSrc = $this->view->baseUrl() . "/icons/image_non_ disponible.jpg";
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($formData['ImageSrc'] != "") {
                 $imageSrc = Zend_Registry::get("www_root") . "/data/images/newsletter/tmp/mcith/mcith_" . $formData['ImageSrc'];
             }
         }
         // generate the form
         $cancelUrl = $this->view->baseUrl() . "/newsletter/index/edit/newsletterID/{$releaseID}";
         $form = new FormNewsletterArticle(array('baseDir' => $baseDir, 'cancelUrl' => $cancelUrl, 'newsletterID' => $releaseID, 'imageSrc' => $imageSrc, 'isNewImage' => true));
         $this->view->form = $form;
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($form->isValid($formData)) {
                 // update position for all article higher
                 $newsletterArticlePosition = new NewsletterArticles();
                 $where = 'NA_PositionID >= ' . $positionID;
                 $where .= ' AND NA_ReleaseID = ' . $releaseID;
                 $where .= ' AND NA_ZoneID = ' . $zoneID;
                 $newsletterArticlePosition->update(array('NA_PositionID' => new Zend_Db_Expr('NA_PositionID + 1 ')), $where);
                 // add article in BD
                 $newsletterArticle = new NewsletterArticles();
                 $newsletterArticleData = $newsletterArticle->createRow();
                 $newsletterArticleData->NA_ReleaseID = $releaseID;
                 $newsletterArticleData->NA_ZoneID = $zoneID;
                 $newsletterArticleData->NA_PositionID = $positionID;
                 $newsletterArticleData->NA_Title = $form->getValue('NA_Title');
                 $newsletterArticleData->NA_Resume = $form->getValue('NA_Resume');
                 $newsletterArticleData->NA_Text = $form->getValue('NA_Text');
                 $newsletterArticleData->NA_URL = $form->getValue('NA_URL');
                 $newsletterArticleData->NA_TextLink = $form->getValue('NA_TextLink');
                 $newsletterArticleData->NA_ValUrl = Cible_FunctionsGeneral::formatValueForUrl($form->getValue('NA_Title'));
                 $newsletterArticleData->save();
                 $articleID = $newsletterArticleData->NA_ID;
                 if ($form->getValue('ImageSrc') != '') {
                     $config = Zend_Registry::get('config')->toArray();
                     $srcOriginal = "../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}/tmp/" . $form->getValue('ImageSrc');
                     $originalMaxHeight = $config['newsletter']['image']['original']['maxHeight'];
                     $originalMaxWidth = $config['newsletter']['image']['original']['maxWidth'];
                     $originalName = str_replace($form->getValue('ImageSrc'), $originalMaxWidth . 'x' . $originalMaxHeight . '_' . $form->getValue('ImageSrc'), $form->getValue('ImageSrc'));
                     $srcThumb = "../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}/tmp/thumb_{$form->getValue('ImageSrc')}";
                     $thumbMaxHeight = $config['newsletter']['image']['thumb']['maxHeight'];
                     $thumbMaxWidth = $config['newsletter']['image']['thumb']['maxWidth'];
                     $thumbName = str_replace($form->getValue('ImageSrc'), $thumbMaxWidth . 'x' . $thumbMaxHeight . '_' . $form->getValue('ImageSrc'), $form->getValue('ImageSrc'));
                     copy($srcOriginal, $srcThumb);
                     Cible_FunctionsImageResampler::resampled(array('src' => $srcOriginal, 'maxWidth' => $originalMaxWidth, 'maxHeight' => $originalMaxHeight));
                     Cible_FunctionsImageResampler::resampled(array('src' => $srcThumb, 'maxWidth' => $thumbMaxWidth, 'maxHeight' => $thumbMaxHeight));
                     if (!is_dir("../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}")) {
                         mkdir("../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}") or die("Could not make directory");
                     }
                     mkdir("../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}/{$articleID}") or die("Could not make directory");
                     rename($srcOriginal, "../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}/{$articleID}/{$originalName}") or die;
                     rename($srcThumb, "../../{$this->_config->document_root}/data/images/newsletter/{$releaseID}/{$articleID}/{$thumbName}") or die;
                     $newsletterArticleData['NA_ImageSrc'] = $form->getValue('ImageSrc');
                     $newsletterArticleData['NA_ImageAlt'] = $form->getValue('NA_ImageAlt');
                     $newsletterArticleData->save();
                 }
                 $this->_redirect("/newsletter/index/edit/newsletterID/{$releaseID}");
             } else {
                 $form->populate($formData);
             }
         }
     }
 }