public function editpostAction()
 {
     if ($datas = $this->getRequest()->getPost()) {
         try {
             $application = $this->getApplication();
             // Test s'il y a un value_id
             if (empty($datas['value_id'])) {
                 throw new Exception($this->_('An error occurred while saving'));
             }
             if (empty($datas['title'])) {
                 throw new Exception($this->_('Folder title is required'));
             }
             // Récupère l'option_value en cours
             $option_value = new Application_Model_Option_Value();
             $option_value->find($datas['value_id']);
             $folder = new Folder_Model_Folder();
             $category = new Folder_Model_Category();
             if (!empty($datas['category_id'])) {
                 $category->find($datas['category_id'], 'category_id');
             }
             if ($datas['parent_id'] == 'null') {
                 unset($datas['parent_id']);
                 //Assigne le nom de catégorie root à la feature
                 $option_value->setTabbarName($datas['title'])->save();
             } else {
                 $datas['pos'] = $category->getNextCategoryPosition($datas['parent_id']);
             }
             if (!empty($datas['file'])) {
                 $relative_path = '/folder/';
                 $path = Application_Model_Application::getBaseImagePath() . $relative_path;
                 $file = Core_Model_Directory::getTmpDirectory(true) . '/' . $datas['file'];
                 if (!is_dir($path)) {
                     mkdir($path, 0777, true);
                 }
                 if (!copy($file, $path . $datas['file'])) {
                     throw new exception($this->_('An error occurred while saving. Please try again later.'));
                 } else {
                     $datas['picture'] = $relative_path . $datas['file'];
                 }
             } else {
                 if (!empty($datas['remove_picture'])) {
                     $datas['picture'] = null;
                 }
             }
             $category->addData($datas)->save();
             //Change root category
             if (!isset($datas['parent_id'])) {
                 $folder->find($option_value->getId(), 'value_id');
                 $folder->setValueId($datas['value_id'])->setRootCategoryId($category->getId())->save();
                 $parent_id = 'null';
             } else {
                 $parent_id = $datas['parent_id'];
             }
             $html = array('success' => '1', 'success_message' => $this->_('Infos successfully saved'), 'category_id' => $category->getId(), 'parent_id' => $parent_id, '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));
     }
 }
Esempio n. 2
0
 public function createDummyContents($option_value, $design, $category)
 {
     $dummy_content_xml = $this->_getDummyXml($design, $category);
     foreach ($dummy_content_xml->folders->folder as $folder) {
         $root_category = new Folder_Model_Category();
         $root_category->addData((array) $folder->category->main->content)->save();
         if ($folder->category->main->features) {
             $i = 1;
             foreach ($folder->category->main->features->feature as $feature) {
                 $option = new Application_Model_Option();
                 $option->find((string) $feature->code, "code")->getObject();
                 $option_value_obj = new Application_Model_Option_Value();
                 $icon_id = NULL;
                 if ((string) $feature->icon) {
                     $icon = new Media_Model_Library_Image();
                     $icon->find((string) $feature->icon, "link");
                     if (!$icon->getData()) {
                         $icon->setLibraryId($option->getLibraryId())->setLink((string) $feature->icon)->setOptionId($option->getId())->setCanBeColorized($feature->colorizable ? (string) $feature->colorizable : 1)->setPosition(0)->save();
                     }
                     $icon_id = $icon->getId();
                 }
                 $datas = array("tabbar_name" => (string) $feature->name ? (string) $feature->name : NULL, "icon_id" => $icon_id, "app_id" => $this->getApplication()->getId(), "option_id" => $option->getId(), "layout_id" => $this->getApplication()->getLayout()->getId(), "folder_id" => $option_value->getId(), "folder_category_id" => $root_category->getId(), "folder_category_position" => $i++);
                 $option_value_obj->addData($datas)->save();
             }
         }
         $this->unsData();
         $this->setValueId($option_value->getId())->setRootCategoryId($root_category->getId())->save();
         foreach ($folder->category->subcategory as $subcategory) {
             $sub_root_category = new Folder_Model_Category();
             $sub_root_category->addData((array) $subcategory->content)->setParentId($root_category->getId())->save();
             if ($folder->category->subcategory->features) {
                 $i = 1;
                 foreach ($folder->category->subcategory->features->children() as $feature) {
                     $option = new Application_Model_Option();
                     $option->find((string) $feature->code, "code")->getObject();
                     $option_value_obj = new Application_Model_Option_Value();
                     $icon_id = NULL;
                     if ((string) $feature->icon) {
                         $icon = new Media_Model_Library_Image();
                         $icon->find((string) $feature->icon, "link");
                         if (!$icon->getData()) {
                             $icon->setLibraryId($option->getLibraryId())->setLink((string) $feature->icon)->setOptionId($option->getId())->setCanBeColorized(1)->setPosition(0)->save();
                         }
                         $icon_id = $icon->getId();
                     }
                     $datas = array("tabbar_name" => (string) $feature->name ? (string) $feature->name : NULL, "icon_id" => $icon_id, "app_id" => $this->getApplication()->getId(), "option_id" => $option->getId(), "layout_id" => $this->getApplication()->getLayout()->getId(), "folder_id" => $option_value->getId(), "folder_category_id" => $sub_root_category->getId(), "folder_category_position" => $i++);
                     $option_value_obj->addData($datas)->save();
                 }
             }
         }
     }
 }