ZenCart_Documentation  1.5.0
http://www.collinsharper.com
C:/xampp/htdocs/zen-cart/admin/includes/modules/product_music/update_product.php
Go to the documentation of this file.
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   }
 All Data Structures Namespaces Files Functions Variables Enumerations