public function editpostAction()
 {
     if ($datas = $this->getRequest()->getPost()) {
         $html = '';
         try {
             // Test s'il y a un value_id
             if (empty($datas['value_id'])) {
                 throw new Exception($this->_('An error occurred while saving'));
             }
             // Récupère l'option_value en cours
             $option_value = new Application_Model_Option_Value();
             $option_value->find($datas['value_id']);
             if (empty($datas['url'])) {
                 throw new Exception($this->_('Please enter a valid url'));
             }
             // Récupère le Wordpress en cours et met à jour son url
             $wordpress = $option_value->getObject();
             $wordpress->setUrl($datas['url']);
             // Appelle le Wordpress (Vérifie si l'url passée en paramètre est OK)
             $wordpress->checkModule();
             if (!$wordpress->getId()) {
                 $wordpress->setValueId($datas['value_id'])->setUrl($datas['url'])->save();
             }
             // Sauvegarde le Wordpress
             $wordpress->save();
             // Récupère les catégory_ids déjà en base
             $category_ids = $wordpress->getCategoryIds();
             // Récupère les category_ids passés en post
             $datas['category_ids'] = !empty($datas['category_ids']) ? $datas['category_ids'] : array();
             // Filtre les catégories à supprimer
             $category_ids_to_delete = array_diff($category_ids, $datas['category_ids']);
             // Supprime les catégories décochées
             if (!empty($category_ids_to_delete)) {
                 $category = new Wordpress_Model_Wordpress_Category();
                 $categories = $category->findAll(array('wp_id' => $wordpress->getId(), 'wp_category_id IN (?)' => $category_ids_to_delete));
                 foreach ($categories as $category) {
                     $category->delete();
                 }
             }
             // Filtre les nouvelles catégories
             $category_ids_to_save = array_diff($datas['category_ids'], $category_ids);
             // Insert en base les nouvelles catégories
             foreach ($category_ids_to_save as $category_id) {
                 $category = new Wordpress_Model_Wordpress_Category();
                 $category->setData(array('wp_id' => $wordpress->getId(), 'wp_category_id' => $category_id))->save();
             }
             // Vide la cache
             Zend_Registry::get('cache')->remove('wordpress_cache_' . sha1($wordpress->getId()));
             // Retourne le message de success
             $html = array('success' => 1, 'success_message' => $this->_('Categories successfully saved'), 'message_timeout' => 2, 'message_button' => 0, 'message_loader' => 0);
         } catch (Exception $e) {
             $html = array('message' => $e->getMessage(), 'message_button' => 1, 'message_loader' => 1);
         }
         $this->getLayout()->setHtml(Zend_Json::encode($html));
     }
 }
Example #2
0
 public function createDummyContents($option_value, $design, $category)
 {
     $dummy_content_xml = $this->_getDummyXml($design, $category);
     foreach ($dummy_content_xml->children() as $content) {
         $this->setUrl((string) $content->url)->setValueId($option_value->getId())->save();
         $category_wp = new Wordpress_Model_Wordpress_Category();
         $category_wp->setData(array('wp_id' => $this->getId(), 'wp_category_id' => 1))->save();
     }
 }