|
ZenCart_Documentation
1.5.0
http://www.collinsharper.com
|
00001 <?php 00009 if (!defined('IS_ADMIN_FLAG')) { 00010 die('Illegal Access'); 00011 } 00012 if (isset($_GET['pID'])) $products_id = zen_db_prepare_input($_GET['pID']); 00013 if (isset($_POST['edit_x']) || isset($_POST['edit_y'])) { 00014 $action = 'new_product'; 00015 } elseif ($_POST['products_model'] . $_POST['products_url'] . $_POST['products_name'] . $_POST['products_description'] != '') { 00016 $products_date_available = zen_db_prepare_input($_POST['products_date_available']); 00017 00018 $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available : 'null'; 00019 00020 // Data-cleaning to prevent MySQL5 data-type mismatch errors: 00021 $tmp_value = zen_db_prepare_input($_POST['products_quantity']); 00022 $products_quantity = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00023 $tmp_value = zen_db_prepare_input($_POST['products_price']); 00024 $products_price = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00025 $tmp_value = zen_db_prepare_input($_POST['products_weight']); 00026 $products_weight = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00027 $tmp_value = zen_db_prepare_input($_POST['manufacturers_id']); 00028 $manufacturers_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00029 00030 $sql_data_array = array('products_quantity' => $products_quantity, 00031 'products_type' => zen_db_prepare_input($_GET['product_type']), 00032 'products_model' => zen_db_prepare_input($_POST['products_model']), 00033 'products_price' => $products_price, 00034 'products_date_available' => $products_date_available, 00035 'products_weight' => $products_weight, 00036 'products_status' => zen_db_prepare_input((int)$_POST['products_status']), 00037 'products_virtual' => zen_db_prepare_input((int)$_POST['products_virtual']), 00038 'products_tax_class_id' => zen_db_prepare_input((int)$_POST['products_tax_class_id']), 00039 // 'manufacturers_id' => $manufacturers_id, 00040 'products_quantity_order_min' => zen_db_prepare_input($_POST['products_quantity_order_min']), 00041 'products_quantity_order_units' => zen_db_prepare_input($_POST['products_quantity_order_units']), 00042 'products_priced_by_attribute' => zen_db_prepare_input($_POST['products_priced_by_attribute']), 00043 'product_is_free' => zen_db_prepare_input((int)$_POST['product_is_free']), 00044 'product_is_call' => zen_db_prepare_input((int)$_POST['product_is_call']), 00045 'products_quantity_mixed' => zen_db_prepare_input($_POST['products_quantity_mixed']), 00046 'product_is_always_free_shipping' => zen_db_prepare_input((int)$_POST['product_is_always_free_shipping']), 00047 'products_qty_box_status' => zen_db_prepare_input($_POST['products_qty_box_status']), 00048 'products_quantity_order_max' => zen_db_prepare_input($_POST['products_quantity_order_max']), 00049 'products_sort_order' => (int)zen_db_prepare_input($_POST['products_sort_order']), 00050 'products_discount_type' => zen_db_prepare_input($_POST['products_discount_type']), 00051 'products_discount_type_from' => zen_db_prepare_input($_POST['products_discount_type_from']), 00052 'products_price_sorter' => zen_db_prepare_input($_POST['products_price_sorter']) 00053 ); 00054 00055 // when set to none remove from database 00056 // is out dated for browsers use radio only 00057 $sql_data_array['products_image'] = zen_db_prepare_input($_POST['products_image']); 00058 $new_image= 'true'; 00059 00060 if ($_POST['image_delete'] == 1) { 00061 $sql_data_array['products_image'] = ''; 00062 $new_image= 'false'; 00063 } 00064 00065 if ($action == 'insert_product') { 00066 $insert_sql_data = array( 'products_date_added' => 'now()', 00067 'master_categories_id' => (int)$current_category_id); 00068 00069 $sql_data_array = array_merge($sql_data_array, $insert_sql_data); 00070 00071 zen_db_perform(TABLE_PRODUCTS, $sql_data_array); 00072 $products_id = zen_db_insert_id(); 00073 00074 // reset products_price_sorter for searches etc. 00075 zen_update_products_price_sorter($products_id); 00076 00077 $db->Execute("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " 00078 (products_id, categories_id) 00079 values ('" . (int)$products_id . "', '" . (int)$current_category_id . "')"); 00080 00083 $tmp_value = zen_db_prepare_input($_POST['artists_id']); 00084 $artists_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00085 $tmp_value = zen_db_prepare_input($_POST['record_company_id']); 00086 $record_company_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00087 $tmp_value = zen_db_prepare_input($_POST['music_genre_id']); 00088 $music_genre_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00089 00090 $sql_data_array = array('products_id' => (int)$products_id, 00091 'artists_id' => (int)$artists_id, 00092 'record_company_id' => (int)$record_company_id, 00093 'music_genre_id' => (int)$music_genre_id ); 00094 00095 zen_db_perform(TABLE_PRODUCT_MUSIC_EXTRA, $sql_data_array); 00096 00099 } elseif ($action == 'update_product') { 00100 $update_sql_data = array( 'products_last_modified' => 'now()', 00101 'master_categories_id' => ($_POST['master_category'] > 0 ? zen_db_prepare_input($_POST['master_category']) : zen_db_prepare_input($_POST['master_categories_id']))); 00102 00103 $sql_data_array = array_merge($sql_data_array, $update_sql_data); 00104 00105 zen_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'"); 00106 00107 // reset products_price_sorter for searches etc. 00108 zen_update_products_price_sorter((int)$products_id); 00109 00112 00113 $tmp_value = zen_db_prepare_input($_POST['artists_id']); 00114 $artists_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00115 $tmp_value = zen_db_prepare_input($_POST['record_company_id']); 00116 $record_company_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00117 $tmp_value = zen_db_prepare_input($_POST['music_genre_id']); 00118 $music_genre_id = (!zen_not_null($tmp_value) || $tmp_value=='' || $tmp_value == 0) ? 0 : $tmp_value; 00119 00120 $sql_data_array = array('artists_id' => (int)$artists_id, 00121 'record_company_id' => (int)$record_company_id, 00122 'music_genre_id' => (int)$music_genre_id ); 00123 00124 zen_db_perform(TABLE_PRODUCT_MUSIC_EXTRA, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'"); 00125 00128 } 00129 00130 $languages = zen_get_languages(); 00131 for ($i=0, $n=sizeof($languages); $i<$n; $i++) { 00132 $language_id = $languages[$i]['id']; 00133 00134 $sql_data_array = array('products_name' => zen_db_prepare_input($_POST['products_name'][$language_id]), 00135 'products_description' => zen_db_prepare_input($_POST['products_description'][$language_id]), 00136 'products_url' => zen_db_prepare_input($_POST['products_url'][$language_id])); 00137 00138 if ($action == 'insert_product') { 00139 $insert_sql_data = array('products_id' => (int)$products_id, 00140 'language_id' => (int)$language_id); 00141 00142 $sql_data_array = array_merge($sql_data_array, $insert_sql_data); 00143 00144 zen_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array); 00145 } elseif ($action == 'update_product') { 00146 zen_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'"); 00147 } 00148 } 00149 00150 // add meta tags 00151 $languages = zen_get_languages(); 00152 for ($i=0, $n=sizeof($languages); $i<$n; $i++) { 00153 $language_id = $languages[$i]['id']; 00154 00155 $sql_data_array = array('metatags_title' => zen_db_prepare_input($_POST['metatags_title'][$language_id]), 00156 'metatags_keywords' => zen_db_prepare_input($_POST['metatags_keywords'][$language_id]), 00157 'metatags_description' => zen_db_prepare_input($_POST['metatags_description'][$language_id])); 00158 00159 if ($action == 'insert_product_meta_tags') { 00160 00161 $insert_sql_data = array('products_id' => (int)$products_id, 00162 'language_id' => (int)$language_id); 00163 00164 $sql_data_array = array_merge($sql_data_array, $insert_sql_data); 00165 00166 zen_db_perform(TABLE_META_TAGS_PRODUCTS_DESCRIPTION, $sql_data_array); 00167 } elseif ($action == 'update_product_meta_tags') { 00168 zen_db_perform(TABLE_META_TAGS_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'"); 00169 } 00170 } 00171 00172 00173 // future image handler code 00174 define('IMAGE_MANAGER_HANDLER', 0); 00175 define('DIR_IMAGEMAGICK', ''); 00176 if ($new_image == 'true' and IMAGE_MANAGER_HANDLER >= 1) { 00177 $src= DIR_FS_CATALOG . DIR_WS_IMAGES . zen_get_products_image((int)$products_id); 00178 $filename_small= $src; 00179 preg_match("/.*\/(.*)\.(\w*)$/", $src, $fname); 00180 list($oiwidth, $oiheight, $oitype) = getimagesize($src); 00181 00182 $small_width= SMALL_IMAGE_WIDTH; 00183 $small_height= SMALL_IMAGE_HEIGHT; 00184 $medium_width= MEDIUM_IMAGE_WIDTH; 00185 $medium_height= MEDIUM_IMAGE_HEIGHT; 00186 $large_width= LARGE_IMAGE_WIDTH; 00187 $large_height= LARGE_IMAGE_HEIGHT; 00188 00189 $k = max($oiheight / $small_height, $oiwidth / $small_width); //use smallest size 00190 $small_width = round($oiwidth / $k); 00191 $small_height = round($oiheight / $k); 00192 00193 $k = max($oiheight / $medium_height, $oiwidth / $medium_width); //use smallest size 00194 $medium_width = round($oiwidth / $k); 00195 $medium_height = round($oiheight / $k); 00196 00197 $large_width= $oiwidth; 00198 $large_height= $oiheight; 00199 00200 $products_image = zen_get_products_image((int)$products_id); 00201 $products_image_extension = substr($products_image, strrpos($products_image, '.')); 00202 $products_image_base = preg_replace('/'.$products_image_extension.'/', '', $products_image); 00203 00204 $filename_medium = DIR_FS_CATALOG . DIR_WS_IMAGES . 'medium/' . $products_image_base . IMAGE_SUFFIX_MEDIUM . '.' . $fname[2]; 00205 $filename_large = DIR_FS_CATALOG . DIR_WS_IMAGES . 'large/' . $products_image_base . IMAGE_SUFFIX_LARGE . '.' . $fname[2]; 00206 00207 // ImageMagick 00208 if (IMAGE_MANAGER_HANDLER == '1') { 00209 copy($src, $filename_large); 00210 copy($src, $filename_medium); 00211 exec(DIR_IMAGEMAGICK . "mogrify -geometry " . $large_width . " " . $filename_large); 00212 exec(DIR_IMAGEMAGICK . "mogrify -geometry " . $medium_width . " " . $filename_medium); 00213 exec(DIR_IMAGEMAGICK . "mogrify -geometry " . $small_width . " " . $filename_small); 00214 } 00215 } 00216 00217 zen_redirect(zen_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id . (isset($_GET['page']) ? '&page=' . $_GET['page'] : '') . (isset($_POST['search']) ? '&search=' . $_POST['search'] : '') )); 00218 } else { 00219 $messageStack->add_session(ERROR_NO_DATA_TO_SAVE, 'error'); 00220 zen_redirect(zen_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id . (isset($_GET['page']) ? '&page=' . $_GET['page'] : '') . (isset($_POST['search']) ? '&search=' . $_POST['search'] : '') )); 00221 }