|
ECB SEO SHOP SOFTWARE - IMEDES SOFTWARE DOWNLOADS
*****************************************
* *
* INSTALLATION-GUIDE *
* *
*****************************************
* @package Extra Object *
* @compatible SP2.1 *
*****************************************
--------------
NEW FILES:
--------------
admin/flaeche.php
templates/xtc4/buttons/german/button_save.gif
templates/xtc4/module/product_info/product_info_extra_objects_v1.html
--------------
NEW DIRS:
--------------
imedes_library
includes/modules/flaeche
--------------
CHANGED FILES:
--------------
admin/includes/classes/categories.php
admin/includes/column_left.php
admin/includes/modules/new_product.php
admin/orders.php
admin/print_order.php
admin/print_packingslip.php
admin/products_attributes.php
checkout_confirmation.php
checkout_process.php
checkout_success.php
inc/xtc_get_prid.inc.php
inc/xtc_get_uprid.inc.php
includes/application_top.php
includes/cart_actions.php
includes/classes/order.php
includes/classes/shopping_cart.php
includes/header.php
includes/modules/order_details_cart.php
includes/modules/product_attributes.php
includes/modules/product_info.php
lang/german/admin/categories.php
lang/german/admin/german.php
lang/german/admin/orders.php
lang/german/german.php
lang/german/lang_german.conf
product_info.php
templates/xtc4/admin/print_order.html
templates/xtc4/admin/print_packingslip.html
templates/xtc4/mail/german/order_mail.html
templates/xtc4/mail/german/order_mail.txt
templates/xtc4/module/order_details.html
templates/xtc4/module/product_info/product_info_v1.html
templates/xtc4/module/product_options/product_options_dropdown.html
templates/xtc4/module/product_options/product_options_selection.html
templates/xtc4/module/product_options/table_listing.html
templates/xtc4/stylesheet.css
-------------
INSTALLATION:
-------------
1. ADOdb installieren
2. Datenkbankerweiterungen durchführen
ALTER TABLE `admin_access` ADD `flaeche` INT( 1 ) NOT NULL ;
UPDATE `admin_access` SET `flaeche` = '1' WHERE `customers_id` = '1' LIMIT 1 ;
ALTER TABLE `orders_products` ADD `flaeche_id` INT NULL ;
ALTER TABLE `products` ADD `has_flaeche` TINYINT NOT NULL DEFAULT '0';
CREATE TABLE `orders_products_flaeche` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`width` FLOAT NOT NULL ,
`length` FLOAT NOT NULL ,
`height` FLOAT NOT NULL ,
`products_id` INT NOT NULL
);
ALTER TABLE `customers_basket` CHANGE `products_id` `products_id` TEXT NOT NULL;
ALTER TABLE `products_options` ADD `calcmode` TINYINT( 1 ) NOT NULL ;
3. new_files und new_dirs kopieren.
4. changed_files kopieren, oder bei nicht standard-version folgende änderungen durchführen:
-admin/includes/classes/categories.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$sql_data_array = array ('products_quantity' => xtc_db_prepare_input($products_data['products_quantity']), 'products_model' => xtc_db_prepare_input($products_data['products_model']), 'products_ean' => xtc_db_prepare_input($products_data['products_ean']), 'products_price' => xtc_db_prepare_input($products_data['products_price']), 'products_sort' => xtc_db_prepare_input($products_data['products_sort']), 'products_shippingtime' => xtc_db_prepare_input($products_data['shipping_status']), 'products_discount_allowed' => xtc_db_prepare_input($products_data['products_discount_allowed']), 'products_date_available' => $products_date_available, 'products_weight' => xtc_db_prepare_input($products_data['products_weight']), 'products_status' => $products_status, 'products_startpage' => xtc_db_prepare_input($products_data['products_startpage']), 'products_startpage_sort' => xtc_db_prepare_input($products_data['products_startpage_sort']), 'products_tax_class_id' => xtc_db_prepare_input($products_data['products_tax_class_id']), 'product_template' => xtc_db_prepare_input($products_data['info_template']), 'options_template' => xtc_db_prepare_input($products_data['options_template']), 'manufacturers_id' => xtc_db_prepare_input($products_data['manufacturers_id']), 'products_fsk18' => xtc_db_prepare_input($products_data['fsk18']), 'products_vpe_value' => xtc_db_prepare_input($products_data['products_vpe_value']), 'products_vpe_status' => xtc_db_prepare_input($products_data['products_vpe_status']), 'products_vpe' => xtc_db_prepare_input($products_data['products_vpe']));
und ersetze es mit:
$sql_data_array = array ('products_quantity' => xtc_db_prepare_input($products_data['products_quantity']), 'products_model' => xtc_db_prepare_input($products_data['products_model']), 'products_ean' => xtc_db_prepare_input($products_data['products_ean']), 'products_price' => xtc_db_prepare_input($products_data['products_price']), 'products_sort' => xtc_db_prepare_input($products_data['products_sort']), 'products_shippingtime' => xtc_db_prepare_input($products_data['shipping_status']), 'products_discount_allowed' => xtc_db_prepare_input($products_data['products_discount_allowed']), 'products_date_available' => $products_date_available, 'products_weight' => xtc_db_prepare_input($products_data['products_weight']), 'products_status' => $products_status, 'products_startpage' => xtc_db_prepare_input($products_data['products_startpage']), 'products_startpage_sort' => xtc_db_prepare_input($products_data['products_startpage_sort']), 'products_tax_class_id' => xtc_db_prepare_input($products_data['products_tax_class_id']), 'product_template' => xtc_db_prepare_input($products_data['info_template']), 'options_template' => xtc_db_prepare_input($products_data['options_template']), 'manufacturers_id' => xtc_db_prepare_input($products_data['manufacturers_id']), 'products_fsk18' => xtc_db_prepare_input($products_data['fsk18']), 'products_vpe_value' => xtc_db_prepare_input($products_data['products_vpe_value']), 'products_vpe_status' => xtc_db_prepare_input($products_data['products_vpe_status']), 'products_vpe' => xtc_db_prepare_input($products_data['products_vpe']), 'has_flaeche' => xtc_db_prepare_input($products_data['products_flaeche']));
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/includes/column_left.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['orders'] == '1')) echo '<a href="' . xtc_href_link(FILENAME_ORDERS, '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_ORDERS . '</a><br>';
und füge danach ein:
echo ('<div class="dataTableHeadingContent"><b>'."Individualberechnung".'</b></div>');
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['categories'] == '1')) echo '<a href="' . xtc_href_link("flaeche.php", '', 'NONSSL') . '" class="menuBoxContentLink"> -' . "Einstellungen" . '</a><br>';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/includes/modules/new_product.php
---------------------------------------------------------------------------------------------------
finde folgendes:
<td><span class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></span></td>
<td><span class="main"><?php echo xtc_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></span></td>
</tr>
<tr>
und ersetze es mit:
<td><span class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></span></td>
<td><span class="main"><?php echo xtc_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></span></td>
</tr>
<!-- TBEGIN flaeche -->
<tr>
<td><span class="main"><?php echo TEXT_PRODUCTS_FLAECHE.xtc_draw_selection_field('products_flaeche', 'checkbox', '1',$pInfo->has_flaeche== true ? true : false); ?>
</tr>
<!-- TEND flaeche -->
<tr>
</td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/orders.php
---------------------------------------------------------------------------------------------------
finde folgendes:
require_once (DIR_FS_INC.'xtc_get_attributes_model.inc.php');
und füge danach ein:
// TBEGIN extra_object
require_once(DIR_FS_CATALOG . DIR_WS_MODULES . "/flaeche/flaeche.php");
require_once(DIR_FS_CATALOG . DIR_WS_MODULES . "/flaeche/admin_functions.php");
// TEND extra_object
---------------------------------------------------------------------------------------------------
finde folgendes (ca. zeile 472):
echo '</i></small></nobr>';
}
und füge danach ein:
if(extra_object::has_extra_object_defined($order->products[$i]['id']) && getOption("ENABLED") == "ON"){
$flaeche = new extra_object();
$flaeche->init_fromDb($order->products[$i]['opid']);
echo "<br/><small> -" . WIDTH . ": " . $flaeche->width . " " . $flaeche->unit_a . "<br/>";
echo "-" . LENGTH. ": " . $flaeche->length. " " . $flaeche->unit_a . "<br/>";
if($flaeche->volume == "volumen")
echo "-" . HEIGHT . ": " . $flaeche->height. " " . $flaeche->unit_a . "<br/>";
echo "</small>";
}
---------------------------------------------------------------------------------------------------
finde folgendes:
$contents[] = array ('text' => '<small> <i> - '.$order->products[$i]['attributes'][$j]['option'].': '.$order->products[$i]['attributes'][$j]['value'].'</i></small></nobr>');
}
}
und füge danach ein:
if(extra_object::has_extra_object_defined($order->products[$i]['id']) && getOption("ENABLED") == "ON"){
$flaeche = new extra_object();
$flaeche->init_fromDb($order->products[$i]['opid']);
$contents[] = array('text' => "<br/><small> -" . WIDTH . ": " . $flaeche->width . " " . $flaeche->unit_a . "<br/>" . "-" . LENGTH. ": " . $flaeche->length. " " . $flaeche->unit_a . "<br/>");
if($flaeche->volume == "volumen")
$contents[] = array('text' => "-" . HEIGHT . ": " . $flaeche->height. " " . $flaeche->unit_a . "<br/>");
$contents[] = array('text' => "</small>");
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/print_order.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$order_data[]=array(
'PRODUCTS_MODEL' => $order_data_values['products_model'],
'PRODUCTS_NAME' => $order_data_values['products_name'],
und ersetze es mit:
// TBEGIN flaeche
require_once(DIR_FS_CATALOG . DIR_WS_MODULES . "/flaeche/flaeche.php");
if(extra_object::has_extra_object_defined($order_data_values['products_id']) && getOption("ENABLED") == "ON"){
$flaeche = new extra_object();
$flaeche->init_fromDb($order_data_values['orders_products_id']);
}
$order_data[]=array(
'PRODUCTS_MODEL' => $order_data_values['products_model'],
'FLAECHE' => $flaeche,
'PRODUCTS_NAME' => $order_data_values['products_name'],
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/print_packingslip.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$order_data[]=array(
'PRODUCTS_MODEL' => $order_data_values['products_model'],
'PRODUCTS_NAME' => $order_data_values['products_name'],
und ersetze es mit:
// TBEGIN flaeche
require_once(DIR_FS_CATALOG . DIR_WS_MODULES . "/flaeche/flaeche.php");
if(extra_object::has_extra_object_defined($order_data_values['products_id']) && getOption("ENABLED") == "ON"){
$flaeche = new extra_object();
$flaeche->init_fromDb($order_data_values['orders_products_id']);
}
$order_data[]=array(
'PRODUCTS_MODEL' => $order_data_values['products_model'],
'FLAECHE' => $flaeche,
'PRODUCTS_NAME' => $order_data_values['products_name'],
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-admin/products_attributes.php
---------------------------------------------------------------------------------------------------
finde folgendes:
case 'add_product_options':
for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
$option_name = $_POST['option_name'];
xtc_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id) values ('" . $_POST['products_options_id'] . "', '" . $option_name[$languages[$i]['id']] . "', '" . $languages[$i]['id'] . "')");
}
xtc_redirect(xtc_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
break;
und ersetze es mit:
case 'add_product_options':
// TBEGIN extra_object
if($_POST['calcmode'] == "after") $calcmode = 1;
else $calcmode = 0;
for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
$option_name = $_POST['option_name'];
xtc_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id,calcmode) values ('" . $_POST['products_options_id'] . "', '" . $option_name[$languages[$i]['id']] . "', '" . $languages[$i]['id'] . "'," . $calcmode.")");
}
xtc_redirect(xtc_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
break;
---------------------------------------------------------------------------------------------------
finde folgendes:
case 'update_option_name':
for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
$option_name = $_POST['option_name'];
xtc_db_query("update " . TABLE_PRODUCTS_OPTIONS . " set products_options_name = '" . $option_name[$languages[$i]['id']] . "' where products_options_id = '" . $_POST['option_id'] . "' and language_id = '" . $languages[$i]['id'] . "'");
}
xtc_redirect(xtc_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
break;
und ersetze es mit:
case 'update_option_name':
// TBEGIN extra_object
if($_POST['calcmode'] == "after") $calcmode = 1;
else $calcmode = 0;
for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
$option_name = $_POST['option_name'];
xtc_db_query("update " . TABLE_PRODUCTS_OPTIONS . " set calcmode = " . $calcmode . ",products_options_name = '" . $option_name[$languages[$i]['id']] . "' where products_options_id = '" . $_POST['option_id'] . "' and language_id = '" . $languages[$i]['id'] . "'");
// TEND extra_object
}
xtc_redirect(xtc_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
break;
---------------------------------------------------------------------------------------------------
finde folgendes:
$option_name = xtc_db_query("select products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . $options_values['products_options_id'] . "' and language_id = '" . $languages[$i]['id'] . "'");
und ersetze es mit:
$option_name = xtc_db_query("select products_options_name,calcmode from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . $options_values['products_options_id'] . "' and language_id = '" . $languages[$i]['id'] . "'");
---------------------------------------------------------------------------------------------------
finde folgendes:
<td align="center" class="smallText"> <?php echo $options_values['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values['products_options_id']; ?>"> </td>
<td class="smallText"><?php echo $inputs; ?></td>
und ersetze es mit:
<td align="center" class="smallText"> <?php echo $options_values['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values['products_options_id']; ?>"> </td>
<td class="smallText"><?php echo $inputs; ?>
<!-- TBEGIN extra_object -->
<br/>
<?php
echo ON_CALC;
if($options_values['calcmode']) $afterchecked = true;
else $beforechecked = true;
echo xtc_draw_radio_field("calcmode","before", $beforechecked) . BEFORCE_CALC;
echo xtc_draw_radio_field("calcmode","after", $afterchecked) . AFTER_CALC;
?>
<!-- TEND extra_object -->
</td>
---------------------------------------------------------------------------------------------------
finde folgendes:
<td align="center" class="smallText"> <?php echo $next_id; ?> </td>
<td class="smallText"><?php echo $inputs; ?></td>
und ersetze es mit:
<td align="center" class="smallText"> <?php echo $next_id; ?> </td>
<td class="smallText"><?php echo $inputs; ?>
<br/>
<!-- TBEGIN extra_module -->
<?php
echo xtc_draw_radio_field("calcmode","before") . BEFORCE_CALC;
echo xtc_draw_radio_field("calcmode","after") . AFTER_CALC;
?>
<!-- TEND extra_module -->
</td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-checkout_confirmation.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if ((isset ($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0)) {
for ($j = 0, $n2 = sizeof($order->products[$i]['attributes']); $j < $n2; $j++) {
$data_products .= '<tr>
und füge davor ein:
// TBEGIN flaeche
if($order->products[$i]['flaeche'] != null){
$flaeche = $order->products[$i]['flaeche'];
$data_products .= "<tr><td>" . WIDTH .": " . $flaeche->width . " " . $flaeche->unit_a . "</td></tr>";
$data_products .= "<tr><td>" . LENGTH . ": " . $flaeche->length. " " . $flaeche->unit_a . "</td></tr>";
if($flaeche->volume == "volumen")
$data_products .= "<tr><td>" . HEIGHT .": " . $flaeche->height. " " . $flaeche->unit_a . "</td></tr>";
}
// TEND flaeche
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-checkout_process.php
---------------------------------------------------------------------------------------------------
finde folgendes:
xtc_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
$order_products_id = xtc_db_insert_id();
und füge danach ein:
// TBEGIN flaeche
$flaeche = $order->products[$i]['flaeche'];
if($flaeche != null) {
$tmpquery = "INSERT INTO orders_products_flaeche (width, length, height, products_id) VALUES " .
"(" . $flaeche->width . "," . $flaeche->length . "," . $flaeche->height ."," . $order_products_id. ")";
$tmpresult = xtc_db_query($tmpquery);
}
// TEND flaeche
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-checkout_success.php
---------------------------------------------------------------------------------------------------
finde folgendes:
if (DOWNLOAD_ENABLED == 'true')
und füge davor ein:
// TBEGIN flaeche
require_once('imedes_library/extra_objects_1.php');
if(getOption("ALLOW_UPLOAD" == "ON")){
$smarty->assign("UPLOAD_FORM_ACTION", xtc_href_link('checkout_success.php','action=upload'));
$smarty->assign("ORDERS_ID", $last_order);
require_once(DIR_FS_CATALOG . DIR_WS_CLASSES ."/order.php");
require_once(DIR_FS_CATALOG . DIR_WS_MODULES ."/flaeche/flaeche.php");
$order = new order($last_order);
$needed_upload = array();
foreach($order->products as $product){
if(extra_object::has_extra_object_defined($product['id'])){
$needed_upload[] = $product;
}
}
if(sizeof($needed_upload) >0)
$smarty->assign("NEEDED_UPLOAD", $needed_upload);
}
// TEND flaeche
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-inc/xtc_get_prid.inc.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$pieces = explode('{', $uprid);
und ersetze es mit:
// TBEGIN extra_object
// split out extra object before we continue
$allpieces = explode("n", $uprid);
$pieces = explode('{', $allpieces[0]);
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-inc/xtc_get_uprid.inc.php
---------------------------------------------------------------------------------------------------
finde folgendes:
function xtc_get_uprid($prid, $params) {
und ersetze es mit:
// TBEGIN extra_object
function xtc_get_uprid($prid, $params, $extra_object = null) {
// TEND extra_object
---------------------------------------------------------------------------------------------------
finde folgendes:
$uprid .= $attributes_ids;
}
}
und füge danach ein:
// TBEGIN extra_object
if($extra_object != null)
$uprid .= "n" . $extra_object->serialize($extra_object) . "m";
// TEND extra object
---------------------------------------------------------------------------------------------------
finde folgendes:
if (is_numeric($uprid)) {
und füge danach ein:
return $prid;
// TBEGIN extra object
/* if(strpos($prid,'[') !== false){
$allpieces = explode("[", $prid);
$prid = $allpices[0];
$allpieces = explode("]", $allpieces[0]);
}
*/ // TEND extra object
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/application_top.php
---------------------------------------------------------------------------------------------------
finde folgendes:
session_id($_GET[session_name()]);
}
und füge danach ein:
// TBEGIN flaeche
require(DIR_WS_MODULES . "/flaeche/flaeche.php");
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/cart_actions.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i]));
und ersetze es mit:
$old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i], $flaeche));
---------------------------------------------------------------------------------------------------
finde folgendes:
$_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id']);
und ersetze es mit:
// TBEGIN flaeche
require_once('imedes_library/extra_objects_1.php');
if(extra_object::has_extra_object_defined($_POST['products_id']) && getOption("ENABLED") == "ON"){
$lim = new flaeche();
$width = (float) $_POST['width'];
$length = (float) $_POST['length'];
$height = (float) $_POST['height'];
if(
$lim->minwidth > $width ||
$lim->maxwidth < $width ||
(($lim->minheight > $height ||
$lim->maxheight < $height) && $height != 0) ||
$lim->minlength > $length ||
$lim->maxlength < $length) {
xtc_redirect(xtc_href_link("product_info.php","products_id=" . $_POST['products_id'] ."&dimerror=1"));
}
$flaeche = new extra_object($_POST['width'],$_POST['length'],$_POST['height'], $_POST['calcprice']);
}
$_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'], $flaeche)) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id'], false, $flaeche);
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/classes/order.php
---------------------------------------------------------------------------------------------------
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:
// TBEGIN extra_object
if(extra_object::has_extra_object_defined($order_data_values['products_id'])){
$flaeche = new extra_object();
$flaeche->init_fromDb($order_data_values['orders_products_id']);
$order_data[] = array ('PRODUCTS_MODEL' => $order_data_values['products_model'], 'FLAECHE' => $flaeche, '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']);
} else{
$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']);
}
// TEND extra_object
---------------------------------------------------------------------------------------------------
finde folgendes:
$index = 0;
$products = $_SESSION['cart']->get_products();
for ($i=0, $n=sizeof($products); $i<$n; $i++) {
und füge danach ein:
// TBEGIN flaeche
$flaeche = $products[$i]['flaeche'];
if($flaeche != null){
/*$products_price=$flaeche->getPrice($xtPrice->xtcGetPrice($products[$i]['id'],
$format=false,
$products[$i]['quantity'],
$products[$i]['tax_class_id'],
''))+$xtPrice->xtcFormat($_SESSION['cart']->attributes_price($products[$i]['id']),false); */
$products_price= $flaeche->getPrice();
}else{
---------------------------------------------------------------------------------------------------
finde folgendes:
$this->products[$index] = array('qty' => $products[$i]['quantity'],
'name' => $products[$i]['name'],
'model' => $products[$i]['model'],
und ersetze es mit:
}
$this->products[$index] = array('qty' => $products[$i]['quantity'],
'name' => $products[$i]['name'],
'flaeche' => $products[$i]['flaeche'],
'model' => $products[$i]['model'],
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/classes/shopping_cart.php
---------------------------------------------------------------------------------------------------
finde folgendes:
function add_cart($products_id, $qty = '1', $attributes = '', $notify = true) {
global $new_products_id_in_cart;
$products_id = xtc_get_uprid($products_id, $attributes);
if ($notify == true) {
$_SESSION['new_products_id_in_cart'] = $products_id;
}
und ersetze es mit:
// TBEGIN extra_object
function add_cart($products_id, $qty = '1', $attributes = '', $notify = true, $extra_object=null) {
global $new_products_id_in_cart;
$products_id = xtc_get_uprid($products_id, $attributes, $extra_object);
if ($notify == true) {
$_SESSION['new_products_id_in_cart'] = $products_id;
}
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($notify == true) {
$_SESSION['new_products_id_in_cart'] = $products_id;
}
if ($this->in_cart($products_id)) {
$this->update_quantity($products_id, $qty, $attributes);
} else {
$this->contents[] = array ($products_id);
$this->contents[$products_id] = array ('qty' => $qty);
// insert into database
if (isset ($_SESSION['customer_id']))
und ersetze es mit:
if ($notify == true) {
$_SESSION['new_products_id_in_cart'] = $products_id;
}
if ($this->in_cart($products_id)) {
// TBEGIN extra_object
$this->update_quantity($products_id, $qty, $attributes,false);
} else {
$this->contents[] = array ($products_id);
$this->contents[$products_id] = array ('qty' => $qty, 'flaeche' => $extra_object);
// insert into database
if (isset ($_SESSION['customer_id']))
---------------------------------------------------------------------------------------------------
finde folgendes:
function update_quantity($products_id, $quantity = '', $attributes = '') {
und ersetze es mit:
function update_quantity($products_id, $quantity = '', $attributes = '', $notify = false) {
---------------------------------------------------------------------------------------------------
finde folgendes:
$products_price = $xtPrice->xtcGetPrice($product['products_id'], $format = false, $qty, $product['products_tax_class_id'], $product['products_price']);
und füge danach ein:
// TBEGIN extra_object
$flaeche = extra_object::from_id($products_id);
if($flaeche != null){
$products_price = $flaeche->getPrice($products_price);
}
// TEND flaeche
---------------------------------------------------------------------------------------------------
finde folgendes:
if (isset ($this->contents[$products_id]['attributes'])) {
reset($this->contents[$products_id]['attributes']);
while (list ($option, $value) = each($this->contents[$products_id]['attributes'])) {
und füge davor ein:
// TBEGIN extra_object Attribute calculation is done within getPrice()
if(!extra_object::has_extra_object_defined(xtc_get_prid($products_id))){
---------------------------------------------------------------------------------------------------
finde folgendes:
}
}
}
}
und ersetze es mit.
}
}
}
} // TEND
}
---------------------------------------------------------------------------------------------------
finde folgendes:
if ($products = xtc_db_fetch_array($products_query)) {
$prid = $products['products_id'];
$products_price = $xtPrice->xtcGetPrice($products['products_id'], $format = false, $this->contents[$products_id]['qty'], $products['products_tax_class_id'], $products['products_price']);
$products_array[] = array ('id' => $products_id, 'name' => $products['products_name'], 'model' => $products['products_model'], 'image' => $products['products_image'], 'price' => $products_price + $this->attributes_price($products_id), 'quantity' => $this->contents[$products_id]['qty'], 'weight' => $products['products_weight'],'shipping_time' => $main->getShippingStatusName($products['products_shippingtime']), 'final_price' => ($products_price + $this->attributes_price($products_id)), 'tax_class_id' => $products['products_tax_class_id'], 'attributes' => $this->contents[$products_id]['attributes']);
}
}
}
return $products_array;
und ersetze es mit:
if ($products = xtc_db_fetch_array($products_query)) {
$prid = $products['products_id'];
// TBEGIN flaeche
$products_price = $xtPrice->xtcGetPrice($products['products_id'], $format = false, $this->contents[$products_id]['qty'], $products['products_tax_class_id'], $products['products_price']);
$flaeche = extra_object::from_id($products_id);
if($flaeche != null){
$products_array[] = array ('id' => $products_id, 'flaeche' => $flaeche, 'name' => $products['products_name'], 'model' => $products['products_model'], 'image' => $products['products_image'], 'price' => $flaeche->getPrice($products_price) + $this->attributes_price($products_id), 'quantity' => $this->contents[$products_id]['qty'], 'weight' => $products['products_weight'],'shipping_time' => $main->getShippingStatusName($products['products_shippingtime']), 'final_price' => $flaeche->getPrice($products_price) + $this->attributes_price($products_id) , 'tax_class_id' => $products['products_tax_class_id'], 'attributes' => $this->contents[$products_id]['attributes']);
}
else{
$products_array[] = array ('id' => $products_id, 'name' => $products['products_name'], 'model' => $products['products_model'], 'image' => $products['products_image'], 'price' => $products_price + $this->attributes_price($products_id), 'quantity' => $this->contents[$products_id]['qty'], 'weight' => $products['products_weight'],'shipping_time' => $main->getShippingStatusName($products['products_shippingtime']), 'final_price' => ($products_price + $this->attributes_price($products_id)), 'tax_class_id' => $products['products_tax_class_id'], 'attributes' => $this->contents[$products_id]['attributes']);
}
}
}
}
return $products_array;
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/header.php
---------------------------------------------------------------------------------------------------
finde folgendes:
<link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />
und füge danach ein:
<!-- TBEGIN flaeche -->
<?php
require_once( DIR_WS_MODULES . "/flaeche/flaeche.php");
if($include_extra_object && extra_object::has_extra_object_defined($include_prod_id)){ ?>
<script type="text/javascript">
function kaufm(x) {
var k = (Math.round(x * 100) / 100).toString();
k += (k.indexOf('.') == -1)? '.00' : '00';
var p = k.indexOf('.');
return k.substring(0, p) + ',' + k.substring(p+1, p+3);
}
function isANumber(n){
var s = "" + n;
var ziffern = "0123456789.,";
for (var i=0; i<s.length; i++)
if (ziffern.indexOf(s.charAt(i))==-1)
return false;
return true;
}
function calc_volume() {
var width = document.getElementsByName("width")[0].value;
width = width.replace(",",".");
var length= document.getElementsByName("length")[0].value;
length = length.replace(",",".");
if(document.getElementsByName("height")[0]){
var height = document.getElementsByName("height")[0].value;
height = height.replace(",",".");
}
else{
var height=1;
}
if(!isANumber(width) || !isANumber(height) || !isANumber(length)){
return;
}
var price= document.getElementsByName("std_price")[0].value;
var attrib_sum_before = 0.0; var attrib_sum_after = 0.0;
// attribute prices
var tmpmaxattr = document.getElementById('attrib_range');
if(tmpmaxattr != null && tmpmaxattr != undefined)
var maxattr = tmpmaxattr.value;
for (var i = 1; i <= maxattr; i++){
var tmpIndex = "id[" + i + "]";
var z = document.getElementsByName(tmpIndex);
var id;
for(var j=0; j< z.length; j++){
var item = z[j];
if(item.type == "radio" && item.checked){
id = item.value;
}
if(item.type == "select-one"){
id = item.options[item.selectedIndex].value;
}
}
var tmpCalcMode=document.getElementsByName("calc" + tmpIndex)[0].value;
if(tmpCalcMode != undefined){
if(tmpCalcMode == "before") attrib_sum_before = attrib_sum_before + lookupPrice(id);
if(tmpCalcMode == "after") attrib_sum_after = attrib_sum_after + lookupPrice(id);
}
}
var volume = width * length * height;
document.getElementsByName("calcresult")[0].value= kaufm(volume);
var price_before= parseFloat(price) + attrib_sum_before;
document.getElementsByName("price")[0].value = kaufm(price_before);
document.getElementsByName("calcprice")[0].value= kaufm((volume * price_before) + attrib_sum_after);
}
function lookupPrice(id){
var tmpIndex = "priceid" + id;
var price = document.getElementById("priceid" + id);
if(price != null){
return parseFloat(price.value);
}
else{
return 0.0;
}
}
function convFloat(num){
num = num.replace(".","");
num = num.replace(",",".");
return num;
}
</script>
<?php } ?>
<!-- TEND flaeche -->
---------------------------------------------------------------------------------------------------
finde folgendes:
echo '<body>';
und ersetze es mit:
if($include_extra_object && extra_object::has_extra_object_defined($include_prod_id))
echo '<body onload="calc_volume()";>';
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-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:
// TBEGIN flaeche
$extra_object = extra_object::from_id($products[$i]['id']);
if($extra_object != null){
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock,
'FLAECHE' => $extra_object,
'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((float) $extra_object->unitprice * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$xtPrice->xtcFormat((float) $extra_object->unitprice,true), 'PRODUCTS_SHORT_DESCRIPTION' => xtc_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');
}
else{
$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' => '');
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/modules/product_attributes.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$products_options_name_query = xtDBquery("select distinct popt.products_options_id, popt.products_options_name from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$product->data['products_id']."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."' order by popt.products_options_name");
und ersetze es mit:
// TBEGIN extra_object
$products_options_name_query = xtDBquery("select distinct popt.products_options_id, popt.products_options_name, popt.calcmode from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$product->data['products_id']."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."' order by popt.products_options_name");
---------------------------------------------------------------------------------------------------
finde folgendes:
$products_options_data[$row] = array ('NAME' => $products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'DATA' => '');
und ersetze es mit:
$products_options_data[$row] = array ('NAME' => $products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'CALCMODE' => $products_options_name['calcmode'], 'DATA' => '');
---------------------------------------------------------------------------------------------------
finde folgendes:
$module_smarty->assign('language', $_SESSION['language']);
und füge danach ein:
// TBEGIN extra_object
// price <-> options_values mapping
// we hide important information that is need by javascript for calculation
//$attrib_mapping = "<form name='attrib_mapping'>";
if(sizeof($products_options_data) > 0){
foreach($products_options_data as $option){
foreach($option["DATA"] as $attrib){
if($attrib["ID"] && $attrib["PRICE"]){
$tmpprice = explode(" ",trim($attrib["PRICE"]));
$price = (float) str_replace(",",".",$tmpprice[0]);
if($attrib["PREFIX"] == "-") $price *= -1;
$attrib_mapping .= "<input id='priceid" . $attrib["ID"] . "' type=hidden style='display:none;' value='" . $price ."'>\n";
}
}
if($option["CALCMODE"] == 1)
$attrib_mapping .= "<input type=hidden name='calcid[" .$option["ID"] . "]' value='after' style='display:none'>";
else
$attrib_mapping .= "<input type=hidden name='calcid[" .$option["ID"] . "]' value='before' style='display:none'>";
}
}
$attrib_mapping .= "<input id='attrib_range' value='" . sizeof($products_options_data) . "' style='display:none;'>";
//$attrib_mapping .= "</form>";
$module_smarty->assign('ATTRIB_MAPPING', $attrib_mapping);
$flaeche = new flaeche();
$module_smarty->assign('FLAECHE_META', $flaeche);
// TEND extra_object
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-includes/modules/product_info.php
---------------------------------------------------------------------------------------------------
finde folgendes:
$info_smarty->assign('PRODUCTS_TAX_INFO', $tax_info);
$info_smarty->assign('PRODUCTS_SHIPPING_LINK',$main->getShippingLink());
}
und füge danach ein:
// TBEGIN flaeche
require_once('imedes_library/extra_objects_1.php');
if(extra_object::has_extra_object_defined($product->data['products_id']) && getOption("ENABLED") == "ON" ){
$flaeche = new flaeche();
$flaeche->simplePrice = $products_price['plain'];
$info_smarty->assign('FLAECHE', $flaeche);
if($_GET['dimerror'])
$info_smarty->assign('FLAECHE_ERROR', true);
}
// TEND flaeche
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/admin/categories.php
---------------------------------------------------------------------------------------------------
finde folgendes:
?>
und füge davor ein:
define('TEXT_PRODUCTS_FLAECHE','Flächenberechnung aktivieren:');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/admin/german.php
---------------------------------------------------------------------------------------------------
finde folgendes:
?>
und füge davor ein:
// TBEGIN extra_object
define('ON_CALC', "Verhalten bei Flaechenberechnung:");
define('BEFORCE_CALC', "Vor Berechnung aufschlagen");
define('AFTER_CALC', "Nach Berechnung aufschlagen");
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/admin/orders.php
---------------------------------------------------------------------------------------------------
finde folgendes:
?>
und füge davor ein:
define('WIDTH','Breite');
define('LENGTH','Länge');
define('HEIGHT','Höhe');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/german.php
---------------------------------------------------------------------------------------------------
finde folgendes:
?>
und füge davor ein:
// TBEGIN flaeche
define('WIDTH', 'Breite');
define('HEIGHT', 'Höhe');
define('LENGTH', 'Länge');
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-lang/german/lang_german.conf
---------------------------------------------------------------------------------------------------
am Ende einfügen:
[flaeche]
calculation = "Abmessungen"
calculate = "Berechnen"
width = "Breite"
height= "Höhe"
length= "Länge"
area= "Fläche"
volume = "Volumen"
price = "Preis"
dimerror = "FEHLER: Achten Sie bitte auf die angegebenen Mindest-und Höchstmaße"
minmax = 'min./max.'
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-product_info.php
---------------------------------------------------------------------------------------------------
finde folgendes:
include (DIR_WS_MODULES.'product_info.php');
und füge danach ein:
// include javascript
require_once('imedes_library/extra_objects_1.php');
if(getOption("ENABLED")=="ON")
$include_extra_object = true;
$include_prod_id=$product->pID;
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/admin/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></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"><strong>{$order_values.PRODUCTS_NAME}</strong><em>{$order_values.PRODUCTS_ATTRIBUTES}
<br/>
{if $order_values.FLAECHE != null}
Breite: {$order_values.FLAECHE->width} {$order_values.FLAECHE->unit_a}
Laenge: {$order_values.FLAECHE->length} {$order_values.FLAECHE->unit_a}
{if $order_values.FLAECHE->volume == "volumen"}
Hoehe: {$order_values.FLAECHE->height} {$order_values.FLAECHE->unit_a}
{/if}
{/if}
</em></font>
</td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/admin/print_packingslip.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></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"><strong>{$order_values.PRODUCTS_NAME}</strong><em>{$order_values.PRODUCTS_ATTRIBUTES}
<br/>
{if $order_values.FLAECHE != null}
Breite: {$order_values.FLAECHE->width} {$order_values.FLAECHE->unit_a}
Laenge: {$order_values.FLAECHE->length} {$order_values.FLAECHE->unit_a}
{if $order_values.FLAECHE->volume == "volumen"}
Hoehe: {$order_values.FLAECHE->height} {$order_values.FLAECHE->unit_a}
{/if}
{/if}
</em></font></td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/mail/german/order_mail.html
---------------------------------------------------------------------------------------------------
finde folgendes:
{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
und füge davor ein:
{if $order_values.FLAECHE != null}
Breite: {$order_values.FLAECHE->width} {$order_values.FLAECHE->unit_a}
Laenge: {$order_values.FLAECHE->length} {$order_values.FLAECHE->unit_a}
{if $order_values.FLAECHE->volume == "volumen"}
Hoehe: {$order_values.FLAECHE->height} {$order_values.FLAECHE->unit_a}
{/if}
{/if}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/mail/german/order_mail.txt
---------------------------------------------------------------------------------------------------
Zeile: 23
----------------------------------------------------------------------
finde folgendes:
{$order_values.PRODUCTS_QTY} x {$order_values.PRODUCTS_NAME} {$order_values.PRODUCTS_PRICE}
und füge danach ein:
{if $order_values.FLAECHE != null}
Breite: {$order_values.FLAECHE->width} {$order_values.FLAECHE->unit_a}
Laenge: {$order_values.FLAECHE->length} {$order_values.FLAECHE->unit_a}
{if $order_values.FLAECHE->volume == "volumen"}
Hoehe: {$order_values.FLAECHE->height} {$order_values.FLAECHE->unit_a}
{/if}
{/if}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/order_details.html
---------------------------------------------------------------------------------------------------
finde folgendes:
{config_load file="$language/lang_$language.conf" section="product_info"}
und füge danach ein:
{config_load file="$language/lang_$language.conf" section="flaeche"}
---------------------------------------------------------------------------------------------------
finde folgendes:
{/foreach}
</table>
{else}
{/if} </td>
und ersetze es mit:
{/foreach}
</table>
{else}
{/if}
{if $module_data.FLAECHE != 0}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<!-- TBEGIN flaeche -->
<tr>
<td class="main">
{#width#}:
</td>
<td class="main">
{$module_data.FLAECHE->width} {$module_data.FLAECHE->unit_a}
</td>
</tr>
<tr>
<td class="main">
{#length#}:
</td>
<td class="main">
{$module_data.FLAECHE->length} {$module_data.FLAECHE->unit_a}
</td>
</tr>
{if $module_data.FLAECHE->volume == "volumen"}
<tr>
<td class="main">
{#height#}:
</td>
<td class="main">
{$module_data.FLAECHE->height} {$module_data.FLAECHE->unit_a}
</td>
</tr>
{/if}
</table>
{/if}
<!-- TEND flaeche -->
</td>
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/product_info/product_info_v1.html
---------------------------------------------------------------------------------------------------
finde folgendes:
{config_load file="$language/lang_$language.conf" section="product_info"}
und füge danach ein:
{config_load file="$language/lang_$language.conf" section="flaeche"}
---------------------------------------------------------------------------------------------------
finde folgendes:
<td align="right"><strong>{$PRODUCTS_PRICE}</strong><br />{$PRODUCTS_TAX_INFO}{if $PRODUCTS_SHIPPING_LINK}{$PRODUCTS_SHIPPING_LINK}{/if}</td>
und ersetze es mit:
<td align="right">
{if $FLAECHE != null}
<strong>{$PRODUCTS_PRICE}/{$FLAECHE->unit_b}</strong><br />
{else}
<strong>{$PRODUCTS_PRICE}</strong><br />
{/if}
{$PRODUCTS_TAX_INFO}{if $PRODUCTS_SHIPPING_LINK}{$PRODUCTS_SHIPPING_LINK}{/if}</td>
---------------------------------------------------------------------------------------------------
finde folgendes:
<tr>
<td>{$ADD_QTY}</td>
<td>{$ADD_CART_BUTTON}</td>
und füge davor ein:
{if $FLAECHE != null}
<!--TBEGIN flaeche -->
<tr>
<td> {#calculation#}<br/>
{if $FLAECHE_ERROR} <span style="color: red; font-weight: bold;">{#dimerror#}</span>{/if}
<table width="*">
<tr>
<td>{#width#}:</td>
<td><input type="text" name="width" size="5" value="1,00" onKeyUp="javascript: calc_volume();">({$FLAECHE->minwidth}-{$FLAECHE->maxwidth} {$FLAECHE->unit_a})</td>
</tr>
<tr>
<td>{#length#}:</td>
<td><input type="text" name="length" size="5" value="1,00" onKeyUp="javascript: calc_volume();">({$FLAECHE->minlength}-{$FLAECHE->maxlength} {$FLAECHE->unit_a})</td>
</tr>
{if $FLAECHE->volume == "volumen"}
<tr>
<td>{#height#}:</td>
<td><input type="text" name="height" size="5" value="1,00" onKeyUp="javascript: calc_volume();">({$FLAECHE->minheight}-{$FLAECHE->maxheight} {$FLAECHE->unit_a})</td>
</tr>
{/if}
<tr>
<td></td>
<td><input value="{#calculate#}" type="button" onClick="javascript:calc_volume();"> </td>
</tr>
{* Ergebnis *}
<tr>
<td>Preis pro {$FLAECHE->unit_b}</td>
<td><input type="text" name="price" size="5" value="" readonly="true">
<input type="hidden" name="std_price" value="{$FLAECHE->simplePrice}" size="5" readonly="true" style="display: none;">
</td>
</tr>
<tr>
<td>{if $FLAECHE->volume =="volumen"}{#volume#}{else}{#area#}{/if}:</td>
<td><input type="text" name="calcresult" size="5" readonly="true"></td>
</tr>
<tr>
<td>{#price#}:</td>
<td>
<input type="text" name="calcprice" size="5" readonly="true">
</td>
</tr>
</table>
{/if}
</td>
</tr>
<!--TEND flaeche-->
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/product_options/product_options_dropdown.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<table width="100" border="0" cellspacing="0" cellpadding="0">
{foreach name=outer item=options_data from=$options}
<tr>
<td class="main"><b>{$options_data.NAME}:</b> </td>
<td>
<select name="id[{$options_data.ID}]">
{foreach key=key_data item=item_data from=$options_data.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE}{/if} </option>
{/foreach}
</select>
</td>
</tr>
{/foreach}
und ersetze es mit:
<table width="100" border="0" cellspacing="0" cellpadding="0">
{$ATTRIB_MAPPING}
{foreach name=outer item=options_data from=$options}
<tr>
<td class="main"><b>{$options_data.NAME}:</b> </td>
<td>
<select name="id[{$options_data.ID}]" onChange="javascript: calc_volume();">
{foreach key=key_data item=item_data from=$options_data.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE}{/if} </option>
{/foreach}
</select>
{if $options_data.CALCMODE == 1}
Aufschlag einmalig
{else}
Zuschlag pro {$FLAECHE_META->unit_b}
{/if}
</td>
</tr>
{/foreach}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/product_options/product_options_selection.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<table width="100" border="0" cellspacing="0" cellpadding="0">
{foreach name=outer item=options_data from=$options}
<tr>
<td valign="top" class="main"><b>{$options_data.NAME}:</b> </td>
<td class="main">
{foreach key=key_data item=item_data from=$options_data.DATA}
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" checked="checked" />
{$item_data.TEXT} {if $item_data.PRICE!=''}( {$item_data.PREFIX}{$item_data.PRICE} ){/if}<br />
{/foreach}
und ersetze es mit:
{*
ATTRIB_MAPPING ist notwendig fuer das Javascript, kann irgendwo platziert werden da unsichtbar - allerdings NICHT
innerhalb von FORM
Weiterhin muss jedes "Attribu-Auswahlfeld irgend eine Art von onClick="javascript:calc_volume()" enthalten (stressfrei)
*}
{$ATTRIB_MAPPING}
<table width="100" border="0" cellspacing="0" cellpadding="0">
{foreach name=outer item=options_data from=$options}
<tr>
<td valign="top" class="main"><b>{$options_data.NAME}:
{if $options_data.CALCMODE == 1 }
Preis pro {$FLAECHE_META->unit_b}
{else}
Preis einmalig
{/if}
</b> </td>
<td class="main">
{foreach key=key_data item=item_data from=$options_data.DATA}
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" checked="checked" onClick="javascript:calc_volume();" />
{$item_data.TEXT} {if $item_data.PRICE!=''}( {$item_data.PREFIX}{$item_data.PRICE} ){/if}<br />
{/foreach}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/module/product_options/table_listing.html
---------------------------------------------------------------------------------------------------
finde folgendes:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
{foreach name=outer item=options_data from=$options}
und füge davor ein:
{$ATTRIB_MAPPING}
---------------------------------------------------------------------------------------------------
finde folgendes:
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" checked="checked" />
{php}
} else {
{/php}
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" />
{php}
und ersetze es mit:
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" checked="checked" onClick="javascript:calc_volume();"/>
{php}
} else {
{/php}
<input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" onClick="javascript:calc_volume();";/>
{php}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-templates/xtc4/stylesheet.css
---------------------------------------------------------------------------------------------------
füge ganz am Ende ein.
/* Imedes Volumen und Flächen Rechner www.imedes.de */
.extra_objects {
}
.extra_objects input.price_unit {
border:0px;width:100%;
}
.extra_objects input.volume_area {
border:0px;width:100%;
}
.extra_objects input.price {
border:0px;
font-weight:bold;
width:100%;
}
.extra_objects .errormessage {
color: #800000; font-weight: bold; font-size:10px;
}
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
|