Exemplo n.º 1
0
 public function editInfoAction()
 {
     // web page title
     $this->view->title = "Modification d'une infolettre";
     if ($this->view->aclIsAllowed('newsletter', 'manage', true)) {
         // variables
         $pageID = $this->_getParam('pageID');
         $blockID = $this->_getParam('blockID');
         $newsletterID = $this->_getParam('newsletterID');
         $baseDir = $this->view->baseUrl();
         $newsletterSelect = new NewsletterReleases();
         $select = $newsletterSelect->select();
         $select->where('NR_ID = ?', $newsletterID);
         $newsletterData = $newsletterSelect->fetchRow($select);
         // generate the form
         $cancelUrl = "/newsletter/index/edit/blockID/{$blockID}/pageID/{$pageID}/newsletterID/{$newsletterID}";
         $form = new FormNewsletter(array('baseDir' => $baseDir, 'cancelUrl' => $baseDir . $cancelUrl));
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($form->isValid($formData)) {
                 $newsletterData['NR_LanguageID'] = $form->getValue('NR_LanguageID');
                 $newsletterData['NR_CategoryID'] = $form->getValue('NR_CategoryID');
                 $newsletterData['NR_ModelID'] = $form->getValue('NR_ModelID');
                 $newsletterData['NR_Title'] = $form->getValue('NR_Title');
                 $newsletterData['NR_AdminEmail'] = $form->getValue('NR_AdminEmail');
                 $newsletterData['NR_ValUrl'] = Cible_FunctionsGeneral::formatValueForUrl($form->getValue('NR_Title'));
                 $newsletterData['NR_Date'] = $form->getValue('NR_Date');
                 $newsletterData['NR_TextIntro'] = $form->getValue('NR_TextIntro');
                 $newsletterData['NR_Online'] = $formData['NR_Online'] == 0 ? 2 : 1;
                 $newsletterData['NR_AfficherTitre'] = $form->getValue('NR_AfficherTitre');
                 $newsletterData->save();
                 $blockData = Cible_FunctionsBlocks::getBlockDetails($blockID);
                 $status = $blockData['B_Online'];
                 if ($newsletterData['NR_Online'] == 1 && $status == 1 || $newsletterData['NR_Online'] == 0) {
                     // get all article in the release
                     $articlesSelect = new NewsletterArticles();
                     $select = $articlesSelect->select()->where('NA_ReleaseID = ?', $newsletterID);
                     $articlesData = $articlesSelect->fetchAll($select);
                     $indexData['pageID'] = $pageID;
                     $indexData['moduleID'] = 8;
                     $indexData['languageID'] = $newsletterData['NR_LanguageID'];
                     foreach ($articlesData as $article) {
                         $indexData['contentID'] = $article['NA_ID'];
                         if ($newsletterData['NR_Online'] == 1) {
                             $indexData['title'] = $article['NA_Title'];
                             $indexData['text'] = Cible_FunctionsGeneral::stripTextWords(Cible_FunctionsGeneral::html2text($article['NA_Resume']));
                             $indexData['link'] = '';
                             $indexData['contents'] = Cible_FunctionsGeneral::html2text($article['NA_Resume'] . "<br/>" . $article['NA_Text']);
                             $indexData['action'] = 'update';
                         } elseif ($newsletterData['NR_Online'] == 0) {
                             $indexData['action'] = 'delete';
                         }
                         Cible_FunctionsIndexation::indexation($indexData);
                     }
                 }
             }
             $this->_redirect($cancelUrl);
         } else {
             $data = $newsletterData->toArray();
             if ($data['NR_Online'] == 2) {
                 $data['NR_Online'] = 0;
             }
             $form->populate($data);
             $this->view->form = $form;
         }
     }
 }