Allora, qui di seguito vi riporto cosa ho notato io per quel che riguarda master product e option type feature.......
vi riporto le possibili cause con relativo codice, spero che qualcuno riesca a far funzionare bene le 2 contrib, altrimenti una la dobbiamo sacrificare
Nel file product_info.php in catalog troviamo questa stringa
Codice: Seleziona tutto
<?php echo '<form name="buy_now_" method="post" action="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=add_slave', 'NONSSL') . '">'; ?>
Codice: Seleziona tutto
<?php echo tep_draw_form('cart_quantity', tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=add_product')); ?>
Inutile dire che se ripristino la funzione originale poi tutto ciò che è legato a master product non funziona bene.....
Ora vi riporto il contenuto di application_top.php in catalog/includes
add_slave:
Codice: Seleziona tutto
case 'add_slave' :
reset($HTTP_POST_VARS);
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
if (substr($key,0,11) == "Qty_ProdId_") {
$prodId = substr($key,11);
$qty = $val;
if(isset($HTTP_POST_VARS["id_$prodId"]) && is_array($HTTP_POST_VARS["id_$prodId"])) {
// We have attributes
$cart->add_cart($prodId, $cart->get_quantity(tep_get_uprid($prodId,$HTTP_POST_VARS["id_$prodId"]))+$qty, $HTTP_POST_VARS["id_$prodId"]);
} else {
// No attributes
$cart->add_cart($prodId, $cart->get_quantity($prodId)+$qty);
}
}
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;
Codice: Seleziona tutto
case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']);
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;
Vi riporto anche il pezzo di codice di product_info.php in catalog che dovrebbe controllare option type in caso di attributi etc etc....
Codice: Seleziona tutto
<?php
// iii 030813 added: initialize $number_of_uploads
$number_of_uploads = 0;
$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by patrib.attribute_sort");
$products_attributes = tep_db_fetch_array($products_attributes_query);
if ($products_attributes['total'] > 0) {
?>
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="main" colspan="2"><?php echo '<BR>' . TEXT_PRODUCT_OPTIONS_PRETEXT . '<BR><BR>'; ?></td>
</tr>
<tr>
<td class="main" colspan="2"><?php echo '<b>' . TEXT_PRODUCT_OPTIONS . '</b><br>';?></td>
</tr>
<?php
//clr 030714 update query to pull option_type
$products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name, popt.products_options_type, popt.products_options_length, popt.products_options_comment from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
//clr 030714 add case statement to check option type
switch ($products_options_name['products_options_type']) {
case PRODUCTS_OPTIONS_TYPE_TEXT:
//CLR 030714 Add logic for text option
$products_attribs_query = tep_db_query("select distinct patrib.options_values_price, patrib.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = '" . $products_options_name['products_options_id'] . "' order by pa.attribute_sort");
$products_attribs_array = tep_db_fetch_array($products_attribs_query);
$tmp_html = '<input type="text" name ="id[' . TEXT_PREFIX . $products_options_name['products_options_id'] . ']" size="' . $products_options_name['products_options_length'] .'" maxlength="' . $products_options_name['products_options_length'] . '" value="' . $cart->contents[$HTTP_GET_VARS['products_id']]['attributes_values'][$products_options_name['products_options_id']] .'"> ' . $products_options_name['products_options_comment'];
if ($products_attribs_array['options_values_price'] != '0') {
$tmp_html .= '(' . $products_attribs_array['price_prefix'] . $currencies->display_price($products_attribs_array['options_id'], $products_attribs_array['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .')';
}
?>
<tr>
<td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
<td class="main"><?php echo $tmp_html; ?></td>
</tr>
<?php
break;
case PRODUCTS_OPTIONS_TYPE_RADIO:
//CLR 030714 Add logic for radio buttons
$tmp_html = '<table>';
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "' order by pa.attribute_sort");
$checked = true;
while ($products_options_array = tep_db_fetch_array($products_options_query)) {
$tmp_html .= '<tr><td class="main">';
$tmp_html .= tep_draw_radio_field('id[' . $products_options_name['products_options_id'] . ']', $products_options_array['products_options_values_id'], $checked);
$checked = false;
$tmp_html .= $products_options_array['products_options_values_name'];
$tmp_html .= $products_options_name['products_options_comment'];
if ($products_options_array['options_values_price'] != '0') {
$tmp_html .= '(' . $products_options_array['price_prefix'] . $currencies->display_price($products_options_array['options_id'], $products_options_array['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
}
$tmp_html .= '</tr></td>';
}
$tmp_html .= '</table>';
?>
<tr>
<td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
<td class="main"><?php echo $tmp_html; ?></td>
</tr>
<?php
break;
case PRODUCTS_OPTIONS_TYPE_CHECKBOX:
//CLR 030714 Add logic for checkboxes
$products_attribs_query = tep_db_query("select distinct patrib.options_values_id, patrib.options_values_price, patrib.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = '" . $products_options_name['products_options_id'] . "'");
$products_attribs_array = tep_db_fetch_array($products_attribs_query);
echo '<tr><td class="main">' . $products_options_name['products_options_name'] . ': </td><td class="main">';
echo tep_draw_checkbox_field('id[' . $products_options_name['products_options_id'] . ']', $products_attribs_array['options_values_id']);
echo $products_options_name['products_options_comment'];
if ($products_attribs_array['options_values_price'] != '0') {
echo '(' . $products_attribs_array['price_prefix'] . $currencies->display_price($products_attribs_array['options_id'], $products_attribs_array['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
}
echo '</td></tr>';
break;
// iii 030813 added: support for file fields
case PRODUCTS_OPTIONS_TYPE_FILE:
$number_of_uploads++;
$products_attribs_query = tep_db_query("select distinct patrib.options_values_price, patrib.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)tep_db_input($HTTP_GET_VARS['products_id']) . "' and patrib.options_id = '" . $products_options_name['products_options_id'] . "'");
$products_attribs_array = tep_db_fetch_array($products_attribs_query);
?>
<tr>
<td class="main"><?php echo $products_options_name['products_options_name'] . ' (' . $products_attribs_array['price_prefix'] . $currencies->display_price($products_attribs_array['options_id'], $products_attribs_array['options_values_price'], $product_info_values['products_tax_class_id']) . ') '; ?></td>
<td class="main"><input type="file" name="id[<?php echo TEXT_PREFIX . $products_options_name['products_options_id']; ?>]"><br><?php echo $cart->contents[$HTTP_GET_VARS['products_id']]['attributes_values'][$products_options_name['products_options_id']] . tep_draw_hidden_field(UPLOAD_PREFIX . $number_of_uploads, $products_options_name['products_options_id']) . tep_draw_hidden_field(TEXT_PREFIX . UPLOAD_PREFIX . $number_of_uploads, $cart->contents[$HTTP_GET_VARS['products_id']]['attributes_values'][$products_options_name['products_options_id']]); ?></td>
</tr>
<?php
break;
default:
//clr 030714 default is select list
//clr 030714 reset selected_attribute variable
$selected_attribute = false;
$products_options_array = array();
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "' order by pa.attribute_sort");
while ($products_options = tep_db_fetch_array($products_options_query)) {
$products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
if ($products_options['options_values_price'] != '0') {
$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_id'], $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
}
}
if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
$selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
} else {
$selected_attribute = false;
}
?>
<tr>
<td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
<td class="main"><?php
// echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute) . $products_options_name['products_options_comment'];
echo tep_draw_pull_down_menu('id_' . $HTTP_GET_VARS['products_id'] . '[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute);
// echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute);
?></td>
</tr>
<?php
} //clr 030714 end switch
} //clr 030714 end while
?>
Fatemi sapere, ciaozzzzzz, jo.