コード例 #1
0
ファイル: import_products.php プロジェクト: romuland/khparts
 private function newProduct($data, $categoryId, $parentCategoryId, $manufacturerId, $warehouse)
 {
     $name = trim($data[0]);
     $code = trim($data[2]);
     if ($data[1] == "") {
         $category = "Общая";
         $category_alias = "all";
     } else {
         $category = preg_replace('/\\s+/', ' ', trim($data[1]));
         $category_alias = $category;
     }
     $manufacturer = trim($data[3]);
     $inStock = $data[4];
     $price = floatval(trim(preg_replace('/[ р]+/', '', trim($data[5]))));
     $desc = $name . " (" . $code . ") для " . $category . "\n" . $manufacturer;
     $table_name = $this->table_prefix . "products";
     $dateNow = date("Y-m-d H:i:s");
     //1. products основная строка продукта
     //virtuemart_product_id virtuemart_vendor_id product_parent_id product_sku product_weight
     //product_weight_uom product_length product_width product_height
     //product_lwh_uom product_url product_in_stock product_ordered low_stock_notification product_available_date
     // product_availability product_special product_sales
     //product_unit product_packaging product_params hits intnotes metarobot metaauthor layout published created_on
     // created_by modified_on modified_by locked_on	locked_by
     $low_stock_notification = 1;
     $query_insert = "insert into " . $table_name . " values({$this->product_id},1,0,'{$code}',0,'KG',0,0,0,'M','',{$inStock},0,{$low_stock_notification},'{$dateNow}','',0,0,'',0,'min_order_level=0|max_order_level=0|',NULL,'','index,follow','www.khparts.ru','pdf',1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "\n" . $query_select . "</p>";
     }
     //2. products_ru_ru описание продукта
     // virtuemart_product_id product_s_desc product_desc product_name metadesc metakey customtitle 	slug
     $table_name = $this->table_prefix . "products_ru_ru";
     $alias = makeAliasFromName($name);
     $query_select = "SELECT count(product_name) FROM " . $table_name . " where slug LIKE '{$alias}%'";
     $result_name = mysql_query($query_select, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error select from " . $table_name . ":" . mysql_error() . "\n" . $query_select . "</p>";
     }
     $max_name = mysql_num_rows($result_name);
     if ($max_name > 0) {
         $name_arr = mysql_fetch_array($result_name, MYSQL_NUM);
         $num = $name_arr[0] + 1;
         $alias = $alias . "_" . $num;
     }
     $query_insert = "insert into " . $table_name . " values({$this->product_id},'{$desc}','<p>{$desc}</p>','{$name}','{$desc}','{$desc}','','" . $alias . "')";
     //кодирока - в данном случае приводим все к utf-8, чтобы не менять кодировку в базе
     //mysql_query("SET NAMES 'cp-1251'");
     //mysql_query("SET CHARACTER SET 'cp-1251'");
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . " =" . $num . ":" . mysql_error() . "\n" . $query_insert . "\n" . $query_select . "</p>";
     }
     //3. product_categories категории продукта
     // id 	virtuemart_product_id 	virtuemart_category_id 	ordering
     $table_name = $this->table_prefix . "product_categories";
     if (isset($this->parentCategoryId)) {
         $query_insert = "insert into " . $table_name . " values({$this->prod_cat_id},{$this->product_id},{$parentCategoryId},0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         } else {
             $this->prod_cat_id++;
         }
     }
     $query_insert = "insert into " . $table_name . " values({$this->prod_cat_id},{$this->product_id},{$categoryId},0)";
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
     } else {
         $this->prod_cat_id++;
     }
     //4. product_manufacturers Производитель
     //id virtuemart_product_id virtuemart_manufacturer_id
     $table_name = $this->table_prefix . "product_manufacturers";
     $query_insert = "insert into " . $table_name . " values({$this->prod_man_id},{$this->product_id},{$manufacturerId})";
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
     }
     $this->prod_man_id++;
     //5. product_media Картинки,	сначала нужна загрузка картинки в таблицу
     //	`tcp86_virtuemart_medias`, потом привязка по media_id
     //id virtuemart_product_id virtuemart_media_id ordering
     $table_name = $this->table_prefix . "product_media";
     $query_insert = "insert into " . $table_name . " values({$this->prod_med_id},{$this->product_id},{$image_id},0)";
     //mysql_query($query_insert, $this->link);
     //6. product_prices Цены
     //virtuemart_product_price_id 	virtuemart_product_id virtuemart_shoppergroup_id  product_price override
     //product_override_price product_tax_id product_discount_id product_currency product_price_vdate
     //price_quantity_start	price_quantity_end 	created_on created_by 	modified_on modified_by locked_on locked_by
     $table_name = $this->table_prefix . "product_prices";
     $query_insert = "insert into " . $table_name . " values({$this->prod_price_id},{$this->product_id},NULL,{$price},NULL,0,0,0,131,NULL,NULL,NULL,NULL,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
     }
     $this->prod_price_id++;
     $virtuemart_custom_id = '21';
     //default value
     //7. product_customfields поля
     //virtuemart_product_id	virtuemart_customfield_id virtuemart_custom_id custom_value
     //custom_param published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by 	ordering
     $table_name = $this->table_prefix . "product_customfields";
     $query_insert = "insert into " . $table_name . " values({$this->product_id},{$this->prod_cf_id},{$virtuemart_custom_id},'{$warehouse}',NULL,'',0,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0,0)";
     mysql_query($query_insert, $this->link);
     if (mysql_error() != "") {
         echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
     }
     $this->prod_cf_id++;
 }
コード例 #2
0
 function process($data)
 {
     $html = "";
     $name = trim($data[3]);
     $desc = "Производитель автозапчастей";
     $DEFAULT_MANUFACTURER_CATEGORY = 2;
     if ($name != "") {
         $desc = $desc . " " . $name;
     }
     $table_name = $this->table_prefix . "manufacturers_ru_ru";
     $result_select = $this->db->select($table_name, "", "LOCATE( mf_name, '{$name}') > 0 AND mf_name != '' AND virtuemart_manufacturer_id in('" . implode("','", $this->main_manufacturers) . "')", 'std');
     $html .= $result_select['html'];
     $rows_num = $result_select['rows'];
     if ($result_select['rows'] > 0) {
         if ($result_select['rows'] > 1) {
             $html .= "<p style='color:red;'> Найдено несколько категорий {$name}<br/>" . $this->db->query_toString() . "<br/></p>\n";
         } else {
             $image_id = $result_select['value'][0]['mf_name'];
             //************РЕЗУЛЬТАТ******************
             $this->currentManufacturer = '{"id":"' . $result_select['value'][0]['virtuemart_manufacturer_id'] . '", "name":"' . $result_select['value'][0]['mf_name'] . '"}';
             $this->manufacturer_id = $this->manufacturer_id + 1;
             //***************************************
         }
     } else {
         $manufacturer_image = $this->db->get_image($name);
         $slug = makeAliasFromName($name);
         //check if record exist
         $result_select = $this->db->select($table_name, "virtuemart_manufacturer_id", "mf_name='{$name}' or slug='{$slug}'", 'std');
         $html .= $result_select['html'];
         $rows_num = $result_select['rows'];
         //if record doesn't exist insert record in tables
         if ($rows_num == 0) {
             $dateNow = date("Y-m-d H:i:s");
             //================================================================================
             //virtuemart_manufacturer_id 	mf_name 	mf_email 	mf_desc 	mf_url 	slug
             //4 	ORG 		<p>Производитель автозапчастей ORG</p> 		org
             $html .= $this->db->insert($table_name, "{$this->manufacturer_id},'{$name}','','<p class=\"title-text\">{$desc}</p>','','{$slug}'");
             //================================================================================
             //virtuemart_manufacturer_id 	virtuemart_manufacturercategories_id 	hits 	published 	created_on 	created_by
             //modified_on 	modified_by 	locked_on 	locked_by
             $manufacturercategories_id = $DEFAULT_MANUFACTURER_CATEGORY;
             //manufacturer category - default
             $html .= $this->db->insert($this->table_prefix . "manufacturers", "{$this->manufacturer_id},{$manufacturercategories_id} ,0,1,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
             //================================================================================
             //check if media exist
             $image_file_name = substr($manufacturer_image, strrpos($manufacturer_image, DIRECTORY_SEPARATOR) + 1);
             $table_name = $this->table_prefix . "medias";
             //virtuemart_media_id 	virtuemart_vendor_id 	file_title 	file_description 	file_meta 	file_mimetype 	file_type
             //file_url 	file_url_thumb 	file_is_product_image 	file_is_downloadable 	file_is_forSale 	file_params 	shared
             //published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by
             $result_select = $this->db->select($table_name, "virtuemart_media_id", "file_title='{$image_file_name}'", 'std');
             $html .= $result_select['html'];
             if ($result_select['rows'] == 0) {
                 //insert new image
                 $result_select = $this->db->select($table_prefix . $table_name, "virtuemart_media_id", "", 'max');
                 $html .= $result_select['html'];
                 $image_id = $result_select['value'] + 1;
                 if (strpos($image_file_name, "jpg") > 0 || strpos($image_file_name, "jpeg") > 0) {
                     $file_type = "image/jpeg";
                 } elseif (strpos($image_file_name, "png") > 0) {
                     $file_type = "image/png";
                 } elseif (strpos($image_file_name, "gif") > 0) {
                     $file_type = "image/gif";
                 }
                 $html .= $this->db->insert($table_name, "{$image_id},1,'','','{$image_file_name}','{$file_type}','manufacturer','{$manufacturer_image}','',0,0,0,'',0,1,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
             } elseif ($result_select['rows'] > 1) {
                 $html .= "<p style='color:red;'> Найдено несколько категорий {$image_file_name}<br/></p>\n";
             } else {
                 $image_id = $result_select['value'][0];
             }
             // id virtuemart_manufacturer_id 	virtuemart_media_id 	ordering
             $temp = $this->db->insert($this->table_prefix . "manufacturer_medias", "{$this->manufacturer_media_id},{$this->manufacturer_id},{$image_id},1");
             if ($temp == '') {
                 $this->manufacturer_media_id++;
             } else {
                 $html .= $temp;
             }
             //************РЕЗУЛЬТАТ******************
             $this->currentManufacturer = '{"id":"' . $this->manufacturer_id . '", "name":"' . $name . '"}';
             $this->manufacturer_id = $this->manufacturer_id + 1;
             //***************************************
         } else {
             //************РЕЗУЛЬТАТ******************
             $this->currentManufacturer = '{"id":"' . $result_select['value'][0] . '", "name":"' . $name . '"}';
             //***************************************
         }
     }
     return $html;
 }
コード例 #3
0
 function process($data)
 {
     $name = trim($data[3]);
     $desc = "Производитель автозапчастей";
     if ($name != "") {
         $desc = $desc . " " . $name;
     }
     $dir = $_SERVER['DOCUMENT_ROOT'] . "/images/";
     foreach (glob($dir . "*.jpg") as $filename) {
         $file = substr($filename, strrpos($filename, "/") + 1);
         $temp = substr($temp, 0, strpos($temp, "."));
         if (strpos($name, $temp) > 0) {
             $manufacturer_image = $filename;
             break;
         }
     }
     if ($manufacturer_image == "") {
         $manufacturer_image = $dir . "hyn_kia.png";
     }
     $slug = makeAliasFromName($name);
     //check if record exist
     $table_name = $this->table_prefix . "manufacturers_ru_ru";
     $query_select = "select * from " . $table_name . " where mf_name='{$name}' or slug='{$slug}'";
     $result = mysql_query($query_select, $this->link);
     $rows_num = mysql_num_rows($result);
     //if record doesn't exist insert record in tables
     if ($rows_num == 0) {
         $dateNow = date("Y-m-d H:i:s");
         //================================================================================
         //virtuemart_manufacturer_id 	mf_name 	mf_email 	mf_desc 	mf_url 	slug
         //4 	ORG 		<p>Производитель автозапчастей ORG</p> 		org
         $full_desc = sprintf("", "title-text");
         //
         $query_insert = "insert into " . $table_name . " values({$this->manufacturer_id},'{$name}','','<p id=\"title-text\">{$desc}</p>','','{$slug}')";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         }
         //================================================================================
         $table_name = $this->table_prefix . "manufacturers";
         //virtuemart_manufacturer_id 	virtuemart_manufacturercategories_id 	hits 	published 	created_on 	created_by
         //modified_on 	modified_by 	locked_on 	locked_by
         $manufacturercategories_id = 1;
         //manufacturer category - default
         $query_insert = "insert into " . $table_name . " values({$this->manufacturer_id},{$manufacturercategories_id} ,0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         }
         //================================================================================
         //check if media exist
         $image_file_name = substr($manufacturer_image, strrpos($manufacturer_image, "/") + 1);
         $table_name = $this->table_prefix . "medias";
         //virtuemart_media_id 	virtuemart_vendor_id 	file_title 	file_description 	file_meta 	file_mimetype 	file_type
         //file_url 	file_url_thumb 	file_is_product_image 	file_is_downloadable 	file_is_forSale 	file_params 	shared
         //published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by
         $query_select = "select virtuemart_media_id from " . $table_name . " where file_title='{$image_file_name}'";
         $result_image = mysql_query($query_select, $this->link);
         $image_num = mysql_num_rows($result_image);
         if ($image_num == 0) {
             //insert new image
             $query_select = "SELECT MAX(virtuemart_media_id) FROM " . $table_prefix . $table_name;
             $result_image = mysql_query($query_select, $this->link);
             $max_id_num = mysql_num_rows($result_image);
             if ($max_id_num == 0) {
                 $image_id = 1;
             } else {
                 $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
                 $image_id = $image_id_arr[0] + 1;
             }
             if (strpos($image_file_name, "jpg") > 0 || strpos($image_file_name, "jpeg") > 0) {
                 $file_type = "image/jpeg";
             } elseif (strpos($image_file_name, "png") > 0) {
                 $file_type = "image/png";
             } elseif (strpos($image_file_name, "gif") > 0) {
                 $file_type = "image/gif";
             }
             $query_insert = "insert into " . $table_name . " values({$image_id},1,'','','{$image_file_name}','{$file_type}','manufacturer','{$manufacturer_image}','',0,0,0,'',0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
             mysql_query($query_insert, $this->link);
             if (mysql_error() != "") {
                 echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
             }
         } elseif ($image_num > 1) {
             echo "<p style='color:red;'> Найдено несколько категорий {$image_file_name}<br/></p>\n";
         } else {
             $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
             $image_id = $image_id_arr[0];
         }
         $table_name = $this->table_prefix . "manufacturer_medias";
         // id virtuemart_manufacturer_id 	virtuemart_media_id 	ordering
         $query_insert = "insert into " . $table_name . " values({$this->manufacturer_media_id},{$this->manufacturer_id},{$image_id},1)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         } else {
             $this->manufacturer_media_id++;
         }
         $this->currentManufacturerId = $this->manufacturer_id;
     } else {
         $manufacturer_cur_id = mysql_fetch_array($result, MYSQL_NUM);
         $this->currentManufacturerId = $manufacturer_cur_id[0];
     }
     $this->manufacturer_id = $this->manufacturer_id + 1;
 }
コード例 #4
0
 function processCategory($name_param, $is_top)
 {
     $html = '';
     $json_result = "";
     $this->source_name = '';
     $name_param = trim($name_param);
     if ($name_param != "") {
         $name = ucfirst($name_param);
         if (strpos($name, "(") > 0) {
             $name = trim(substr($name, 0, strpos($name, "(")));
         }
     } else {
         $name = $this->EMPTY_CATEGORY;
     }
     $name = $this->getCategoryLink($name, $is_top);
     $slug = makeAliasFromName($name);
     $is_default = false;
     $is_all = false;
     $is_acc = false;
     if ($name == $this->DEFAULT_CATEGORY_SYNONYM) {
         $name = $this->DEFAULT_CATEGORY;
         $is_default = true;
     } elseif ($name == $this->ACC_CATEGORY_SYNONYM) {
         $name = $this->ACC_CATEGORY;
         $is_acc = true;
     } elseif ($name == $this->ALL_CATEGORY_SYNONYM) {
         $name = $this->ALL_CATEGORY . " " . $this->parentCategoryName;
         $slug = makeAliasFromName($name);
         $is_all = true;
     }
     //check if record exist
     $table_name = $this->table_prefix . "categories_ru_ru";
     $result_select = $this->db->select($table_name, "", "category_name = '{$name}' or slug = '{$slug}'", 'std');
     $html .= $result_select['html'];
     $rows_num = $result_select['rows'];
     if ($rows_num == 0) {
         if ($name == "") {
             $category_image = $_SERVER['DOCUMENT_ROOT'] . $this->DEFAULT_IMAGE_PATH . $this->ACC_CATEGORY_IMAGE_NAME;
             $desc = "";
         } else {
             if ($is_all) {
                 $category_image = $this->uploadCategoryImage($this->parentCategoryName);
             } elseif ($is_acc) {
                 $category_image = $_SERVER['DOCUMENT_ROOT'] . $this->DEFAULT_IMAGE_PATH . $this->ACC_CATEGORY_IMAGE_NAME;
             } else {
                 $category_image = $this->uploadCategoryImage($name);
             }
             if ($this->parentCategoryName != '') {
                 if ($this->parentCategoryName == $this->DEFAULT_CATEGORY) {
                     $desc = "Запчасти для " . $name;
                 } elseif ($this->parentCategoryName == $this->ACC_CATEGORY) {
                     $desc = "Запчасти для " . $name;
                 } else {
                     if ($is_all) {
                         $desc = "Запчасти для всех моделей " . $this->parentCategoryName;
                     } else {
                         $desc = "Запчасти для " . $this->parentCategoryName . " " . $name;
                     }
                 }
             } else {
                 if ($is_default) {
                     $desc = "Другие запчасти";
                 } elseif ($is_all) {
                     $desc = "Запчасти для всех моделей";
                 } elseif ($is_acc) {
                     $desc = $name;
                 } else {
                     $desc = "Запчасти для " . $name;
                 }
             }
         }
         if ($name == $this->ALL_CATEGORY_SYNONYM) {
             $name = $this->ALL_CATEGORY . " " . $this->parentCategoryName;
         }
         $NULL_DATE = '0000-00-00 00:00:00';
         $dateNow = date("Y-m-d H:i:s");
         //================================================================================
         // virtuemart_category_id category_name category_description metadesc metakey customtitle slug
         $html .= $this->db->insert($table_name, "{$this->category_id},'{$name}','<h1>{$desc}</h1>','{$desc}','{$desc}','{$desc}','{$slug}'");
         //================================================================================
         $table_name = $this->table_prefix . "categories";
         //virtuemart_category_id virtuemart_vendor_id category_template category_layout category_product_layout
         //products_per_row limit_list_start limit_list_step limit_list_max limit_list_initial hits metarobot
         //metaauthor ordering shared published created_on created_by modified_on modified_by locked_by	locked_on
         $html .= $this->db->insert($table_name, "{$this->category_id},1,0,0,0,0,0,30,0,30,0,'index,follow','',0,0,1,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
         //================================================================================
         $table_name = $this->table_prefix . "category_categories";
         //id category_parent_id category_child_id ordering
         /*Определение родительской категории:*/
         /*должен быть массив соответсвия между названиями марок, и обозначениями в таблице*/
         /*сначала заливаем массив марок, затем с помощью массива привязываемся к нему по табличным значениям*/
         $temp = $this->db->insert($table_name, "{$this->category_parent_id},{$this->parentCategoryId},{$this->category_id},0");
         if ($temp == '') {
             $this->category_parent_id++;
         } else {
             $html .= $temp;
         }
         //================================================================================
         //check if media exist
         $image_file_name = substr($category_image, strrpos($category_image, "/") + 1);
         $table_name = $this->table_prefix . "medias";
         //virtuemart_media_id 	virtuemart_vendor_id 	file_title 	file_description 	file_meta 	file_mimetype 	file_type
         //file_url 	file_url_thumb 	file_is_product_image 	file_is_downloadable 	file_is_forSale 	file_params 	shared
         //published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by
         $result_select = $this->db->select($table_name, "virtuemart_media_id", "file_title='{$image_file_name}'", 'std');
         $html .= $result_select['html'];
         if ($result_select['rows'] == 0) {
             //insert new image
             $result_select = $this->db->select($table_prefix . $table_name, "virtuemart_media_id", "", 'max');
             $html .= $result_select['html'];
             $image_id = $result_select['value'] + 1;
             if (strpos($image_file_name, "jpg") > 0 || strpos($image_file_name, "jpeg") > 0) {
                 $file_type = "image/jpeg";
             } elseif (strpos($image_file_name, "png") > 0) {
                 $file_type = "image/png";
             } elseif (strpos($image_file_name, "gif") > 0) {
                 $file_type = "image/gif";
             }
             $html .= $this->db->insert($table_name, "{$image_id},1,'{$image_file_name}','','{$image_file_name}','{$file_type}','category','cars/{$image_file_name}','',0,0,0,'',0,1,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
         } elseif ($result_select['rows'] > 1) {
             $html .= "<p style='color:red;'> Several same medias {$image_file_name}<br/></p><br />";
         } else {
             $image_id = $result_select['value'][0];
         }
         // id virtuemart_category_id 	virtuemart_media_id 	ordering
         $temp = $this->db->insert($this->table_prefix . "category_medias", "{$this->category_media_id},{$this->category_id},{$image_id},1");
         if ($temp == '') {
             $this->category_media_id++;
         } else {
             $html .= $temp;
         }
         $json_result = '{"id":"' . $this->category_id . '", "name":"' . $name . '", "slug":"' . $slug . '", "parent":"' . $this->parentCategoryName . '", "description":"' . $this->description . '", "source_name":"' . $this->source_name . '"}';
         if (count($this->currentCategory) > 0) {
             array_push($this->currentCategory, $json_result);
         } else {
             $this->currentCategory = array($json_result);
         }
         $this->category_id = $this->category_id + 1;
     } else {
         $json_result = '{"id":"' . $result_select['value'][0]['virtuemart_category_id'] . '", "name":"' . $name . '", "slug":"' . $slug . '", "parent":"' . $this->parentCategoryName . '", "description":"' . $this->description . '", "source_name":"' . $this->source_name . '"}';
         if (count($this->currentCategory) > 0) {
             array_push($this->currentCategory, $json_result);
         } else {
             $this->currentCategory = array($json_result);
         }
     }
     return $html;
 }
コード例 #5
0
 function process($data)
 {
     $name = trim(preg_replace('/\\s+/', ' ', trim($data[1])));
     $name = str_replace('\\', '', $name);
     if ($name == "") {
         $desc = "Запчасти";
         $name = "Общая";
     } else {
         $desc = "Запчасти для " . $name;
     }
     //$dir = $_SERVER['DOCUMENT_ROOT']."\\cars\\";
     $dir = $_SERVER['DOCUMENT_ROOT'] . "/images/stories/virtuemart/category/cars/";
     foreach (glob($dir . "*.jpg") as $filename) {
         $file = substr($filename, strrpos($filename, "/") + 1);
         $temp = substr($file, 0, strpos($file, "."));
         $pos = strpos(strtolower($name), strtolower($temp));
         if (!($pos === false)) {
             $category_image = $filename;
             break;
         }
     }
     if ($category_image == "") {
         $category_image = $dir . "hyn_kia.png";
     }
     $slug = makeAliasFromName($name);
     //check if record exist
     $table_name = $this->table_prefix . "categories_ru_ru";
     $query_select = "select virtuemart_category_id from " . $table_name . " where category_name='{$name}' or slug='{$slug}'";
     $result = mysql_query($query_select, $this->link);
     $rows_num = mysql_num_rows($result);
     //if record doesn't exist insert record in tables
     if ($rows_num == 0) {
         $dateNow = date("Y-m-d H:i:s");
         //================================================================================
         // virtuemart_category_id category_name category_description metadesc metakey customtitle slug
         $full_desc = sprintf("", "title-text");
         //
         $query_insert = "insert into " . $table_name . " values({$this->category_id},'{$name}','<p id=\"title-text\">{$desc}</p>','{$desc}','{$desc}','','{$slug}')";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         }
         //================================================================================
         $table_name = $this->table_prefix . "categories";
         //virtuemart_category_id virtuemart_vendor_id category_template category_layout category_product_layout
         //products_per_row limit_list_start limit_list_step limit_list_max limit_list_initial hits metarobot
         //metaauthor ordering shared published created_on created_by modified_on modified_by locked_by	locked_on
         $query_insert = "insert into " . $table_name . " values({$this->category_id},1,0,0,0,0,0,10,0,10,0,'index,follow','',0,0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         }
         //================================================================================
         $table_name = $this->table_prefix . "category_categories";
         //id category_parent_id category_child_id ordering
         /*Определение родительской категории:*/
         /*должен быть массив соответсвия между названиями марок, и обозначениями в таблице*/
         /*сначала заливаем массив марок, затем с помощью массива привязываемся к нему по табличным значениям*/
         $query_insert = "insert into " . $table_name . " values({$this->category_parent_id},{$this->parentCategoryId},{$this->category_id},0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         } else {
             $this->category_parent_id++;
         }
         //================================================================================
         //check if media exist
         $image_file_name = substr($category_image, strrpos($category_image, "/") + 1);
         $table_name = $this->table_prefix . "medias";
         //virtuemart_media_id 	virtuemart_vendor_id 	file_title 	file_description 	file_meta 	file_mimetype 	file_type
         //file_url 	file_url_thumb 	file_is_product_image 	file_is_downloadable 	file_is_forSale 	file_params 	shared
         //published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by
         $query_select = "select virtuemart_media_id from " . $table_name . " where file_title='{$image_file_name}'";
         $result_image = mysql_query($query_select, $this->link);
         $image_num = mysql_num_rows($result_image);
         if ($image_num == 0) {
             //insert new image
             $query_select = "SELECT MAX(virtuemart_media_id) FROM " . $table_prefix . $table_name;
             $result_image = mysql_query($query_select, $this->link);
             $max_id_num = mysql_num_rows($result_image);
             if ($max_id_num == 0) {
                 $image_id = 1;
             } else {
                 $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
                 $image_id = $image_id_arr[0] + 1;
             }
             if (strpos($image_file_name, "jpg") > 0 || strpos($image_file_name, "jpeg") > 0) {
                 $file_type = "image/jpeg";
             } elseif (strpos($image_file_name, "png") > 0) {
                 $file_type = "image/png";
             } elseif (strpos($image_file_name, "gif") > 0) {
                 $file_type = "image/gif";
             }
             $query_insert = "insert into " . $table_name . " values({$image_id},1,'{$image_file_name}','','{$image_file_name}','{$file_type}','category','cars/{$image_file_name}','',0,0,0,'',0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
             mysql_query($query_insert, $this->link);
             if (mysql_error() != "") {
                 echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
             }
         } elseif ($image_num > 1) {
             echo "<p style='color:red;'> Several same medias {$image_file_name}<br/></p>\n";
         } else {
             $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
             $image_id = $image_id_arr[0];
         }
         $table_name = $this->table_prefix . "category_medias";
         // id virtuemart_category_id 	virtuemart_media_id 	ordering
         $query_insert = "insert into " . $table_name . " values({$this->category_media_id},{$this->category_id},{$image_id},1)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             echo "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p>";
         } else {
             $this->category_media_id++;
         }
         $this->currentCategoryId = $this->category_id;
     } else {
         $category_cur_id = mysql_fetch_array($result, MYSQL_NUM);
         $this->currentCategoryId = $category_cur_id[0];
     }
     $this->category_id = $this->category_id + 1;
 }
コード例 #6
0
ファイル: import_products.php プロジェクト: romuland/khparts
 private function newProduct($categories, $category_d, $manufacturer_d, $data_json, $source_data)
 {
     $html = "";
     $dateNow = date("Y-m-d H:i:s");
     $NULL_DATE = '0000-00-00 00:00:00';
     $SITE_NAME = $_SERVER['SERVER_NAME'];
     $SHOP_LINK = '/catalog/';
     $data = json_decode($data_json);
     $name = $data->{'name'};
     $name = str_replace('\\', '', $name);
     //$html.=iconv('UTF-8','windows-1251',$data_json)."<br />";
     $code = $data->{'code'};
     $code = str_replace('\\', '', $code);
     $inStock = $data->{'inStock'};
     $price = $data->{'price'};
     $manufacturer = $manufacturer_d->{'name'};
     $full_name = '';
     if ($category_d->{'source_name'} != '') {
         $category = $this->getRightCategoryName($category_d->{'source_name'});
         $full_name = $category;
         $s_desc = $name;
         $desc = $s_desc . "<br />Наименование: " . $data->{'carname'} . "<br />Производитель: " . $manufacturer . "<br />";
         $customtitle = $category . ": " . $name . " (" . $code . ")";
     } else {
         $category = $this->getRightCategoryName($category_d->{'name'});
         $anotherCategories = '<br />Подходит также для ';
         foreach ($categories as $cat) {
             $cat_d = json_decode($cat);
             if ($cat_d->{'parent'} == $this->DEFAULT_CATEGORY_NAME) {
                 $full_name .= trim($cat_d->{'name'});
             } else {
                 if ($cat_d->{'parent'} == '') {
                     $full_name .= trim($cat_d->{'name'});
                 } else {
                     if (strpos($cat_d->{'name'}, $cat_d->{'parent'}) !== FALSE) {
                         $full_name .= trim($cat_d->{'name'});
                     } else {
                         $full_name .= trim($cat_d->{'parent'} . " " . $cat_d->{'name'});
                     }
                 }
             }
             if (count($categories) > 1) {
                 $full_name .= "~";
                 if ($cat_d->{'name'} != $category) {
                     $anotherCategories .= '<a href="' . $SHOP_LINK . $cat_d->{'slug'} . '">' . trim($cat_d->{'parent'} . " " . $cat_d->{'name'}) . '</a>, ';
                 }
             } else {
                 $anotherCategories = '';
             }
         }
         if (strpos($full_name, "~") > 0) {
             $full_name = substr($full_name, 0, strlen($full_name) - 1);
         }
         if ($anotherCategories != "") {
             $anotherCategories = trim($anotherCategories);
             $anotherCategories = substr($anotherCategories, 0, strlen($anotherCategories) - 1) . ".";
         }
         //echo iconv('UTF-8', 'windows-1251',"'".$anotherCategories."'"."<br />");
         if ($category_d->{'parent'} == $this->DEFAULT_CATEGORY_NAME) {
             $s_desc = $name . " (" . $code . ") для " . $category;
         } else {
             if ($category_d->{'parent'} == $this->DEFAULT_CATEGORY_NAME) {
                 $s_desc = $name . " (" . $code . ") для всех моделей " . $category_d->{'parent'};
             } else {
                 $s_desc = $name . " (" . $code . ") для " . $category_d->{'parent'} . " " . $category;
             }
         }
         $desc = $s_desc . "<br />Наименование автомобиля: " . $data->{'carname'} . "<br />Производитель: " . $source_data[3] . "<br />" . $anotherCategories;
         $customtitle = "Запчасти для " . $category_d->{'parent'} . " " . $category . ": " . $name;
     }
     $table_name = $this->table_prefix . "products";
     //1. products основная строка продукта
     //virtuemart_product_id virtuemart_vendor_id product_parent_id product_sku product_weight
     //product_weight_uom product_length product_width product_height
     //product_lwh_uom product_url product_in_stock product_ordered low_stock_notification product_available_date
     // product_availability product_special product_sales
     //product_unit product_packaging product_params hits intnotes metarobot metaauthor layout published created_on
     // created_by modified_on modified_by locked_on	locked_by
     $low_stock_notification = 1;
     $html .= $this->db->insert($table_name, "{$this->product_id},1,0,'{$code}',0,'KG',0,0,0,'M','',{$inStock},0,{$low_stock_notification},'{$dateNow}','',0,0,'',0,'min_order_level=0|max_order_level=0|',NULL,'','index,follow','{$SITE_NAME}','pdf',1,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
     //2. products_ru_ru описание продукта
     // virtuemart_product_id product_s_desc product_desc product_name metadesc metakey customtitle 	slug
     $table_name = $this->table_prefix . "products_ru_ru";
     $alias = makeAliasFromName($name);
     $result_select = $this->db->select($table_name, "product_name", "slug LIKE '{$alias}%'", 'count');
     $html .= $result_select['html'];
     $max_name = $result_select['value'];
     if ($max_name > 0) {
         $max_name = $max_name + 1;
         $alias = $alias . "_" . $max_name;
     }
     $html .= $this->db->insert($table_name, "{$this->product_id},'{$s_desc}','<p>{$desc}</p>','{$name}','{$s_desc}','{$s_desc}','{$customtitle}','" . $alias . "'");
     //кодирока - в данном случае приводим все к utf-8, чтобы не менять кодировку в базе
     //mysql_query("SET NAMES 'cp-1251'");
     //mysql_query("SET CHARACTER SET 'cp-1251'");
     //3. product_categories категории продукта
     // id 	virtuemart_product_id 	virtuemart_category_id 	ordering
     $table_name = $this->table_prefix . "product_categories";
     $html .= $this->db->insert($table_name, "{$this->prod_cat_id},{$this->product_id},{$category_d->id},0");
     $this->prod_cat_id++;
     //4. product_manufacturers Производитель
     //id virtuemart_product_id virtuemart_manufacturer_id
     $table_name = $this->table_prefix . "product_manufacturers";
     $html .= $this->db->insert($table_name, "{$this->prod_man_id},{$this->product_id},{$manufacturer_d->id}");
     $this->prod_man_id++;
     //5. product_media Картинки,	сначала нужна загрузка картинки в таблицу
     //	`tcp86_virtuemart_medias`, потом привязка по media_id
     //id virtuemart_product_id virtuemart_media_id ordering
     $table_name = $this->table_prefix . "product_media";
     $query_insert = "insert into " . $table_name . " values({$this->prod_med_id},{$this->product_id},{$image_id},0)";
     //mysql_query($query_insert, $this->link);
     //6. product_prices Цены
     //virtuemart_product_price_id 	virtuemart_product_id virtuemart_shoppergroup_id  product_price override
     //product_override_price product_tax_id product_discount_id product_currency product_price_vdate
     //price_quantity_start	price_quantity_end 	created_on created_by 	modified_on modified_by locked_on locked_by
     $table_name = $this->table_prefix . "product_prices";
     $html .= $this->db->insert($table_name, "{$this->prod_price_id},{$this->product_id},NULL,{$price},NULL,0,0,0,131,NULL,NULL,NULL,NULL,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0");
     $this->prod_price_id++;
     //7. product_customfields поля
     //virtuemart_product_id	virtuemart_customfield_id virtuemart_custom_id custom_value
     //custom_param published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by 	ordering
     $table_name = $this->table_prefix . "product_customfields";
     $virtuemart_custom_id = '16';
     //default value
     $html .= $this->db->insert($table_name, "{$this->prod_cf_id},{$this->product_id},{$virtuemart_custom_id},'{$full_name}',NULL,'',0,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0,0");
     $this->prod_cf_id++;
     $virtuemart_custom_id = '21';
     //default value
     $html .= $this->db->insert($table_name, "{$this->prod_cf_id},{$this->product_id},{$virtuemart_custom_id},'{$warehouse}',NULL,'',0,'{$dateNow}',42,'{$dateNow}',42,'{$NULL_DATE}',0,0");
     $this->prod_cf_id++;
     return $html;
 }
コード例 #7
0
 function processCategory($name_param)
 {
     $html = '';
     $name_param = trim($name_param);
     if ($name_param != "") {
         $name = ucfirst($name_param);
         if (strpos($name, "(") > 0) {
             $name = trim(substr($name, 0, strpos($name, "(")));
         }
     } else {
         $name = "Без названия";
     }
     $slug = makeAliasFromName($name);
     //check if record exist
     $table_name = $this->table_prefix . "categories_ru_ru";
     if (strpos($name, " ") > 0) {
         $possible_name = substr($name, 0, strpos($name, " "));
         $possible_slug = makeAliasFromName($possible_name);
         $query_select = "select * from " . $table_name . " where category_name in ('{$name}', '{$possible_name}') or slug in ('{$slug}', '{$possible_slug}')";
     } else {
         $query_select = "select * from " . $table_name . " where category_name='{$name}' or slug='{$slug}'";
     }
     $result = mysql_query($query_select, $this->link);
     $rows_num = mysql_num_rows($result);
     //if record doesn't exist insert record in tables
     if ($rows_num == 0) {
         if ($name == "") {
             $category_image = $_SERVER['DOCUMENT_ROOT'] . $this->DEFAULT_IMAGE_PATH . $this->DEFAULT_IMAGE_NAME;
             $desc = "Запчасти";
         } else {
             $name = $this->getCategoryLink($name, $possible_name);
             $category_image = $this->uploadCategoryImage($name);
             $desc = "Запчасти для " . $name;
         }
         $dateNow = date("Y-m-d H:i:s");
         //================================================================================
         // virtuemart_category_id category_name category_description metadesc metakey customtitle slug
         $full_desc = sprintf("", "title-text");
         //
         $query_insert = "insert into " . $table_name . " values({$this->category_id},'{$name}','<p id=\"title-text\">{$desc}</p>','{$desc}','{$desc}','','{$slug}')";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             $html .= "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p><br />";
         }
         //================================================================================
         $table_name = $this->table_prefix . "categories";
         //virtuemart_category_id virtuemart_vendor_id category_template category_layout category_product_layout
         //products_per_row limit_list_start limit_list_step limit_list_max limit_list_initial hits metarobot
         //metaauthor ordering shared published created_on created_by modified_on modified_by locked_by	locked_on
         $query_insert = "insert into " . $table_name . " values({$this->category_id},1,0,0,0,0,0,10,0,10,0,'index,follow','',0,0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             $html .= "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p><br />";
         }
         //================================================================================
         $table_name = $this->table_prefix . "category_categories";
         //id category_parent_id category_child_id ordering
         /*Определение родительской категории:*/
         /*должен быть массив соответсвия между названиями марок, и обозначениями в таблице*/
         /*сначала заливаем массив марок, затем с помощью массива привязываемся к нему по табличным значениям*/
         $query_insert = "insert into " . $table_name . " values({$this->category_parent_id},{$this->parentCategoryId},{$this->category_id},0)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             $html .= "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p><br />";
         } else {
             $this->category_parent_id++;
         }
         //================================================================================
         //check if media exist
         $image_file_name = substr($category_image, strrpos($category_image, "/") + 1);
         $table_name = $this->table_prefix . "medias";
         //virtuemart_media_id 	virtuemart_vendor_id 	file_title 	file_description 	file_meta 	file_mimetype 	file_type
         //file_url 	file_url_thumb 	file_is_product_image 	file_is_downloadable 	file_is_forSale 	file_params 	shared
         //published 	created_on 	created_by 	modified_on 	modified_by 	locked_on 	locked_by
         $query_select = "select virtuemart_media_id from " . $table_name . " where file_title='{$image_file_name}'";
         $result_image = mysql_query($query_select, $this->link);
         $image_num = mysql_num_rows($result_image);
         $json_result = "";
         if ($image_num == 0) {
             //insert new image
             $query_select = "SELECT MAX(virtuemart_media_id) FROM " . $table_prefix . $table_name;
             $result_image = mysql_query($query_select, $this->link);
             $max_id_num = mysql_num_rows($result_image);
             if ($max_id_num == 0) {
                 $image_id = 1;
             } else {
                 $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
                 $image_id = $image_id_arr[0] + 1;
             }
             if (strpos($image_file_name, "jpg") > 0 || strpos($image_file_name, "jpeg") > 0) {
                 $file_type = "image/jpeg";
             } elseif (strpos($image_file_name, "png") > 0) {
                 $file_type = "image/png";
             } elseif (strpos($image_file_name, "gif") > 0) {
                 $file_type = "image/gif";
             }
             $query_insert = "insert into " . $table_name . " values({$image_id},1,'{$image_file_name}','','{$image_file_name}','{$file_type}','category','cars/{$image_file_name}','',0,0,0,'',0,1,'{$dateNow}',42,'{$dateNow}',42,'0000-00-00 00:00:00',0)";
             mysql_query($query_insert, $this->link);
             if (mysql_error() != "") {
                 $html .= "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p><br />";
             }
         } elseif ($image_num > 1) {
             $html .= "<p style='color:red;'> Several same medias {$image_file_name}<br/></p><br />";
         } else {
             $image_id_arr = mysql_fetch_array($result_image, MYSQL_NUM);
             $image_id = $image_id_arr[0];
         }
         $table_name = $this->table_prefix . "category_medias";
         // id virtuemart_category_id 	virtuemart_media_id 	ordering
         $query_insert = "insert into " . $table_name . " values({$this->category_media_id},{$this->category_id},{$image_id},1)";
         mysql_query($query_insert, $this->link);
         if (mysql_error() != "") {
             $html .= "<p style='color:red;'>Error in insert to " . $table_name . ":" . mysql_error() . "\n" . $query_insert . "</p><br />";
         } else {
             $this->category_media_id++;
         }
         $json_result = '{"id":"' . $this->category_id . '", "name":"' . $name . '", "slug":"' . $slug . '", "parent":"' . $this->parentCategoryName . '"}';
         echo $this->parentCategoryName . "<br />";
         if (count($this->currentCategory) > 0) {
             array_push($this->currentCategory, $json_result);
         } else {
             $this->currentCategory = array($json_result);
         }
         $this->category_id = $this->category_id + 1;
     } else {
         $category_cur_id = mysql_fetch_array($result, MYSQL_ASSOC);
         $json_result = '{"id":"' . $category_cur_id['virtuemart_category_id'] . '", "name":"' . $name . '", "slug":"' . $slug . '", "parent":"' . $this->parentCategoryName . '"}';
         if (count($this->currentCategory) > 0) {
             array_push($this->currentCategory, $json_result);
         } else {
             $this->currentCategory = array($json_result);
         }
     }
     return $html;
 }