|
ECB SEO SHOP SOFTWARE - IMEDES SOFTWARE DOWNLOADS
*****************************************
* *
* INSTALLATION-GUIDE *
* *
*****************************************
* @package Proaktiver Verkaufsmanager *
* (c) 2008 Imedes.de *
* info@imedes.de *
* @compatible SP2.1 *
*****************************************
--------------
NEW FILES:
--------------
includes/functions/database.php
includes/modules/product_attributes-bundle.php
includes/modules/product_bundle.php
templates/xtc4/img/bundle_plus.gif
templates/xtc4/module/product_bundle.html
templates/xtc4/module/product_options/product_options_dropdown_javascript.html
--------------
NEW DIRS:
--------------
imedes_library
includes/classes/adodb_full
--------------
CHANGED FILES:
--------------
admin/includes/application_top.php
admin/includes/column_left.php
admin/includes/functions/general.php
admin/includes/functions/sessions.php
admin/orders.php
admin/products_attributes.php
advanced_search_result.php
checkout_confirmation.php
checkout_process.php
includes/application_top.php
includes/cart_actions.php
includes/classes/order.php
includes/classes/product.php
includes/functions/sessions.php
includes/modules/order_details_cart.php
includes/modules/product_info.php
lang/english/admin/configuration.php
lang/english/admin/english.php
lang/english/lang_english.conf
lang/german/admin/configuration.php
lang/german/admin/german.php
lang/german/lang_german.conf
templates/xtc4/mail/german/order_mail.html
templates/xtc4/module/account_history_info.html
templates/xtc4/module/order_details.html
templates/xtc4/module/print_order.html
templates/xtc4/module/product_info/product_info_v1.html
templates/xtc4/source/boxes/best_sellers.php
templates/xtc4/source/boxes/last_viewed.php
templates/xtc4/source/boxes/specials.php
templates/xtc4/source/boxes/whats_new.php
-------------
INSTALLATION:
-------------
1. Datenkbankerweiterungen durchführen
INSERT INTO `configuration_group` ( `configuration_group_id` , `configuration_group_title` , `configuration_group_description` , `sort_order` , `visible` )
VALUES (
'24', 'Product bundle', '', '24', '1'
), (
NULL , '', '', NULL , '1'
);
INSERT INTO `configuration` ( `configuration_id` , `configuration_key` , `configuration_value` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
VALUES (
NULL , 'PRODUCT_BUNDLE_MODE', '1', '24', NULL , NULL , '', NULL , 'xtc_cfg_pull_down_bundle_mode('
);
INSERT INTO `configuration` ( `configuration_id` , `configuration_key` , `configuration_value` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
VALUES (
NULL , 'PRODUCT_BUNDLE_DISCOUNT', '10', '24', NULL , NULL , '', NULL , NULL
);
INSERT INTO `configuration` ( `configuration_id` , `configuration_key` , `configuration_value` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
VALUES (
NULL , 'PRODUCT_BUNDLE_DISCOUNT_MODE', '1', '24', NULL , NULL , '', NULL , 'xtc_cfg_pull_down_bundle_discount_mode('
);
INSERT INTO `configuration` ( `configuration_id` , `configuration_key` , `configuration_value` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
VALUES (
NULL , 'PRODUCT_BUNDLE_SPECIAL_MODE', '1', '24', NULL , NULL , '', NULL , 'xtc_cfg_pull_down_bundle_special_mode('
);
ALTER TABLE `products_options` CHANGE `products_options_name` `products_options_name` VARCHAR( 255 ) NOT NULL;
ALTER TABLE `orders_products_attributes` CHANGE `products_options` `products_options` VARCHAR( 255 ) NOT NULL;
ALTER TABLE `products_options` ADD `bundle_products_id` INT( 11 ) NOT NULL;
ALTER TABLE `products_options` ADD `bundle_options_id` INT( 11 ) NOT NULL ;
2. new_files kopieren.
3. changed_files kopieren, oder bei nicht standard-version folgende änderungen durchführen:
-admin/includes/application_top.php
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
require_once(DIR_FS_INC . 'xtc_db_connect.inc.php');
require_once(DIR_FS_INC . 'xtc_db_close.inc.php');
require_once(DIR_FS_INC . 'xtc_db_error.inc.php');
require_once(DIR_FS_INC . 'xtc_db_query.inc.php');
require_once(DIR_FS_INC . 'xtc_db_queryCached.inc.php');
require_once(DIR_FS_INC . 'xtc_db_perform.inc.php');
require_once(DIR_FS_INC . 'xtc_db_fetch_array.inc.php');
require_once(DIR_FS_INC . 'xtc_db_num_rows.inc.php');
require_once(DIR_FS_INC . 'xtc_db_data_seek.inc.php');
require_once(DIR_FS_INC . 'xtc_db_insert_id.inc.php');
require_once(DIR_FS_INC . 'xtc_db_free_result.inc.php');
require_once(DIR_FS_INC . 'xtc_db_fetch_fields.inc.php');
require_once(DIR_FS_INC . 'xtc_db_output.inc.php');
require_once(DIR_FS_INC . 'xtc_db_input.inc.php');
und ersetze es mit:
require_once('../'.DIR_WS_FUNCTIONS.'database.php');
//require_once(DIR_FS_INC . 'xtc_db_connect.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_close.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_error.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_query.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_queryCached.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_perform.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_fetch_array.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_num_rows.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_data_seek.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_insert_id.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_free_result.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_fetch_fields.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_output.inc.php');
//require_once(DIR_FS_INC . 'xtc_db_input.inc.php');
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
xtc_db_connect() or die('Unable to connect to database server!');
und ersetze es mit:
require_once (DIR_FS_CATALOG.'imedes_library/db_connect_alt_admin.php');
db_connect_alt() or die('Unable to connect to database server!');
global $ADODB_FETCH_MODE;
$ADODB_FETCH_MODE=ADODB_FETCH_ASSOC;
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/includes/column_left.php
---------------------------------------------------------------------------------------------------
finde folgendes: if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['cross_sell_groups'] == '1')) echo '<a href="' . xtc_href_link(FILENAME_XSELL_GROUPS, '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_ORDERS_XSELL_GROUP . '</a><br>';
und füge danach ein:
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['configuration'] == '1')) echo '<a href="' . xtc_href_link(FILENAME_CONFIGURATION, 'gID=24', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_CONFIGURATION_24 . '</a><br>';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/includes/functions/general.php
---------------------------------------------------------------------------------------------------
finde folgendes:
?>
und füge davor ein:
function xtc_cfg_pull_down_bundle_mode($mode_id) {
$modes = array();
$modes[] = array('id' => 0, 'text' => '0');
$modes[] = array('id' => 1, 'text' => '1');
$modes[] = array('id' => 2, 'text' => '2');
$modes[] = array('id' => 3, 'text' => '3');
$modes[] = array('id' => 4, 'text' => '4');
return xtc_draw_pull_down_menu('configuration_value', $modes, $mode_id);
}
function xtc_cfg_pull_down_bundle_discount_mode($mode_id) {
$modes = array();
$modes[] = array('id' => 1, 'text' => '1');
$modes[] = array('id' => 2, 'text' => '2');
$modes[] = array('id' => 3, 'text' => '3');
return xtc_draw_pull_down_menu('configuration_value', $modes, $mode_id);
}
function xtc_cfg_pull_down_bundle_special_mode($mode_id) {
$modes = array();
$modes[] = array('id' => 1, 'text' => '1');
$modes[] = array('id' => 2, 'text' => '2');
return xtc_draw_pull_down_menu('configuration_value', $modes, $mode_id);
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/includes/functions/sessions.php
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
function _sess_write($key, $val) {
global $SESS_LIFE;
und füge danach ein:
if(!is_object($db)){// Vermutlich wird das $db objekt gelöscht, bevor die Session geschrieben wird
global$db;
require_once (DIR_FS_CATALOG.'imedes_library/db_connect_alt_admin.php');
db_connect_alt() or die('Unable to connect to database server!');
$db->Execute("SET NAMES '".$_SESSION['language_charset']."'");
$db->Execute("SET CHARACTER_SET_CLIENT=".$_SESSION['language_charset']);
$db->Execute("SET CHARACTER_SET_RESULTS=".$_SESSION['language_charset']);
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/orders.php
---------------------------------------------------------------------------------------------------
finde folgendes:
for ($i = 0, $n = sizeof($order->products); $i < $n; $i ++) {
echo ' <tr class="dataTableRow">'."\n".' <td class="dataTableContent" valign="top" align="right">'.$order->products[$i]['qty'].' x </td>'."\n".' <td class="dataTableContent" valign="top">'.$order->products[$i]['name'];
und füge danach ein:
$t_isbundle = false;
$bc = explode(':', $order->products[$i]['model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$t_isbundle = true;
}
}
if ($t_isbundle) {
$product1_model_query = xtc_db_query("select products_model from ".TABLE_PRODUCTS." where products_id = '".$bc2[0]."'");
$product1_model = xtc_db_fetch_array($product1_model_query);
$product2_model_query = xtc_db_query("select products_model from ".TABLE_PRODUCTS." where products_id = '".$bc2[1]."'");
$product2_model = xtc_db_fetch_array($product2_model_query);
echo '<br /><nobr><small> '.$product1_model['products_model'].' + '.$product2_model['products_model'].'</small></nobr>';
}
---------------------------------------------------------------------------------------------------
finde folgendes:
$contents[] = array ('text' => '<br /><br />'.sizeof($order->products).' Products ');
for ($i = 0; $i < sizeof($order->products); $i ++) {
$contents[] = array ('text' => $order->products[$i]['qty'].' x'.$order->products[$i]['name']);
und füge danach ein:
$t_isbundle = false;
$bc = explode(':', $order->products[$i]['model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$t_isbundle = true;
}
}
if ($t_isbundle) {
$product1_model_query = xtc_db_query("select products_model from ".TABLE_PRODUCTS." where products_id = '".$bc2[0]."'");
$product1_model = xtc_db_fetch_array($product1_model_query);
$product2_model_query = xtc_db_query("select products_model from ".TABLE_PRODUCTS." where products_id = '".$bc2[1]."'");
$product2_model = xtc_db_fetch_array($product2_model_query);
$contents[] = array ('text' => ' '.$product1_model['products_model'].' + '.$product2_model['products_model']);
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/products_attributes.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$options = "select * from ".TABLE_PRODUCTS_OPTIONS."
where language_id = '".$_SESSION['languages_id']."'
and products_options_name LIKE '%".$_GET['searchoption']."%'
und füge danach ein:
and bundle_products_id = 0
---------------------------------------------------------------------------------------------------
finde folgendes:
$options = "select * from ".TABLE_PRODUCTS_OPTIONS."
where language_id = '".$_SESSION['languages_id']."'
und füge danach ein:
and bundle_products_id = 0
---------------------------------------------------------------------------------------------------
finde folgendes:
$options = xtc_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $_SESSION['languages_id'] . "' order by products_options_name");
und ersetze es mit:
$options = xtc_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $_SESSION['languages_id'] . "' and bundle_products_id = 0 order by products_options_name");
---------------------------------------------------------------------------------------------------
finde folgendes:
$options = xtc_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $_SESSION['languages_id'] . "' order by products_options_name");
und ersetze es mit:
$options = xtc_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $_SESSION['languages_id'] . "' and bundle_products_id = 0 order by products_options_name");
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-advanced_search_result.php
---------------------------------------------------------------------------------------------------
finde folgendes:
} else {
unset ($fsk_lock);
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-checkout_confirmation.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$data_products = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) {
und füge danach ein:
$is_bundle = false;
$bc = explode(':', $order->products[$i]['model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$is_bundle = true;
}
}
if ($is_bundle) {
$st_product = new product($bc2[0]); $st_data = $st_product->buildDataArray($st_product->data);
$st_product2 = new product($bc2[1]); $st_data2 = $st_product2->buildDataArray($st_product2->data);
$data_products .= '<tr>' . "\n" . ' <td class="main" align="left" valign="top">' . $order->products[$i]['qty'] . ' x </td>' . "\n" . ' <td class="main" align="right" valign="top">' . $xtPrice->xtcFormat($order->products[$i]['final_price'], true) . '</td></tr>' . "\n";
$data_products .= '<tr>
<td class="main" align="left" valign="top">' . $st_data['PRODUCTS_NAME'] . '</td>
<td class="main" align="right" valign="top"> </td></tr>';
if (ACTIVATE_SHIPPING_STATUS == 'true') {
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small>' . SHIPPING_TIME . $st_data['PRODUCTS_SHIPPING_NAME'] . '
</small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
if ((isset ($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0)) {
for ($j = 0, $n2 = sizeof($order->products[$i]['attributes']); $j < $n2; $j++) {
$t_name = $order->products[$i]['attributes'][$j]['option'];
$pos = strrpos($t_name, '-');
$xed_name = substr($t_name, 0, $pos-1);
if ($xed_name == $st_data['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data['PRODUCTS_NAME'])+2);
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small> <i> - ' . $t_name . ': ' . $order->products[$i]['attributes'][$j]['value'] . '
</i></small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
}
}
$data_products .= '<tr>
<td class="main" align="left" valign="top">' . $st_data2['PRODUCTS_NAME'] . '</td>
<td class="main" align="right" valign="top"> </td></tr>';
if (ACTIVATE_SHIPPING_STATUS == 'true') {
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small>' . SHIPPING_TIME . $st_data2['PRODUCTS_SHIPPING_NAME'] . '
</small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
if ((isset ($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0)) {
for ($j = 0, $n2 = sizeof($order->products[$i]['attributes']); $j < $n2; $j++) {
$t_name = $order->products[$i]['attributes'][$j]['option'];
$pos = strrpos($t_name, '-');
$xed_name = substr($t_name, 0, $pos-1);
if ($xed_name == $st_data2['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data2['PRODUCTS_NAME'])+2);
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small> <i> - ' . $t_name . ': ' . $order->products[$i]['attributes'][$j]['value'] . '
</i></small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
}
}
} else {
---------------------------------------------------------------------------------------------------
finde folgendes:
$data_products .= '' . "\n";
if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) {
und füge davor ein:
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-checkout_process.php
---------------------------------------------------------------------------------------------------
finde folgendes:
for ($i = 0, $n = sizeof($order->products); $i < $n; $i ++) {
und füge danach ein:
// check for bundle
$t_isbundle = false;
$bc = explode(':', $order->products[$i]['model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$t_isbundle = true;
}
}
---------------------------------------------------------------------------------------------------
finde folgendes:
// Stock Update - Joao Correia
if (STOCK_LIMITED == 'true') {
und füge danach ein:
if ($t_isbundle) {
$stock_query = xtc_db_query("select products_quantity from ".TABLE_PRODUCTS." where products_id = '".$bc2[0]."'");
if (xtc_db_num_rows($stock_query) > 0) {
$stock_values = xtc_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
xtc_db_query("update ".TABLE_PRODUCTS." set products_quantity = '".$stock_left."' where products_id = '".$bc2[0]."'");
if (($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false')) {
xtc_db_query("update ".TABLE_PRODUCTS." set products_status = '0' where products_id = '".$bc2[0]."'");
}
}
$stock_query = xtc_db_query("select products_quantity from ".TABLE_PRODUCTS." where products_id = '".$bc2[1]."'");
if (xtc_db_num_rows($stock_query) > 0) {
$stock_values = xtc_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
xtc_db_query("update ".TABLE_PRODUCTS." set products_quantity = '".$stock_left."' where products_id = '".$bc2[1]."'");
if (($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false')) {
xtc_db_query("update ".TABLE_PRODUCTS." set products_status = '0' where products_id = '".$bc2[1]."'");
}
}
} else {
---------------------------------------------------------------------------------------------------
finde folgendes:
}
}
}
// Update products_ordered (for bestsellers list)
xtc_db_query("update ".TABLE_PRODUCTS." set products_ordered = products_ordered + ".sprintf('%d', $order->products[$i]['qty'])." where products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
und ersetze es mit:
}
}
}
}
// Update products_ordered (for bestsellers list)
if ($t_isbundle) {
xtc_db_query("update ".TABLE_PRODUCTS." set products_ordered = products_ordered + ".sprintf('%d', $order->products[$i]['qty'])." where products_id = '".$bc2[0]."'");
xtc_db_query("update ".TABLE_PRODUCTS." set products_ordered = products_ordered + ".sprintf('%d', $order->products[$i]['qty'])." where products_id = '".$bc2[1]."'");
xtc_db_query("update ".TABLE_PRODUCTS." set products_ordered = products_ordered + ".sprintf('%d', $order->products[$i]['qty'])." where products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
} else {
xtc_db_query("update ".TABLE_PRODUCTS." set products_ordered = products_ordered + ".sprintf('%d', $order->products[$i]['qty'])." where products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/application_top.php
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
require_once (DIR_FS_INC.'xtc_db_connect.inc.php');
require_once (DIR_FS_INC.'xtc_db_close.inc.php');
require_once (DIR_FS_INC.'xtc_db_error.inc.php');
require_once (DIR_FS_INC.'xtc_db_perform.inc.php');
require_once (DIR_FS_INC.'xtc_db_query.inc.php');
require_once (DIR_FS_INC.'xtc_db_queryCached.inc.php');
require_once (DIR_FS_INC.'xtc_db_fetch_array.inc.php');
require_once (DIR_FS_INC.'xtc_db_num_rows.inc.php');
require_once (DIR_FS_INC.'xtc_db_data_seek.inc.php');
require_once (DIR_FS_INC.'xtc_db_insert_id.inc.php');
require_once (DIR_FS_INC.'xtc_db_free_result.inc.php');
require_once (DIR_FS_INC.'xtc_db_fetch_fields.inc.php');
require_once (DIR_FS_INC.'xtc_db_output.inc.php');
require_once (DIR_FS_INC.'xtc_db_input.inc.php');
und ersetze es mit:
require_once(DIR_WS_FUNCTIONS.'database.php');
// require_once (DIR_FS_INC.'xtc_db_connect.inc.php');
// require_once (DIR_FS_INC.'xtc_db_close.inc.php');
// require_once (DIR_FS_INC.'xtc_db_error.inc.php');
// require_once (DIR_FS_INC.'xtc_db_perform.inc.php');
// require_once (DIR_FS_INC.'xtc_db_query.inc.php');
// require_once (DIR_FS_INC.'xtc_db_queryCached.inc.php');
// require_once (DIR_FS_INC.'xtc_db_fetch_array.inc.php');
// require_once (DIR_FS_INC.'xtc_db_num_rows.inc.php');
// require_once (DIR_FS_INC.'xtc_db_data_seek.inc.php');
// require_once (DIR_FS_INC.'xtc_db_insert_id.inc.php');
// require_once (DIR_FS_INC.'xtc_db_free_result.inc.php');
// require_once (DIR_FS_INC.'xtc_db_fetch_fields.inc.php');
// require_once (DIR_FS_INC.'xtc_db_output.inc.php');
// require_once (DIR_FS_INC.'xtc_db_input.inc.php');
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
xtc_db_connect() or die('Unable to connect to database server!');
und ersetze es mit:
require_once (DIR_FS_CATALOG.'imedes_library/db_connect_alt.php');
db_connect_alt() or die('Unable to connect to database server!');
global $ADODB_FETCH_MODE;
$ADODB_FETCH_MODE=ADODB_FETCH_ASSOC;
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
require (DIR_WS_LANGUAGES.$_SESSION['language'].'/'.$_SESSION['language'].'.php');
und füge danach ein:
$db->Execute("SET NAMES '".$_SESSION['language_charset']."'");
$db->Execute("SET CHARACTER_SET_CLIENT=".$_SESSION['language_charset']);
$db->Execute("SET CHARACTER_SET_RESULTS=".$_SESSION['language_charset']);
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/cart_actions.php
---------------------------------------------------------------------------------------------------
finde folgendes:
case 'buy_now' :
und ersetze es mit:
case 'buy_bundle' :
case 'buy_now' :
$t_ids = array();
if ($_GET['action'] == 'buy_bundle') {
list($bundle1, $bundle2) = explode('|', $_GET['BUYproducts_id']);
$bundle1 = (int)$bundle1;
$bundle2 = (int)$bundle2;
if ($bundle1 < 1 || $bundle2 < 1 || $bundle1 == $bundle2) {
xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL'));
}
require_once (DIR_WS_CLASSES.'product.php');
require_once (DIR_FS_INC.'xtc_get_products_name.inc.php');
$product = new product($bundle1);
$product2 = new product($bundle2);
$product->data['products_price'] = $xtPrice->getPprice($product->pID);
$product2->data['products_price'] = $xtPrice->getPprice($product2->pID);
$ori_price = $product->data['products_price']+$product2->data['products_price'];
if (PRODUCT_BUNDLE_SPECIAL_MODE == 2) {
if ($sPrice = $xtPrice->xtcCheckSpecial($product->pID)) {
$product->data['products_price'] = $sPrice;
}
if ($sPrice = $xtPrice->xtcCheckSpecial($product2->pID)) {
$product2->data['products_price'] = $sPrice;
}
}
$data = $product->buildDataArray($product->data);
$data2 = $product2->buildDataArray($product2->data);
// get price
if (PRODUCT_BUNDLE_DISCOUNT_MODE == 1) {
$bundle_price = $product->data['products_price']+$product2->data['products_price'];
$bundle_price = $bundle_price - (($bundle_price*PRODUCT_BUNDLE_DISCOUNT)/100);
} else if (PRODUCT_BUNDLE_DISCOUNT_MODE == 2) {
$bundle_price = $product->data['products_price'] - (($product->data['products_price']*PRODUCT_BUNDLE_DISCOUNT)/100);
$bundle_price += $product2->data['products_price'];
} else if (PRODUCT_BUNDLE_DISCOUNT_MODE == 3) {
$bundle_price = $product2->data['products_price'] - (($product2->data['products_price']*PRODUCT_BUNDLE_DISCOUNT)/100);
$bundle_price += $product->data['products_price'];
}
//echo "\$new_products_id = $new_products_id <br>";
$_products_quantity = min($product->data['products_quantity'], $product2->data['products_quantity']);
$product_query = "select products_id FROM ".TABLE_PRODUCTS." WHERE products_model = 'PB:".$bundle1.'-'.$bundle2."'";
$product_query = xtc_db_query($product_query);
if (xtc_db_num_rows($product_query) > 0) {
$product_data = xtc_db_fetch_array($product_query);
$new_products_id = $product_data['products_id'];
$update_query = 'UPDATE '.TABLE_PRODUCTS.' SET products_price = "'.$bundle_price.'", products_quantity = '.$_products_quantity.' WHERE products_id = '.$new_products_id;
xtc_db_query($update_query);
} else {
$product_query = "select products_shippingtime, products_status, products_tax_class_id FROM ".TABLE_PRODUCTS." WHERE products_id = ".$bundle1;
$product_query = xtc_db_query($product_query);
$product_data = xtc_db_fetch_array($product_query);
$product_data['products_model'] = 'PB:'.$bundle1.'-'.$bundle2;
$product_data['products_price'] = $bundle_price;
$product_data['products_quantity'] = $_products_quantity;
xtc_db_perform(TABLE_PRODUCTS, $product_data);
$new_products_id = xtc_db_insert_id();
$languages_query = xtc_db_query("select languages_id from ".TABLE_LANGUAGES." order by sort_order");
while ($lang = xtc_db_fetch_array($languages_query)) {
$description = array('products_id' => $new_products_id, 'language_id' => $lang['languages_id'], 'products_name' => $product->data['products_name'].' + '.$product2->data['products_name'], 'products_description' => '<a href="'.xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $bundle1, 'NONSSL').'">'.$product->data['products_name'].'</a><br><br><a href="'.xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $bundle2, 'NONSSL').'">'.$product2->data['products_name'].'</a>');
xtc_db_perform(TABLE_PRODUCTS_DESCRIPTION, $description);
}
}
//echo "\$new_products_id = $new_products_id <br>";
// attribute stuff
xtc_db_query("DELETE FROM products_attributes WHERE products_id = ".$new_products_id);
$b_languages = array();
$languages_query = xtc_db_query("select languages_id from ".TABLE_LANGUAGES." order by sort_order");
while ($languages1 = xtc_db_fetch_array($languages_query)) {
$b_languages[] = $languages1['languages_id'];
}
$atts_query = xtc_db_query("SELECT * FROM products_attributes WHERE products_id = ".$bundle1."");
while ($atts_a = xtc_db_fetch_array($atts_query)) {
foreach ($b_languages as $lang_id) {
$check_query1 = xtc_db_query("SELECT products_options_name FROM products_options WHERE language_id = ".$lang_id." AND products_options_id = ".$atts_a['options_id']);
$check_query1 = xtc_db_fetch_array($check_query1);
$new_options_name = xtc_get_products_name($bundle1, $lang_id).' - '.$check_query1['products_options_name'];
$check_query2 = xtc_db_query("SELECT products_options_id FROM products_options WHERE bundle_products_id = ".$bundle1." AND bundle_options_id = ".$atts_a['options_id']);
if (xtc_db_num_rows($check_query2) > 0) {
$check_query2 = xtc_db_fetch_array($check_query2);
$new_options_id = $check_query2['products_options_id'];
} else {
$max_options_id_query = xtc_db_query("select max(products_options_id) + 1 as next_id from " . TABLE_PRODUCTS_OPTIONS);
$max_options_id_values = xtc_db_fetch_array($max_options_id_query);
$new_options_id = $max_options_id_values['next_id'];
}
xtc_db_query("DELETE FROM products_options WHERE bundle_products_id = ".$bundle1." AND bundle_options_id = ".$atts_a['options_id']." AND language_id = ".$lang_id);
$opt_d = array();
$opt_d['products_options_id'] = $new_options_id;
$opt_d['language_id'] = $lang_id;
$opt_d['products_options_name'] = $new_options_name;
$opt_d['bundle_products_id'] = $bundle1;
$opt_d['bundle_options_id'] = $atts_a['options_id'];
xtc_db_perform("products_options", $opt_d);
}
if (PRODUCT_BUNDLE_DISCOUNT_MODE == 1 || PRODUCT_BUNDLE_DISCOUNT_MODE == 2) {
$atts_a['options_values_price'] = $atts_a['options_values_price'] - (($atts_a['options_values_price']*PRODUCT_BUNDLE_DISCOUNT)/100);
}
unset($atts_a['products_attributes_id']);
$atts_a['products_id'] = $new_products_id;
$atts_a['options_id'] = $new_options_id;
xtc_db_perform("products_attributes", $atts_a);
}
$atts_query = xtc_db_query("SELECT * FROM products_attributes WHERE products_id = ".$bundle2."");
while ($atts_a = xtc_db_fetch_array($atts_query)) {
foreach ($b_languages as $lang_id) {
$check_query1 = xtc_db_query("SELECT products_options_name FROM products_options WHERE language_id = ".$lang_id." AND products_options_id = ".$atts_a['options_id']);
$check_query1 = xtc_db_fetch_array($check_query1);
$new_options_name = xtc_get_products_name($bundle2, $lang_id).' - '.$check_query1['products_options_name'];
$check_query2 = xtc_db_query("SELECT products_options_id FROM products_options WHERE bundle_products_id = ".$bundle2." AND bundle_options_id = ".$atts_a['options_id']);
if (xtc_db_num_rows($check_query2) > 0) {
$check_query2 = xtc_db_fetch_array($check_query2);
$new_options_id = $check_query2['products_options_id'];
} else {
$max_options_id_query = xtc_db_query("select max(products_options_id) + 1 as next_id from " . TABLE_PRODUCTS_OPTIONS);
$max_options_id_values = xtc_db_fetch_array($max_options_id_query);
$new_options_id = $max_options_id_values['next_id'];
}
xtc_db_query("DELETE FROM products_options WHERE bundle_products_id = ".$bundle2." AND bundle_options_id = ".$atts_a['options_id']." AND language_id = ".$lang_id);
$opt_d = array();
$opt_d['products_options_id'] = $new_options_id;
$opt_d['language_id'] = $lang_id;
$opt_d['products_options_name'] = $new_options_name;
$opt_d['bundle_products_id'] = $bundle2;
$opt_d['bundle_options_id'] = $atts_a['options_id'];
xtc_db_perform("products_options", $opt_d);
}
if (PRODUCT_BUNDLE_DISCOUNT_MODE == 1 || PRODUCT_BUNDLE_DISCOUNT_MODE == 2) {
$atts_a['options_values_price'] = $atts_a['options_values_price'] - (($atts_a['options_values_price']*PRODUCT_BUNDLE_DISCOUNT)/100);
}
unset($atts_a['products_attributes_id']);
$atts_a['products_id'] = $new_products_id;
$atts_a['options_id'] = $new_options_id;
xtc_db_perform("products_attributes", $atts_a);
}
/*
$atts_query = xtc_db_query("SELECT * FROM products_attributes WHERE products_id = ".$bundle2);
while ($atts_a = xtc_db_fetch_array($atts_query)) {
$check_query = xtc_db_query("SELECT products_attributes_id FROM products_attributes WHERE products_id = ".$new_products_id." AND options_id = ".$atts_a['options_id']." AND options_values_id = ".$atts_a['options_values_id']);
if (PRODUCT_BUNDLE_DISCOUNT_MODE == 1 || PRODUCT_BUNDLE_DISCOUNT_MODE == 3) {
$atts_a['options_values_price'] = $atts_a['options_values_price'] - (($atts_a['options_values_price']*PRODUCT_BUNDLE_DISCOUNT)/100);
}
unset($atts_a['products_attributes_id']);
$atts_a['products_id'] = $new_products_id;
xtc_db_perform("products_attributes", $atts_a);
}
*/
if(isset($_GET['id'])) {
foreach ($_GET['id'] as $k => $v) {
list($t_p, $t_o) = explode('_', $k);
$check_query = xtc_db_query("SELECT products_options_id '0' FROM products_options WHERE bundle_products_id = ".$t_p." AND bundle_options_id = ".$t_o);
list($new_k) = xtc_db_fetch_array($check_query);
$t_ids[$new_k] = $v;
}
}
$_GET['BUYproducts_id'] = $new_products_id;
//var_dump($t_ids);
//exit;
}
---------------------------------------------------------------------------------------------------
finde folgendes:
if (xtc_has_product_attributes($_GET['BUYproducts_id'])) {
und ersetze es mit:
if (xtc_has_product_attributes($_GET['BUYproducts_id']) && $_GET['action'] != 'buy_bundle') {
---------------------------------------------------------------------------------------------------
finde folgendes:
$_SESSION['cart']->add_cart((int) $_GET['BUYproducts_id'], $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']) + 1);
und ersetze es mit:
$_SESSION['cart']->add_cart((int) $_GET['BUYproducts_id'], $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']) + 1, $t_ids);
---------------------------------------------------------------------------------------------------
finde folgendes:
'BUYproducts_id'
und ersetze es mit:
'BUYproducts_id',
'id'
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/classes/order.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$order_data = array ();
$order_query = xtc_db_query($order_query);
while ($order_data_values = xtc_db_fetch_array($order_query)) {
und füge danach ein:
$t_isbundle = false;
$st_data = array(); $st_data2 = array();
$bc = explode(':', $order_data_values['products_model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$t_isbundle = true;
$st_product = new product($bc2[0]); $st_data = $st_product->buildDataArray($st_product->data);
$st_product2 = new product($bc2[1]); $st_data2 = $st_product2->buildDataArray($st_product2->data);
}
}
---------------------------------------------------------------------------------------------------
finde folgendes:
$attributes_data = '';
und füge danach ein:
$attributes_data2 = '';
---------------------------------------------------------------------------------------------------
finde folgendes:
$attributes_data .= '<br />'.$attributes_data_values['products_options'].':'.$attributes_data_values['products_options_values'];
und ersetze es mit:
$arr2add = 'attributes_data';
$t_name = $attributes_data_values['products_options'];
if ($t_isbundle) {
$pos = strrpos($t_name, '-');
$xed_name = substr($t_name, 0, $pos-1);
if ($xed_name == $st_data['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data['PRODUCTS_NAME'])+2);
} else if ($xed_name == $st_data2['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data2['PRODUCTS_NAME'])+2);
$arr2add = 'attributes_data2';
}
}
$$arr2add .= '<br />'.$t_name.':'.$attributes_data_values['products_options_values'];
---------------------------------------------------------------------------------------------------
finde folgendes:
$order_data[] = array ('PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'],'PRODUCTS_SHIPPING_TIME' => $order_data_values['products_shipping_time'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price'], true),'PRODUCTS_SINGLE_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price']/$order_data_values['products_quantity'], true), 'PRODUCTS_QTY' => $order_data_values['products_quantity']);
und ersetze es mit:
$t_arr = array ('PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'],'PRODUCTS_SHIPPING_TIME' => $order_data_values['products_shipping_time'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price'], true),'PRODUCTS_SINGLE_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price']/$order_data_values['products_quantity'], true), 'PRODUCTS_QTY' => $order_data_values['products_quantity']);
if ($t_isbundle) {
$t_arr['IS_BUNDLE'] = true;
$t_arr['PRODUCTS_SHIPPING_TIME'] = $st_data['PRODUCTS_SHIPPING_NAME'];
$t_arr['PRODUCTS_SHIPPING_TIME2'] = $st_data2['PRODUCTS_SHIPPING_NAME'];
$t_arr['PRODUCTS_MODEL_PB1'] = $st_data['PRODUCTS_MODEL'];
$t_arr['PRODUCTS_MODEL_PB2'] = $st_data2['PRODUCTS_MODEL'];
$t_arr['PRODUCTS_NAME'] = $st_data['PRODUCTS_NAME'];
$t_arr['PRODUCTS_NAME2'] = $st_data2['PRODUCTS_NAME'];
$t_arr['PRODUCTS_ATTRIBUTES2'] = $attributes_data2;
}
$order_data[] = $t_arr;
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/classes/product.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
$fsk_lock = ' and p.products_fsk18!=1';
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
$fsk_lock = ' and p.products_fsk18!=1';
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
$fsk_lock = ' and p.products_fsk18!=1';
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
finde folgendes:
return array ('PRODUCTS_NAME' => $array['products_name'],
und füge danach ein:
'PRODUCTS_MODEL' => $array['products_model'],
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/functions/sessions.php
---------------------------------------------------------------------------------------------------
Achtung!!!! Diese folgende Änderung ist nur notwendig, wenn Sie bisher noch KEINE Bibliothek von Imedes
erworben haben, welches unter einer Bezahllizenz steht. Falls Sie nicht sicher sind, dann schauen Sie
einfach in den Quellcode der entsprechenden Datei oder sprechen uns einfach an
finde folgendes:
function _sess_write($key, $val) {
global $SESS_LIFE;
und füge danach ein:
if(!is_object($db)){// Vermutlich wird das $db objekt gelöscht, bevor die Session geschrieben wird
global$db;
require_once (DIR_FS_CATALOG.'imedes_library/db_connect_alt.php');
db_connect_alt() or die('Unable to connect to database server!');
$db->Execute("SET NAMES '".$_SESSION['language_charset']."'");
$db->Execute("SET CHARACTER_SET_CLIENT=".$_SESSION['language_charset']);
$db->Execute("SET CHARACTER_SET_RESULTS=".$_SESSION['language_charset']);
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/modules/order_details_cart.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => xtc_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').xtc_draw_hidden_field('products_id[]', $products[$i]['id']).xtc_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => xtc_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$xtPrice->xtcFormat($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => xtc_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');
und ersetze es mit:
// check for bundle
$t_isbundle = false;
$bc = explode(':', $products[$i]['model']);
if (count($bc) > 1 && $bc[0] == 'PB') {
$bc2 = explode('-', $bc[1]);
if (count($bc2) == 2 && is_numeric($bc2[0]) && is_numeric($bc2[1])) {
$t_isbundle = true;
}
}
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => xtc_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').xtc_draw_hidden_field('products_id[]', $products[$i]['id']).xtc_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => xtc_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$xtPrice->xtcFormat($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => xtc_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '', 'IS_BUNDLE' => $t_isbundle);
if ($t_isbundle) {
$st_product = new product($bc2[0]); $st_data = $st_product->buildDataArray($st_product->data);
$st_product2 = new product($bc2[1]); $st_data2 = $st_product2->buildDataArray($st_product2->data);
//var_dump($st_data);
$module_content[$i]['PRODUCTS_SHIPPING_TIME'] = $st_data['PRODUCTS_SHIPPING_NAME'];
$module_content[$i]['PRODUCTS_SHIPPING_TIME2'] = $st_data2['PRODUCTS_SHIPPING_NAME'];
$module_content[$i]['PRODUCTS_NAME'] = $st_data['PRODUCTS_NAME'];
$module_content[$i]['PRODUCTS_NAME2'] = $st_data2['PRODUCTS_NAME'];
}
---------------------------------------------------------------------------------------------------
finde folgendes:
$module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);
und ersetze es mit:
$t_name = $products[$i][$option]['products_options_name'];
$arr2add = 'ATTRIBUTES';
if ($t_isbundle) {
// list($xed_name) = explode(' - ', $t_name);
$pos = strrpos($t_name, '-');
$xed_name = substr($t_name, 0, $pos-1);
if ($xed_name == $st_data['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data['PRODUCTS_NAME'])+2);
} else if ($xed_name == $st_data2['PRODUCTS_NAME']) {
$t_name = substr($t_name, strlen($st_data2['PRODUCTS_NAME'])+2);
$arr2add = 'ATTRIBUTES2';
}
}
$module_content[$i][$arr2add][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $t_name, 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/modules/product_info.php
---------------------------------------------------------------------------------------------------
finde folgendes:
require_once (DIR_FS_INC.'get_cross_sell_name.inc.php');
und füge danach ein:
require_once (DIR_FS_CATALOG.'imedes_library/pv_imedes.php');
---------------------------------------------------------------------------------------------------
finde folgendes:
include (DIR_WS_MODULES.FILENAME_CROSS_SELLING);
und füge danach ein:
include (DIR_WS_MODULES.'product_bundle.php');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/english/admin/configuration.php
---------------------------------------------------------------------------------------------------
finde folgendes:
define('DISPLAY_REVOCATION_ON_CHECKOUT_DESC','Display right of revocation on checkout_confirmation?');
und füge danach ein:
define('PRODUCT_BUNDLE_MODE_TITLE', 'Auswahl Modus');
define('PRODUCT_BUNDLE_MODE_DESC', '<ul><li>1. Variante: Produkt A ist das aktuell angezeigte Produkt auf dem man sich gerade befindet und Produkt B ist das zuletzt besuchte Produkt.</li><br><li>2. Variante: Produkt A ist das aktuell angezeigte Produkt auf dem man sich gerade befindet und Produkt B ist das schlecht verkaufteste Produkt (mindestens einmal muß es verkauft sein). Gibt es mehrere muß es zufällig ausgewählt werden</li><br><li>3. Variante: Ist eine Kombination aus A und B, also zuerst Variante A und wenn es kein zuletzt angeschautesProdukt gibt, dann die Variante B.</li><br><li>4. Variante: Es wird ein Produkt aus der gleichen Kategorie gewählt.</li><br></ul>');
define('PRODUCT_BUNDLE_DISCOUNT_TITLE', 'Preisnachlass');
define('PRODUCT_BUNDLE_DISCOUNT_DESC', 'Der prozentuale Preisnachlass');
define('PRODUCT_BUNDLE_DISCOUNT_MODE_TITLE', 'Preisnachlass Modus');
define('PRODUCT_BUNDLE_DISCOUNT_MODE_DESC', '<ul><li>1. Variante: Rabatt gilt für den Gesamtpreis beider Produkte.</li><br><li>2. Variante: Rabatt gilt für Produkt A (das aktuell angezeigte Produkt auf dem man sich gerade befindet)</li><br><li>3. Variante: Rabatt gilt für Produkt B</li><br></ul>');
define('PRODUCT_BUNDLE_SPECIAL_MODE_TITLE', 'Sonderangebote Modus');
define('PRODUCT_BUNDLE_SPECIAL_MODE_DESC', '<ul><li>1. Variante: Den Originalpreis verwenden</li><br><li>2. Variante: Sofern ein Sonderangebotspreis vergeben wurde, wird dieser verwendet</li><br></ul>');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/english/admin/english.php
---------------------------------------------------------------------------------------------------
finde folgendes:
define('BOX_CONFIGURATION_22', 'Search-Options');
und füge danach ein:
define('BOX_CONFIGURATION_24', 'Product bundle');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/english/lang_english.conf
---------------------------------------------------------------------------------------------------
finde folgendes:
next = '[Next>]'
last = '[last>>]'
total = 'Articles in this categorie'
und füge danach ein:
[product_bundle]
heading_text = 'Our offer'
head_text = 'Buy now this product together with '
save_text = 'You save: '
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/admin/configuration.php
---------------------------------------------------------------------------------------------------
finde folgendes:
define('DISPLAY_REVOCATION_ON_CHECKOUT_DESC','Widerrufrecht auf checkout_confirmation anzeigen?');
und füge danach ein:
define('PRODUCT_BUNDLE_MODE_TITLE', 'Auswahl Modus');
define('PRODUCT_BUNDLE_MODE_DESC', '<ul><li>1. Variante: Produkt A ist das aktuell angezeigte Produkt auf dem man sich gerade befindet und Produkt B ist das zuletzt besuchte Produkt.</li><br><li>2. Variante: Produkt A ist das aktuell angezeigte Produkt auf dem man sich gerade befindet und Produkt B ist das schlecht verkaufteste Produkt (mindestens einmal muß es verkauft sein). Gibt es mehrere muß es zufällig ausgewählt werden</li><br><li>3. Variante: Ist eine Kombination aus A und B, also zuerst Variante A und wenn es kein zuletzt angeschautesProdukt gibt, dann die Variante B.</li><br><li>4. Variante: Es wird ein Produkt aus der gleichen Kategorie gewählt.</li><br></ul>');
define('PRODUCT_BUNDLE_DISCOUNT_TITLE', 'Preisnachlass');
define('PRODUCT_BUNDLE_DISCOUNT_DESC', 'Der prozentuale Preisnachlass');
define('PRODUCT_BUNDLE_DISCOUNT_MODE_TITLE', 'Preisnachlass Modus');
define('PRODUCT_BUNDLE_DISCOUNT_MODE_DESC', '<ul><li>1. Variante: Rabatt gilt für den Gesamtpreis beider Produkte.</li><br><li>2. Variante: Rabatt gilt für Produkt A (das aktuell angezeigte Produkt auf dem man sich gerade befindet)</li><br><li>3. Variante: Rabatt gilt für Produkt B</li><br></ul>');
define('PRODUCT_BUNDLE_SPECIAL_MODE_TITLE', 'Sonderangebote Modus');
define('PRODUCT_BUNDLE_SPECIAL_MODE_DESC', '<ul><li>1. Variante: Den Originalpreis verwenden</li><br><li>2. Variante: Sofern ein Sonderangebotspreis vergeben wurde, wird dieser verwendet</li><br></ul>');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/admin/german.php
---------------------------------------------------------------------------------------------------
finde folgendes:
define('BOX_CONFIGURATION_22', 'Such-Optionen');
und füge danach ein:
define('BOX_CONFIGURATION_24', 'Produkt Bundle');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/lang_german.conf
---------------------------------------------------------------------------------------------------
finde folgendes:
[xsell]
heading_text = 'Zu diesem Produkt empfehlen wir:'
und füge danach ein:
[product_bundle]
heading_text = 'Unser Vorschlag'
head_text = 'Kaufen Sie jetzt diesen Artikel zusammen mit '
save_text = 'Sie sparen: '
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/mail/german/order_mail.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$order_values.PRODUCTS_NAME}</strong>{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}<em><br>
{$order_values.PRODUCTS_ATTRIBUTES}</em></font></td>
und ersetze es mit:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{if $order_values.IS_BUNDLE}
<strong>{$order_values.PRODUCTS_NAME}</strong>{if $order_values.PRODUCTS_MODEL_PB1 neq ''}<em><br />{$order_values.PRODUCTS_MODEL_PB1}</em>{/if}<em>
{$order_values.PRODUCTS_ATTRIBUTES}</em><br>
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}<br>
<strong>{$order_values.PRODUCTS_NAME2}</strong>{if $order_values.PRODUCTS_MODEL_PB2 neq ''}<em><br />{$order_values.PRODUCTS_MODEL_PB2}</em>{/if}<em>
{$order_values.PRODUCTS_ATTRIBUTES2}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME2 neq ''}<br />Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME2}{/if}
{else}<strong>{$order_values.PRODUCTS_NAME}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES}</em><br>{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}{/if}</font></td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/account_history_info.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$order_values.PRODUCTS_NAME}</strong><em>{$order_values.PRODUCTS_ATTRIBUTES}</em>{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />
{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}<br />{/if}</font></td>
und ersetze es mit:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
{if $order_values.IS_BUNDLE}
<strong>{$order_values.PRODUCTS_NAME}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}{/if}<br>
<strong>{$order_values.PRODUCTS_NAME2}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES2}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME2 neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME2}{/if}
{else}<strong>{$order_values.PRODUCTS_NAME}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
{/if}</font></td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/order_details.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<td valign="top" class="main"><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong><br />
und ersetze es mit:
<td valign="top" class="main">
{if $module_data.IS_BUNDLE}
<strong>{$module_data.PRODUCTS_NAME}</strong><br />
{if $module_data.ATTRIBUTES!=''}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach key=key_data item=item_data from=$module_data.ATTRIBUTES}
<tr>
<td class="main">{$item_data.NAME}:</td>
<td class="main" align="left">{$item_data.VALUE_NAME}</td>
</tr>
{/foreach}
</table>
{/if}
{if $module_data.PRODUCTS_SHIPPING_TIME neq ""}{#text_shippingtime#} {$module_data.PRODUCTS_SHIPPING_TIME}<br>{/if}
<br>
<strong>{$module_data.PRODUCTS_NAME2}</strong><br />
{if $module_data.ATTRIBUTES2!=''}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach key=key_data item=item_data from=$module_data.ATTRIBUTES2}
<tr>
<td class="main">{$item_data.NAME}:</td>
<td class="main" align="left">{$item_data.VALUE_NAME}</td>
</tr>
{/foreach}
</table>
{/if}
{if $module_data.PRODUCTS_SHIPPING_TIME2 neq ""}{#text_shippingtime#} {$module_data.PRODUCTS_SHIPPING_TIME2}<br>{/if}
{else}
<strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong><br />
---------------------------------------------------------------------------------------------------
finde folgendes:
{/foreach}
</table>
{else}
{/if} </td>
<td valign="top" nowrap class="boxTextBG" style="border-right: 1px solid; border-color: #cccccc;" align="right">{$module_data.PRODUCTS_SINGLE_PRICE}</td>
<td valign="top" nowrap class="boxTextBG" style="border-right: 1px solid; border-color: #cccccc;" align="right">{$module_data.PRODUCTS_PRICE}
</td>
und ersetze es mit:
{/foreach}
</table>
{else}
{/if}
{/if}
</td>
<td valign="top" nowrap class="boxTextBG" style="border-right: 1px solid; border-color: #cccccc;" align="right">{$module_data.PRODUCTS_SINGLE_PRICE}</td>
<td valign="top" nowrap class="boxTextBG" style="border-right: 1px solid; border-color: #cccccc;" align="right">{$module_data.PRODUCTS_PRICE}
</td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/print_order.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$order_values.PRODUCTS_NAME}</strong><em>{$order_values.PRODUCTS_ATTRIBUTES}</em>{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />
{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}<br />{/if}</font></td>
und ersetze es mit:
<td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> {if $order_values.IS_BUNDLE}
<strong>{$order_values.PRODUCTS_NAME}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}{/if}<br>
<strong>{$order_values.PRODUCTS_NAME2}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES2}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME2 neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME2}{/if}
{else}<strong>{$order_values.PRODUCTS_NAME}</strong><em>
{$order_values.PRODUCTS_ATTRIBUTES}</em>
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
{/if}</font></td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/product_info/product_info_v1.html
---------------------------------------------------------------------------------------------------
finde folgendes:
{$FORM_END}
und füge danach ein:
{if $MODULE_product_bundle != ''}
<table width="100%" border="0">
<tr>
<td align="center">{$MODULE_product_bundle}<br /></td>
</tr>
</table>{/if}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/source/boxes/best_sellers.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if (GROUP_CHECK == 'true') {
$group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/source/boxes/last_viewed.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$group_check=" and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/source/boxes/specials.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
$fsk_lock = ' and p.products_fsk18!=1';
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/source/boxes/whats_new.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if (GROUP_CHECK == 'true') {
$group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
}
und füge danach ein:
$fsk_lock .= ' and p.products_model NOT LIKE "PB:%-%"';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
|