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)); } }
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(); } }