function save()
 {
     $mainframe = JFactory::getApplication();
     $jshopConfig = JSFactory::getConfig();
     require_once JPATH_COMPONENT_SITE . '/lib/uploadfile.class.php';
     require_once JPATH_COMPONENT_SITE . "/lib/csv.io.class.php";
     $ie_id = JRequest::getInt("ie_id");
     if (!$ie_id) {
         $ie_id = $this->get('ie_id');
     }
     $lang = JSFactory::getLang();
     $db = JFactory::getDBO();
     $_importexport = JSFactory::getTable('ImportExport', 'jshop');
     $_importexport->load($ie_id);
     $alias = $_importexport->get('alias');
     $_importexport->set('endstart', time());
     $_importexport->store();
     //get list tax
     $query = "SELECT tax_id, tax_value FROM `#__jshopping_taxes`";
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     $listTax = array();
     foreach ($rows as $row) {
         $listTax[intval($row->tax_value)] = $row->tax_id;
     }
     //get list category
     $query = "SELECT category_id as id, `" . $lang->get("name") . "` as name FROM `#__jshopping_categories`";
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     $listCat = array();
     foreach ($rows as $row) {
         $listCat[$row->name] = $row->id;
     }
     $_products = JSFactory::getModel('products', 'JshoppingModel');
     $dir = $jshopConfig->importexport_path . $alias . "/";
     $upload = new UploadFile($_FILES['file']);
     $upload->setAllowFile(array('csv'));
     $upload->setDir($dir);
     if ($upload->upload()) {
         $filename = $dir . "/" . $upload->getName();
         @chmod($filename, 0777);
         $csv = new csv();
         $data = $csv->read($filename);
         if (is_array($data)) {
             foreach ($data as $k => $row) {
                 if (count($row) < 2 || $k == 0) {
                     continue;
                 }
                 $tax_value = intval($row[5]);
                 if (!isset($listTax[$tax_value])) {
                     $tax = JSFactory::getTable('tax', 'jshop');
                     $tax->set('tax_name', $tax_value);
                     $tax->set('tax_value', $tax_value);
                     $tax->store();
                     $listTax[$tax_value] = $tax->get("tax_id");
                 }
                 $category_name = $row['6'];
                 if (!isset($listCat[$category_name]) && $category_name != "") {
                     $cat = JSFactory::getTable("category", "jshop");
                     $query = "SELECT max(ordering) FROM `#__jshopping_categories`";
                     $db->setQuery($query);
                     $ordering = $db->loadResult() + 1;
                     $cat->set($lang->get("name"), $category_name);
                     $cat->set("category_ordertype", 1);
                     $cat->set("products_page", $jshopConfig->count_products_to_page);
                     $cat->set("products_row", $jshopConfig->count_products_to_row);
                     $cat->set("category_publish", 0);
                     $cat->set("ordering", $ordering);
                     $cat->store();
                     $listCat[$category_name] = $cat->get("category_id");
                 }
                 $product = JSFactory::getTable('product', 'jshop');
                 $product->set("product_ean", $row[1]);
                 $product->set("product_quantity", $row[2]);
                 $product->set("product_date_added", $row[3]);
                 $product->set("product_price", $row[4]);
                 $product->set("min_price", $row[4]);
                 $product->set("product_tax_id", $listTax[$tax_value]);
                 $product->set("currency_id", $jshopConfig->mainCurrency);
                 $product->set($lang->get("name"), utf8_encode($row[7]));
                 $product->set($lang->get("short_description"), utf8_encode($row[8]));
                 $product->set($lang->get("description"), utf8_encode($row[9]));
                 $product->store();
                 $product_id = $product->get("product_id");
                 $category_id = $listCat[$category_name];
                 if ($category_name != "" && $category_id) {
                     $_products->setCategoryToProduct($product_id, array($category_id));
                 }
                 unset($product);
             }
         }
         @unlink($filename);
     } else {
         JError::raiseWarning("", _JSHOP_ERROR_UPLOADING);
     }
     if (!JRequest::getInt("noredirect")) {
         $mainframe->redirect("index.php?option=com_jshopping&controller=importexport&task=view&ie_id=" . $ie_id, _JSHOP_COMPLETED);
     }
 }
Exemple #2
0
 public function _read($fileName = "file", $settings = array())
 {
     return csv::read($fileName, $settings);
 }