SocialEngine PHP Social Network Script

   

 

http://www.ecombase.de/Bilder/pfeil-category.gif ECB SEO SHOP SOFTWARE - IMEDES SOFTWARE DOWNLOADS

Alle Imedes Software GPL Programme und Module gibt es für jeden auf Ecomase kostenlos zum Download. Der Einsatz und die kostenlose Benutzung der IMEDES Software steht jedem Anwender der Shop Software ECB SEO SHOP SOFTWARE, XT-COMMERCE, GAMBIO 2006/2007, SELF-COMMERCE, COMMERCE:SEO frei. Die Imedes Software ist Gratis !

Weitere Imedes Programme und Shop Module die man kostenlos Downloaden und Nutzen kann.:

kostenlos-imedes-software_zubehoer-modul
kostenlos-imedes-software_aadmin-quickedit

kostenlos-imedes-software_adodb-installieren
kostenlos-imedes-software_advanced-news_nachricht-wenn-artikel-im-shop-verfuegbar kostenlos-imedes-software_ajax-add-to-card
kostenlos-imedes-software_ajax-attribut-manager

kostenlos-imedes-software_ajax-filter

kostenlos-imedes-software_ajax-framework_xajax

kostenlos-imedes-software_ajax-matrix-zubehoer

kostenlos-imedes-software_ajax-produktmatrix

kostenlos-imedes-software_ajax-quick-buy-quickbuy
kostenlos-imedes-software_ajax-staffel-preis-manager-plus kostenlos-imedes-software_artikelabhaengige-versandart kostenlos-imedes-software_artikelabhaengige-zahlart
kostenlos-imedes-software_attribut-check

kostenlos-imedes-software_attribute-image_attribut-bilder
kostenlos-imedes-software_attribut-manager
kostenlos-imedes-software_double-opt-in-pruefung

kostenlos-imedes-software_extra-objekte

kostenlos-imedes-software_faq-support-system

kostenlos-imedes-software_freundschafts-werbung

kostenlos-imedes-software_google-gadget

kostenlos-imedes-software_gutschein-generator

kostenlos-imedes-software_ibillnr

kostenlos-imedes-software_icontentvar

kostenlos-imedes-software_imedes-bundle-software
kostenlos-imedes-software_imedes-cart_komfortabler-warenkorb kostenlos-imedes-software_imedes-kundenbonus kostenlos-imedes-software_imedes-optcalc-optionen-kalkulation kostenlos-imedes-software_imedes-plus-minus-zurueck-von-kaufen-seite kostenlos-imedes-software_irandomindex_imedes-random-index kostenlos-imedes-software_izones_imedes-Zonen kostenlos-imedes-software_kat-dropdown_kategorie-dropdown-frontpage kostenlos-imedes-software_kat-dropdown_kategorie-dropdown-standard kostenlos-imedes-software_kat-dropdown_kategorie-dropdown-template kostenlos-imedes-software_kat-dropdown_kategorie-dropdown-template_frontpage kostenlos-imedes-software_katstaffel_kategorie-staffelpreise
kostenlos-imedes-software_lagerampel

kostenlos-imedes-software_merkzettel
kostenlos-imedes-software_news_newsmanager kostenlos-imedes-software_one-page-checkout
kostenlos-imedes-software_open-search

kostenlos-imedes-software_pdf-katalog

kostenlos-imedes-software_pdf-rechnung

kostenlos-imedes-software_picture-navi_bildnavigation
kostenlos-imedes-software_proaktiver-verkaufsmanager
kostenlos-imedes-software_search

kostenlos-imedes-software_special-filter_spezialfilter
kostenlos-imedes-software_staffel-preis-manager-normal kostenlos-imedes-software_stock-alert.warenbestand-warnung-advanced kostenlos-imedes-software_stock-alert.warenbestand-warnung-basic kostenlos-imedes-software_suspend-user_sperre-kunden kostenlos-imedes-software_thesaurus_shop-Lexikon

 

 *****************************************

 *                                       *

 *         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>&nbsp;<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">&nbsp;<?php echo $options_values['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values['products_options_id']; ?>">&nbsp;</td>

                <td class="smallText"><?php echo $inputs; ?></td>

 

und ersetze es mit:

                 <td align="center" class="smallText">&nbsp;<?php echo $options_values['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values['products_options_id']; ?>">&nbsp;</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">&nbsp;<?php echo $next_id; ?>&nbsp;</td>

                <td class="smallText"><?php echo $inputs; ?></td>

 

und ersetze es mit:

                 <td align="center" class="smallText">&nbsp;<?php echo $next_id; ?>&nbsp;</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&auml;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&auml;nge');

define('HEIGHT','H&ouml;he');

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

 

 

-lang/german/german.php

---------------------------------------------------------------------------------------------------

finde folgendes:

?>

 

und füge davor ein:

// TBEGIN flaeche

define('WIDTH', 'Breite');

define('HEIGHT', 'H&ouml;he');

define('LENGTH', 'L&auml;nge');

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

 

 

-lang/german/lang_german.conf

---------------------------------------------------------------------------------------------------

am Ende einfügen:

[flaeche]

calculation = "Abmessungen"

calculate = "Berechnen"

width = "Breite"

height= "H&ouml;he"

length= "L&auml;nge"

area= "Fl&auml;che"

volume = "Volumen"

price = "Preis"

dimerror = "FEHLER: Achten Sie bitte auf die angegebenen Mindest-und H&ouml;chstma&szlig;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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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;

 

    }

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

 

 

 

 

 

Deine Werbung auf Ecombase ? 50.000 Einblendungen täglich.
Kleiner Preis - große Wirkung - Anfragen - eMail im Impressum !

Quick Links

Andere Empfehlungen

http://www.ecombase.de/Bilder/Designnerd-3D-RSS-preview.jpg
   Gully RSS News : Ecomdev News

   Mein Name gehört mir ! 
   Marketing Zielgruppe 50+
   Gast durch Gottes Hand ?

Copyright (C) 2008 eComBASE Shop Software - Community  - bei Volker Bellendorf - 59077 Hamm - +49-2381-402621
SHOPcommuniy (R) ist eingetragene Wort + Bildmarke
Alle Texte & Bilder sind Eigentum der Betreiber der Webseite eCombase.de
Vervielfältigung - Verwendung auf eigenen Webseiten nicht ohne schriftliche Genehmigung