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++; }
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; }
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; }
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; }
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; }
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; }
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; }