public function editAction()
 {
     if ($this->getCurrentOptionValue()) {
         $product = new Catalog_Model_Product();
         if ($product_id = $this->getRequest()->getParam('id')) {
             $product->find($product_id);
             if ($product->getId() and $product->getValueId() != $this->getCurrentOptionValue()->getId()) {
                 throw new Exception($this->_('An error occurred while loading your product.'));
             }
         } else {
             if ($category_id = $this->getRequest()->getParam('category_id')) {
                 $category = new Catalog_Model_Category();
                 $category->find($category_id);
                 if ($category->getValueId() != $this->getCurrentOptionValue()->getId()) {
                     $category = null;
                     $category_id = Catalog_Model_Category();
                 }
                 $product->setCategory($category)->setCategoryId($category_id);
             }
         }
         $this->loadPartials(null, false);
         $this->getLayout()->getPartial('content')->setOptionValue($this->getCurrentOptionValue())->setProduct($product);
         $html = $this->getLayout()->render();
         $this->getLayout()->setHtml($html);
     }
 }
 public function sortcategoriesAction()
 {
     if ($rows = $this->getRequest()->getParam('category') or $rows = $this->getRequest()->getParam('row')) {
         $html = array();
         try {
             if (!$this->getCurrentOptionValue()) {
                 throw new Exception($this->_('An error occurred while saving'));
             }
             $category = new Catalog_Model_Category();
             $categories = $category->findByValueId($this->getCurrentOptionValue()->getId());
             $category_ids = array();
             foreach ($categories as $category) {
                 $category_ids[] = $category->getId();
             }
             foreach ($rows as $row) {
                 if (!in_array($row, $category_ids)) {
                     throw new Exception($this->_("An error occurred while saving. One of your categories could not be identified."));
                 }
             }
             $category->updatePosition($rows);
             $html = array('success' => 1);
         } catch (Exception $e) {
             $html = array('message' => $e->getMessage());
         }
         $this->getLayout()->setHtml(Zend_Json::encode($html));
     }
 }
Example #3
0
 public function getActiveChildren()
 {
     if (!$this->_active_children) {
         $category = new Catalog_Model_Category();
         $this->_active_children = $category->findAll(array('parent_id' => $this->getId(), 'is_active' => 1));
     }
     return $this->_active_children;
 }
 public function viewAction()
 {
     $option = $this->getCurrentOptionValue();
     $this->loadPartials($this->getFullActionName('_') . '_l' . $this->_layout_id, false);
     $category = new Catalog_Model_Category();
     $categories = $category->findByValueId($option->getId(), null, true, true);
     $this->getLayout()->getPartial('content')->setCategories($categories);
     $html = array('html' => $this->getLayout()->render(), 'title' => $this->getCurrentOptionValue()->getTabbarName());
     if ($url = $option->getBackgroundImageUrl()) {
         $html['background_image_url'] = $url;
     }
     $html['use_homepage_background_image'] = (int) $option->getUseHomepageBackgroundImage() && !$option->getHasBackgroundImage();
     $this->getLayout()->setHtml(Zend_Json::encode($html));
 }
 public function findallAction()
 {
     if ($value_id = $this->getRequest()->getParam("value_id")) {
         try {
             $category = new Catalog_Model_Category();
             $categories = $category->findByValueId($value_id, null, true, true);
             $data = array("categories" => array());
             foreach ($categories as $category) {
                 $products = array();
                 foreach ($category->getProducts() as $product) {
                     $products[] = $this->_productToJson($product, $value_id);
                 }
                 usort($products, array($this, "_sortProducts"));
                 $category_data = array("id" => $category->getId(), "name" => $category->getName());
                 $children = $category->getChildren();
                 if ($children->count()) {
                     foreach ($category->getChildren() as $child) {
                         $child_products = array();
                         foreach ($child->getProducts() as $product) {
                             $child_products[] = $products[] = $this->_productToJson($product, $value_id);
                         }
                         usort($child_products, array($this, "_sortProducts"));
                         $category_data["children"][] = array("id" => $child->getId(), "name" => $child->getName(), "collection" => $child_products);
                     }
                     array_unshift($category_data["children"], array("id" => $child->getId(), "name" => $this->_("%s - All", $category->getName()), "collection" => $products));
                 } else {
                     $category_data["collection"] = $products;
                 }
                 $data["categories"][] = $category_data;
             }
             $data["page_title"] = $this->getCurrentOptionValue()->getTabbarName();
             $data["header_right_button"]["picto_url"] = $this->_getColorizedImage($this->_getImage('pictos/more.png', true), $this->getApplication()->getBlock('subheader')->getColor());
         } catch (Exception $e) {
             $data = array('error' => 1, 'message' => $e->getMessage());
         }
         $this->_sendHtml($data);
     }
 }
Example #6
0
 public function createDummyContents($option_value, $design, $category)
 {
     $option = new Application_Model_Option();
     $option->find($option_value->getOptionId());
     $dummy_content_xml = $this->_getDummyXml($design, $category);
     if ($option->getCode() == "catalog") {
         foreach ($dummy_content_xml->catalog->children() as $categories) {
             $this->unsData();
             //check si la category existe sur cette app
             $category_data = array("name" => $categories->name, "value_id" => $option_value->getId());
             $category_id = $this->find($category_data)->getCategoryId();
             if (!$category_id) {
                 $this->setName((string) $categories->name)->setValueId($option_value->getId())->save();
                 $category_id = $this->getId();
             }
             foreach ($categories->products->children() as $product) {
                 $product_model = new Catalog_Model_Product();
                 if ($product->attributes()->subcategory) {
                     $sub_category_model = new Catalog_Model_Category();
                     //check si la sous category existe sur cette app
                     $subcategory_data = array("name" => $product->attributes()->subcategory, "value_id" => $option_value->getId());
                     $sub_category_model->find($subcategory_data);
                     if (!$sub_category_model->getCategoryId()) {
                         $sub_category_model->setName($product->attributes()->subcategory)->setValueId($option_value->getId())->setParentId($category_id)->save();
                         $product_model->setCategoryId($sub_category_model->getId());
                     } else {
                         $sub_category_model->setParentId($category_id)->save();
                         $product_model->setCategoryId($sub_category_model->getId());
                     }
                 } else {
                     $product_model->setCategoryId($category_id);
                 }
                 foreach ($product->content->children() as $key => $value) {
                     $product_model->addData((string) $key, (string) $value);
                 }
                 if ($product->formats) {
                     $format_option = array();
                     foreach ($product->formats->children() as $format) {
                         foreach ($format as $key => $val) {
                             $format_option[$format->getName()][(string) $key] = (string) $val;
                         }
                     }
                     $product_model->setOption($format_option);
                 }
                 $product_model->setValueId($option_value->getId())->save();
             }
         }
     }
 }