Tutorial: Template eines xt:Commerce Shops in der modified eCommerce Shopsoftware weiter verwenden

Aus Wiki | modified eCommerce Shopsoftware
Zur Navigation springenZur Suche springen

Anleitung: Wie passe ich mein altes xt:Commerce* 3.0.4 SP2.1 Template für modified eCommerce Shopsoftware an?


zwingend notwendig = diese Änderungen sind für die korrekte Funktionsweise des Shops unbedingt durchzuführen.

optional = diese Änderungen können durchgeführt werden, sind aber für die korrekte Funktion nicht zwingend notwendig.


Die folgenden Änderungen sind für alle xt:Commerce*-Templates oder ältere modified eCommerce Shopsoftware-Templates durchzuführen, um wieder unter der aktuellen modified eCommerce Shopsoftware zu funktionieren:


Änderungen ab Version 1.0.0-1.0.3[Bearbeiten]

Datenschutzerklärung bestätigen[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/create_account.html
/templates/TEMPLATENAME/module/create_account_guest.html

An gewünschter Stelle einfügen:

 {if $PRIVACY_CHECKBOX}
   <div>{$PRIVACY_CHECKBOX}{#text_privacy_accept#} {$PRIVACY_LINK}</div>
 {/if}

Bestätigungsfeld für die E-Mail Adresse[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/create_account.html
/templates/TEMPLATENAME/module/create_account_guest.html
/templates/TEMPLATENAME/module/account_edit.html

Um die E-Mail Adresse ein 2. Mal bestätigen zu lassen

Suche:

 <tr>
   <td>{#text_email#}</td>
   <td>{$INPUT_EMAIL}</td>
 </tr>

Füge danach ein:

 <tr>
   <td>{#text_confirm_email#}</td>
   <td>{$INPUT_CONFIRM_EMAIL}</td>
 </tr>

CAPTCHA-Feld im Kontaktformular[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/contact_us.html

Als erste Zeile in der Datei folgendes einfügen:

 {config_load file="$language/lang_$language.conf" section="newsletter"}

An gewünschter Stelle einfügen:

 <tr>
     <td width="30%" class="boxTextBG"><div align="right">{#text_sec_code#}</div></td>
     <td width="70%" class="main">{$VVIMG}</td>
 </tr>
 <tr>
     <td width="30%" class="boxTextBG"><div align="right">{#text_inp_code#}</div></td>
     <td width="70%" class="main">{$INPUT_CODE}</td>
 </tr>

JQUERY-Popup für Produktbilder und Versandkostenlink[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/javascript/general.js.php

Dateien thickbox.css, jquery.js, thickbox.js und macFFBgHack.png aus dem Originaltemplate (xtc5) kopieren nicht vergessen (!)

 <link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/thickbox.css" type="text/css" media="screen" />
 <?php //load jQuery default library jquery.js from faster Google CDN
 /*<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.js" type="text/javascript"></script>*/ ?>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
 <script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/thickbox.js" type="text/javascript"></script>
  • zwingend notwendig in
/templates/TEMPLATENAME/module/product_info/product_info_*.html
 <a title="{$PRODUCTS_NAME}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" class="thickbox" rel="{$PRODUCTS_ID}">
<img src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME}" class="productimage" />{if $PRODUCTS_POPUP_LINK!=''}<br/>{#text_zoom#}{/if}</a>
  • zwingend notwendig in
/templates/TEMPLATENAME/source/boxes/shopping_cart.php
 $box_smarty->assign('SHIPPING_INFO',$main->getShippingLink()); //web28 - 2012-05-03 - use main function

Nicht mehr vorhandene Funktion 'xtc_session_is_registered' ersetzen[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/source/boxes/loginbox.php

Suche:

 if (!xtc_session_is_registered('customer_id')) {

Ersetze mit:

 if (!isset($_SESSION['customer_id'])) {

Anpassung des AGB-Anzeigefeldes[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/stylesheet.css

Füge am Ende der Datei ein:

 div.agbframe {
    width:100%;
    height:200px;
    overflow:auto;
    padding:10px;
    background:url(img/input_bg.gif) no-repeat;
    border:1px solid #666;
 }

Mehrere Produktbilder bei der Produktansicht[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_info/product_info_*.html

Zusätzlich notwendig um mehrere Produktbilder auch beim Ausdruck zu berücksichtigen:

Suche:

 {if $PRODUCTS_IMAGE_1 != ''} [...]
 {if $PRODUCTS_IMAGE_3 != ''} usw...

Ersetze mit:

 {if $more_images|@count > 0}
  <!-- More Pictures -->
    <div class="morepics">
    {foreach item=more_images_data from=$more_images}
      <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
      <img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME}" /></a>
    {/foreach}
    <div style="clear:both;"></div>
  </div>
 {/if}
/templates/TEMPLATENAME/module/print_product_info.html 

zusätzlich notwendig um mehrere Produktbilder auch beim Ausdruck zu berücksichtigen:

Suche:

 {if $PRODUCTS_IMAGE_1 != ''} [...]
 {if $PRODUCTS_IMAGE_3 != ''} usw...

Ersetze mit:

{foreach item=more_images_data from=$more_images} 
  <div class="hrlightgrey"></div><img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$module_data.NAME}" border="0" class="productimage"/>
{/foreach}

Anzeige der VPE-Infos bei den Bestsellers[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/boxes/box_best_sellers.html
 <div class="bestSellersPrice">
   {$box_data.PRODUCTS_PRICE}<br />
   {if $box_data.PRODUCTS_VPE}{$box_data.PRODUCTS_VPE}<br />{/if}
   {$box_data.PRODUCTS_TAX_INFO}<br />
   {$box_data.PRODUCTS_SHIPPING_LINK}<br /> 
 </div>
 
 {if $box_data.PRODUCTS_IMAGE}
   <div class="bestSellerImage">
     <a href="{$box_data.PRODUCTS_LINK}"><img src="{$box_data.PRODUCTS_IMAGE}" alt="{$box_data.PRODUCTS_NAME}" /></a>
   </div>
 {/if}

Keine Checkoutboxen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/index.html 
{if !strstr ($smarty.server.PHP_SELF, 'checkout')}
  [QUELLTEXT - ist etwas komplexer und hängt vom Templateaufbau ab]
{/if}

Löschen Button im Template[Bearbeiten]

Änderungen siehe https://trac.modified-shop.org/changeset/232/


Kunde erlauben, sein eigenes Konto zu löschen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/account.html

Suche:

 <li><a href="{$LINK_PASSWORD}"><strong>{#text_password#}</strong></a></li>

Füge danach ein:

 {if $LINK_DELETE}
   <li><a href="{$LINK_DELETE}"><strong>{#text_delete#}</strong></a></li>
 {/if}

Die Datei

/templates/xtc5/module/account_delete.html 

in den eigenen Templateordner kopieren


htaccess-Umleitung für SEO-friendly URLs / doppelten Content vermeiden[Bearbeiten]

  • optional

Die Datei /templates/xtc5/source/inc/gunnart_productRedirect.inc.php in den eigenen Templateordner kopieren

/templates/TEMPLATENAME/source/boxes.php

Füge am Anfang der Datei ein:

require_once (DIR_FS_CATALOG . 'templates/' . CURRENT_TEMPLATE . '/source/inc/gunnart_productRedirect.inc.php');

Änderungen ab Version 1.0.4[Bearbeiten]

CSS am Seitenanfang und Javascript am Seitenende laden[Bearbeiten]

  • optional

neue Datei

/templates/TEMPLATENAME/css/general.css.php

erstellen und mit den CSS-Dateien für die Stile füllen (siehe xtc5-Template)

In der Datei

/templates/TEMPLATENAME/javascript/general.js.php

die CSS-Stile dafür entfernen.

(Hintergrund: Für einen schnelleren Seitenaufbau wird general.css.php nun am Anfang geladen und die Datei general.js.php erst am Ende)


Anzeige einer Verlaufszeile 'x von y Produkten'[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_navigator.html

Suche:

 <strong>{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}

Ersetze mit:

 {#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}

PayPal-IPN Link-Anpassung[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/account_history_info.html

Suche:

 <div class="hr"></div>
 <p>{$TOTAL_BLOCK}</p>

Ersetze mit:

 <div class="hr"></div>
 {if $PAYPAL_LINK}
 <p><div style="padding:5px;">{$PAYPAL_LINK}</div></p>
 {/if}
 <p>{$TOTAL_BLOCK}</p>
  • zwingend notwendig in
/templates/TEMPLATENAME/module/checkout_success.html

Suche:

 {if $GV_SEND_LINK}
 <p>{#gv_has_vouchera#} {$GV_SEND_LINK} {#gv_has_voucherb#}</p>
 {/if}
 <p>{$BUTTON_PRINT}&nbsp;{$BUTTON_CONTINUE}</p>

Ersetze mit:

 {if $GV_SEND_LINK}
 <p>{#gv_has_vouchera#} {$GV_SEND_LINK} {#gv_has_voucherb#}</p>
 {/if}
 {if $PAYPAL_LINK}
 <p><div style="background: #f2f2f2; color: #ffffff; padding:5px; border: 2px solid #496686">{$PAYPAL_LINK}</div></p>
 {/if}
 <p>{$BUTTON_PRINT}&nbsp;{$BUTTON_CONTINUE}</p>

Eigene Überschrift bei Gastkonten[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/create_account_guest.html

Suche:

 <h1>{#heading_create_account#}</h1>

Ersetze mit:

 <h1>{#heading_create_guest_account#}</h1>

Signatur und Widerruf als E-Mail Anhang[Bearbeiten]

  • zwingend notwendig

E-Mail Widerruf: Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/mail/german/widerruf.txt (Wird ab Version 1.06 rev 4642 aus dem Content Manager bezogen)
/templates/xtc5/mail/german/widerruf.html (Wird ab Version 1.06 rev 4642 aus dem Content Manager bezogen)
/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/english/widerruf.html (Wird ab Version 1.06 rev 4642 aus dem Content Manager bezogen)
/templates/xtc5/mail/english/widerruf.txt (Wird ab Version 1.06 rev 4642 aus dem Content Manager bezogen)
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/german/signatur.txt
/templates/xtc5/mail/german/signatur.html
/templates/xtc5/mail/english/signatur.txt
/templates/xtc5/mail/english/signatur.html
/templates/xtc5/module/account_delete.html
/templates/xtc5/module/error_handler.html
/templates/xtc5/module/google_sitemap.html

Änderungen ab Version 1.0.5[Bearbeiten]

Shop online/offline Modus[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/offline.html

Button "Einkauf fortsetzen" im Warenkorb anzeigen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/shopping_cart.html

Der folgende Abschnitt ist ab modified eCommerce Shopsoftware 1.06 nicht mehr im Template nötig!

Suche:

 {config_load file="$language/lang_$language.conf" section="shopping_cart"}

Füge danach ein:

 {php}
 global $breadcrumb, $cPath_array, $actual_products_id;
 if(!empty($cPath_array)) {
     $this->assign('CONTINUE_NAME',$breadcrumb->_trail[count($breadcrumb->_trail)-2]['title']);
     $this->assign('CONTINUE_LINK',$breadcrumb->_trail[count($breadcrumb->_trail)-2]['link']);
     $ct_shopping = $breadcrumb->_trail[count($breadcrumb->_trail)-2]['link'];
 }
 if(!empty($actual_products_id)) {
     $this->assign('CONTINUE_NAME',$breadcrumb->_trail[count($breadcrumb->_trail)-2]['title']);
     $this->assign('CONTINUE_LINK',$breadcrumb->_trail[count($breadcrumb->_trail)-2]['link']);
     $ct_shopping = $breadcrumb->_trail[count($breadcrumb->_trail)-2]['link'];
 }
 if(!empty($ct_shopping)) $_SESSION['continue_link'] = $ct_shopping;
 if(!empty($_SESSION['continue_link'])) $this->assign('CONTINUE_LINK',$_SESSION['continue_link']);
 $this->assign('BUTTON_CONTINUE_SHOPPING', xtc_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING));
 {/php}

Dieser Abschnitt ist auch ab modified eCommerce Shopsoftware 1.06 im Template zusätzlich nötig!

Suche:

  <p>{$FORM_END}{/if}

Füge davor ein:

 <p>{if $CONTINUE_LINK}<a href="{$CONTINUE_LINK}">{$BUTTON_CONTINUE_SHOPPING}</a>&nbsp;&nbsp;&nbsp;{/if}{$BUTTON_RELOAD}&nbsp;{$BUTTON_CHECKOUT}</p>

Navigation auch an oberen Rand der Produktübersicht anzeigen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_listing/product_listing_v1.html

Suche:

 <div class="hrproductpreview"></div>
 {foreach name=aussen item=module_data from=$module_content}

Füge davor ein:

 {$NAVIGATION}

Änderungen ab Version 1.0.5 SP1[Bearbeiten]

Button zum Ausdrucken der checkout_success ändern[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/checkout_success.html

Suche:

{$FORM_ACTION}

Ersetze mit:

{*$FORM_ACTION*}

Suche:

<p>{$BUTTON_PRINT}&nbsp;{$BUTTON_CONTINUE}</p>

Ersetze mit:

{$FORM_ACTION_PRINT}
<div style="float:left;">{$BUTTON_PRINT}</div>
{$FORM_END}
{$FORM_ACTION}
<div style="float:left; padding-left:5px;">{$BUTTON_CONTINUE}</div>
<div style="clear:left;"></div>

Änderungen ab Version 1.0.6[Bearbeiten]

Links von print_product_info nicht von Suchmaschinen indizieren lassen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/print_product_info.html

Suche:

<meta http-equiv="Content-Style-Type" content="text/css" />

Füge danach ein:

{if $CanonicalLink}
  <link href="{$CanonicalLink}" rel="canonical" />
{/if}

Generelle Templateverbesserungen für eine zukünftige Aktualisierung von Smarty 2.x auf Smarty 3.x[Bearbeiten]

  • optional

Anpassung der Datei shopping_cart.html im Verzeichnis: /templates/TEMPLATENAME/modules/ ab ca. Zeile 3 ‐ 18, den kompletten PHP‐Code inkl. {php} und {/php} löschen!

  • optional

Korrektur der Template‐Datei index.html im Verzeichnis: /templates/TEMPLATENAME/

Suche:

strstr ($smarty…

(-> hier befindet sich ein Leerzeichen zwischen der PHP‐Funktion "strstr" und der geöffneten Klammer!)

Ersetze mit:

strstr($smarty…

Korrektur der Template‐Datei box_cart.html im Verzeichnis: /templates/TEMPLATENAME/boxes/

Suche:

<div{if $GV_AMOUNT =='' }

(-> auch hier befindet sich ein Leerzeichen, diesmal vor der schliessenden Smarty‐Klammer!)

Ersetze mit:

<div{if $GV_AMOUNT ==''}

Korrektur der Template‐Datei multi_options_1.html im Verzeichnis: /templates/TEMPLATENAME/module/product_options/

Suche:

{if $item_data.PRICE !='' }

(-> auch hier befindet sich ein Leerzeichen, diesmal vor der schliessenden Smarty‐Klammer!)

Ersetze mit:

{if $item_data.PRICE !=''}

Korrektur der Template‐Datei product_options_dropdown.html im Verzeichnis: /templates/TEMPLATENAME/module/product_options/

Suche:

{if $item_data.PRICE !='' }

(-> auch hier befindet sich ein Leerzeichen, diesmal vor der schliessenden Smarty‐Klammer!)

Ersetze mit:

{if $item_data.PRICE !=''}

Korrektur der Template‐Datei account.html im Verzeichnis: /templates/TEMPLATENAME/module/

Suche:

{foreach name=history_products item=products_history from=$products_history} 
<li><a href="{$products_history.PRODUCTS_LINK}">{$products_history.PRODUCTS_NAME} / {$products_history.PRODUCTS_PRICE}</a></li> 
{/foreach}

(-> Smarty3 stört sich hier am gleichlautenden Namen "item=products_history", wie die Variable $products_history)

Ersetze mit:

{foreach name=history_products item=prod_history_data from=$products_history} 
<li><a href="{$prod_history_data.PRODUCTS_LINK}">{$prod_history_data.PRODUCTS_NAME} / {$prod_history_data.PRODUCTS_PRICE}</a></li> 
{/foreach}

Korrekte Ausgabe von Fehlermeldungen beim Gutscheinversand[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/gv_send.html

Suche:

{$FORM_ACTION}

Füge danach ein:

{if $error!=''}<div class="errormessage">{$error}</div>{/if}

Das Auslaufdatum bei Sonderangeboten anzeigen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_info/product_info_*.html

An gewünschter Stelle einfügen:

{if $PRODUCTS_EXPIRES}<p>{#text_expires_date#} {$PRODUCTS_EXPIRES}</p>{/if}
/templates/TEMPLATENAME/module/specials.html

An gewünschter Stelle einfügen:

{if $module_data.PRODUCTS_EXPIRES != '0000-00-00 00:00:00'}<p>{#text_expires_date#} {$module_data.PRODUCTS_EXPIRES|date_format:"%x"}</p>{/if}

Auf der Rechnung und dem Lieferschein die Bezeichnung anzeigen[Bearbeiten]

Druckt man in der Administration eine Rechnung oder einen Lieferschein, fehlt die Bezeichnung "Rechnung" bzw. "Lieferschein" auf dem Ausdruck

  • optional in
/templates/TEMPLATENAME/admin/print_order.html

An gewünschter Stelle einfügen:

{#invoice#}
/templates/TEMPLATENAME/admin/print_packingslip.html

An gewünschter Stelle einfügen:

{#packingslip#}
/lang/german/lang_german.conf

Suche:

[print_order]

Füge danach ein:

invoice = 'Rechnung'
packingslip = 'Lieferschein'
/lang/english/lang_english.conf

Suche:

[print_order]

Füge danach ein:

invoice = 'Invoice'
packingslip = 'Packing slip'

Bugfix: Keine Anzeige von Unterkategorien, wenn Kategorie Produkte enthält[Bearbeiten]

Wenn man Produkte direkt zu Hauptkategorien zugeordnet hat, wird die Liste der Unterkategorien nicht angezeigt. Der Bugfix in den Changesets behebt das Problem

  • optional

Changeset https://trac.modified-shop.org/changeset/2284/

Changeset https://trac.modified-shop.org/changeset/2307/

anwenden

Falls Kategorie keine Produkte enthält dann auf jeden Fall diese Anleitung vervollständigen um Produkte in Kategorien anzuzeigen.

http://www.modified-shop.org/wiki/Neue_Artikel_Startseite_einblenden_ohne_Top


Änderung bezüglich der Buttonlösung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/stylesheet.css
/templates/xtc5/img/external.gif
/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/print_product_info.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

/templates/TEMPLATENAME/mail/SPRACHE/order_mail.txt

Suche:

[SIGNATUR]

Füge davor ein:

{if $DELIVERY_DUTY_INFO neq ''}

----------------------------------------------------------------------
{$smarty.const.TEXT_DUTY_INFO}
----------------------------------------------------------------------{/if}
/templates/TEMPLATENAME/mail/SPRACHE/order_mail.html

Suche:

[SIGNATUR]

Füge davor ein:

{if $DELIVERY_DUTY_INFO neq ''}
<br />
<table style="border:1px solid #a3a3a3;" width="100%" border="0" cellpadding="3" cellspacing="0">
  <tr>
    <td><font size="1" face="Arial, Helvetica, sans-serif">{#text_duty_info#}</font></td>
  </tr>
</table>
<br />
{/if}
/templates/xtc5/module/checkout_confirmation.html

Die Änderungen an dieser Datei sind zu komplex. Bitte den Inhalt der Datei /templates/xtc5/module/checkout_confirmation.html in das eigene Template übernehmen.

/templates/TEMPLATENAME/module/print_product_info.html

Suche:

<body class="popupproductinfo" onload="window.print()">

Ersetze mit:

<body class="popupproductinfo" {if !$noprint} onload="window.print()"{/if}>

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/stylesheet.css

Füge am Ende der Datei ein:

/*address block */
div#address_block div.address{
width: 260px;
float:left;
height:140px;
padding:5px; 
margin:0 15px 15px 0;
border: solid 1px #a3a3a3;
background:#F8F8F8;
}
div#address_block input{
vertical-align: middle;
}

/*new checkout*/
div.checkout_infos{
width:940px;
border: 0px solid red;
}
div.checkout_infos h2{
font-family: Arial, Sans-serif;
color:#333; /*#1e3630;*/
font-weight:bold;
font-size:15px;
margin: 0px;
float:left;
}
div.checkout_infos a{
font-style:italic;
color:#009933; /*#1e3630;*/
}
div.checkout_infos div.text,p.text{
margin-top:0px;
}
div#address_block div.address{
width: 260px;
float:left;
height:140px;
padding:5px; 
margin:0 15px 15px 0;
border: solid 1px #a3a3a3;
background:#F8F8F8;
}
div#address_block input{
vertical-align: middle;
}
div.checkoutInfoBoxes{
width:435px;
border: 0px solid #a3a3a3;
padding:5px;
margin-right:20px;
float:left;
}
div.checkoutInfoBoxes  a.more_info{
color: red!important;
}
div.checkoutNavBoxes{
width:435px;
border: 1px solid #a3a3a3;
/*background:#F8F8F8;*/
padding:5px;
margin-right:20px;
float:left;
height:120px;
}
div.checkoutNav2Boxes{
width:435px;
border: 1px solid #a3a3a3;
padding:5px;
margin-right:20px;
min-height: 70px;
float:left;
}
div.checkoutbox{
border: 2px solid #999!important;
background: #E3F4DA!important; /*diese Farbe muss sich erheblich abheben*/
}
div.checkoutbox .image{
max-width:80px;
}
div.checkoutbox td.main_row {
border-top: 1px solid #666;
}
div.checkoutbox div.hr{
border:none;
border-top: 1px solid #666;
color: #E3F4DA; /*wie hintergrundfarbe*/
background-color:#E3F4DA; /*wie hintergrundfarbe*/
height: 1px;
}
div.checkoutbox .details{
padding: 0 12px 0 0; 
background: url(img/external.gif) no-repeat 100% 0px;
color: #000;
font-weight: bold;
}
div.checkoutbox .total table td {
padding:0px;
}
div.checkoutbox .small{
font-size: 11px;
}

Update für PayPal Express Checkout[Bearbeiten]

  • optional

Ersetze die folgende Datei aus dem modified eCommerce Shopsoftware 1.06 Template (xtc5) in deinem eigenen Template an gleicher Stelle:

/templates/TEMPLATENAME/module/checkout_paypal.html

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/shopping_cart.html

Suche:

{$BUTTON_CHECKOUT}

Ersetze mit:

{$BUTTON_CHECKOUT}{if $BUTTON_PAYPAL != ''}<br />{$BUTTON_PAYPAL}{/if}

Update für Sofort Gateway Zahlungsmodul[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/checkout_success.html

Suche:

{if $GV_SEND_LINK}
<p>{#gv_has_vouchera#} {$GV_SEND_LINK} {#gv_has_voucherb#}</p>
{/if}

Füge danach ein:

{if $MODULE_sofort_vorkasse}
<p>{$MODULE_sofort_vorkasse}</p>
{/if}

Änderungen ab Version 1.0.6 rev 4642 SP1[Bearbeiten]

Verlinkung der Lieferzeit[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/product_info/product_info_*.html

Suche:

			{if $SHIPPING_NAME}<p class="shippingtime"><strong>{#text_shippingtime#}</strong>{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" />{/if} {$SHIPPING_NAME}</p>

Ersetze mit:

			{if $SHIPPING_NAME}<p class="shippingtime"><strong>{#text_shippingtime#}</strong>{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" />{/if} {$SHIPPING_NAME_LINK}</p>

Folgende Template Dateien ändern:

/templates/xtc5/module/product_listing/*.html
/templates/xtc5/module/new_products_default.html
/templates/xtc5/module/new_products_overview.html
/templates/xtc5/module/new_products.html
/templates/xtc5/module/specials.html

Bei einem eigenen Template (nicht xtc5) kann es sein, dass die folgenden Dateien bearbeitet werden müssen:

/templates/xtc5/module/also_purchased.html
/templates/xtc5/module/cross_selling.html
/templates/xtc5/module/reverse_cross_selling.html

Suche:

		{if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}{if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
			{$module_data.PRODUCTS_SHIPPING_NAME}</p>
		{/if}

Ersetze mit:

		{if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}{if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
			{$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
		{/if}

Anzeige der Versandkosten im Warenkorb[Bearbeiten]

  • zwingend notwendig in

/templates/xtc5/modules/order_details.html

Suche: (...) kann je nach Version unterschiedlich sein

<tr>
  <td colspan="4" (...) </td>
  <td class="subtotal">&nbsp;</td>
</tr>

Ersetze mit:

{* BOF VERSANDKOSTEN IM WARENKORB *}
  <!--tr>
    <td colspan="4" class="subtotal">{$UST_CONTENT}<strong>{$TOTAL_CONTENT}</strong>{if $SHIPPING_INFO}{$SHIPPING_INFO}{/if}{if $KLARNA_PPBOX}<br />{$KLARNA_PPBOX}{/if}</td>
    <td class="subtotal">&nbsp;</td>
  </tr-->  
  <tr>
    <td colspan="4" class="subtotal">
    {if $UST_CONTENT}{$UST_CONTENT}{else}<strong>{php}printf(TAX_INFO_EXCL, ''){/php}</strong><br />{/if}
    <strong>{$TOTAL_CONTENT}</strong><br />
    {if $SELECT_COUNTRY}{$SELECT_COUNTRY}<br />{/if}
    {foreach name=aussen item=shipping_data from=$shipping_content}
      {$shipping_data.NAME} ({$COUNTRY}): {$shipping_data.VALUE}<br />
    {/foreach}
    {if $total}
    <strong>{#text_total#}: {$total}</strong>
    {/if}
    {if $KLARNA_PPBOX}<br />{$KLARNA_PPBOX}{/if}
    </td>
    <td class="subtotal">&nbsp;</td>
 </tr>
 {* EOF VERSANDKOSTEN IM WARENKORB *}

Änderungen aufgrund des SEPA-Lastschrift Moduls[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/mail/english/sepa_info.txt
/templates/xtc5/mail/english/sepa_info.html
/templates/xtc5/mail/english/sepa_mail.txt
/templates/xtc5/mail/english/sepa_mail.html
/templates/xtc5/mail/german/sepa_info.txt
/templates/xtc5/mail/german/sepa_info.html
/templates/xtc5/mail/german/sepa_mail.txt
/templates/xtc5/mail/german/sepa_mail.html

Änderungen ab Version 1.0.6 rev 4642 SP3[Bearbeiten]

Änderungen aufgrund des BillSAFE Moduls[Bearbeiten]

/templates/TEMPLATENAME/module/checkout_confirmation.html

Suche:

<h1>{#heading_confirmation#}</h1>

Füge davor ein:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Korrektur des Link Styles in der stylesheet.css[Bearbeiten]

/templates/TEMPLATENAME/stylesheet.css

Suche:

/* LINKS GLOBAL */ 
a, a:link, a:link, a:link, a:hover {

Ersetze mit:

/* LINKS GLOBAL */ 
a, a:link, a:visited, a:active, a:hover {

Update für PayPal Express Checkout[Bearbeiten]

Ersetze die folgende Datei aus dem modified eCommerce Shopsoftware 1.06 Template (xtc5) in deinem eigenen Template an gleicher Stelle:

/templates/TEMPLATENAME/module/checkout_paypal.html

Aktualisierung des Zahlungsmoduls für SOFORT.com[Bearbeiten]

/templates/TEMPLATENAME/module/checkout_success.html

Entferne den folgenden Code:

{if $MODULE_sofort_vorkasse} 
<p>{$MODULE_sofort_vorkasse}</p> 
{/if}

Entferne die folgende Datei:

/templates/TEMPLATENAME/module/sofort_vorkasse.html

Aktualisierung für shipcloud.io & Sendungsverfolgung[Bearbeiten]

  • optional

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/admin/mail/english/change_order_mail.html
/templates/xtc5/admin/mail/english/change_order_mail.txt
/templates/xtc5/admin/mail/german/change_order_mail.html
/templates/xtc5/admin/mail/german/change_order_mail.txt

Folgende Dateien bearbeiten:

/templates/TEMPLATENAME/module/account.html

Suche:

      <p><strong><a href="{$order_data.ORDER_LINK}">{$order_data.ORDER_DATE}</a> / {#order_nr#}{$order_data.ORDER_ID}</strong><br />
      {#order_total#}{$order_data.ORDER_TOTAL} / {#order_status#}{$order_data.ORDER_STATUS}<br /></p>

Ersetze mit:

      <p><strong><a href="{$order_data.ORDER_LINK}">{$order_data.ORDER_DATE}</a> / {#order_nr#}{$order_data.ORDER_ID}</strong><br />
      {#order_total#}{$order_data.ORDER_TOTAL} / {#order_status#}{$order_data.ORDER_STATUS}<br />
      {if count($order_data.TRACKING) > 0}
        {foreach name=aussen item=tracking_data from=$order_data.TRACKING}
          {#label_tracking#} <a target="_blank" href="{$tracking_data.tracking_link}">{$tracking_data.parcel_id}</a><br />
        {/foreach}
      {/if}
      </p>
/templates/TEMPLATENAME/module/account_history.html

Suche:

<strong>{#text_total#}</strong>{$order_data.ORDER_TOTAL}&nbsp;&nbsp;<strong>{#text_status#}</strong>{$order_data.ORDER_STATUS}

Füge danach ein:

{if count($order_data.ORDER_TRACKING) > 0}
  {foreach name=aussen item=tracking_data from=$order_data.ORDER_TRACKING}
    <br />{#label_tracking#} <a target="_blank" href="{$tracking_data.tracking_link}">{$tracking_data.parcel_id}</a>
  {/foreach}
{/if}
/templates/TEMPLATENAME/module/account_history_info.html

Suche:

  <p>{$HISTORY_BLOCK}</p>

Füge danach ein:

  {if count($ORDER_TRACKING) > 0}
  <h2>{#label_tracking#}</h2>
  <p>
  {foreach name=aussen item=tracking_data from=$ORDER_TRACKING}
    <a target="_blank" href="{$tracking_data.tracking_link}">{$tracking_data.parcel_id}</a><br />
  {/foreach}
  </p>
  {/if}

Aktualisierung für Anzeige der Admin-Box bei Verwendung anderer Kundengruppe für das Frontend[Bearbeiten]

/templates/TEMPLATENAME/source/boxes.php

Suche:

  if ($_SESSION['customers_status']['customers_status_id'] == 0) {

Ersetze mit:

  if ($_SESSION['customers_status']['customers_status'] == 0) {

AGB als E-Mail Anhang[Bearbeiten]

  • zwingend notwendig

E-Mail AGB: Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgenden Dateien:

/templates/TEMPLATENAME/mail/german/order_mail.txt
/templates/TEMPLATENAME/mail/english/order_mail.txt

An gewünschter Stelle einfügen:

{$AGB_TXT}

Die folgenden Dateien:

/templates/TEMPLATENAME/mail/german/order_mail.html
/templates/TEMPLATENAME/mail/english/order_mail.html

An gewünschter Stelle einfügen:

{if $AGB_HTML neq ''}
<br />
<font size="1" face="Arial, Helvetica, sans-serif">{$AGB_HTML}</font>
<br />
{/if}

USt-IdNr. in Bestellbestätigungs E-Mails, Rechnung & Lieferschein[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/admin/billsafe_print_order.html 
/templates/xtc5/admin/print_order.html
/templates/xtc5/admin/print_packingslip.html
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail.txt 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/billsafe_print_order.html 
/templates/TEMPLATENAME/admin/print_order.html
/templates/TEMPLATENAME/admin/print_packingslip.html

An gewünschter Stelle einfügen:

{if $vatID}<br /><strong>{#vatID#}</strong> {$vatID}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/english/order_mail.html

An gewünschter Stelle einfügen:

{if $vatID}<br /><b>Your VAT ID No.:</b> {$vatID}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/german/order_mail.html

An gewünschter Stelle einfügen:

{if $vatID}<br /><b>Ihre USt-IdNr.:</b> {$vatID}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/english/order_mail.txt

An gewünschter Stelle einfügen:

{if $vatID}Your VAT ID No.: {$vatID}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/german/order_mail.txt

An gewünschter Stelle einfügen:

{if $vatID}Ihre USt-IdNr.: {$vatID}{/if}

Änderungen ab Version 2.0.0.0[Bearbeiten]

Generelles Templateupdate durch den Wegfall von "base href" (Security-Fix)[Bearbeiten]

  • zwingend notwendig in
allen PHP-Dateien im Verzeichnis "/templates/TEMPLATENAME/source/boxes/", 
sowie der Datei "/templates/TEMPLATENAME/source/boxes.php"

Suche:

$box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

Ersetze mit:

$box_smarty->assign('tpl_path',DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE.'/');
templates/TEMPLATENAME/css/general.css.php

Suche:

<?php echo 'templates/'.CURRENT_TEMPLATE; ?>

Ersetze mit:

<?php echo DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE; ?>
/templates/TEMPLATENAME/javascript/general.js.php

Suche nach erstem Vorkommen von:

?>

Füge danach ein:

<script type="text/javascript">var DIR_WS_BASE="<?php echo DIR_WS_BASE ?>"</script>

Suche:

<?php echo 'templates/'.CURRENT_TEMPLATE; ?>

Ersetze mit:

<?php echo DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE; ?>

Ordner "/templates/xtc5/config/" in Ordner "/templates/TEMPLATENAME/" kopieren.

Datei "/templates/xtc5/javascript/thickbox.js" Ordner in "/templates/TEMPLATENAME/javascript/" kopieren.


Korrektur der History Links im Kundenkonto[Bearbeiten]

  • zwingend notwendig in

/templates/TEMPLATENAME/module/account.html

Suche:

		{foreach name=history_products item=products_history from=$products_history}
			<li><a href="{$products_history.PRODUCTS_LINK}">{$products_history.PRODUCTS_NAME} / {$products_history.PRODUCTS_PRICE}</a></li>
		{/foreach}

Ersetze mit:

    {foreach name=history_products item=prod_history_data from=$products_history}
      <li><a href="{$prod_history_data.PRODUCTS_LINK}">{$prod_history_data.PRODUCTS_NAME} / {$prod_history_data.PRODUCTS_PRICE}</a></li>
    {/foreach}

Korrektur des "Content bearbeiten" Links in Admin-Box wegen Umbau des Content-Managers[Bearbeiten]

  • zwingend notwendig in

/templates/TEMPLATENAME/source/boxes/admin.php

Suche:

    $content_query = xtc_db_query("SELECT content_id FROM ".TABLE_CONTENT_MANAGER." WHERE content_group='".(int)$_GET['coID']."' AND languages_id='".(int)$_SESSION['languages_id']."'");
    $content_data = xtc_db_fetch_array($content_query);
    $admin_link = '<a href="'.xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'content_manager.php', 'action=edit&coID='.$content_data['content_id']).'">'.xtc_image_button('edit_content.gif', IMAGE_BUTTON_CONTENT_EDIT).'</a>';

Ersetze mit:

    $admin_link = '<a href="'.xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'content_manager.php', 'action=edit&coID='.(int)$_GET['coID']).'">'.xtc_image_button('edit_content.gif', IMAGE_BUTTON_CONTENT_EDIT).'</a>';

Signatur in allen Mails & Tracking Link in Mails einfügen[Bearbeiten]

  • optional

Ordner in eigenes Template übernehmen:

/templates/xtc5/admin/mail/
/templates/xtc5/mail/

Erweiterung der Rechnung um optionale Rechnungsnummer[Bearbeiten]

  • optional

Dateien in eigenes Template übernehmen:

/templates/xtc5/admin/print_order.html
/templates/xtc5/admin/print_packingslip.html

Austausch des Buttons für Schnellkauf (Vorgabe des Händlerbunds)[Bearbeiten]

  • optional

Dateien in eigenes Template übernehmen:

/templates/xtc5/buttons/english/button_add_quick.gif
/templates/xtc5/buttons/german/button_add_quick.gif

Update für Facebook Tracking[Bearbeiten]

  • optional in

/templates/TEMPLATENAME/index.html

Suche:

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE=='true' and $smarty.session.customers_status.customers_status_id == '0')
  or $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE=='true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE=='true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID trackorders=true}
  {/if}
{/if}

Ersetze mit:

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE == 'true' && $smarty.session.customers_status.customers_status_id == '0') || $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE == 'true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE == 'true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID}
  {/if}
  {if $smarty.const.TRACKING_FACEBOOK_ACTIVE == 'true'}
    {facebook id=$smarty.const.TRACKING_FACEBOOK_ID}
  {/if}
{/if}

Update für Masterpayment[Bearbeiten]

  • optional

Dateien in eigenes Template übernehmen:

/templates/xtc5/css/masterpayment.css
/templates/xtc5/module/checkout_masterpayment.html

Update für PayPal[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/admin/print_order.html

Suche:

      {if $COMMENTS}
      <tr>
        <td>
          <table style="border-bottom:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="small">
                <br /><br /><strong>{#comments#}</strong> {$COMMENTS}
              </td>
            </tr>
          </table>
        </td>
      </tr>
      {/if}

Füge danach ein:

      {if count($PAYMENT_INFO) > 0}
      <tr>
        <td>
          <table style="border:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            {foreach name=aussen item=data from=$PAYMENT_INFO}
              <tr>
                <td class="small" colspan="2">
                  <strong>{$data.title|stripslashes}</strong>
                </td>
              </tr>
              {foreach name=aussen item=info from=$data.fields}
                <tr>
                  <td class="small">{if $info.title != ''}{$info.title|stripslashes}{else}&nbsp;{/if}</td>
                  <td class="small">{if $info.field}{$info.field|stripslashes}{else}&nbsp;{/if}</td>
                </tr>      
              {/foreach}
            {/foreach}
          </table>
        </td>
      </tr>
      {/if}

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/xtc5/javascript/jquery.js
/templates/xtc5/javascript/thickbox.js (Sofern Datei auch im eigenen Template vorhanden!)
/templates/TEMPLATENAME/module/product_info/product_info_*.html

Suche:

  		<tr>
    		<td style="width:100%; padding-right:5px;">{$ADD_QTY}</td>
    		<td>{$ADD_CART_BUTTON}</td>
  		</tr>

Füge danach ein:

      {if $ADD_CART_BUTTON_PAYPAL}
        <tr>
          <td style="width:100%; padding-right:5px;">&nbsp;</td>
          <td>{$ADD_CART_BUTTON_PAYPAL}</td>
        </tr>
      {/if}
/templates/TEMPLATENAME/module/account_history_info.html

Suche:

<h1>{#heading_history_info#}</h1>

Füge danach ein:

{if $info_message}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}
/templates/TEMPLATENAME/module/checkout_confirmation.html

Suche:

<a href="{$SHIPPING_EDIT}">{#text_edit#}</a>

Ersetze mit:

{if isset($SHIPPING_EDIT)}<a href="{$SHIPPING_EDIT}">{#text_edit#}</a>{/if}

Suche (2x):

<a href="{$PAYMENT_EDIT}">{#text_edit#}</a>

Ersetze mit:

{if isset($PAYMENT_EDIT)}<a href="{$PAYMENT_EDIT}">{#text_edit#}</a>{/if}

Suche:

  {if $PAYMENT_INFORMATION!=''}
    <br />
    <h2>{#text_payment_info#}</h2>
    <table style="clear:both">
      <tr>
        {foreach name=aussen item=data from=$PAYMENT_INFORMATION}    
          <td class="main">{$data.title|stripslashes}</td>
          <td>&nbsp;</td>
          <td class="main">{if $data.field}{$data.field|stripslashes}{else}&nbsp;{/if}</td>    
        {/foreach}
      </tr>
    </table>
  {/if}

Ersetze mit:

  {if $PAYMENT_INFORMATION!=''}
    <br />
    <h2>{#text_payment_info#}</h2>
    <table style="clear:both">
      {foreach name=aussen item=data from=$PAYMENT_INFORMATION}
        <tr>
          <td class="main">{if $data.title != ''}{$data.title|stripslashes}{else}&nbsp;{/if}</td>
          <td>&nbsp;</td>
          <td class="main">{if $data.field != ''}{$data.field|stripslashes}{else}&nbsp;{/if}</td>
        </tr>
      {/foreach}
    </table>
  {/if}
/templates/TEMPLATENAME/module/checkout_success.html

Suche:

{if $PAYPAL_LINK}
<p><div style="background: #f2f2f2; color: #ffffff; padding:5px; border: 2px solid #496686">{$PAYPAL_LINK}</div></p>
{/if}

Ersetze mit:

{if count($PAYMENT_INFO) > 0}
<div class="highlightbox">
  {foreach name=aussen item=data from=$PAYMENT_INFO}
    <h4>{$data.title|stripslashes}</h4>
    <table class="paymentinfotable {$data.class}">
      {foreach name=aussen item=info from=$data.fields}
        <tr>
          <td>{if $info.title != ''}{$info.title|stripslashes}{else}&nbsp;{/if}</td>
          <td>{if $info.field != ''}{$info.field|stripslashes}{else}&nbsp;{/if}</td>
        </tr>      
      {/foreach}
    </table>
  {/foreach}
</div>
<br class="clearfix" />
{/if}
/templates/TEMPLATENAME/module/logoff.html

Suche:

<h1>{#heading_logoff#}</h1>

Füge danach ein:

{if $info_message}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}

Hinweis ausgeben, dass Gutscheine nicht von Gästen gekauft werden dürfen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_info/product_info*.html

Füge an gewünschter Stelle ein:

      {if $ADD_CART_BUTTON == '' && $PRODUCTS_GIFT_FORBIDDEN == 'true'}<p>{#products_gift_forbidden#}</p>{/if}

Update für Passwort-Richtlinie[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/account_password.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
{$FORM_ACTION}
<div class="highlightbox">

Füge danach ein:

<p>{#text_password_policy#|sprintf:$smarty.const.ENTRY_PASSWORD_MIN_LENGTH}</p>
/templates/TEMPLATENAME/module/create_account.html

Suche:

<h2>{#title_password#}</h2>
<div class="highlightbox">

Füge danach ein:

{#text_password_policy#|sprintf:$smarty.const.ENTRY_PASSWORD_MIN_LENGTH}

Update der Routine für vergessene Passwörter[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/new_password_mail.html
/templates/tpl_modified/mail/english/new_password_mail.txt
/templates/tpl_modified/mail/german/new_password_mail.html
/templates/tpl_modified/mail/german/new_password_mail.txt
/templates/xtc5/mail/english/new_password_mail.html
/templates/xtc5/mail/english/new_password_mail.txt
/templates/xtc5/mail/german/new_password_mail.html
/templates/xtc5/mail/german/new_password_mail.txt

Die folgenden Dateien können gelöscht werden, da sie nicht mehr benötigt werden:

/templates/TEMPLATENAME/mail/english/change_password_mail.html
/templates/TEMPLATENAME/mail/english/change_password_mail.txt
/templates/TEMPLATENAME/mail/german/change_password_mail.html
/templates/TEMPLATENAME/mail/german/change_password_mail.txt
/templates/TEMPLATENAME/mail/english/password_verification_mail.html
/templates/TEMPLATENAME/mail/english/password_verification_mail.txt
/templates/TEMPLATENAME/mail/german/password_verification_mail.html
/templates/TEMPLATENAME/mail/german/password_verification_mail.txt

Update der Login-Routine zum Schutz vor Brute-Force Attacken[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/login.html
/templates/xtc5/module/login.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Suche:

{config_load file="$language/lang_$language.conf" section="login"}

Füge danach ein:

{config_load file="$language/lang_$language.conf" section="newsletter"}

Suche:

    <tr>
      <td style="white-space:nowrap;"><strong>{#text_email#}</strong></td>
      <td>{$INPUT_MAIL}</td>
      <td>&nbsp;</td>
    </tr>

Füge davor ein:

    {if $INPUT_CODE}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$VVIMG}</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$INPUT_CODE}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}

Erweiterung der Sonderangebote-Box für Startdatum[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

                                          AND s.status = '1'

Füge danach ein:

                                          AND (now() >= s.start_date
                                               OR s.start_date IS NULL)

Überarbeitung der Content Popups[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/popup_content.html
/templates/xtc5/module/popup_content.html

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/stylesheet.css

Füge am Ende der Datei ein:

/* styles for popup content */
.popup-cont {
font-family:Arial, Helvetica, sans-serif;
background:#fff;
margin:0px;
}

Überarbeitung der Sub Kategorie Listing Anzeige[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/sub_categories_listing.html
/templates/xtc5/module/sub_categories_listing.html

Überarbeitung der Sub Content Listing Anzeige[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/sub_content_listing.html
/templates/xtc5/module/sub_content_listing.html

Überarbeitung der Newsletter Aktivierung[Bearbeiten]

  • zwingend notwendig

Änderungen siehe https://trac.modified-shop.org/changeset/11080/

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/newsletter.html
/templates/xtc5/module/newsletter.html

Hinzufügen des Merkzettels[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/boxes/wishlist.php
/templates/tpl_modified/module/wishlist.html
/templates/tpl_modified/source/boxes/box_wishlist.html
/templates/xtc5/boxes/wishlist.php
/templates/xtc5/module/wishlist.html
/templates/xtc5/source/boxes/box_wishlist.html

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_info/product_info*.html

Suche:

          {if $ADD_CART_BUTTON_PAYPAL}
            <br class="clearfix" />
            <span class="addtobasket_button">{$ADD_CART_BUTTON_PAYPAL}</span>
          {/if}

Füge danach ein:

          {if $ADD_CART_BUTTON_WISHLIST}
            <br class="clearfix" />
            <span class="addtobasket_button">{$ADD_CART_BUTTON_WISHLIST}</span>
          {/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/TEMPLATENAME/module/shopping_cart.html

Füge am Ende der Datei ein:

{if $MODULE_wishlist}
  <br class="clearfix" />
  {$MODULE_wishlist}
{/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/TEMPLATENAME/module/order_details.html

Suche:

      <a class="ord_prdoducts_name" href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a>
      {if $module_data.ATTRIBUTES != ''} 
      <ul class="attributes_list">
        {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES} 
        <li><strong>{$item_data.NAME}:</strong> {$item_data.VALUE_NAME}</li>
        {/foreach} 
      </ul>
      {/if}

Füge danach ein:

      {if $module_data.BUTTON_WISHLIST != ''}<span class="ord_wishlist">&laquo; {$module_data.BUTTON_WISHLIST}</span>{/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes.php

Suche:

require_once(DIR_FS_BOXES . 'shopping_cart.php');

Füge danach ein:

if (defined('MODULE_WISHLIST_SYSTEM_STATUS') && MODULE_WISHLIST_SYSTEM_STATUS == 'true') {
  require_once(DIR_FS_BOXES . 'wishlist.php');
}
/templates/TEMPLATENAME/index.html

An gewünschter Stelle einfügen:

{if isset($box_WISHLIST)}<li class="wishlist">{$box_WISHLIST}</li>{/if}

Express Checkout[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/account_checkout_express.html
/templates/xtc5/module/account_checkout_express.html

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info*.html

An gwünschter Stelle einfügen:

{if isset($EXPRESS_LINK)}<li class="express">{$EXPRESS_LINK}</li>{/if}

Suche:

          <span class="addtobasket_button">{$ADD_CART_BUTTON}</span>

Füge danach ein:

          {if isset($ADD_CART_BUTTON_EXPRESS)}
            <br class="clearfix" />
            <span class="addtobasket_button">{$ADD_CART_BUTTON_EXPRESS}</span>
          {elseif $ACTIVATE_EXPRESS_LINK}
            <br class="clearfix" />
            <span class="express_info"><a href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a></span>
          {/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/shopping_cart.html

An gewünschter Stelle einfügen:

      {if isset($BUTTON_CHECKOUT_EXPRESS)}<span class="express_button">{$BUTTON_CHECKOUT_EXPRESS}</span>{/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html

An gewünschter Stelle einfügen:

    {if isset($EXPRESS)}
    <div class="highlightbox plainright">
      <h4>{#heading_checkout_express#}</h4>
      {if isset($success_message)}
        <div class="infomessage">{$success_message}</div>
      {else}
        {$FORM_ACTION}
        <span style="float:right;margin-left:20px;">{$BUTTON_SUBMIT}</span>
        {#text_express_checkout_information#} {if isset($EXPRESS_LINK)}{$EXPRESS_LINK}{/if}
        {$FORM_END}
      {/if}
    </div>
    {/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/account.html

An gewünschter Stelle einfügen:

        {if isset($LINK_EXPRESS)}
          <li><a class="black" href="{$LINK_EXPRESS}"><strong>{#text_express_checkout#}</strong></a></li>
        {/if}

Suche:

        {$order_data.BUTTON_CART}

Füge davor ein:

        {if isset($order_data.BUTTON_CART_EXPRESS)}{$order_data.BUTTON_CART_EXPRESS}{/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/account_history.html

Suche:

        {$order_data.BUTTON_CART}

Füge davor ein:

        {if isset($order_data.BUTTON_CART_EXPRESS)}{$order_data.BUTTON_CART_EXPRESS}{/if}

Die folgende(n) Datei(en) wie folgt bearbeiten:

/templates/tpl_modified/module/account_history_info.html

Suche:

          {$order_values.BUTTON_CART}

Füge davor ein:

          {if isset($order_values.BUTTON_CART_EXPRESS)}{$order_values.BUTTON_CART_EXPRESS}{/if}

Suche:

  {$BUTTON_CART}

Füge davor ein:

  {if isset($BUTTON_CART_EXPRESS)}{$BUTTON_CART_EXPRESS}{/if}

Aktualisierung der Seitenschaltung (Pagination)[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/pagination.html
/templates/xtc5/module/pagination.html

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_listing/product_listing*.html
/templates/TEMPLATENAME/module/reviews.html
/templates/TEMPLATENAME/module/product_reviews.html
/templates/TEMPLATENAME/module/account_history.html

Suche:

{$NAVIGATION}

Ersetze mit:

{$PAGINATION}
/templates/TEMPLATENAME/stylesheet.css

Füge am Ende der Datei ein:

 /* 22. START pagination */
.pagination_bar {
  padding: 0px 0px 0px 0px;
  margin: 15px 0 15px 0;
}
.pagination_text {
  float:left;
  display:inline-block;
  font-size:12px;
  line-height:22px;
  vertical-align:middle;
  color:#444;
}
.pagination_list {
  display:inline-block;
  float:right;
  font-size:12px;
  line-height:22px;
}
.pagination_list ul {
  list-style-type:none;
  margin: 0;
}
.pagination_list ul li {
  float:left;
  font-size: 11px;  
  line-height: 21px;
  text-align: center;
  padding: 0; 
}
.pagination_list ul li.plain {
  padding: 0 4px;
}
.pagination_list ul li a {
  display: inline-block;
  min-width:13px;
  padding: 0 4px;
  margin: 0 0 0 3px;
  color: #666; 
  text-decoration:none;
  background-color: #D7D7D7;
}
.pagination_list ul li a:hover {
  color: #fff; 
  background-color: #6D2551;
}
.pagination_list ul li.current {
  display: inline-block;
  min-width:13px;
  padding: 0 4px;
  margin: 0 0 0 3px;
  color: #fff; 
  font-weight:bold;
  background-color: #6D2551;
}
/* END pagination */

Erweiterung des Artikelübersichtsseiten um Artikelfilter[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/module/listing_filter.html
/templates/tpl_modified/module/product_listing/product_listing*.html
/templates/xtc5/module/listing_filter.html
/templates/xtc5/module/product_listing/product_listing*.html

An gewünschter Stelle einfügen:

{$LISTING_FILTER}<br />

Artikeleigenschaften auf der product_info Seite anzeigen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/product_info/product_info*.html
/templates/tpl_modified/module/product_tags.html
/templates/tpl_modified/stylesheet.css
/templates/xtc5/module/product_info/product_info*.html
/templates/xtc5/module/product_tags.html
/templates/xtc5/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info*.html

An gewünschter Stelle einfügen:

{if $MODULE_product_tags != ''}{$MODULE_product_tags}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Füge am Ende der Datei ein:

/* START tags */
.tags_block {
  margin: 0 0 15px 0;
  border-top: 1px solid #eee;
}
.tags_row {
  font-size:12px;
  line-height:20px;
  border-bottom: 1px solid #eee;
}
.tags_bg1 {
  background:#fafafa;
}
.tags_bg2 {
  background:#ffffff;
}
.tags_row .tags_options {
  float:left;
  width:25%;
  display:block;
  font-weight:bold;
  padding: 5px 10px 5px 0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.tags_row .tags_options img {
  vertical-align: -3px;
  padding-left:4px;
}
.tags_options_tooltip {
  position:relative;
  z-index: 1;
  display:inline-block;
}
.tags_options_tooltip img {
  vertical-align:-3px;
}
.tags_options_tooltip .tags_options_tooltip_hover {
  position:absolute;
  bottom:20px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_options_tooltip:hover .tags_options_tooltip_hover {
  display:block;
}
.tags_row .tags_values {
  float:left;
  width:75%;
  display:block;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size:0px;
}
.tags_values_icon_row {
  font-size:12px;
  line-height:20px;
  float:left;
  padding:5px 0px 0px 0px;
}
.tags_values_icon {
  float:left;
  display:inline-block;
  height:20px;
  width:auto;
  margin:0 10px 5px 0;
}
.tags_values_icon img {
  float:left;
  height:20px;
}
.tags_values_icon a {
  display:block;
}
.tags_values_icon a:hover {
  text-decoration:none;
}
.tags_icons_tooltip {
  position:relative;
  display:block;
}
.tags_icons_tooltip img {
  vertical-align:-3px;
}
.tags_icons_tooltip .tags_icons_tooltip_hover {
  position:absolute;
  bottom:24px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_icons_tooltip:hover .tags_icons_tooltip_hover {
  display:block;
}
.tags_values_text_row {
  font-size:12px;
  line-height:20px;
  float:left;
  padding:5px 0px 5px 0px;
}
.tags_values_name {
  position:relative;
  cursor:default;
  float:left;
  clear:left;
}
.tags_values_name_tooltip {
    border-bottom: 1px dashed #999;
}
.tags_values_desc_hover {
  position:absolute;
  bottom:20px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_values_name:hover .tags_values_desc_hover {
  display:block;
}
.tags_values_info {
  position:relative;
}
.tags_values_info img {
  vertical-align:-3px;
  padding-left:4px;
}
.tags_values_diff {
  font-size:12px;
  line-height:20px;
  padding-left:1px;
  padding-right:4px;
}
/* END tags */

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info*.html

An gewünschter Stelle einfügen:

{if $MODULE_product_tags != ''}{$MODULE_product_tags}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

body.popupproductinfo ul li.active {
  font-weight:bold;
}

Füge danach ein:

body.popupproductinfo .tags_block {
  display: inline-block;
}

Füge am Ende der Datei ein:

/* START tags */
.tags_block {
  margin: 0 0 15px 0;
  border-top: 1px solid #eee;
}
.tags_row {
  font-size:12px;
  line-height:20px;
  border-bottom: 1px solid #eee;
}
.tags_bg1 {
  background:#fafafa;
}
.tags_bg2 {
  background:#ffffff;
}
.tags_row .tags_options {
  float:left;
  width:25%;
  display:block;
  font-weight:bold;
  padding: 5px 10px 5px 0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.tags_row .tags_options img {
  vertical-align: -3px;
  padding-left:4px;
}
.tags_options_tooltip {
  position:relative;
  z-index: 1;
  display:inline-block;
}
.tags_options_tooltip img {
  vertical-align:-3px;
}
.tags_options_tooltip .tags_options_tooltip_hover {
  position:absolute;
  bottom:20px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_options_tooltip:hover .tags_options_tooltip_hover {
  display:block;
}
.tags_row .tags_values {
  float:left;
  width:75%;
  display:block;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size:0px;
}
.tags_values_icon_row {
  font-size:12px;
  line-height:20px;
  float:left;
  padding:5px 0px 0px 0px;
}
.tags_values_icon {
  float:left;
  display:inline-block;
  height:20px;
  width:auto;
  margin:0 10px 5px 0;
}
.tags_values_icon img {
  float:left;
  height:20px;
}
.tags_values_icon a {
  display:block;
}
.tags_values_icon a:hover {
  text-decoration:none;
}
.tags_icons_tooltip {
  position:relative;
  display:block;
}
.tags_icons_tooltip img {
  vertical-align:-3px;
}
.tags_icons_tooltip .tags_icons_tooltip_hover {
  position:absolute;
  bottom:24px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_icons_tooltip:hover .tags_icons_tooltip_hover {
  display:block;
}
.tags_values_text_row {
  font-size:12px;
  line-height:20px;
  float:left;
  padding:5px 0px 5px 0px;
}
.tags_values_name {
  position:relative;
  cursor:default;
  float:left;
  clear:left;
}
.tags_values_name_tooltip {
    border-bottom: 1px dashed #999;
}
.tags_values_desc_hover {
  position:absolute;
  bottom:20px;
  left:-95px;
  width:200px;
  background:#eee;
  border: 1px solid #ddd;
  display:none;
  font-size:12px;
  line-height:16px;
  font-weight:normal;
  padding:10px;
}
.tags_values_name:hover .tags_values_desc_hover {
  display:block;
}
.tags_values_info {
  position:relative;
}
.tags_values_info img {
  vertical-align:-3px;
  padding-left:4px;
}
.tags_values_diff {
  font-size:12px;
  line-height:20px;
  padding-left:1px;
  padding-right:4px;
}
/* END tags */

Änderungen ab Version 2.0.1.0[Bearbeiten]

Überarbeitung des Bundesländer-Dropdowns bei Accounterstellung & -änderung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/get_states.js.php
/templates/tpl_modified/module/address_book_details.html
/templates/tpl_modified/module/checkout_new_address.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/xtc5/javascript/get_states.js.php
/templates/xtc5/module/address_book_details.html
/templates/xtc5/module/checkout_new_address.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei kann gefahrlos ins eigene Template in den selben Ordner kopiert und überschrieben werden:

/templates/tpl_modified/javascript/get_states.js.php

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/general.js.php

Füge am Ende der Datei ein:

<?php require DIR_FS_CATALOG . 'templates/'.CURRENT_TEMPLATE.'/javascript/get_states.js.php'; // Ajax State/District/Bundesland Updater - h-h-h ?>
/templates/TEMPLATENAME/module/address_book_details.html

Suche:

  {if $state == '1'} 
  <tr>
    <td>{#text_state#}</td>
    <td class="inputRequirement">{$INPUT_STATE}</td>
  </tr>
  {/if}

Ersetze mit:

  {if $state == '1'} 
  <tr{if $display_state}{$display_state}{/if}>
    <td>{#text_state#}</td>
    <td class="inputRequirement">{$INPUT_STATE}</td>
  </tr>
  {/if}
/templates/TEMPLATENAME/module/checkout_new_address.html

Suche:

  {if $state == '1'}
  <tr>
    <td>{#text_state#}</td>
    <td align="left">{$INPUT_STATE}</td>
  </tr>
  {/if}

Ersetze mit:

  {if $state == '1'}
  <tr{if $display_state}{$display_state}{/if}>
    <td>{#text_state#}</td>
    <td align="left">{$INPUT_STATE}</td>
  </tr>
  {/if}
/templates/TEMPLATENAME/module/create_account.html
/templates/TEMPLATENAME/module/create_account_guest.html

Suche:

  {if $state == '1'}
  <tr>
    <td>{#text_state#}</td>
    <td>{$INPUT_STATE}</td>
  </tr>
  {/if}

Ersetze mit:

  {if $state == '1'}
  <tr{if $display_state}{$display_state}{/if}>
    <td>{#text_state#}</td>
    <td>{$INPUT_STATE}</td>
  </tr>
  {/if}

Separate E-Mails für Bestellbestätigung & Auftragsbestätigung[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified/mail/german/order_mail_step.txt
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/english/order_mail_step.txt
/templates/xtc5/mail/german/order_mail_step.html
/templates/xtc5/mail/german/order_mail_step.txt

Kundenrezensionen manuell freischalten[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/reviews.php
/templates/xtc5/source/boxes/reviews.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

                         AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";

Ersetze mit:

                         AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                         AND r.reviews_status = '1'";

Überarbeitung Captcha bei Accounterstellung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/create_account.html

Suche:

  <tr>
    <td>{#text_confirmation#}</td>
    <td>{$INPUT_CONFIRMATION}</td>
  </tr>

Füge danach ein:

  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/create_account_guest.html

Suche:

<div class="highlightbox">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td width="25">{$CHECKBOX_NEWSLETTER}</td>
    <td>{#text_newsletter#}</td>
  </tr>
</table>
</div>

Füge danach ein:

{if $INPUT_VVCODE}
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
    <td>{$VVIMG}</td>
  </tr>
  <tr>
    <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
    <td>{$INPUT_VVCODE}</td>
  </tr>
</table>
{/if}

Update für Google Certified Shops Merchant[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/index.html

suchen nach

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE == 'true' && $smarty.session.customers_status.customers_status_id == '0') || $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE == 'true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE == 'true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID}
  {/if}
  {if $smarty.const.TRACKING_FACEBOOK_ACTIVE=='true'}
    {facebook id=$smarty.const.TRACKING_FACEBOOK_ID}
  {/if}
{/if}

Füge danach ein:

{if $smarty.const.GOOGLE_CERTIFIED_SHOPS_MERCHANT_ACTIVE == 'true'}
  {googlecertificate subaccount=$smarty.const.GOOGLE_SHOPPING_ID account=$smarty.const.GOOGLE_TRUSTED_ID}
{/if}

Newsletter-System abschalten[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/account.html

Suche:

<h2>{#title_notification#}</h2>
<div class="highlightbox">
  <ul>
    <li><a href="{$LINK_NEWSLETTER}">{#text_newsletter#}</a></li>
  </ul>
</div>

Ersetze mit:

{if $LINK_NEWSLETTER}
<h2>{#title_notification#}</h2>
<div class="highlightbox">
  <ul>
    <li><a href="{$LINK_NEWSLETTER}">{#text_newsletter#}</a></li>
  </ul>
</div>
{/if}
/templates/TEMPLATENAME/module/create_account.html

Suche:

<h2>{#title_newsletter#}</h2>
<div class="highlightbox">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td width="25">{$CHECKBOX_NEWSLETTER}</td>
    <td>{#text_newsletter#}</td>
  </tr>
</table>
</div>

Ersetze mit:

{if $CHECKBOX_NEWSLETTER}
<h2>{#title_newsletter#}</h2>
<div class="highlightbox">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td width="25">{$CHECKBOX_NEWSLETTER}</td>
    <td>{#text_newsletter#}</td>
  </tr>
</table>
</div>
{/if}
/templates/TEMPLATENAME/module/create_account_guest.html   

Suche:

<h2>{#title_newsletter#}</h2>
<div class="highlightbox">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td width="25">{$CHECKBOX_NEWSLETTER}</td>
    <td>{#text_newsletter#}</td>
  </tr>
</table>
</div>

Ersetze mit:

{if $CHECKBOX_NEWSLETTER}
<h2>{#title_newsletter#}</h2>
<div class="highlightbox">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td width="25">{$CHECKBOX_NEWSLETTER}</td>
    <td>{#text_newsletter#}</td>
  </tr>
</table>
</div>
{/if}

Überarbeitung der checkout_payment falls Guthaben ausreicht um Kauf zu tätigen[Bearbeiten]

/templates/TEMPLATENAME/module/checkout_payment.html

Suche:

{if $GV_COVER != 'true'}
<h1>{#title_payment#}</h1>
<p>{#text_payment#}</p>
  {$PAYMENT_BLOCK}{$module_gift}
{else}
  <div class="infomessage" id="gccover"><b>{#text_gccover#}</b></div>
{/if}

Ersetze mit:

{if (!isset($GV_COVER) || $GV_COVER != 'true') && (!isset($NO_PAYMENT) || $NO_PAYMENT != 'true')}
  <h1>{#title_payment#}</h1>
  <p>{#text_payment#}</p>
  {$PAYMENT_BLOCK}{$module_gift}
{elseif isset($GV_COVER) && $GV_COVER == 'true'}
  <div class="infomessage" id="gccover"><b>{#text_gccover#}</b></div>
{elseif isset($NO_PAYMENT) && $NO_PAYMENT == 'true'}
  <div class="infomessage" id="nopayment"><b>{#text_nopayment#}</b></div>
{/if}

Erweiterung des Kontaktformulars um Datenschutz-Checkbox[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/contact_us.html

Suche:

{config_load file="$language/lang_$language.conf" section="newsletter"}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="create_account"}
{config_load file="$language/lang_$language.conf" section="newsletter"}

Füge an gewünschter Stelle ein:

  {if $PRIVACY_CHECKBOX}
  <table width="100%" border="0" cellspacing="0" cellpadding="4">
    <tr>
      <td>{$PRIVACY_CHECKBOX}</td>
      <td width="100%"><strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
    </tr>
  </table>
  {/if}

Neue Template-Datei für Wartungsmodus[Bearbeiten]

  • optional

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/xtc5/module/offline/login_shop.html

Erweiterung der Bestellbestätigungs-Druckansicht um Zahlungsinformationen[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/print_order.html

Suche:

    {if $DELIVERY_DUTY_INFO}
    <div style="font-size:11px; margin: 10px 0; border:1px solid #a3a3a3;padding:5px;text-align: justify;">{#text_duty_info#}</div>
    {/if}

Füge danach ein:

    {if count($PAYMENT_INFO) > 0}
    <br/><br/>
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>
          <table style="border:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            {foreach name=aussen item=data from=$PAYMENT_INFO}
              <tr>
                <td class="small" colspan="2">
                  <strong>{$data.title|stripslashes}</strong>
                </td>
              </tr>
              {foreach name=aussen item=info from=$data.fields}
                <tr>
                  <td class="small">{if $info.title != ''}{$info.title|stripslashes}{else}&nbsp;{/if}</td>
                  <td class="small">{if $info.field}{$info.field|stripslashes}{else}&nbsp;{/if}</td>
                </tr>      
              {/foreach}
            {/foreach}
          </table>
        </td>
      </tr>
    </table>
    {/if}

Colorbox Popup in Template tpl_modified für Druckansicht auf checkout_success Seite verwenden[Bearbeiten]

  • optional in
/templates/tpl_modified/module/checkout_success.html

Suche:

<div class="button_left">{$FORM_ACTION_PRINT}{$BUTTON_PRINT}{$FORM_END}</div>

Ersetze mit:

<div class="button_left">{$FORM_ACTION_PRINT_LAYER}{$BUTTON_PRINT}{$FORM_END}</div>

Änderungen ab Version 2.0.2.0[Bearbeiten]

Erweiterung der Sonderangebote-Box für Startdatum[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

                                          AND s.status = '1'
                                          AND (now() >= s.start_date
                                               OR s.start_date IS NULL)

Ersetze mit:

                                          ".SPECIALS_CONDITIONS_S."

Artikel-Links aus Warenkorb bei Artikeln mit Attributen mit entsprechender Attribut-Auswahl erweitern[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_options/multi_options_1.html

Suche:

            <option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if} </option>

Ersetze mit:

            <option value="{$item_data.ID}"{if $item_data.CHECKED == '1'} selected="selected"{/if}>{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if} </option>
/templates/TEMPLATENAME/module/product_options/product_options_dropdown.html

Suche:

            <option value="{$item_data.ID}">&nbsp;{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if}&nbsp; </option>

Ersetze mit:

            <option value="{$item_data.ID}"{if $item_data.CHECKED == '1'} selected="selected"{/if}>&nbsp;{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if}&nbsp; </option>
/templates/TEMPLATENAME/module/product_options/product_options_selection.html

Suche:

	            <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}" {if $smarty.foreach.key_data.first}checked="checked" {/if} />

Ersetze mit:

            <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}"{if $item_data.CHECKED == '1'} checked="checked"{/if} />
/templates/TEMPLATENAME/module/product_options/table_listing.html

Suche:

            {if $smarty.foreach.inner.iteration == 1}
              <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}" checked="checked" />
            {else}
              <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}" />
            {/if}

Ersetze mit:

            <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}"{if $item_data.CHECKED == '1'} checked="checked"{/if} />

Erweiterung für "PayPal Ratenkauf (paypalinstallment)"[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/order_details.html

An gewünschter Stelle einfügen:

      {if $PAYPAL_INSTALLMENT}<br/>{$PAYPAL_INSTALLMENT}{/if}
/templates/TEMPLATENAME/module/product_info/product_info*.html

An gewünschter Stelle einfügen:

      {if $PAYPAL_INSTALLMENT}
        <br class="clearfix" />
        {$PAYPAL_INSTALLMENT}
      {/if}

Erweiterung der checkout_confirmation.html Seite für Anzeige des Firmensitzes (Vorgabe von VISA ab 01.02.2017)[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/checkout_confirmation.html

Suche:

    {#text_information#}

Ersetze mit:

    {#text_information#|sprintf:$HEADQUARTER}

Verhindern von Mehrfachkäufen im Checkout[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/javascript/general_bottom.js.php

Füge am Ende der Datei ein:

<script type="text/javascript">
  $('#button_checkout_confirmation').on('click',function() {
    $(this).hide();
  });
</script>

Fallback in Template tpl_modified für Colorbox Popup für Druckansicht auf checkout_success Seite verwenden[Bearbeiten]

  • optional in
/templates/tpl_modified/module/checkout_success.html

Suche:

<div class="button_left">{$FORM_ACTION_PRINT_LAYER}{$BUTTON_PRINT}{$FORM_END}</div>

Ersetze mit:

<div class="button_left">{if isset($FORM_ACTION_PRINT_LAYER)}{$FORM_ACTION_PRINT_LAYER}{else}{$FORM_ACTION_PRINT}{/if}{$BUTTON_PRINT}{$FORM_END}</div>

Änderungen ab Version 2.0.2.2[Bearbeiten]

Autocomplete Suche[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/javascript/general_bottom.js.php

Füge am Ende der Datei ein:

<?php if (SEARCH_AC_STATUS == 'true') { ?>
<script type="text/javascript">
  var option = $('#suggestions');
  $(document).click(function(e){
    var target = $(e.target);
    if(!(target.is(option) || option.find(target).length)){
      ac_closing();
    }
  });
  var ac_pageSize = 8;
  var ac_page = 1;
  var ac_result = 0;
  var ac_show_page = '<?php echo AC_SHOW_PAGE; ?>';
  var ac_show_page_of = '<?php echo AC_SHOW_PAGE_OF; ?>';
  
  function ac_showPage(ac_page) {
    ac_result = Math.ceil($("#autocomplete_main").children().length/ac_pageSize);
    $('.autocomplete_content').hide();   
    $('.autocomplete_content').each(function(n) {    
      if (n >= (ac_pageSize * (ac_page - 1)) && n < (ac_pageSize * ac_page)) {
        $(this).show();
      }
    });
    $('#autocomplete_next').css('visibility', 'hidden');
    $('#autocomplete_prev').css('visibility', 'hidden');
    if (ac_page > 1) {
      $('#autocomplete_prev').css('visibility', 'visible');
    }
    if (ac_page < ac_result && ac_result > 1) {
      $('#autocomplete_next').css('visibility', 'visible');
    }
    $('#autocomplete_count').html(ac_show_page+ac_page+ac_show_page_of+ac_result);
  }
  function ac_prevPage() {
    if (ac_page == 1) {
      ac_page = ac_result;
    } else {
      ac_page--;
    }
    if (ac_page < 1) {
      ac_page = 1;
    }
    ac_showPage(ac_page);
  }
  function ac_nextPage() {
    if (ac_page == ac_result) {
      ac_page = 1;
    } else {
      ac_page++;
    }
    ac_showPage(ac_page);
  }
  function ac_lookup(inputString) {
    if(inputString.length == 0) {
      $('#suggestions').hide();
    } else {
      $.post("<?php echo xtc_href_link('api/autocomplete/autocomplete.php', '', $request_type); ?>", {queryString: ""+inputString+""}, function(data) {
        if(data.length > 0) {
          $('#suggestions').slideDown();
          $('#autoSuggestionsList').html(data);
          ac_showPage(1);
          $('#autocomplete_prev').click(ac_prevPage);
          $('#autocomplete_next').click(ac_nextPage);
        }
      });
    }
  }
</script>
<?php } ?>
<?php if (SEARCH_AC_STATUS == 'true' || (!strstr($PHP_SELF, FILENAME_SHOPPING_CART) && !strstr($PHP_SELF, 'checkout'))) { ?>  
<script type="text/javascript">
  function ac_closing() {
    setTimeout("$('#suggestions').slideUp();", 100);
    ac_page = 1;
  }
</script>
<?php } ?>
/templates/TEMPLATENAME/boxes/box_search.html

Füge am Ende der Datei ein:

<div class="suggestionsBox" id="suggestions" style="display:none;">
  <div class="suggestionList" id="autoSuggestionsList">&nbsp;</div>
</div>
/templates/TEMPLATENAME/source/boxes/search.php

Suche:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'maxlength="30" onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;"'));
$box_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_quick_find.gif', IMAGE_BUTTON_SEARCH));

Ersetze mit:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '').'onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;"'));
$box_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_quick_find.gif', IMAGE_BUTTON_SEARCH,''));
/templates/TEMPLATENAME/stylesheet.css

Füge am Ende der Datei ein:

/* START autocomplete */
#header #search {
  position:relative;
}
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width:400px;
  background-color:#f1f1f1;
  border:1px solid #ccc;
  color:#333;
  z-index:99999;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 3px 10px;
}
.suggestionList {
  margin:0px;
  padding:0px;
  max-height:600px;
  overflow:auto;
  padding-right:5px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.suggestionList li {
  border-bottom:1px solid #ddd;
  background-color:#f1f1f1;
  list-style:none;
}
.suggestionList li a.autocomplete {
  display:inline-block;
  padding:5px 0px;
  text-decoration: none;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width:100%;
}
.suggestionList li a.autocomplete .autocomplete_image {
  float:left;
  display:block;
  width:40px;
  height:40px;
  overflow:hidden;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #ddd;
  margin-right:10px;
}
.suggestionList li a.autocomplete .autocomplete_image img {
  float:left;
  width:100%;
  height:auto;
}
.autocompletecloser {
  cursor:pointer;
}
#autocomplete_pagination {
  position:relative;
}
#autocomplete_pagination li {
  float:left;
  border: 0;
}
#autocomplete_pagination li:hover {
  background-color:#f1f1f1;
}
#autocomplete_prev {
  cursor:pointer;
  padding:5px;
  width:5%;
  text-align:left;
  font-size:15px;
}
#autocomplete_next {
  cursor: pointer;
  padding: 5px;
  width: 5%;
  float: right !important;
  text-align: right;
  font-size:15px;
}
#autocomplete_count {
  padding: 5px;
  width: 75%;
  text-align: center;
  position: absolute;
  margin-left: 7%;
  font-size:11px;
  font-weight:bold;
}
.autocomplete_error {
  padding:6px 0px 11px;
  display:inline-block;
  text-align:center;
  width:100%;
}
.hl_image {
  float:left;
  width: 60px;
  height:60px;
  overflow:hidden;
  padding: 2px;
  border: 1px solid #ddd;
  position:relative;
  display:block;
  margin: 0px 20px 0px 0px;
}
.hl_image img {
  max-width: 60px;
  max-height:60px;
  position:absolute;
  margin: auto;
  left:0px;
  right:0px;
  top:0px;
  bottom:0px;
}
.hl_text {
  float:left;
  display:block;
  width:290px;
  font-size:12px;
}
.hl_text_entry {
  display:block;
  padding: 0px 0px 8px 0px;
}
.hl_price {
  display:block;
  float:right;
  width:80px;
  text-align:right;
  font-weight:bold;
}
.hl_price .no_price {
  font-size:9px;
  line-height:11px;
  font-weight:normal;
  display:block;
  padding:0px 0 0 0;
  color:#333;
}
.hl_price .special_price {
  display:block;
  font-size:13px;
  line-height:19px;
  color:red;
}
.hl_price .small_price {
  font-size:9px;
  font-weight:normal;
  line-height:11px;
}
.hl_price .standard_price {
  display:block;
  font-size:13px;
  line-height:19px;
  color:#333;
}
a.autocomplete, a.autocomplete:link, a.autocomplete:visited, a.autocomplete:active, a.autocomplete:hover {
  background:transparent !important;
  text-decoration:none !important;
  outline:none !important;
  cursor:pointer !important;
}
a.autocomplete:link {
  color:#893769 !important;
  outline:none !important;
}
a.autocomplete:visited {
  color:#893769 !important;
  outline:none !important;
}
a.autocomplete:hover, a.autocomplete:active {
  color:#893769 !important;
  outline:none !important;
}
a.autocomplete:hover {
  color:#555 !important;
  text-decoration:underline !important;
  outline:none !important;
}
/* END autocomplete */

Die Datei

/templates/xtc5/module/autocomplete.html

in den eigenen Templateordner kopieren


CSS und Javascript Dateien kombinieren[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/javascript/general_bottom.js.php

Suche:

if (COMPRESS_JAVASCRIPT == 'true') { 	  	
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $script_array = combine_files($script_array,$script_min,false);
}

foreach ($script_array as $script) {

Ersetze mit:

$this_f_time = filemtime(DIR_FS_CATALOG.DIR_TMPL_JS.'general_bottom.js.php');

if (COMPRESS_JAVASCRIPT == 'true') { 	  	
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $script_array = combine_files($script_array,$script_min,false,$this_f_time);
}

foreach ($script_array as $script) {
  $script .= strpos($script,$script_min) === false ? '?v=' . filemtime(DIR_FS_CATALOG.$script) : '';
/templates/TEMPLATENAME/css/general.css.php

Suche:

if (COMPRESS_STYLESHEET == 'true') {
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $css_array = combine_files($css_array,$css_min,true);
}

// Put CSS-Inline-Definitions here, these CSS-files will be loaded at the TOP of every page

foreach ($css_array as $css) {

Ersetze mit:

$this_f_time = filemtime(DIR_FS_CATALOG.DIR_TMPL_CSS.'general.css.php');

if (COMPRESS_STYLESHEET == 'true') {
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $css_array = combine_files($css_array,$css_min,true,$this_f_time);
}

// Put CSS-Inline-Definitions here, these CSS-files will be loaded at the TOP of every page

foreach ($css_array as $css) {
  $css .= strpos($css,$css_min) === false ? '?v=' . filemtime(DIR_FS_CATALOG.$css) : '';
/templates/TEMPLATENAME/css/general_bottom.css.php

Suche:

if (COMPRESS_STYLESHEET == 'true') {
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $css_array = combine_files($css_array,$css_min,true);
}
        
foreach ($css_array as $css) {

Ersetze mit:

$this_f_time = filemtime(DIR_FS_CATALOG.DIR_TMPL_CSS.'general_bottom.css.php');

if (COMPRESS_STYLESHEET == 'true') {
  require_once(DIR_FS_BOXES_INC.'combine_files.inc.php');
  $css_array = combine_files($css_array,$css_min,true);
}
        
foreach ($css_array as $css) {
  $css .= strpos($css,$css_min) === false ? '?v=' . filemtime(DIR_FS_CATALOG.$css) : '';

Die Datei

/templates/xtc5/source/inc/combine_files.inc.php

in den eigenen Templateordner kopieren

ACHTUNG: Für die Komprimierung der Javascript Dateien ist es erforderlich, dass die entsprechenden Javascript Dateien immer mit einem Semikolon abgeschlossen sind! Ein Beispiel einer in der Vergangenheit nicht funktionierenden Javascript Datei ist die "/templates/xtc5/javascript/jquery.alerts.min.js", welche in Shopversion 2.0.3.0 bereits korrigiert wurde.


Änderungen ab Version 2.0.3.0[Bearbeiten]

Differenzierte Erfolgs- und Fehlermeldungen[Bearbeiten]

  • zwingend notwendig
/templates/TEMPLATENAME/module/offline/login_shop.html

Suche:

{if $info_message != ''}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}
/templates/TEMPLATENAME/module/account_history_info.html

Suche:

{if $info_message}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $info_message}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}
/templates/TEMPLATENAME/module/login.html

Suche:

{if $info_message != ''}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}
/templates/TEMPLATENAME/module/logoff.html

Suche:

{if $info_message}<div class="{if isset($smarty.get.info) && $smarty.get.info == '1'}info{else}error{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $info_message}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}
/templates/TEMPLATENAME/module/product_reviews.html

Suche:

<h1>{#heading_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
/templates/TEMPLATENAME/module/reviews.html

Suche:

<h1>{#heading_reviews#}</h1>

Füge danach ein:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
/templates/TEMPLATENAME/module/shopping_cart.html

Suche:

{if $info_message != ''}<div class="{if $smarty.get.info && $smarty.get.info == '1'}infomessage{else}errormessage{/if}">{$info_message}</div>{/if}
{if $coupon_message != ''}<div class="{if $smarty.get.info && $smarty.get.info == '1'}infomessage{else}errormessage{/if}">{$coupon_message}</div>{/if}

Ersetze mit:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
{if $coupon_message_success != ''}<div class="infomessage">{$coupon_message_success}</div>{/if}

Suche:

  {if $info_message_3 != ''}<div class="{if $smarty.get.info && $smarty.get.info == '1'}infomessage{else}errormessage{/if}">{$info_message_3}</div>{/if}

Ersetze mit:

  {if $info_message_3 != ''}<div class="errormessage">{$info_message_3}</div>{/if}
  • optional in
/templates/TEMPLATENAME/module/gift_cart.html

Alternativ kann die Erfolgsmeldung für die Einlösung eines Gutscheins im Warenkorb auch in die "gift_cart.html" eingebaut werden.

Am Beispiel von tpl_modified:

Suche:

{if $coupon_message != ''}<div class="{if $smarty.get.info && $smarty.get.info == '1'}infomessage{else}errormessage{/if}">{$coupon_message}</div>{/if}

Ersetze mit:

{if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Account erstellen optional[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/login.html

Suche:

<br />
<div class="highlightbox">
  <h1>{#title_new#}</h1>
  <p>{#text_new#}</p>
  <p>{$BUTTON_NEW_ACCOUNT}</p>
</div>

Ersetze mit:

{if $account_option == 'account' or $account_option == 'both'}
<br />
<div class="highlightbox">
  <h1>{#title_new#}</h1>
  <p>{#text_new#}</p>
  <p>{$BUTTON_NEW_ACCOUNT}</p>
</div>
{/if}

Korrektur der "noimage.gif" Anzeige für die Hersteller-Info-Box[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/manufacturer_info.php

Suche:

    if (xtc_not_null($manufacturer['manufacturers_image'])) {
      $image = DIR_WS_IMAGES . $manufacturer['manufacturers_image'];
      if (!file_exists($image)) {
        $image = DIR_WS_IMAGES . 'manufacturers/noimage.gif';
      }
    }

Ersetze mit:

    if ($manufacturer['manufacturers_image'] != '') {
      $image = DIR_WS_IMAGES.$manufacturer['manufacturers_image'];
    }    
    if (!is_file(DIR_FS_CATALOG.$image)) {
      $image = ((MANUFACTURER_IMAGE_SHOW_NO_IMAGE == 'true') ? DIR_WS_IMAGES.'manufacturers/noimage.gif' : '');
    }

Änderungen ab Version 2.0.4.0[Bearbeiten]

Fehler in Bestell-Historie-Box korrigiert[Bearbeiten]

  • zwingend notwendig
/templates/TEMPLATENAME/source/boxes/order_history.php

Suche:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_newsletter.html', $cache_id) || !$cache) {

Ersetze mit:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_order_history.html', $cache_id) || !$cache) {

Coupon- / Gutschein-Erweiterung für Newsletter-Anmeldung[Bearbeiten]

  • optional in

Änderungen siehe https://trac.modified-shop.org/changeset/11082/

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/newsletter_mail.html
/templates/tpl_modified/mail/english/newsletter_mail.txt
/templates/tpl_modified/mail/german/newsletter_mail.html
/templates/tpl_modified/mail/german/newsletter_mail.txt
/templates/xtc5/mail/english/newsletter_mail.html
/templates/xtc5/mail/english/newsletter_mail.txt
/templates/xtc5/mail/german/newsletter_mail.html
/templates/xtc5/mail/german/newsletter_mail.txt

Update für easyCredit[Bearbeiten]

  • optional in

Änderungen siehe https://trac.modified-shop.org/changeset/11083/

/templates/TEMPLATENAME/module/product_info/product_info_*.html

Suche:

        {if $PAYPAL_INSTALLMENT}
          <br class="clearfix" />
          {$PAYPAL_INSTALLMENT}
        {/if}

Füge danach ein:

        {if $EASYCREDIT}
          <br class="clearfix" />
          {$EASYCREDIT}
        {/if}

Korrektur der Download-Links in Text E-Mails[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/mail/german/downloads.txt
/templates/tpl_modified/mail/english/downloads.txt
/templates/xtc5/mail/german/downloads.txt
/templates/xtc5/mail/english/downloads.txt

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/german/downloads.txt
/templates/TEMPLATENAME/mail/english/downloads.txt

Suche:

{$dl_data.download_link}

Ersetze mit:

{if $dl_data.download_link_plain}{$dl_data.download_link_plain}{else}{$dl_data.download_link}{/if}

Erweiterung der Newsletter-Anmeldung um Checkbox für Datenschutzrichtlinien[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/newsletter.html
/templates/xtc5/module/newsletter.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

{config_load file="$language/lang_$language.conf" section="newsletter"}

Füge davor ein:

{config_load file="$language/lang_$language.conf" section="create_account"}

An gewünschter Stelle einfügen:

    {if $PRIVACY_CHECKBOX}
    <br />
    <table>
      <tr>
        <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
        <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
    {/if}

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

{config_load file="$language/lang_$language.conf" section="newsletter"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="newsletter"}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="create_account"}
{config_load file="$language/lang_$language.conf" section="newsletter"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="create_account"}
{config_load file="lang_`$language`.section" section="newsletter"}

An gewünschter Stelle einfügen:

      {if $PRIVACY_CHECKBOX}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
          <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
        </tr>
      </table>
      {/if}

Erweiterung der Bestellbestätigungs E-Mails um Datenschutzrichtlinien[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/mail/SPRACHE/order_mail.txt
/templates/TEMPLATENAME/mail/SPRACHE/order_mail_step.txt

Suche:

{$AGB_TXT}

Füge danach ein:

{$PRIVACY_POLICY_TXT}
/templates/TEMPLATENAME/mail/SPRACHE/order_mail.html
/templates/TEMPLATENAME/mail/SPRACHE/order_mail_step.html

Suche:

{if $AGB_HTML neq ''}
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td style="border-top: 1px dotted #999;"><font size="1" face="Tahoma, Verdana, sans-serif">{$AGB_HTML}</font></td>
  </tr>
</table>
<br />
{/if}

Füge danach ein:

{if $PRIVACY_POLICY_HTML neq ''}
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td style="border-top: 1px dotted #999;"><font size="1" face="Tahoma, Verdana, sans-serif">{$PRIVACY_POLICY_HTML}</font></td>
  </tr>
</table>
<br />
{/if}

Überarbeitung der Druckansicht Routine in Template tpl_modified auf checkout_success Seite[Bearbeiten]

  • optional in
/templates/tpl_modified/module/checkout_success.html

Suche:

<div class="button_left">{if isset($FORM_ACTION_PRINT_LAYER)}{$FORM_ACTION_PRINT_LAYER}{else}{$FORM_ACTION_PRINT}{/if}{$BUTTON_PRINT}{$FORM_END}</div>

Ersetze mit:

{if isset($BUTTON_PRINT_LAYER)}
  <div style="float:left;">{$BUTTON_PRINT_LAYER}</div>
{else}
  {if isset($FORM_ACTION_PRINT_LAYER)}{$FORM_ACTION_PRINT_LAYER}{else}{$FORM_ACTION_PRINT}{/if}<div style="float:left;">{$BUTTON_PRINT}</div>{$FORM_END}
{/if}

Änderungen ab Version 2.0.4.2[Bearbeiten]

Leeren HTML-Code in Sprachbox vermeiden bei nur einer aktivierten Sprache[Bearbeiten]

  • optional in
/templates/tpl_modified/boxes/box_languages.html

Suche:

{if isset($BOX_CONTENT)}
  {config_load file="$language/lang_$language.conf" section="boxes"}
  {config_load file="lang_`$language`.custom"}
  {$BOX_CONTENT}
{/if}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="boxes"}
{config_load file="lang_`$language`.custom"}
{if isset($BOX_CONTENT)}{$BOX_CONTENT}{/if}
/templates/tpl_modified/index.html

Suche:

    {if isset($box_LANGUAGES) && $box_LANGUAGES != ''}<div id="languages">{$box_LANGUAGES}</div>{/if}

Ersetze mit:

    {if isset($box_LANGUAGES) && trim($box_LANGUAGES) != ''}<div id="languages">{$box_LANGUAGES}</div>{/if}
/templates/xtc5/boxes/box_languages.html

Suche:

{if isset($BOX_CONTENT)}
  {config_load file="$language/lang_$language.conf" section="boxes"}
  {$BOX_CONTENT}
{/if}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="boxes"}
{if isset($BOX_CONTENT)}{$BOX_CONTENT}{/if}
/templates/tpl_modified/index.html

Suche:

  <div id="topmenuwrap">

Ersetze mit:

  <div id="topmenuwrap" class="cf">

Suche:

    <div id="languages">{if isset($box_LANGUAGES)}{$box_LANGUAGES}{/if}</div>

Ersetze mit:

    {if isset($box_LANGUAGES) && trim($box_LANGUAGES) != ''}<div id="languages">{$box_LANGUAGES}</div>{/if}

Änderungen ab Version 2.0.5.0[Bearbeiten]

Datenschutzerklärung im Checkout bestätigen[Bearbeiten]

  • zwingend notwendig
/templates/TEMPLATENAME/module/checkout_payment.html

Suche (2x):

      {if isset($REVOCATION_checkbox)}
        <div class="checkoutconditions">
          {$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}
        </div>
      {/if}

Füge davor ein:

      {if isset($PRIVACY_checkbox)}
        <div class="checkoutconditions">
          {$PRIVACY_checkbox} <strong><label for="privacy">{#text_privacy_accept#}</label></strong>&nbsp;{$PRIVACY_LINK}
        </div>
      {/if}

Überarbeitung des Captchas zur Vorbereitung für zusätzliche Validierung durch Google reCAPTCHA (Kauf-Modul erforderlich!)[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/login.html
/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified/module/password_double_opt_in.html
/templates/tpl_modified/module/product_reviews_write.html
/templates/xtc5/module/contact_us.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/login.html
/templates/xtc5/module/newsletter.html
/templates/xtc5/module/password_double_opt_in.html
/templates/xtc5/module/product_reviews_write.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/contact_us.html

Suche:

    {if $INPUT_CODE}
      <tr>
        <td>{#text_sec_code#}</td>
        <td>{$VVIMG}</td>
      </tr>
      <tr>
        <td>{#text_inp_code#}*</td>
        <td width="59%">{$INPUT_CODE}</td>
      </tr>
    {/if}

Ersetze mit:

    {if $VVIMG}
      <tr>
        <td>{#text_sec_code#}</td>
        <td>{$VVIMG}</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr>
        <td>{#text_inp_code#}*</td>
        <td width="59%">{$INPUT_CODE}</td>
      </tr>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/create_account.html

Suche:

  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Ersetze mit:

  {if $VVIMG}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/create_account_guest.html

Suche:

{if $INPUT_VVCODE}
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
    <td>{$VVIMG}</td>
  </tr>
  <tr>
    <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
    <td>{$INPUT_VVCODE}</td>
  </tr>
</table>
{/if}

Ersetze mit:

{if $INPUT_VVCODE || $VVIMG}
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  {if $VVIMG}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}
</table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/login.html

Suche:

    {if $INPUT_CODE}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$VVIMG}</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$INPUT_CODE}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}

Ersetze mit:

    {if $VVIMG}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$VVIMG}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$INPUT_CODE}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

      {if $INPUT_CODE}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/password_double_opt_in.html

Suche:

  {if $INPUT_CODE}
    <tr>
      <td width="130"><strong>{#text_sec_code#}:</strong></td>
      <td><strong>{$VVIMG}</strong></td>
    </tr>
    <tr>
      <td><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_CODE}</td>
    </tr>
  {/if}

Ersetze mit:

  {if $VVIMG}
    <tr>
      <td width="130"><strong>{#text_sec_code#}:</strong></td>
      <td><strong>{$VVIMG}</strong></td>
    </tr>
  {/if}
  {if $INPUT_CODE}
    <tr>
      <td><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_CODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_reviews_write.html

Suche:

      {if $INPUT_CODE}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/contact_us.html

Suche:

        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        <tr>
          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Ersetze mit:

        {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/create_account.html

Suche:

      {if $INPUT_VVCODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/create_account_guest.html

Suche:

    {if $INPUT_VVCODE}
    <br />
    <table>
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
      </tr>
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
      </tr>
    </table>
    {/if}

Ersetze mit:

    {if $INPUT_VVCODE || $VVIMG}
    <br />
    <table>
      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}
    </table>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/login.html

Suche:

      {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
        </tr>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/newsletter.html

Suche:

        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Ersetze mit:

        {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/password_double_opt_in.html

Suche:

      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$VVIMG}</td>
      </tr>
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$INPUT_CODE}</td>
      </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$VVIMG}</td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$INPUT_CODE}</td>
      </tr>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews_write.html

Suche:

      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$VVIMG}</span></td>
      </tr>
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
      </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$VVIMG}</span></td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
      </tr>
      {/if}

Fehler in product_reviews_write.html bei Nutzung von Smarty 2 behoben[Bearbeiten]

  • zwingend notwendig, sofern folgender Code in Datei vorhanden
/templates/TEMPLATENAME/module/product_reviews_write.html

Suche:

{foreach item=rating from=$INPUT_RATING_ARRAY|array_reverse}

Ersetze mit:

{foreach item=rating from=$INPUT_RATING_ARRAY|@array_reverse}

Update der Breadcrumb[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/breadcrumb.html
/templates/xtc5/module/breadcrumb.html

Löschen nicht mehr benötigter Template-Dateien[Bearbeiten]

  • optional in

Aus dem Template können die folgenden, nicht mehr verwendeten Dateien gelöscht werden:

/templates/TEMPLATENAME/admin/billsafe_print_order.html
/templates/TEMPLATENAME/module/new_products_overview.html
/templates/TEMPLATENAME/module/specials.html

Differenzierte Erfolgs- und Fehlermeldungen[Bearbeiten]

  • zwingend notwendig
/templates/TEMPLATENAME/module/product_reviews.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Überarbeitung der CSS- & JS-Komprimierung im Template[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/inc/combine_files.inc.php
/templates/xtc5/source/inc/combine_files.inc.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/inc/combine_files.inc.php

Suche:

      if ($compactor->save($f_min) === true) {
        $f_array = array($f_min.'?v='.$f_min_ts);
      }

Ersetze mit:

      if ($compactor->save($f_min) === true) {
        $f_min_ts = is_writeable(DIR_FS_CATALOG.$f_min) ? filemtime(DIR_FS_CATALOG.$f_min) : false;
        $f_array = array($f_min.'?v='.$f_min_ts);
      }

Eigene Template-Datei für Ausgabe von Fehlermeldungen[Bearbeiten]

  • optional

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/message_stack.html
/templates/xtc5/module/message_stack.html

Wir haben hier ein Fallback eingebaut für den Fall, dass die Datei nicht vorhanden ist. Dann werden die Fehlermeldungen wie bisher ohne eigene Template-Datei ausgegeben.


Fehlerkorrektur im Bundeslanddropdown in Template tpl_modified[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified ist die folgende Datei ins eigene Template (falls auf Basis von tpl_modified erstellt) in den selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/javascript/get_states.js.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/get_states.js.php

Suche:

  $("[name='state']").parent().parent().show();

Ersetze mit:

  $("[name='state']").parent().parent().parent().show();

Suche:

  $("[name='state']").parent().parent().hide();

Ersetze mit:

  $("[name='state']").parent().parent().parent().hide();

Suche:

      stateSelect.parent().parent().show();

Ersetze mit:

      stateSelect.parent().parent().parent().show();

Markierung des Bundeslanddropdowns als Pflichtfeld, falls vorhanden[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/javascript/get_states.js.php
/templates/xtc5/javascript/get_states.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/get_states.js.php

Suche:

      $("[name='state']").replaceWith('<select name="state"></select>');

Ersetze mit:

      $("[name='state']").replaceWith('<select name="state"></select>&nbsp;<span class="inputRequirement">*</span>');

Cache-Fehler in Sprach-Box korrigieren[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/languages.php
/templates/xtc5/source/boxes/languages.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/languages.php

Suche:

$cache_id = md5($_SESSION['language'].basename($PHP_SELF));

Ersetze mit:

$cache_id = md5($_SESSION['language'].basename($PHP_SELF).xtc_get_all_get_params());

Cache von Boxen nicht abhängig von Währung[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/best_sellers.php
/templates/tpl_modified/source/boxes/currencies.php
/templates/tpl_modified/source/boxes/last_viewed.php
/templates/tpl_modified/source/boxes/specials.php
/templates/tpl_modified/source/boxes/whats_new.php
/templates/xtc5/source/boxes/best_sellers.php
/templates/xtc5/source/boxes/currencies.php
/templates/xtc5/source/boxes/last_viewed.php
/templates/xtc5/source/boxes/specials.php
/templates/xtc5/source/boxes/whats_new.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/best_sellers.php

Suche:

$cache_id = md5($_SESSION['language'].$current_category_id);

Ersetze mit:

$cache_id = md5($_SESSION['currency'].$_SESSION['language'].$current_category_id);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/currencies.php

Suche:

$cache_id = md5($_SESSION['language'] . $_SESSION['currency']);

Ersetze mit:

$cache_id = md5($_SESSION['currency'].$_SESSION['language'] . $_SESSION['currency']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/last_viewed.php

Suche:

  $cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status'].$_SESSION['tracking']['products_history'][$random_last_viewed]);

Ersetze mit:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$_SESSION['customers_status']['customers_status'].$_SESSION['tracking']['products_history'][$random_last_viewed]);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

  $cache_id = md5($_SESSION['language'].$specials['products_id']);

Ersetze mit:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$specials['products_id']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/whats_new.php

Suche:

  $cache_id = md5($_SESSION['language'].$whats_new['products_id']);

Ersetze mit:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$whats_new['products_id']);

Wegfall der Funktion xtc_product_link[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified/source/boxes/shopping_cart.php
/templates/xtc5/source/boxes/reviews.php
/templates/xtc5/source/boxes/shopping_cart.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

    $box_smarty->assign('PRODUCTS_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($product->data['products_id'],$product->data['products_name'])));

Ersetze mit:

    $box_smarty->assign('PRODUCTS_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, 'products_id='.$product->data['products_id']));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/shopping_cart.php

Suche:

                                     'LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($products[$i]['id'], $products[$i]['name'])),

Ersetze mit:

                                     'LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$products[$i]['id']),

Korrektur des bxSliders für Google Chrome[Bearbeiten]

  • zwingend notwendig, sofern Datei in eigenem Template vorhanden

Aus dem original tpl_modified ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/javascript/jquery.bxslider.min.js

Erweiterung der Adresseingabe im Checkout um Checkbox für Standardadresse[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/checkout_new_address.html
/templates/xtc5/module/checkout_new_address.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_new_address.html

Suche:

{config_load file="$language/lang_$language.conf" section="checkout_new_address"}

Füge davor ein:

{config_load file="$language/lang_$language.conf" section="address_book_process"}

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_new_address.html

Suche:

{config_load file="$language/lang_$language.conf" section="checkout_new_address"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="checkout_new_address"}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="address_book_process"}
{config_load file="$language/lang_$language.conf" section="checkout_new_address"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="address_book_process"}
{config_load file="lang_`$language`.section" section="checkout_new_address"}

Korrektur der PayPal Express Checkbox auf checkout_confirmation Seite[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

/* END checkout */

Ersetze mit:

.button_right_checkout .checkoutconditions input[type=checkbox] {
  vertical-align: middle;
  bottom: inherit !important;
}
/* END checkout */

Austausch von jquery.alerts durch jquery.alertable[Bearbeiten]

  • zwingend notwendig

Folgende Dateien können gelöscht werden:

/templates/tpl_modified/css/jquery.alerts.css
/templates/tpl_modified/javascript/jquery.alerts.min.js
/templates/xtc5/css/jquery.alerts.css
/templates/xtc5/javascript/jquery.alerts.min.js

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/css/general_bottom.css.php
/templates/tpl_modified/css/jquery.alertable.css
/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/jquery.alertable.min.js
/templates/xtc5/css/general_bottom.css.php
/templates/xtc5/css/jquery.alertable.css
/templates/xtc5/javascript/general_bottom.js.php
/templates/xtc5/javascript/jquery.alertable.min.js

Alternativ können die Dateien general.js.php & general_bottom.js.php auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.alerts.css',

Ersetze mit:

    DIR_TMPL_CSS.'jquery.alertable.css',

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.alerts.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.alertable.min.js',

Suche:

  $.alerts.overlayOpacity = .2;
  $.alerts.overlayColor = '#000';
  function alert(message, title) {
    title = title || 'Information';
    jAlert(message, title);
  }

Ersetze mit:

  function alert(message, title) {
    title = title || 'Information';
    $.alertable.alert('<span id="alertable-title"></span><span id="alertable-content"></span>', { 
      html: true 
    });
    $('#alertable-content').html(message);
    $('#alertable-title').html(title);
  }

Update jQuery auf Version 3.4.1[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/admin/print_packingslip.html
/templates/tpl_modified/javascript/general.js.php
/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/get_states.js.php
/templates/tpl_modified/javascript/jquery.min.js
/templates/tpl_modified/module/print_order.html
/templates/tpl_modified/module/print_product_info.html
/templates/xtc5/javascript/general.js.php
/templates/xtc5/javascript/general_bottom.js.php
/templates/xtc5/javascript/get_states.js.php
/templates/xtc5/javascript/jquery.min.js
/templates/xtc5/javascript/jquery-migrate-1.4.1.min.js

Alternativ können die Dateien general.js.php & general_bottom.js.php auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/admin/print_packingslip.html
/templates/tpl_modified/module/print_order.html
/templates/tpl_modified/module/print_product_info.html

Suche:

  <script src="{$tpl_path}javascript/jquery-1.8.3.min.js" type="text/javascript"></script>

Ersetze mit:

  <script src="{$tpl_path}javascript/jquery.min.js" type="text/javascript"></script>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/javascript/general.js.php
/templates/tpl_modified/javascript/general_bottom.js.php

Suche:

  <script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-1.8.3.min.js" type="text/javascript"></script>

Ersetze mit:

  <script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery.min.js" type="text/javascript"></script>

Für Template xtc5:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/javascript/general.js.php
/templates/xtc5/javascript/general_bottom.js.php

Suche:

  <script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-1.8.3.min.js" type="text/javascript"></script>

Ersetze mit:

  <script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery.min.js" type="text/javascript"></script>
  <script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-migrate-1.4.1.min.js" type="text/javascript"></script>

Korrektur der Anzeige auf checkout_confirmation Seite, wenn weder Express-Checkout noch Widerruf angezeigt werden[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/checkout_confirmation.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

<div class="twoColums last">
  <div class="highlightbox plainright">
    {if $REVOCATION}
      {$TEXT_AGB_CHECKOUT}
    {/if}  
  </div>
  {if isset($EXPRESS)}
  <div class="highlightbox plainright">
    <h4>{#heading_checkout_express#}</h4>
    {if isset($success_message)}
      <div class="infomessage">{$success_message}</div>
    {else}
      {$FORM_ACTION}
      <span style="float:right;margin-left:20px;">{$BUTTON_SUBMIT}</span>
      {#text_express_checkout_information#} {if isset($EXPRESS_LINK)}{$EXPRESS_LINK}{/if}
      {$FORM_END}
    {/if}
  </div>
  {/if}
</div>

Ersetze mit:

{if $REVOCATION || isset($EXPRESS)}
  <div class="twoColums last">
    <div class="highlightbox plainright">
      {if $REVOCATION}
        {$TEXT_AGB_CHECKOUT}
      {/if}
    </div>
    {if isset($EXPRESS)}
    <div class="highlightbox plainright">
      <h4>{#heading_checkout_express#}</h4>
      {if isset($success_message)}
        <div class="infomessage">{$success_message}</div>
      {else}
        {$FORM_ACTION}
        <span style="float:right;margin-left:20px;">{$BUTTON_SUBMIT}</span>
        {#text_express_checkout_information#} {if isset($EXPRESS_LINK)}{$EXPRESS_LINK}{/if}
        {$FORM_END}
      {/if}
    </div>
    {/if}
  </div>
{/if}

Unbeabsichtigtes Skalieren von Artikel-Info-Bildern[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

.pd_big_image {
  position:relative;
  width:240px;
  min-height:240px;
  margin: 0px 0px 0px 0px;
  border:1px solid #eee;
}
.pd_big_image img {
  position:absolute;
  margin: auto;
  left:0px;
  right:0px;
  bottom:0px;
  top:0px;
  max-width:240px;
  height:auto;
}

Ersetze mit:

.pd_big_image {
  position:relative;
  width:240px;
  margin: 0px 0px 0px 0px;
  border:1px solid #eee;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  text-align:center;
  overflow:hidden;
}
.pd_big_image:before {
  content: '';
  padding-top: 100%;
  display: block;
}
.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 25%;
  max-height: 25%;
  font-size: 0;
  -webkit-transform: scale(4.0);
  -moz-transform: scale(4.0);
  -ms-transform: scale(4.0);
  -o-transform: scale(4.0);
  transform: scale(4.0);
}

Rich snippets hinzufügen für URL, priceValidUntil und sku, gtin8, gtin12, gtin13, gtin14, mpn, isbn[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_info/product_info*.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

        {if $PRODUCTS_MODEL != ''}<div class="pd_inforow"><strong>{#model#}</strong> {$PRODUCTS_MODEL}<meta itemprop="model" content="{$PRODUCTS_MODEL}" /></div>{/if}  
        {if $PRODUCTS_EAN != ''}<div class="pd_inforow"><strong>{#ean#}</strong> {$PRODUCTS_EAN}</div>{/if}

Ersetze mit:

        {if $PRODUCTS_MODEL != ''}<div class="pd_inforow"><strong>{#model#}</strong> <span itemprop="sku">{$PRODUCTS_MODEL}</span></div>{/if}
        {if $PRODUCTS_EAN != ''}<div class="pd_inforow"><strong>{#ean#}</strong> <span itemprop="gtin{$PRODUCTS_EAN|strlen}">{$PRODUCTS_EAN}</span></div>{/if}

Suche:

      <div class="pd_summarybox" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
        <meta itemprop="priceCurrency" content="{$smarty.session.currency}" />

Ersetze mit:

      <div class="pd_summarybox" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="url" content="{$PRODUCTS_LINK}" /> 
        <meta itemprop="priceCurrency" content="{$smarty.session.currency}" />
        {if $PRODUCTS_EXPIRES_C}<meta itemprop="priceValidUntil" content="{$PRODUCTS_EXPIRES_C}" />{/if}

Suchfeld für HTML5 anpassen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/search.php
/templates/xtc5/source/boxes/search.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/search.php

Suche:

  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '').'onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;"'));

Ersetze mit:

  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Ausgewähltes Attribut in Popup-Ansicht (Link [Mehr]) auf checkout_confirmation Seite hervorheben[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified/module/print_product_info.html
/templates/xtc5/stylesheet.css
/templates/xtc5/module/print_product_info.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

ul.printinfolist {
  margin-left:15px;
}

Füge danach ein:

ul.printinfolist li.active {
  font-weight:bold;
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/print_product_info.html

Suche:

      <li>{$module_data.GROUP}: {$module_data.NAME}</li>

Ersetze mit:

      <li{if $module_data.CHECKED == 1} class="active"{/if}>{$module_data.GROUP}: {$module_data.NAME}</li>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* POPUPS PRODUCTINFO */
body.popupproductinfo {
  padding:15px;
  background:#fff none;
}

Füge danach ein:

body.popupproductinfo ul li.active {
  font-weight:bold;
}

Suche:

/* Tomcraft - 2009-09-22 - FIX DER AUFZÄHLUNGEN IN DER DRUCKANSICHT */
.popupproductinfo #productinfowrap ol, .popupproductinfo #productinfowrap ul {
  margin:10px 0 10px 186px;
}

Ersetze mit:

/* Tomcraft - 2009-09-22 - FIX DER AUFZÄHLUNGEN IN DER DRUCKANSICHT */
.popupproductinfo #productinfowrap ol, .popupproductinfo #productinfowrap ul {
  margin:10px 0 10px 205px;
}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/print_product_info.html

Suche:

        <li>{$module_data.GROUP}: {$module_data.NAME}</li>

Ersetze mit:

        <li{if $module_data.CHECKED == 1} class="active"{/if}>{$module_data.GROUP}: {$module_data.NAME}</li>

Cookie Hinweis im Template ausgeben[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified/css/general_bottom.css.php
/templates/tpl_modified/css/jquery.cookieconsent.css
/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/jquery.cookieconsent.min.js
/templates/xtc5/css/general_bottom.css.php
/templates/xtc5/css/jquery.cookieconsent.css
/templates/xtc5/javascript/general_bottom.js.php
/templates/xtc5/javascript/jquery.cookieconsent.min.js
/templates/xtc5/javascript/thickbox.js

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

/* 7. START Footer */
#layout_footer {
  background: #434343 url(img/bg_layout_footer.jpg) repeat-x;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 20px 0;
}

Ersetze mit:

/* 7. START Footer */
#layout_footer {
  background: #434343 url(img/bg_layout_footer.jpg) repeat-x;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 70px 0;
}

Suche:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
  margin: -40px 0 0 0;
}

Ersetze mit:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
  margin: -90px 0 0 0;
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.alertable.css',

Füge danach ein:

    DIR_TMPL_CSS.'jquery.cookieconsent.css',

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.bxslider.min.js',

Füge danach ein:

  DIR_TMPL_JS.'jquery.cookieconsent.min.js',

Suche:

    $(".iframe").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true});

Ersetze mit:

    $(".iframe, .cc-link").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true});

Füge am Ende der Datei ein:

<script>  
  var consent_type = "<?php echo ((TRACKING_GOOGLEANALYTICS_ACTIVE == 'true' || TRACKING_PIWIK_ACTIVE == 'true' || TRACKING_FACEBOOK_ACTIVE == 'true' || (defined('TRACKING_CUSTOM_ACTIVE') && TRACKING_CUSTOM_ACTIVE == 'true')) ? 'opt-in' : 'info'); ?>";
  $("body").append('<div id="cookieconsent"></div>');
  
  window.cookieconsent.initialise({
    container: document.getElementById("cookieconsent"),
    type: consent_type,
    revokable: ((consent_type == 'info') ? false : true),
    animateRevokable: ((consent_type == 'info') ? true : false),
    content: {
      "message": ((consent_type == 'info') ? "<?php echo TEXT_COOKIECONSENT_MESSAGE_INFO; ?>" : "<?php echo TEXT_COOKIECONSENT_MESSAGE_TRACKING; ?>"),
      "dismiss": "<?php echo TEXT_COOKIECONSENT_DISSMISS; ?>",
      "link": "<?php echo TEXT_COOKIECONSENT_LINK; ?>",
      "href": "<?php echo ((isset($privacy_link)) ? $privacy_link : xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=2', $request_type)); ?>",
      "policy": "<?php echo TEXT_COOKIECONSENT_POLICY; ?>",
      "allow": "<?php echo TEXT_COOKIECONSENT_ALLOW; ?>",
      "deny": "<?php echo TEXT_COOKIECONSENT_DENY; ?>"
    },
    cookie: {
      "name": "MODtrack",
      "path": "<?php echo DIR_WS_CATALOG; ?>",
      "domain": "<?php echo (xtc_not_null($current_domain) ? '.'.$current_domain : ''); ?>",
      "secure": <?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? "true" : "false"); ?>
    },
    onInitialise: function(status) {
      if (status == cookieconsent.status.allow) {
        TrackingScripts();
      } else if (status != cookieconsent.status.dismiss) {
        DeleteCookies();
      }
    },
    onStatusChange: function(status, chosenBefore) {
      if (this.hasConsented()) {
        TrackingScripts();
      } else {
        DeleteCookies();
      }
    }
  });
  
  function TrackingScripts() {
    if ($.isFunction(window.TrackingGoogle)) {
      TrackingGoogle();
    }
    if ($.isFunction(window.TrackingPiwik)) {
      TrackingPiwik();
    }
    if ($.isFunction(window.TrackingFacebook)) {
      TrackingFacebook();
    }
  }

  function DeleteCookies() {
    var essential = ["MODsid", "MODtest", "MODtrack", "paypal"];
    var cookies = document.cookie.split(";");
    
    for (var c = 0; c < cookies.length; c++) {
      var cookie_name = encodeURIComponent(cookies[c].trim().split("=")[0]);      
      for (var e = 0; e < essential.length; e++) {        
        if (cookie_name.indexOf(essential[e]) >= 0) {
          delete cookies[c];      
        }
      }
    }
    
    var cookies = cookies.filter(function (el) { 
      return el != null; 
    });
    
    if (cookies.length > 0) {
      for (var c = 0; c < cookies.length; c++) {
        var cookie_name = encodeURIComponent(cookies[c].trim().split("=")[0]);
        var d = window.location.hostname.split(".");
        while (d.length > 0) {
          var p = location.pathname.split('/');
          while (p.length > 0) {
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=' + p.join('/');
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ; path=' + p.join('/');
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=.' + d.join('.') + ' ; path=' + p.join('/');
            p.pop();
          };
          d.shift();
        }        
      }
    }
  }
</script>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'thickbox.css',

Füge danach ein:

    DIR_TMPL_CSS.'jquery.cookieconsent.css',

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'thickbox.js',

Füge danach ein:

  DIR_TMPL_JS.'jquery.cookieconsent.min.js',

Füge am Ende der Datei ein:

<script>  
  var consent_type = "<?php echo ((TRACKING_GOOGLEANALYTICS_ACTIVE == 'true' || TRACKING_PIWIK_ACTIVE == 'true' || TRACKING_FACEBOOK_ACTIVE == 'true' || (defined('TRACKING_CUSTOM_ACTIVE') && TRACKING_CUSTOM_ACTIVE == 'true')) ? 'opt-in' : 'info'); ?>";
  $("body").append('<div id="cookieconsent"></div>');
  
  window.cookieconsent.initialise({
    container: document.getElementById("cookieconsent"),
    type: consent_type,
    revokable: ((consent_type == 'info') ? false : true),
    animateRevokable: ((consent_type == 'info') ? true : false),
    content: {
      "message": ((consent_type == 'info') ? "<?php echo TEXT_COOKIECONSENT_MESSAGE_INFO; ?>" : "<?php echo TEXT_COOKIECONSENT_MESSAGE_TRACKING; ?>"),
      "dismiss": "<?php echo TEXT_COOKIECONSENT_DISSMISS; ?>",
      "link": "<?php echo TEXT_COOKIECONSENT_LINK; ?>",
      "href": "<?php echo ((isset($privacy_link)) ? $privacy_link : xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=2'.(defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS), $request_type)); ?>",
      "policy": "<?php echo TEXT_COOKIECONSENT_POLICY; ?>",
      "allow": "<?php echo TEXT_COOKIECONSENT_ALLOW; ?>",
      "deny": "<?php echo TEXT_COOKIECONSENT_DENY; ?>"
    },
    cookie: {
      "name": "MODtrack",
      "path": "<?php echo DIR_WS_CATALOG; ?>",
      "domain": "<?php echo (xtc_not_null($current_domain) ? '.'.$current_domain : ''); ?>",
      "secure": <?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? "true" : "false"); ?>
    },
    onInitialise: function(status) {
      if (status == cookieconsent.status.allow) {
        TrackingScripts();
      } else if (status != cookieconsent.status.dismiss) {
        DeleteCookies();
      }
    },
    onStatusChange: function(status, chosenBefore) {
      if (this.hasConsented()) {
        TrackingScripts();
      } else {
        DeleteCookies();
      }
    }
  });
  
  function TrackingScripts() {
    if ($.isFunction(window.TrackingGoogle)) {
      TrackingGoogle();
    }
    if ($.isFunction(window.TrackingPiwik)) {
      TrackingPiwik();
    }
    if ($.isFunction(window.TrackingFacebook)) {
      TrackingFacebook();
    }
  }

  function DeleteCookies() {
    var essential = ["MODsid", "MODtest", "MODtrack"];
    var cookies = document.cookie.split(";");
    
    for (var c = 0; c < cookies.length; c++) {
      var cookie_name = encodeURIComponent(cookies[c].trim().split("=")[0]);      
      for (var e = 0; e < essential.length; e++) {        
        if (cookie_name.indexOf(essential[e]) >= 0) {
          delete cookies[c];      
        }
      }
    }

    var cookies = cookies.filter(function (el) { 
      return el != null; 
    });
    
    if (cookies.length > 0) {
      for (var c = 0; c < cookies.length; c++) {
        var cookie_name = encodeURIComponent(cookies[c].trim().split("=")[0]);
        var d = window.location.hostname.split(".");
        while (d.length > 0) {
          var p = location.pathname.split('/');
          while (p.length > 0) {
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=' + p.join('/');
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ; path=' + p.join('/');
            document.cookie = cookie_name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=.' + d.join('.') + ' ; path=' + p.join('/');
            p.pop();
          };
          d.shift();
        }        
      }
    }
  }
</script>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/thickbox.js

Suche:

var tb_pathToImage=DIR_WS_BASE+"images/loadingAnimation.gif";$(document).ready(function(){tb_init('a.thickbox, area.thickbox, input.thickbox');

Ersetze mit:

var tb_pathToImage=DIR_WS_BASE+"images/loadingAnimation.gif";$(document).ready(function(){tb_init('a.thickbox, area.thickbox, input.thickbox, a.cc-link');

Überarbeitung der favicons[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/favicons/site.webmanifest
/templates/xtc5/favicons/site.webmanifest

Anzeige der AGB unabhängig von Anzeige Widerruf auf checkout_confirmation Seite[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/checkout_confirmation.html
/templates/xtc5/module/checkout_confirmation.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html

Suche:

{if $REVOCATION || isset($EXPRESS)}
  <div class="twoColums last">
    <div class="highlightbox plainright">
      {if $REVOCATION}
        {$TEXT_AGB_CHECKOUT}
      {/if}
    </div>

Ersetze mit:

{if $TEXT_AGB_CHECKOUT || isset($EXPRESS)}
  <div class="twoColums last">
    <div class="highlightbox plainright">
      {if $TEXT_AGB_CHECKOUT}
        {$TEXT_AGB_CHECKOUT}
      {/if}
    </div>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_confirmation.html

Suche:

  {if $REVOCATION}
  <div class="checkoutInfoBoxes red">
    {$TEXT_AGB_CHECKOUT}
  </div>
  {/if}

Ersetze mit:

  {if $TEXT_AGB_CHECKOUT}
  <div class="checkoutInfoBoxes red">
    {$TEXT_AGB_CHECKOUT}
  </div>
  {/if}

Korrektur eines HTML Fehlers in checkout_confirmation.html der reponsive Templates[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/checkout_confirmation.html

Betrifft nur die Templates tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

  <div class="button_right_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}<div class="cssButtonPos12">{$CHECKOUT_BUTTON}</div></div>

Ersetze mit:

  <div class="button_right_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}<div class="cssButtonPos12">{$CHECKOUT_BUTTON|replace:"</form>":""}</div></form></div>

Artikeleigenschaften auf der print_product_info Seite anzeigen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/print_product_info.html
/templates/xtc5/module/print_product_info.html
/templates/xtc5/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/print_product_info.html

Suche:

  {if $module_content != ''}
  <h2>{#options#}</h2>    
  <ul class="printinfolist">
    {foreach name=aussen item=module_data from=$module_content}
      <li{if $module_data.CHECKED == 1} class="active"{/if}>{$module_data.GROUP}: {$module_data.NAME}</li>
    {/foreach}
  </ul>    
  {/if}

  <h2>{#price#}</h2>

Ersetze mit:

  {if $module_content != ''}
  <h4 class="detailbox">{#options#}</h4>    
  <ul class="printinfolist">
    {foreach name=aussen item=module_data from=$module_content}
      <li{if $module_data.CHECKED == 1} class="active"{/if}>{$module_data.GROUP}: {$module_data.NAME}</li>
    {/foreach}
  </ul>    
  {/if}
       
  {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}
    {$MODULE_product_tags}
  {/if}

  <h4 class="detailbox">{#price#}</h4>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/print_product_info.html

Suche:

      {if $module_content != ''}
        <h2>{#options#}</h2>    
        <ul>{foreach name=aussen item=module_data from=$module_content}
        <li{if $module_data.CHECKED == 1} class="active"{/if}>{$module_data.GROUP}: {$module_data.NAME}</li>
        {/foreach}
        </ul>    
      {/if}

Füge danach ein:

      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}
        {$MODULE_product_tags|replace:"<h1":"<h2"|replace:"h1>":"h2>"}
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

body.popupproductinfo ul li.active {
  font-weight:bold;
}

Füge danach ein:

body.popupproductinfo .tags_block {
  display: inline-block;
}

Wegfall einer alten JavaScript Funktion[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/admin/print_order.html
/templates/TEMPLATENAME/admin/print_packingslip.html
/templates/TEMPLATENAME/module/print_order.html
/templates/TEMPLATENAME/module/print_product_info.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

      window.onload = function () {
        window.focus();
        window.print();
      }

Ersetze mit:

      window.focus();
      window.print();

Artikeleigenschaften auf der checkout_confirmation Seite anzeigen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/stylesheet.css
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html

Suche:

        {$data.link}
        {if $data.order_description}<div class="description">{$data.order_description}</div>{/if}

Ersetze mit:

        {if isset($data.link_more)}<strong>{$data.name}</strong> {$data.link_more}{else}{$data.link}{/if}
        {if $data.order_description}<div class="description">{$data.order_description}</div>{/if}
        {if isset($data.products_tags)}
          <div class="ol_tags_row">
            {foreach item=module_data from=$data.products_tags}
              <div class="ol_tags_item">     
                <strong>{$module_data.OPTIONS_NAME}</strong>:       
                {foreach name=inner item=item_data from=$module_data.DATA}
                  {$item_data.VALUES_NAME}{if $smarty.foreach.inner.last}{else}, {/if}
                {/foreach}
              </div>
            {/foreach} 
          </div>
        {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

table.order_table tr.mainrow td .description {
  font-size:12px !important;
  line-height:16px !important;
  margin-bottom:5px;
}

Ersetze mit:

table.order_table tr.mainrow td .description {
  font-size:12px !important;
  line-height:16px !important;
  margin-top:5px;
  margin-bottom:5px;
}

Suche:

table.order_table tr.mainrow td .description ol{
  margin: 8px 0px 8px 15px;
}

Füge danach ein:

table.order_table tr.mainrow td .ol_tags_row {
  margin: 0 0 10px 0;
}
table.order_table tr.mainrow td .ol_tags_item {
  font-size:12px;
  line-height:18px;
  font-weight:normal;
  margin: 2px 0 0 0;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_confirmation.html.html

Suche:

          {$data.link}
          {if $data.order_description}<div class="small">{$data.order_description}</div>{/if}

Ersetze mit:

          {if isset($data.link_more)}<strong>{$data.name}</strong> {$data.link_more}{else}{$data.link}{/if}
          {if $data.order_description}<div class="small">{$data.order_description}</div>{/if}
          {if isset($data.products_tags)}
            <div class="ol_tags_row">
              {foreach item=module_data from=$data.products_tags}
                <div class="ol_tags_item">     
                  <strong>{$module_data.OPTIONS_NAME}</strong>:       
                  {foreach name=inner item=item_data from=$module_data.DATA}
                    {$item_data.VALUES_NAME}{if $smarty.foreach.inner.last}{else}, {/if}
                  {/foreach}
                </div>
              {/foreach} 
            </div>
          {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

div.checkoutbox .details{
  padding: 0 12px 0 0; 
  background: url(img/external.gif) no-repeat 100% 0px;
  color: #000;
  font-weight: bold;
}

Füge danach ein:

div.checkoutbox .ol_tags_row {
  margin: 5px 0 10px 0;
}
div.checkoutbox .ol_tags_item {
  font-size:11px;
  font-weight:normal;
  margin: 2px 0 0 0;
}

Umbenennung von Lieferadresse in Abholadresse bei Versandart Selbstabholung[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/admin/print_packingslip.html
/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail.txt
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified/mail/german/order_mail_step.txt
/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/print_order.html
/templates/xtc5/admin/print_order.html
/templates/xtc5/admin/print_packingslip.html
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/english/order_mail_step.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail_step.html
/templates/xtc5/mail/german/order_mail_step.txt
/templates/xtc5/module/account_history_info.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/print_order.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/admin/print_packingslip.html
/templates/tpl_modified/module/print_order.html

Suche:

{#shipping_address#}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}{#pickup_address#}{else}{#shipping_address#}{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/english/order_mail_step.txt

Suche:

Shippingaddress

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Pickupaddress{else}Shippingaddress{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html

Suche:

Lieferadresse

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/german/order_mail.txt
/templates/tpl_modified/mail/german/order_mail_step.txt

Suche:

Versandadresse

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Versandadresse{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/account_history_info.html

Suche:

{#text_shipping_address#}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}{#text_pickup_address#}{else}{#text_shipping_address#}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html

Suche:

{#text_shipping_address#} <a class="midi" href="{$SHIPPING_ADDRESS_EDIT}">{#text_edit#}</a>

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}{#text_pickup_address#}{else}{#text_shipping_address#} <a class="midi" href="{$SHIPPING_ADDRESS_EDIT}">{#text_edit#}</a>{/if}

Für Template xtc5:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/admin/print_order.html
/templates/xtc5/admin/print_packingslip.html
/templates/xtc5/module/print_order.html

Suche:

{#shipping_address#}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}{#pickup_address#}{else}{#shipping_address#}{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/english/order_mail_step.txt

Suche:

Shippingaddress

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Pickupaddress{else}Shippingaddress{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail_step.html

Suche:

Lieferadresse

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail_step.txt

Suche:

Versandadresse

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Versandadresse{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/account_history_info.html

Suche:

{#text_shipping_address#}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}{#text_pickup_address#}{else}{#text_shipping_address#}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_confirmation.html

Suche:

    <h2>{#text_shipping_address#}</h2>
    <div class="text">&nbsp;<a href="{$SHIPPING_ADDRESS_EDIT}">{#text_edit#}</a></div>

Ersetze mit:

    {if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}
      <h2>{#text_pickup_address#}</h2>
    {else}
      <h2>{#text_shipping_address#}</h2>
      <div class="text">&nbsp;<a href="{$SHIPPING_ADDRESS_EDIT}">{#text_edit#}</a></div>
    {/if}

Fehler in popup_search_help.html korrigiert[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/module/popup_search_help.html

Suche:

{#title#}

Ersetze mit:

{#title_help#}

Fehler in autocomplete.html in xtc5 Template korrigiert[Bearbeiten]

  • zwingend notwendig in
/templates/xtc5/module/autocomplete.html

Suche:

{config_load file="$language/lang_$language.conf" section="error_handler"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="error_handler"}

Ersetze mit:

{config_load file="$language/lang_$language.conf" section="error_handler"}

Admin-Bar im Frontend erweitern um Möglichkeit Artikeleigenschaften direkt zu bearbeiten[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_admin.html
/templates/tpl_modified/lang/lang_english.custom
/templates/tpl_modified/lang/lang_german.custom
/templates/tpl_modified/source/boxes/admin.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

/templates/tpl_modified/boxes/box_admin.html

Suche:

          {if isset($EDIT_PRODUCT) || isset($EDIT_CATEGORY)}
            {if isset($EDIT_PRODUCT)}
              <li><a href="{$EDIT_PRODUCT}">{#ab_edit_product#}</a></li>
              <li><a href="{$EDIT_XSELL}">{#ab_edit_xsell#}</a></li>
              <li><a href="{$EDIT_PRODUCT_ATTRIBUTES}">{#ab_edit_attributes#}</a></li>
            {/if}
            {if isset($EDIT_CATEGORY)}
              <li><a href="{$EDIT_CATEGORY}">{#ab_edit_category#}</a></li>
            {/if}
          {/if}

Ersetze mit:

          {if isset($EDIT_PRODUCT)}<li><a href="{$EDIT_PRODUCT}">{#ab_edit_product#}</a></li>{/if}
          {if isset($EDIT_XSELL)}<li><a href="{$EDIT_XSELL}">{#ab_edit_xsell#}</a></li>{/if}
          {if isset($EDIT_PRODUCT_ATTRIBUTES)}<li><a href="{$EDIT_PRODUCT_ATTRIBUTES}">{#ab_edit_attributes#}</a></li>{/if}
          {if isset($EDIT_PRODUCT_TAGS)}<li><a href="{$EDIT_PRODUCT_TAGS}">{#ab_edit_tags#}</a></li>{/if}
          {if isset($EDIT_CATEGORY)}<li><a href="{$EDIT_CATEGORY}">{#ab_edit_category#}</a></li>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/lang/lang_english.custom

Suche:

ab_edit_xsell = 'Edit cross selling'

Füge danach ein:

ab_edit_tags = 'Product features'

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/lang/lang_german.custom

Suche:

ab_edit_xsell = 'Cross Selling bearbeiten'

Füge danach ein:

ab_edit_tags = 'Artikeleigenschaften'

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/admin.php

Suche:

  // attributes
  if ($admin_access['new_attributes'] == '1') {
    if ($product->isProduct() === true) {
      $box_smarty->assign('EDIT_PRODUCT_ATTRIBUTES', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'new_attributes.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit'));
    }
  }

Füge danach ein:

  // tags
  if ($admin_access['products_tags'] == '1') {
    if ($product->isProduct() === true) {
      $box_smarty->assign('EDIT_PRODUCT_TAGS', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'products_tags.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit'));
    }
  }

Datenschutz Checkbox und Datenschutzhinweis voneinander trennen und Checkbox optional gestalten[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/mail/english/newsletter_mail.html
 /templates/tpl_modified/mail/english/newsletter_mail.txt
 /templates/tpl_modified/mail/german/newsletter_mail.html
 /templates/tpl_modified/mail/german/newsletter_mail.txt
 /templates/tpl_modified/module/checkout_payment.html
 /templates/tpl_modified/module/contact_us.html
 /templates/tpl_modified/module/create_account.html
 /templates/tpl_modified/module/create_account_guest.html
 /templates/tpl_modified/module/newsletter.html
 /templates/xtc5/mail/english/newsletter_mail.html
 /templates/xtc5/mail/english/newsletter_mail.txt
 /templates/xtc5/mail/german/newsletter_mail.html
 /templates/xtc5/mail/german/newsletter_mail.txt
 /templates/xtc5/module/checkout_payment.html
 /templates/xtc5/module/contact_us.html
 /templates/xtc5/module/create_account.html
 /templates/xtc5/module/create_account_guest.html
 /templates/xtc5/module/newsletter.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/mail/english/newsletter_mail.html

Suche:

			{if isset($LINK)}
      Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!<br />
      <br />
      <b>Your activation link:</b><br />
      <a href="{$LINK}">{$LINK}</a><br />
      {/if}

Ersetze mit:

			{if isset($LINK)}
			You receive this e-mail because you want to receive our newsletter.<br />
			<br />
      Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!<br />
      <br />
      <b>Your activation link:</b><br />
      <a href="{$LINK}">{$LINK}</a><br />
      <br />
      If you have not registered for our newsletter or do not wish to receive the newsletter, please ignore the activation link.<br />
      <br />
      Your consent to the dispatch of our newsletter is revocable at any time. The newsletter is sent according to our privacy policy.<br />
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/mail/english/newsletter_mail.txt

Suche:

{if isset($LINK)}
Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!

Your activation link:
{$LINK}
{/if}

Ersetze mit:

{if isset($LINK)}
You receive this e-mail because you want to receive our newsletter.

Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!

Your activation link:
{$LINK}

If you have not registered for our newsletter or do not wish to receive the newsletter, please ignore the activation link.

Your consent to the dispatch of our newsletter is revocable at any time. The newsletter is sent according to our privacy policy.
{/if}
/templates/tpl_modified/mail/german/newsletter_mail.html

Suche:

			{if isset($LINK)}
      Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen m&ouml;chten.<br />
      <br />
      Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse f&uuml;r den Newsletterempfang freigeschaltet wird.
      Sollten Sie sich nicht f&uuml;r unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht w&uuml;nschen, bitten wir Sie, 
      den Aktivierungslink einfach zu ignorieren.<br />
      <br />
      <b>Ihr Aktivierungslink:</b><br />
      <a href="{$LINK}">{$LINK}</a><br />
      {/if}

Ersetze mit:

			{if isset($LINK)}
      Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen m&ouml;chten.<br />
      <br />
      Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse f&uuml;r den Newsletterempfang freigeschaltet wird.<br />
      <br />
      <b>Ihr Aktivierungslink:</b><br />
      <a href="{$LINK}">{$LINK}</a><br />
      <br />
      Sollten Sie sich nicht f&uuml;r unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht w&uuml;nschen, bitten wir Sie, 
      den Aktivierungslink einfach zu ignorieren.<br />
      <br />
      Ihre Einwilligung in den Versand unseres Newsletters ist jederzeit widerruflich. Der Newsletter-Versand erfolgt entsprechend unserer Datenschutzerkl&auml;rung.<br />
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/mail/german/newsletter_mail.txt

Suche:

{if isset($LINK)}
Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen möchten.
Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse für den Newsletterempfang freigeschaltet wird.

Sollten Sie sich nicht für unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht wünschen,
bitten wir Sie, den Aktivierungslink einfach zu ignorieren. 
      
Ihr Aktivierungslink:
{$LINK}
{/if}

Ersetze mit:

{if isset($LINK)}
Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen möchten.

Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse für den Newsletterempfang freigeschaltet wird.

Ihr Aktivierungslink:
{$LINK}

Sollten Sie sich nicht für unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht wünschen,
bitten wir Sie, den Aktivierungslink einfach zu ignorieren. 

Ihre Einwilligung in den Versand unseres Newsletters ist jederzeit widerruflich. Der Newsletter-Versand erfolgt entsprechend unserer Datenschutzerklärung.
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_payment.html

Suche:

    {if $smarty.const.DISPLAY_CONDITIONS_ON_CHECKOUT == 'true'}
      <div id="horizontalTab">
        <ul class="resp-tabs-list nonjs-fallback">
          <li>{#title_comments_short#}</li>
          <li>{#title_agb#}</li>
        </ul>
        <div class="resp-tabs-container">
          <noscript><h4 class="nonjs-h4">{#title_comments_short#}</h4></noscript>
          <div class="checkoutcomment">{$COMMENTS}</div>
          <div>
            <noscript><h4 class="nonjs-h4">{#title_agb#}</h4></noscript>
            <div class="checkoutagb">{$AGB}</div>
          </div>
        </div>
      </div>
      <div class="checkoutconditions">
        {$AGB_checkbox} <strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}
      </div>
      {if isset($REVOCATION_checkbox)}
        <div class="checkoutconditions">
          {$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}
        </div>
      {/if}
    {else}
      <h4 class="checkout">{#title_comments_short#}</h4>
      <div class="checkoutcomment">{$COMMENTS}</div>
      {if isset($REVOCATION_checkbox)}
        <div class="checkoutconditions">
          {$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}
        </div>
      {/if}
    {/if}

Ersetze mit:

    {if $smarty.const.DISPLAY_CONDITIONS_ON_CHECKOUT == 'true'}
      <div id="horizontalTab">
        <ul class="resp-tabs-list nonjs-fallback">
          <li>{#title_comments_short#}</li>
          <li>{#title_agb#}</li>
        </ul>
        <div class="resp-tabs-container">
          <noscript><h4 class="nonjs-h4">{#title_comments_short#}</h4></noscript>
          <div class="checkoutcomment">{$COMMENTS}</div>
          <div>
            <noscript><h4 class="nonjs-h4">{#title_agb#}</h4></noscript>
            <div class="checkoutagb">{$AGB}</div>
          </div>
        </div>
      </div>
      <div class="checkoutconditions">
      {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
        {if $smarty.const.SIGN_CONDITIONS_ON_CHECKOUT == 'true'}{$AGB_checkbox} {/if}<strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}
      {else}
        {$AGB_checkbox} <strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}
      {/if}
      </div>
      {if isset($PRIVACY_LINK)}
        <div class="checkoutconditions">
          {if $PRIVACY_checkbox}{$PRIVACY_checkbox} {/if}<strong><label for="privacy">{if $PRIVACY_checkbox}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong>&nbsp;{$PRIVACY_LINK}
        </div>
      {/if}
      {if isset($REVOCATION_checkbox)}
        <div class="checkoutconditions">
          {$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}
        </div>
      {/if}
    {else}
      <h4 class="checkout">{#title_comments_short#}</h4>
      <div class="checkoutcomment">{$COMMENTS}</div>
      {if isset($PRIVACY_LINK)}
        <div class="checkoutconditions">
          {if $PRIVACY_checkbox}{$PRIVACY_checkbox} {/if}<strong><label for="privacy">{if $PRIVACY_checkbox}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong>&nbsp;{$PRIVACY_LINK}
        </div>
      {/if}
      {if isset($REVOCATION_checkbox)}
        <div class="checkoutconditions">
          {$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}
        </div>
      {/if}
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/contact_us.html

Suche:

      {if $PRIVACY_CHECKBOX}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
          <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
        </tr>
      </table>
      {/if}

Ersetze mit:

      {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
        <br />
        <table>
          <tr>
            {if $PRIVACY_CHECKBOX}<td class="checkbox">{$PRIVACY_CHECKBOX}</td>{/if}
            <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#|sprintf:$smarty.const.STORE_OWNER_EMAIL_ADDRESS}</label></strong> {$PRIVACY_LINK}</td>
          </tr>
        </table>
      {else}
        {if $PRIVACY_CHECKBOX}
        <br />
        <table>
          <tr>
            <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
            <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
          </tr>
        </table>
        {/if}
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html

Suche:

  {if $PRIVACY_CHECKBOX}
  <br />
  <table>
    <tr>
      <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
      <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
    </tr>
  </table>
  {/if}

Ersetze mit:

  {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
    <br />
    <table>
      <tr>
        {if $PRIVACY_CHECKBOX}<td class="checkbox">{$PRIVACY_CHECKBOX}</td>{/if}
        <td class="midi td_full"><strong><label for="privacy">{if $PRIVACY_CHECKBOX}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
  {else}
    {if $PRIVACY_CHECKBOX}
    <br />
    <table>
      <tr>
        <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
        <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
    {/if}
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/newsletter.html

Suche:

      {if $PRIVACY_CHECKBOX}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
          <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
        </tr>
      </table>
      {/if}

Ersetze mit:

      {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
        <br />
        <table>
          <tr>
            {if $PRIVACY_CHECKBOX}<td class="checkbox">{$PRIVACY_CHECKBOX}</td>{/if}
            <td class="midi td_full"><strong><label for="privacy">{if $PRIVACY_CHECKBOX}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong> {$PRIVACY_LINK}</td>
          </tr>
        </table>
      {else}
        {if $PRIVACY_CHECKBOX}
        <br />
        <table>
          <tr>
            <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
            <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
          </tr>
        </table>
        {/if}
      {/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/mail/english/newsletter_mail.html

Suche:

{if isset($LINK)}
<p>Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!</p>
<p><b>Your activation link:</b></p>
<p><a href="{$LINK}">{$LINK}</a></p>
{/if}

Ersetze mit:

{if isset($LINK)}
<p>You receive this e-mail because you want to receive our newsletter.</p>
<p>Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!</p>
<p><b>Your activation link:</b></p>
<p><a href="{$LINK}">{$LINK}</a></p>
<p>If you have not registered for our newsletter or do not wish to receive the newsletter, please ignore the activation link.</p>
<p>Your consent to the dispatch of our newsletter is revocable at any time. The newsletter is sent according to our privacy policy.</p>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/mail/english/newsletter_mail.txt

Suche:

{if isset($LINK)}
Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!

Your activation link:
{$LINK}
{/if}

Ersetze mit:

{if isset($LINK)}
You receive this e-mail because you want to receive our newsletter.

Please click the following activation link to receive newsletters. If you haven't subscribed to this service, please ignore this e-mail!

Your activation link:
{$LINK}

If you have not registered for our newsletter or do not wish to receive the newsletter, please ignore the activation link.

Your consent to the dispatch of our newsletter is revocable at any time. The newsletter is sent according to our privacy policy.
{/if}
/templates/xtc5/mail/german/newsletter_mail.html

Suche:

{if isset($LINK)}
<p>Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen mo&uml;chten.
Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse f&uuml;r den Newsletterempfang freigeschaltet wird.
Sollten Sie sich nicht f&uuml;r unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht w&uuml;nschen, bitten wir Sie, den Aktivierungslink einfach zu ignorieren.</p>
<p><b>Ihr Aktivierungslink:</b></p>
<p><a href="{$LINK}">{$LINK}</a></p>
{/if}

Ersetze mit:

{if isset($LINK)}
<p>Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen m&ouml;chten.</p>
<p>Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse f&uuml;r den Newsletterempfang freigeschaltet wird.</p>
<p><b>Ihr Aktivierungslink:</b></p>
<p><a href="{$LINK}">{$LINK}</a></p>
<p>Sollten Sie sich nicht f&uuml;r unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht w&uuml;nschen, bitten wir Sie, den Aktivierungslink einfach zu ignorieren.</p>
<p>Ihre Einwilligung in den Versand unseres Newsletters ist jederzeit widerruflich. Der Newsletter-Versand erfolgt entsprechend unserer Datenschutzerkl&auml;rung.</p>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/mail/german/newsletter_mail.txt

Suche:

{if isset($LINK)}
Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen möchten.
Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse für den Newsletterempfang freigeschaltet wird.

Sollten Sie sich nicht für unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht wünschen,
bitten wir Sie, den Aktivierungslink einfach zu ignorieren. 
      
Ihr Aktivierungslink:
{$LINK}
{/if}

Ersetze mit:

{if isset($LINK)}
Sie erhalten diese E-Mail, weil Sie unseren Newsletter empfangen möchten.

Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse für den Newsletterempfang freigeschaltet wird.

Ihr Aktivierungslink:
{$LINK}

Sollten Sie sich nicht für unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht wünschen,
bitten wir Sie, den Aktivierungslink einfach zu ignorieren. 

Ihre Einwilligung in den Versand unseres Newsletters ist jederzeit widerruflich. Der Newsletter-Versand erfolgt entsprechend unserer Datenschutzerklärung.
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_payment.html

Suche:

  {if $smarty.const.DISPLAY_CONDITIONS_ON_CHECKOUT == 'true'}
    <h2>{#title_agb#}</h2>
    <div class="checkoutagb">{$AGB}</div>
    <table width="100%" border="0" cellspacing="0" cellpadding="4">
      <tr>
        <td>{$AGB_checkbox}</td>
        <td width="100%"><strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}</td>
      </tr>
      {if isset($REVOCATION_checkbox)}
      <tr>
        <td>{$REVOCATION_checkbox}</td>
        <td width="100%"><strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}</td>
      </tr>
      {/if}
    </table>
  {elseif isset($REVOCATION_checkbox)}
    <table width="100%" border="0" cellspacing="0" cellpadding="4">
      <tr>
        <td>{$REVOCATION_checkbox}</td>
        <td width="100%"><strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}</td>
      </tr>
    </table>
  {/if}

Ersetze mit:

  {if $smarty.const.DISPLAY_CONDITIONS_ON_CHECKOUT == 'true'}
    <h2>{#title_agb#}</h2>
    <div class="checkoutagb">{$AGB}</div>
    <table width="100%" border="0" cellspacing="0" cellpadding="4">
      <tr>
      {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
        {if $smarty.const.SIGN_CONDITIONS_ON_CHECKOUT == 'true'}<td>{$AGB_checkbox}</td>{/if}
        <td width="100%"{if $smarty.const.SIGN_CONDITIONS_ON_CHECKOUT == 'false'} colspan="2"{/if}><strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}</td>
      {else}
        <td>{$AGB_checkbox}</td>
        <td width="100%"><strong><label for="conditions">{#text_accept_agb#}</label></strong>&nbsp;{$AGB_LINK}</td>
      {/if}
      </tr>
      {if isset($PRIVACY_LINK)}
      <tr>
        {if $PRIVACY_checkbox}<td>{$PRIVACY_checkbox}</td>{/if}
        <td width="100%"{if !$PRIVACY_checkbox} colspan="2"{/if}><strong><label for="privacy">{if $PRIVACY_checkbox}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong>&nbsp;{$PRIVACY_LINK}</td>
      </tr>
      {/if}
      {if isset($REVOCATION_checkbox)}
      <tr>
        <td>{$REVOCATION_checkbox}</td>
        <td width="100%"><strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}</td>
      </tr>
      {/if}
    </table>
  {else}
    {if isset($PRIVACY_LINK) || isset($REVOCATION_checkbox)}
      <table width="100%" border="0" cellspacing="0" cellpadding="4">
        {if isset($PRIVACY_LINK)}
        <tr>
          {if $PRIVACY_checkbox}<td>{$PRIVACY_checkbox}</td>{/if}
          <td width="100%"{if !$PRIVACY_checkbox} colspan="2"{/if}><strong><label for="privacy">{if $PRIVACY_checkbox}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong>&nbsp;{$PRIVACY_LINK}</td>
        </tr>
        {/if}
        {if isset($REVOCATION_checkbox)}
        <tr>
          <td>{$REVOCATION_checkbox}</td>
          <td width="100%"><strong><label for="revocation">{#text_accept_revocation#}</label></strong>&nbsp;{$REVOCATION_LINK}</td>
        </tr>
        {/if}
      </table>
    {/if}
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/contact_us.html

Suche:

  {if $PRIVACY_CHECKBOX}
  <table width="100%" border="0" cellspacing="0" cellpadding="4">
    <tr>
      <td>{$PRIVACY_CHECKBOX}</td>
      <td width="100%"><strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
    </tr>
  </table>
  {/if}

Ersetze mit:

  {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
    <table width="100%" border="0" cellspacing="0" cellpadding="4">
      <tr>
        {if $PRIVACY_CHECKBOX}<td>{$PRIVACY_CHECKBOX}</td>{/if}
        <td width="100%"><strong>{#text_privacy_accept#|sprintf:$smarty.const.STORE_OWNER_EMAIL_ADDRESS}</strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
  {else}
    {if $PRIVACY_CHECKBOX}
    <table width="100%" border="0" cellspacing="0" cellpadding="4">
      <tr>
        <td>{$PRIVACY_CHECKBOX}</td>
        <td width="100%"><strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
    {/if}
  {/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html

Suche:

{if $PRIVACY_CHECKBOX}
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td>{$PRIVACY_CHECKBOX}</td>
    <td width="100%"><strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
  </tr>
</table>
{/if}

Ersetze mit:

{if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
  <table width="100%" border="0" cellspacing="0" cellpadding="4">
    <tr>
      {if $PRIVACY_CHECKBOX}<td>{$PRIVACY_CHECKBOX}</td>{/if}
      <td width="100%"><strong>{if $PRIVACY_CHECKBOX}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</strong> {$PRIVACY_LINK}</td>
    </tr>
  </table>
{else}
  {if $PRIVACY_CHECKBOX}
  <table width="100%" border="0" cellspacing="0" cellpadding="4">
    <tr>
      <td>{$PRIVACY_CHECKBOX}</td>
      <td width="100%"><strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
    </tr>
  </table>
  {/if}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

    {if $PRIVACY_CHECKBOX}
    <br />
    <table>
      <tr>
        <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
        <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
      </tr>
    </table>
    {/if}

Ersetze mit:

    {if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}
      <br />
      <table>
        <tr>
          {if $PRIVACY_CHECKBOX}<td class="checkbox">{$PRIVACY_CHECKBOX}</td>{/if}
          <td class="midi td_full"><strong><label for="privacy">{if $PRIVACY_CHECKBOX}{#text_privacy_accept#}{else}{#text_privacy_notice#}{/if}</label></strong> {$PRIVACY_LINK}</td>
        </tr>
      </table>
    {else}
      {if $PRIVACY_CHECKBOX}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
          <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept#}</label></strong> {$PRIVACY_LINK}</td>
        </tr>
      </table>
      {/if}
    {/if}

Blitzen des Sliders (bxSlider) korrigieren[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

ul.bxcarousel_bestseller li .carousel_box a:hover {
  text-decoration:none;
}

Füge danach ein:

ul.bxcarousel_slider {
  list-style-type:none;
}
ul.bxcarousel_slider li {
  display:none;
}
ul.bxcarousel_slider li:first-child {
  display:block;
}

Update des Content Managers für Seiten Content bzw. Dateianhänge[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/content.html
 /templates/xtc5/module/content.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/content.html

Suche:

  {if isset($file)}
    {$CONTENT_BODY}
    {$file}
  {else}
    {if isset($SUB_CONTENT_LISTING)}<div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>{/if}
    {$CONTENT_BODY}
  {/if}

Füge danach ein:

  {if isset($MODULE_conent_manager_media)}
    {$MODULE_conent_manager_media}
  {/if}

Fehlenden Kundengruppencheck für Hersteller- & Bestell-Historie-Box ergänzen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/manufacturers.php
 /templates/tpl_modified/source/boxes/order_history.php
 /templates/xtc5/source/boxes/manufacturers.php
 /templates/xtc5/source/boxes/order_history.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturers.php

Suche:

  $manufacturers_query = "SELECT DISTINCT m.manufacturers_id,
                                          m.manufacturers_name 
                                     FROM ".TABLE_MANUFACTURERS." as m
                                     JOIN ".TABLE_PRODUCTS." as p 
                                          ON m.manufacturers_id = p.manufacturers_id
                                             AND p.products_status = '1'
                                 ORDER BY m.manufacturers_name";

Ersetze mit:

  $manufacturers_query = "SELECT DISTINCT m.manufacturers_id,
                                          m.manufacturers_name 
                                     FROM ".TABLE_MANUFACTURERS." as m
                                     JOIN ".TABLE_PRODUCTS." as p 
                                          ON m.manufacturers_id = p.manufacturers_id
                                    WHERE p.products_status = '1'
                                          ".PRODUCTS_CONDITIONS_P."
                                 ORDER BY m.manufacturers_name";

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/order_history.php

Suche:

    // retreive the last x products purchased
    $orders_query = xtc_db_query("SELECT DISTINCT p.products_id,
                                                  pd.products_name,
                                                  o.orders_id,
                                                  op.orders_products_id
                                             FROM " . TABLE_ORDERS . " o
                                             JOIN " . TABLE_ORDERS_PRODUCTS . " op
                                                  ON o.orders_id = op.orders_id
                                             JOIN " . TABLE_PRODUCTS . " p
                                                  ON op.products_id = p.products_id
                                             JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                  ON p.products_id = pd.products_id
                                                     AND language_id = '" . (int)$_SESSION['languages_id'] . "'
                                            WHERE o.customers_id = '" . (int)$_SESSION['customer_id'] . "'
                                              AND p.products_status = '1' 
                                         GROUP BY p.products_id 
                                         ORDER BY o.date_purchased DESC 
                                            LIMIT " . MAX_DISPLAY_PRODUCTS_IN_ORDER_HISTORY_BOX);

Ersetze mit:

    // retreive the last x products purchased
    $orders_query = xtc_db_query("SELECT DISTINCT p.products_id,
                                                  pd.products_name,
                                                  o.orders_id,
                                                  op.orders_products_id
                                             FROM " . TABLE_ORDERS . " o
                                             JOIN " . TABLE_ORDERS_PRODUCTS . " op
                                                  ON o.orders_id = op.orders_id
                                             JOIN " . TABLE_PRODUCTS . " p
                                                  ON op.products_id = p.products_id
                                             JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                  ON p.products_id = pd.products_id
                                                     AND language_id = '" . (int)$_SESSION['languages_id'] . "'
                                            WHERE o.customers_id = '" . (int)$_SESSION['customer_id'] . "'
                                              AND p.products_status = '1'
                                                  ".PRODUCTS_CONDITIONS_P."
                                         GROUP BY p.products_id 
                                         ORDER BY o.date_purchased DESC 
                                            LIMIT " . MAX_DISPLAY_PRODUCTS_IN_ORDER_HISTORY_BOX);

Template um separate Artikel Überschrift erweitern[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified/module/product_info/product_info_v1.html
 /templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
 /templates/tpl_modified/source/boxes/best_sellers.php
 /templates/tpl_modified/source/boxes/last_viewed.php
 /templates/tpl_modified/source/boxes/reviews.php
 /templates/tpl_modified/source/boxes/specials.php
 /templates/tpl_modified/source/boxes/whats_new.php
 /templates/xtc5/module/product_info/product_info_tabs_v1.html
 /templates/xtc5/module/product_info/product_info_v1.html
 /templates/xtc5/module/product_info/product_info_x_accordion_v1.html
 /templates/xtc5/source/boxes/best_sellers.php
 /templates/xtc5/source/boxes/last_viewed.php
 /templates/xtc5/source/boxes/reviews.php
 /templates/xtc5/source/boxes/specials.php
 /templates/xtc5/source/boxes/whats_new.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_info/product_info_*.html

Suche:

{$PRODUCTS_NAME}

Ersetze mit:

{if $PRODUCTS_HEADING_TITLE != ''}{$PRODUCTS_HEADING_TITLE}{else}{$PRODUCTS_NAME}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/best_sellers.php

Suche:

    $best_sellers_query = "SELECT ".$select."
                                  p.products_id,
                                  p.products_price,
                                  p.products_tax_class_id,
                                  p.products_image,
                                  p.products_vpe,
                                  p.products_vpe_status,
                                  p.products_vpe_value,
                                  pd.products_name
                             FROM ".TABLE_PRODUCTS." p

Ersetze mit:

    $best_sellers_query = "SELECT ".$select."
                                  ".$product->default_select."
                             FROM ".TABLE_PRODUCTS." p

Suche:

    $best_sellers_query = "SELECT ".$select."
                                  p.products_id,
                                  p.products_image,
                                  p.products_price,
                                  p.products_vpe,
                                  p.products_vpe_status,
                                  p.products_vpe_value,
                                  p.products_tax_class_id,
                                  pd.products_name 
                             FROM ".TABLE_PRODUCTS." p

Ersetze mit:

    $best_sellers_query = "SELECT ".$select."
                                  ".$product->default_select."
                             FROM ".TABLE_PRODUCTS." p

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/last_viewed.php

Suche:

    $random_query = "SELECT p.products_id,
                            p.products_price,
                            p.products_tax_class_id,
                            p.products_image,
                            p.products_vpe,
                            p.products_vpe_status,
                            p.products_vpe_value,
                            pd.products_name,
                            p2c.categories_id,
                            cd.categories_name
                       FROM " . TABLE_PRODUCTS . " p

Ersetze mit:

    $random_query = "SELECT ".$product->default_select.",
                            p2c.categories_id,
                            cd.categories_name
                       FROM " . TABLE_PRODUCTS . " p

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

  $reviews_query = "SELECT r.reviews_id,
                           r.reviews_rating,
                           substring(rd.reviews_text, 1, 60) as reviews_text,
                           p.products_id,
                           p.products_image,
                           pd.products_name
                      FROM ".TABLE_REVIEWS." r

Ersetze mit:

  $reviews_query = "SELECT r.reviews_id,
                           r.reviews_rating,
                           substring(rd.reviews_text, 1, 60) as reviews_text,
                           p.products_id,
                           p.products_image,
                           pd.products_name,
                           pd.products_heading_title
                      FROM ".TABLE_REVIEWS." r

Suche:

      $box_smarty->assign('PRODUCTS_NAME', $reviews['products_name']);

Füge danach ein:

      $box_smarty->assign('PRODUCTS_HEADING_TITLE', $reviews['products_heading_title']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

$specials_query = xtc_db_query("SELECT p.products_id,
                                       pd.products_name,
                                       p.products_price,
                                       p.products_tax_class_id,
                                       p.products_image,
                                       s.expires_date,
                                       p.products_vpe,
                                       p.products_vpe_status,
                                       p.products_vpe_value,
                                       s.specials_new_products_price
                                  FROM ".TABLE_PRODUCTS." p

Ersetze mit:

$specials_query = xtc_db_query("SELECT ".$product->default_select.",
                                       s.expires_date,
                                       s.specials_new_products_price
                                  FROM ".TABLE_PRODUCTS." p

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/whats_new.php

Suche:

$whats_new_query = xtc_db_query("SELECT DISTINCT p.products_id,
                                                 p.products_image,                                              
                                                 p.products_tax_class_id,
                                                 p.products_vpe,
                                                 p.products_vpe_status,
                                                 p.products_vpe_value,
                                                 p.products_price,
                                                 pd.products_name
                                            FROM ".TABLE_PRODUCTS." p

Ersetze mit:

$whats_new_query = xtc_db_query("SELECT DISTINCT ".$product->default_select."
                                            FROM ".TABLE_PRODUCTS." p

Admin-Bar im Frontend erweitern um Links für Cache-Status, Support-Formular und Template-/Module-Shop[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_admin.html
/templates/tpl_modified/img/adminbar_attention.png
/templates/tpl_modified/img/adminbar_shop.png
/templates/tpl_modified/img/adminbar_support.png
/templates/tpl_modified/lang/lang_english.custom
/templates/tpl_modified/lang/lang_german.custom
/templates/tpl_modified/source/boxes/admin.php

Wer eines unserer responsive Templates einsetzt, der kopiert die folgende Datei ins eigene Template in den selben Ordner:

/templates/tpl_modified_responsive/css/media-queries.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

/templates/tpl_modified/boxes/box_admin.html

Suche:

    {if isset($CONTENT_MANAGER)}
      <li class="togglemenu">
        <a class="togglelink" href="{$CONTENT_MANAGER}" {if !isset($EDIT_CONTENT)}title="{#ab_contentmanager#}"{/if}><img src="{$tpl_path}img/adminbar_content.png" alt="{#ab_contentmanager#}" /></a>
        {if isset($EDIT_CONTENT)}
        <ul>
          <li><a href="{$EDIT_CONTENT}">{#ab_edit_content#}</a></li>
        </ul>
        {/if}
      </li>
    {/if}

Füge danach ein:

    {if isset($CACHING)}
      <li class="togglemenu">
        {if isset($CACHING_LINK)}<a class="togglelink" href="{$CACHING_LINK}" title="{#ab_caching#}">{/if}<img src="{$tpl_path}img/adminbar_attention.png" alt="{#ab_caching#}" />{if isset($CACHING_LINK)}</a>{/if}
      </li>
    {/if}

Suche:

    {if isset($UPDATE)}
      <li class="right">
        <a class="togglelink" href="{$UPDATE}" title="{#ab_update#}"><img src="{$tpl_path}img/adminbar_update.png" alt="{#ab_update#}" />
        {if $UPDATE_COUNT > 0}<span class="icon_count">{$UPDATE_COUNT}</span>{/if}
        </a>
      </li>
    {/if}

Füge danach ein:

    {if isset($SUPPORT)}
      <li class="right">
        <a class="togglelink" href="{$SUPPORT}" title="Support"><img src="{$tpl_path}img/adminbar_support.png" alt="{#ab_support#}" /></a>
      </li>
    {/if}
    <li class="right">
      <a class="togglelink" target="_blank" href="https://www.modified-shop.org/shop/" title="Shop"><img src="{$tpl_path}img/adminbar_shop.png" alt="{#ab_shop#}" /></a>
    </li>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/lang/lang_english.custom

Suche:

ab_update = 'Update'

Füge danach ein:

ab_support = 'Support'
ab_shop = 'Shop'
ab_caching = 'Caching'

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/lang/lang_german.custom

Suche:

ab_update = 'Update'

Füge danach ein:

ab_support = 'Support'
ab_shop = 'Shop'
ab_caching = 'Caching'

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/admin.php

Suche:

// content manager
if ($admin_access['content_manager'] == '1') {
  if (isset($_GET['coID'])) {
    $box_smarty->assign('EDIT_CONTENT', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'content_manager.php', 'action=edit&coID='.(int)$_GET['coID']));
  }
  $box_smarty->assign('CONTENT_MANAGER', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'content_manager.php', '', 'NONSSL'));
}

Füge danach ein:

// caching
if (DB_CACHE == 'true' || USE_CACHE == 'true') {
  $box_smarty->assign('CACHING', true);
  if ($admin_access['configuration'] == '1') {
    $box_smarty->assign('CACHING_LINK', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'configuration.php', 'gID=11', 'NONSSL'));
  }
}

Suche:

// start
if ($admin_access['start'] == '1') {
  $box_smarty->assign('START', xtc_href_link_admin(FILENAME_START,'', 'NONSSL'));
}

Füge danach ein:

// support
$box_smarty->assign('SUPPORT', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'support.php','', 'NONSSL'));

Die folgende Datei (sofern vorhanden) wie folgt bearbeiten:

/templates/TEMPLATENAME/css/media-queries.css

Suche:

  ul#checkoutnavigation.cn_no_shipping li { width: 100%; }
}


@media screen and (max-width: 500px) {
  #admin ul li.logo { display:none;}

Ersetze mit:

  ul#checkoutnavigation.cn_no_shipping li { width: 100%; }
  #admin ul li.right { display: none; }
}


@media screen and (max-width: 500px) {
  #admin ul li.logo { display:none;}

Wegfall der Adminberechtigung für "start"[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/admin.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/admin.php

Suche:

// start
if ($admin_access['start'] == '1') {
  $box_smarty->assign('START', xtc_href_link_admin(FILENAME_START,'', 'NONSSL'));
}

Ersetze mit:

// start
$box_smarty->assign('START', xtc_href_link_admin(FILENAME_START,'', 'NONSSL'));

Suchen-Box erweitern um Kategorie-Dropdown vor Suchfeld[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in den selben Ordner zu kopieren:

 /templates/tpl_modified/boxes/box_search.html
 /templates/tpl_modified/javascript/general_bottom.js.php
 /templates/tpl_modified/source/boxes/search.php
 /templates/tpl_modified/stylesheet.css
 /templates/xtc5/boxes/box_search.html
 /templates/xtc5/javascript/general_bottom.js.php
 /templates/xtc5/source/boxes/search.php
 /templates/xtc5/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/boxes/box_search.html

Suche:

<table border="0" class="search_header" cellspacing="0" cellpadding="0">

Ersetze mit:

<table border="0" class="search_header{if isset($CATEGORIES)} search_cat_mode{/if}" cellspacing="0" cellpadding="0">

Suche:

    <td colspan="2"><strong>{#heading_search#}:</strong></td>

Ersetze mit:

    <td colspan="{if isset($CATEGORIES)}3{else}2{/if}"><strong>{#heading_search#}:</strong></td>

Suche:

  <tr>
    <td>{$INPUT_SEARCH}</td>
    <td>{$BUTTON_SUBMIT}</td>
  </tr>

Ersetze mit:

  <tr>
    {if isset($CATEGORIES)}<td>{$CATEGORIES}</td>{/if}
    <td>{$INPUT_SEARCH}</td>
    <td>{$BUTTON_SUBMIT}</td>
  </tr>

Suche:

    <td colspan="2"><a href="{$LINK_ADVANCED}">{#text_advanced_search#}</a></td>

Ersetze mit:

    <td colspan="{if isset($CATEGORIES)}3{else}2{/if}"><a href="{$LINK_ADVANCED}">{#text_advanced_search#}</a></td>

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/javascript/general_bottom.js.php

Suche:

  function ac_lookup(inputString) {
    if(inputString.length == 0) {
      $('#suggestions').hide();
    } else {
      $.post("<?php echo xtc_href_link('api/autocomplete/autocomplete.php', '', $request_type); ?>", {queryString: ""+inputString+""}, function(data) {
        if(data.length > 0) {
          $('#suggestions').slideDown();
          $('#autoSuggestionsList').html(data);
          ac_showPage(1);
          $('#autocomplete_prev').click(ac_prevPage);
          $('#autocomplete_next').click(ac_nextPage);
        }
      });
    }
  }

Ersetze mit:

  function ac_lookup(inputString) {
    if(inputString.length == 0) {
      $('#suggestions').hide();
    } else {
      var post_params = $('#quick_find').serialize();
      post_params = post_params.replace("keywords=", "queryString=");
		  
			$.post("<?php echo xtc_href_link('api/autocomplete/autocomplete.php', '', $request_type); ?>", post_params, function(data) {
        if(data.length > 0) {
          $('#suggestions').slideDown();
          $('#autoSuggestionsList').html(data);
          ac_showPage(1);
          $('#autocomplete_prev').click(ac_prevPage);
          $('#autocomplete_next').click(ac_nextPage);
        }
      });
    }
  }
	$('#cat_search').on('change', function () {
	  $('#inputString').val('');
	});

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/source/boxes/search.php

Suche:

  $filename = FILENAME_ADVANCED_SEARCH_RESULT;
  if (defined('MODULE_FINDOLOGIC_STATUS') && MODULE_FINDOLOGIC_STATUS == 'True') {
    $filename = FILENAME_FINDOLOGIC;
  }
  $box_smarty->assign('FORM_ACTION', xtc_draw_form('quick_find', xtc_href_link($filename, '', $request_type, false), 'get', 'class="box-search"') . xtc_hide_session_id());
  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '').'onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;"'));

Ersetze mit:

  if (defined('SEARCH_AC_CATEGORIES')
      && SEARCH_AC_CATEGORIES == 'true'
      )
  {
    $categories_array = array(array(
      'id' => '',
      'text' => TEXT_AC_ALL_CATEGORIES,
    ));
    $categories_query = xtDBquery("SELECT c.categories_id,
                                          cd.categories_name
                                     FROM ".TABLE_CATEGORIES." c
                                     JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd
                                          ON c.categories_id = cd.categories_id
                                             AND cd.language_id='".(int)$_SESSION['languages_id']."'
                                             AND trim(cd.categories_name) != ''
                                    WHERE c.categories_status = '1'
                                      AND c.parent_id = '0'
                                          ".CATEGORIES_CONDITIONS_C."
                                 ORDER BY c.sort_order, cd.categories_name");
    if (xtc_db_num_rows($categories_query, true) > 0) {
      while ($categories = xtc_db_fetch_array($categories_query, true)) {
        $categories_array[] = array(
          'id' => $categories['categories_id'],
          'text' => $categories['categories_name'],
        );
      }
    }
    $box_smarty->assign('CATEGORIES', xtc_draw_pull_down_menu('categories_id', $categories_array, isset($_GET['categories_id']) ? (int)$_GET['categories_id'] : '', 'id="cat_search"').xtc_draw_hidden_field('inc_subcat', '1'));
  }
  $box_smarty->assign('FORM_ACTION', xtc_draw_form('quick_find', xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', $request_type, false), 'get', 'class="box-search"') . xtc_hide_session_id());
  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/stylesheet.css

Suche:

#header #search {
  width:230px;
  height:75px;
  float:right;
  color:#fff;
  padding:30px 0 0 60px;
}
#header #search a {
  color:#fff;
  font-size:11px;
  outline:none;
}
#header td {
  padding-top:1px;
  padding-right:4px;
}

Ersetze mit:

#header #search {
  width:260px;
  height:75px;
  float:right;
  color:#fff;
  padding:30px 0 0 60px;
}
#header #search a {
  color:#fff;
  font-size:11px;
  outline:none;
}
#header #search td {
  vertical-align:top;
}
#quick_find .search_cat_mode input[type="text"] {
  width: 140px;
  height:20px;
  border: 1px solid #666;
  padding: 2px;
  background: url(img/input_bg.gif) no-repeat;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
#quick_find input[type="text"] {
  width: 205px;
  height:20px;
  border: 1px solid #666;
  padding: 2px;
  background: url(img/input_bg.gif) no-repeat;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
#quick_find select {
  width: 60px;
  height:20px;
  border: 1px solid #666;
  color:#555;
  padding: 2px;
  background: url(img/input_bg.gif) no-repeat;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
#header td {
  padding-top:1px;
}

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/boxes/box_search.html

Suche:

{$INPUT_SEARCH}{$BUTTON_SUBMIT}
<br class="clearfix" />

Ersetze mit:

<div class="search_inner{if isset($CATEGORIES)} search_cat_mode{/if}">
  {if isset($CATEGORIES)}<div class="search_cat">{$CATEGORIES}</div>{/if}
  <div class="search_input">{$INPUT_SEARCH}</div>
  <div class="search_button">{$BUTTON_SUBMIT}</div>
</div>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/javascript/general_bottom.js.php

Suche:

	function ac_lookup(inputString) {
		if(inputString.length == 0) {
			$('#suggestions').hide();
		} else {
			$.post("<?php echo xtc_href_link('api/autocomplete/autocomplete.php', '', $request_type); ?>", {queryString: ""+inputString+""}, function(data) {
				if(data.length > 0) {
					$('#suggestions').slideDown();
					$('#autoSuggestionsList').html(data);
					ac_showPage(1);
					$('#autocomplete_prev').click(ac_prevPage);
          $('#autocomplete_next').click(ac_nextPage);
				}
			});
		}
	}

Ersetze mit:

	function ac_lookup(inputString) {
		if(inputString.length == 0) {
			$('#suggestions').hide();
		} else {
      var post_params = $('#quick_find').serialize();
      post_params = post_params.replace("keywords=", "queryString=");
		  
			$.post("<?php echo xtc_href_link('api/autocomplete/autocomplete.php', '', $request_type); ?>", post_params, function(data) {
				if(data.length > 0) {
					$('#suggestions').slideDown();
					$('#autoSuggestionsList').html(data);
					ac_showPage(1);
					$('#autocomplete_prev').click(ac_prevPage);
          $('#autocomplete_next').click(ac_nextPage);
				}
			});
		}
	}
	$('#cat_search').on('change', function () {
	  $('#inputString').val('');
	});

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/source/boxes/search.php

Suche:

  $filename = FILENAME_ADVANCED_SEARCH_RESULT;
  if (defined('MODULE_FINDOLOGIC_STATUS') && MODULE_FINDOLOGIC_STATUS == 'True') {
    $filename = FILENAME_FINDOLOGIC;
  }
  $box_smarty->assign('FORM_ACTION', xtc_draw_form('quick_find', xtc_href_link($filename, '', $request_type, false), 'get', 'class="box-search"') . xtc_hide_session_id());
  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '').'onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;"'));

Ersetze mit:

  if (defined('SEARCH_AC_CATEGORIES')
      && SEARCH_AC_CATEGORIES == 'true'
      )
  {
    $categories_array = array(array(
      'id' => '',
      'text' => TEXT_AC_ALL_CATEGORIES,
    ));
    $categories_query = xtDBquery("SELECT c.categories_id,
                                          cd.categories_name
                                     FROM ".TABLE_CATEGORIES." c
                                     JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd
                                          ON c.categories_id = cd.categories_id
                                             AND cd.language_id='".(int)$_SESSION['languages_id']."'
                                             AND trim(cd.categories_name) != ''
                                    WHERE c.categories_status = '1'
                                      AND c.parent_id = '0'
                                          ".CATEGORIES_CONDITIONS_C."
                                 ORDER BY c.sort_order, cd.categories_name");
    if (xtc_db_num_rows($categories_query, true) > 0) {
      while ($categories = xtc_db_fetch_array($categories_query, true)) {
        $categories_array[] = array(
          'id' => $categories['categories_id'],
          'text' => $categories['categories_name'],
        );
      }
    }
    $box_smarty->assign('CATEGORIES', xtc_draw_pull_down_menu('categories_id', $categories_array, isset($_GET['categories_id']) ? (int)$_GET['categories_id'] : '', 'id="cat_search"').xtc_draw_hidden_field('inc_subcat', '1'));
  }
  $box_smarty->assign('FORM_ACTION', xtc_draw_form('quick_find', xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', $request_type, false), 'get', 'class="box-search"') . xtc_hide_session_id());
  $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/stylesheet.css

Suche:

#search {
  float:right;
  position:relative;
  width:300px;
  border:0px solid transparent;
  margin-top:22px;
}
#search input[type=text] {
  padding-right:90px;
}
#search input[type=image] {
  position:absolute;
  right:0px;
  top:0px;
  width:76px;
  height:32px; 
}

Ersetze mit:

#search {
  float:right;
  position:relative;
  width:400px;
  border:0px solid transparent;
  margin-top:22px;
}
.search_inner {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}
.search_inner .search_cat {
  position:relative;
  z-index: 1200;
  width:80px;
}
.search_inner .search_cat select {
  background-color: #eeeeee !important;
  border-width: 1px;
  padding: 7px 4px 7px 2px;
  height:32px;
  -webkit-border-top-right-radius: 0px !important;
  -webkit-border-bottom-right-radius: 0px !important;
  -moz-border-radius-topright: 0px !important;
  -moz-border-radius-bottomright: 0px !important;
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
  border-right:1px solid #eeeeee !important;
}
.search_inner .search_cat select:hover {
    background-color:#eeeee;
    border-right:1px solid #eeeeee !important;
}    
.search_inner .search_cat select:focus {
    background-color:#eee;
    border-right:1px solid #70AEDD !important;
}
.search_inner .search_input {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.search_inner.search_cat_mode .search_input input {
  -webkit-border-top-left-radius: 0px !important;
  -webkit-border-bottom-left-radius: 0px !important;
  -moz-border-radius-topleft: 0px !important;
  -moz-border-radius-bottomleft: 0px !important;
  border-top-left-radius: 0px !important;
  border-bottom-left-radius: 0px !important;
}
#search .search_inner input[type=text] {
  padding-right:10px;
  padding-left:10px;
  -webkit-border-top-right-radius: 0px !important;
  -webkit-border-bottom-right-radius: 0px !important;
  -moz-border-radius-topright: 0px !important;
  -moz-border-radius-bottomright: 0px !important;
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
}
#search .search_button input[type=image] {
  vertical-align:top;
  width:76px;
  height:32px; 
}

Artikelbilder in xtc5 Template im Listing und Produkt-Detailseite mit Maximalgröße versehen[Bearbeiten]

  • optional in
/templates/xtc5/stylesheet.css

Suche:

.productPreviewImage img {
  border:solid 0 #999;
}

Ersetze mit:

.productPreviewImage img {
  border: solid 0 #999;
  width: 160px;
  height: auto;
  vertical-align: top;
}

Suche:

#productinfoimages .hrlightgrey {
  margin:6px 0;
}

Füge danach ein:

#productinfowrap img.productimage {
  width:230px;
  height:auto;
  vertical-align:top;
}

Überarbeitung des Cookie-Hinweis-Textes[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

 /templates/tpl_modified/module/cookie_usage.html
 /templates/tpl_modified/source/boxes.php
 /templates/xtc5/module/cookie_usage.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/cookie_usage.html

Suche:

<p>{#text_information#}</p>

Ersetze mit:

<h2>{#title_information#}</h2>
<p>{#text_information#}</p>

<h2>{#title_settings#}</h2>
<p>{#text_settings#}</p>

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/module/cookie_usage.html

Suche:

  <p>{#text_information#}</p>
  <br />
  <h4>{#title_infobox#}</h4>

Ersetze mit:

  <h2>{#title_information#}</h2>
  <p>{#text_information#}</p>

  <h2>{#title_settings#}</h2>
  <p>{#text_settings#}</p>

  <h2>{#title_infobox#}</h2>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/source/boxes.php

Suche:

                     FILENAME_CHECKOUT_PAYMENT_ADDRESS,

Füge danach ein:

                     FILENAME_COOKIE_USAGE,

PayPal Ratenkauf Banner hinzufügen[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

 /templates/tpl_modified/module/checkout_payment_block.html
 /templates/xtc5/module/checkout_payment_block.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/checkout_payment_block.html

Füge am Ende der Datei ein:

<div class="pp-message"></div>

Korrektur des Währungswechsels auf Content-Seiten[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

 /templates/tpl_modified/source/boxes/currencies.php
 /templates/xtc5/source/boxes/currencies.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/currencies.php

Suche:

  // dont show box if there's only 1 currency
  if (count($currencies_array) > 1 ) {

    $hidden_get_variables = '';
    if (isset($_GET) && count($_GET) > 0) {
      reset($_GET);
      while (list($key, $value) = each($_GET)) {
        if (is_string($value) && $key != 'currency' && $key != xtc_session_name() && $key != 'x' && $key != 'y' ) {
          $hidden_get_variables .= xtc_draw_hidden_field($key, $value);
        }
      }
    }

    $box_content = xtc_draw_form('currencies', xtc_href_link(basename($PHP_SELF), '', $request_type, false), 'get', 'class="box-currencies"')
                   . xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'onchange="this.form.submit();"')
                   . $hidden_get_variables . xtc_hide_session_id()
                   . '</form>';

    $box_smarty->assign('BOX_CONTENT', $box_content);
  }

Ersetze mit:

  // dont show box if there's only 1 currency
  if (count($currencies_array) > 1 ) {
    $box_content = xtc_draw_form('currencies', xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('currency', 'language')), $request_type, false), 'get', 'class="box-currencies"')
                   . xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'onchange="this.form.submit();"')
                   . xtc_hide_session_id()
                   . '</form>';

    $box_smarty->assign('BOX_CONTENT', $box_content);
  }

Caching & Performance der Admin-Leiste bzgl. Auslesen der Bestellungen optimiert[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/admin.php

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

// orders
if ($admin_access['orders'] == '1') {
  $orders_contents = '';
  $orders_status_validating = xtc_db_num_rows(xtc_db_query("SELECT orders_status FROM ".TABLE_ORDERS ." WHERE orders_status ='0'"));
  $orders_contents .='<li><a href="'.xtc_href_link_admin(FILENAME_ORDERS, 'selected_box=customers&status=0', 'NONSSL').'"><em>'.$orders_status_validating.'</em>'.TEXT_VALIDATING.'</a></li>';

  $orders_status_query = xtc_db_query("SELECT orders_status_name, orders_status_id FROM ".TABLE_ORDERS_STATUS." WHERE language_id = '".(int)$_SESSION['languages_id']."' ORDER BY sort_order");
  while ($orders_status = xtc_db_fetch_array($orders_status_query)) {
    $orders_pending_query = xtc_db_query("SELECT count(*) AS count FROM ".TABLE_ORDERS." WHERE orders_status = '".$orders_status['orders_status_id']."'");
    $orders_pending = xtc_db_fetch_array($orders_pending_query);
    $orders_contents .= '<li><a href="'.xtc_href_link_admin(FILENAME_ORDERS, 'selected_box=customers&status='.$orders_status['orders_status_id'], 'NONSSL').'"><em>'.$orders_pending['count'].'</em>'.$orders_status['orders_status_name'].'</a></li>';
  }
  $box_smarty->assign('ORDERS', xtc_href_link_admin(FILENAME_ORDERS,'', 'NONSSL'));
  $box_smarty->assign('ORDERS_CONTENT', $orders_contents);
}

Ersetze mit:

// orders
if ($admin_access['orders'] == '1') {
  $orders_contents = '';
  $orders_status_validating = xtc_db_num_rows(xtc_db_query("SELECT orders_status FROM ".TABLE_ORDERS ." WHERE orders_status ='0'"));
  $orders_contents .='<li><a href="'.xtc_href_link_admin(FILENAME_ORDERS, 'status=0', 'NONSSL').'"><em>'.$orders_status_validating.'</em>'.TEXT_VALIDATING.'</a></li>';

  $orders_status_query = xtc_db_query("SELECT os.orders_status_name, 
                                              os.orders_status_id, 
                                              count(*) AS count 
                                         FROM ".TABLE_ORDERS_STATUS." os 
                                         JOIN ".TABLE_ORDERS." o
                                              ON o.orders_status = os.orders_status_id  
                                        WHERE os.language_id = '".(int)$_SESSION['languages_id']."'
                                     GROUP BY os.orders_status_id
                                     ORDER BY os.sort_order, os.orders_status_name");
  while ($orders_status = xtc_db_fetch_array($orders_status_query)) {
    $orders_contents .= '<li><a href="'.xtc_href_link_admin(FILENAME_ORDERS, 'status='.$orders_status['orders_status_id'], 'NONSSL').'"><em>'.$orders_status['count'].'</em>'.$orders_status['orders_status_name'].'</a></li>';
  }
  $box_smarty->assign('ORDERS', xtc_href_link_admin(FILENAME_ORDERS, '', 'NONSSL'));
  $box_smarty->assign('ORDERS_CONTENT', $orders_contents);
}

Erneute Überarbeitung der JavaScript Komprimierung im Template[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/extra/autocomplete.js.php
/templates/tpl_modified/javascript/extra/bxslider.js.php
/templates/tpl_modified/javascript/extra/colorbox.js.php
/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified/javascript/extra/default.js.php
/templates/tpl_modified/javascript/extra/get_states.js.php
/templates/tpl_modified/javascript/extra/tabs.js.php
/templates/tpl_modified/javascript/extra/unveil.js.php
/templates/xtc5/javascript/general_bottom.js.php
/templates/xtc5/javascript/extra/autocomplete.js.php
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/extra/default.js.php
/templates/xtc5/javascript/extra/get_states.js.php
/templates/xtc5/javascript/extra/tabs.js.php

Die folgenden Dateien können gelöscht werden, da sie nicht mehr benötigt werden:

/templates/tpl_modified/javascript/get_states.js.php
/templates/xtc5/javascript/get_states.js.php

Änderungen ab Version 2.0.5.1[Bearbeiten]

Korrektur der JavaScript Komprimierung im Template[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/general_bottom.js.php
/templates/xtc5/javascript/general_bottom.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für beide Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/general_bottom.js.php

Suche:

  $compactor = new Compactor(array('strip_php_comments' => false, 'compress_scripts' => true));

Ersetze mit:

  $compactor = new Compactor(array('strip_php_comments' => false, 'compress_css' => false, 'compress_scripts' => true));

Blitzen der responsive Tabs korrigieren[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

/* 46. START miscellaneous */

/* START No Javascript Styles for Tabs */  
/* Moved in general.css.php as inline-style */
/*
ul.resp-tabs-list{
  display:none;
}
*/
/* END No Javascript Styles for Tabs */

Ersetze mit:

/* 46. START miscellaneous */

Suche:

/* 2. START globals */
* {
  margin:0;
  padding:0;
}

Füge danach ein:

/* prevent flicker in responsive tabs */
#horizontalAccordion {
  display:none;
}
#horizontalAccordion ul.resp-tabs-list {
  display:none !important;
}
#horizontalTab ul.resp-tabs-list { 
  list-style-type:none;  
}
#horizontalTab ul.resp-tabs-list li {
  display: inline-block;
}

Korrektur Cookie Hinweis für PayPal & allgemeine Überarbeitung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/extra/cookieconsent.js.php

Hinweis auf innergemeinschaftliche Lieferung in Rechnung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified_responsive/admin/print_order.html
/templates/xtc5/admin/print_order.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/admin/print_order.html

Suche:

      {if $COMMENTS}
      <tr>
        <td>
          <table style="border-bottom:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="small">
                <br /><br /><strong>{#comments#}</strong> {$COMMENTS}
              </td>
            </tr>
          </table>
        </td>
      </tr>
      {/if}

Füge davor ein:

      {if isset($vat_info)}
      <tr>
        <td>
          <table style="border-bottom:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="small">
                <br /><br />{#vat_info#}
              </td>
            </tr>
          </table>
        </td>
      </tr>
      {/if}

Für Template tpl_modified & tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/admin/print_order.html
 /templates/tpl_modified_responsive/admin/print_order.html

Suche:

    {if $COMMENTS}
    <div class="hr_5"></div>
    <br />
    <div class="print_small">
      <strong>{#comments#}</strong><br />
      {$COMMENTS}
    </div>
    {/if}

Füge davor ein:

    {if isset($vat_info)}
      <br />
      {#vat_info#}
      <br class="clearfix" />
    {/if}

Entfernen eines doppelten META-Codes itemprop="price" bei Staffelpreisen[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/includes/price_info.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/includes/price_info.html

Suche:

                <span class="item_price"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>
                <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
                {* ENDE Produkt Staffelpreis mit Ausgabe ab Preis, Stückpreis *}

Ersetze mit:

                <span class="item_price"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>
                {*<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />*}
                {* ENDE Produkt Staffelpreis mit Ausgabe ab Preis, Stückpreis *}

Suche:

              <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
              {* ENDE Produkt Standardpreis mit Ausgabe ab Preis *}

Ersetze mit:

              {if !isset($MODULE_graduated_price) || $MODULE_graduated_price == ''}
                <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
              {/if}
              {* ENDE Produkt Standardpreis mit Ausgabe ab Preis *}

Korrektur der Colorbox für lange Titel[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/css/jquery.colorbox.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

/* #cboxTitle{position:absolute; bottom:7px; left:0; text-align:center; width:100%; color:#444444; } */

Füge danach ein:

#cboxTitle {overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}

Korrektur der Hersteller-Box[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/source/boxes/manufacturers.php
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/manufacturers.php

Suche:

  if ($manufacturers_count > 0) {
    if ($manufacturers_count <= MAX_DISPLAY_MANUFACTURERS_IN_A_LIST) {
      // Display a list
      while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
        if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id'])) {
          $manufacturers_name = '<strong>'.$manufacturers_name.'</strong>';
        }
        $box_content .= '<a href="'.xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturers['manufacturers_id'],$manufacturers['manufacturers_name'])).'">'.$manufacturers_name.'</a><br />';
      }
    } else {
      // Display a drop-down
      $js = 'location = form.manufacturers_id.options[form.manufacturers_id.selectedIndex].value;';
      $manufacturers_array = array ();
      if (MAX_MANUFACTURERS_LIST < 2) {
        $manufacturers_array[] = array ('id' => '', 'text' => PULL_DOWN_DEFAULT);
        $js = 'if (form.manufacturers_id.selectedIndex != 0) location = form.manufacturers_id.options[form.manufacturers_id.selectedIndex].value;';
      }
      while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
        $manufacturers_array[] = array ('id' => xtc_href_link(FILENAME_DEFAULT,xtc_manufacturer_link($manufacturers['manufacturers_id'],$manufacturers['manufacturers_name'])), 'text' => $manufacturers_name);
      }
      if (count($manufacturers_array) > 1) {
        $box_content = xtc_draw_form('manufacturers', xtc_href_link(FILENAME_DEFAULT, '', $request_type, false), 'get').xtc_draw_pull_down_menu('manufacturers_id', $manufacturers_array, isset($_GET['manufacturers_id']) ? xtc_href_link(FILENAME_DEFAULT,xtc_manufacturer_link($_GET['manufacturers_id'], isset($_GET['manufacturers_name']) ? $_GET['manufacturers_name'] : '')) : '', 'onchange="'.$js.'" size="'.MAX_MANUFACTURERS_LIST.'" style="width: 100%;"').xtc_hide_session_id().'</form>';
      }
    }
    
    if ($box_content != '') { 
      $box_smarty->assign('BOX_CONTENT', $box_content);
    }    
  }

Ersetze mit:

  if ($manufacturers_count > 0) {

    if ($manufacturers_count <= MAX_DISPLAY_MANUFACTURERS_IN_A_LIST) {

      if (MAX_MANUFACTURERS_LIST > 1) {
        $box_content .= '<div class="box_select_inner" style="height:'. (MAX_MANUFACTURERS_LIST * 30) .'px;">';
      }

      // Display a list
      while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
        if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id'])) {
          $manufacturers_name = '<strong>'.$manufacturers_name.'</strong>';
        }
        $box_content .= '<a href="'.xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturers['manufacturers_id'],$manufacturers['manufacturers_name'])).'">'.$manufacturers_name.'</a><br />';
      }

      if (MAX_MANUFACTURERS_LIST > 1) {
        $box_content .= '</div>';
      }

    } else {
      // Display a drop-down
      $js = 'location = form.manufacturers_id.options[form.manufacturers_id.selectedIndex].value;';
      $manufacturers_array = array ();
        $manufacturers_array[] = array ('id' => '', 'text' => PULL_DOWN_DEFAULT);
        $js = 'if (form.manufacturers_id.selectedIndex != 0) location = form.manufacturers_id.options[form.manufacturers_id.selectedIndex].value;';

      while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
        $manufacturers_array[] = array ('id' => xtc_href_link(FILENAME_DEFAULT,xtc_manufacturer_link($manufacturers['manufacturers_id'],$manufacturers['manufacturers_name'])), 'text' => $manufacturers_name);
      }
      if (count($manufacturers_array) > 1) {
        $box_content = xtc_draw_form('manufacturers', xtc_href_link(FILENAME_DEFAULT, '', $request_type, false), 'get').xtc_draw_pull_down_menu('manufacturers_id', $manufacturers_array, isset($_GET['manufacturers_id']) ? xtc_href_link(FILENAME_DEFAULT,xtc_manufacturer_link($_GET['manufacturers_id'], isset($_GET['manufacturers_name']) ? $_GET['manufacturers_name'] : '')) : '', 'onchange="'.$js.'"').xtc_hide_session_id().'</form>';
      }
    }
    
    if ($box_content != '') { 
      $box_smarty->assign('BOX_CONTENT', $box_content);
    }    
  }

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.box_select {
  padding:10px 0 0 0;
}

Füge danach ein:

.box_select_inner {
  padding: 5px 5px; 
  background:#fff;
  overflow-y:auto;
}

Korrektur der Zahlungsinformationen auf der checkout_success Seite[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/checkout_success.html
/templates/tpl_modified_responsive/module/checkout_success.html
/templates/xtc5/module/checkout_success.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/checkout_success.html

Suche:

{if count($PAYMENT_INFO) > 0}

Ersetze mit:

{if is_array($PAYMENT_INFO) && count($PAYMENT_INFO) > 0}

Korrektur der Währungsbox[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/currencies.php
/templates/tpl_modified_responsive/source/boxes/currencies.php
/templates/xtc5/source/boxes/currencies.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/currencies.php

Suche:

// set cache id
$cache_id = md5($_SESSION['currency'].$_SESSION['language'] . $_SESSION['currency']);

Ersetze mit:

// set cache id
$cache_id = md5(basename($PHP_SELF).$_SESSION['currency'].$_SESSION['language'].xtc_get_all_get_params(array('currency', 'language')));

Suche:

  // dont show box if there's only 1 currency
  if (count($currencies_array) > 1 ) {
    $box_content = xtc_draw_form('currencies', xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('currency', 'language')), $request_type, false), 'get', 'class="box-currencies"')
                   . xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'onchange="this.form.submit();"')
                   . xtc_hide_session_id()
                   . '</form>';

    $box_smarty->assign('BOX_CONTENT', $box_content);
  }

Ersetze mit:

  // dont show box if there's only 1 currency
  if (count($currencies_array) > 1 ) {
    $box_content = xtc_draw_form('currencies', xtc_href_link(basename($PHP_SELF), '', $request_type, false), 'get', 'class="box-currencies"')
                   . xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'onchange="this.form.submit();"')
                   . xtc_hide_session_id();
    
    parse_str(xtc_get_all_get_params(array('currency', 'language')), $params_array);
    if (is_array($params_array) && count($params_array) > 0) {
      foreach ($params_array as $k => $v) {
        if (is_array($v)) {
          foreach ($v as $kk => $vv) {
            $box_content .= xtc_draw_hidden_field($k.'['.$kk.']', $vv);
          }
        } else {
          $box_content .= xtc_draw_hidden_field($k, $v);
        }
      }
    }
        
    $box_content .= '</form>';

    $box_smarty->assign('BOX_CONTENT', $box_content);
  }

Überarbeitung der SEPA Mails[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/sepa_mail.txt
/templates/tpl_modified/mail/english/sepa_mail.html
/templates/tpl_modified/mail/german/sepa_mail.txt
/templates/tpl_modified/mail/german/sepa_mail.html
/templates/tpl_modified_responsive/mail/english/sepa_mail.txt
/templates/tpl_modified_responsive/mail/english/sepa_mail.html
/templates/tpl_modified_responsive/mail/german/sepa_mail.txt
/templates/tpl_modified_responsive/mail/german/sepa_mail.html
/templates/xtc5/mail/english/sepa_mail.txt
/templates/xtc5/mail/english/sepa_mail.html
/templates/xtc5/mail/german/sepa_mail.txt
/templates/xtc5/mail/german/sepa_mail.html

Differenzierte Erfolgs- und Fehlermeldungen in password_double_opt_in.html[Bearbeiten]

  • zwingend notwendig
/templates/TEMPLATENAME/module/password_double_opt_in.html

Suche:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}

Ersetze mit:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Korrektur der Sonderpreisanzeige[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/module/includes/price_box.html
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/includes/price_box.html

Suche:

                <span class="small_price">{#special_price#}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}

Ersetze mit:

                <span class="small_price">{#special_price#}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>

Suche:

                  <span class="small_price">{$smarty.const.YOUR_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}

Ersetze mit:

                  <span class="small_price">{$smarty.const.YOUR_PRICE}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>

Suche:

                  <span class="small_price">{$smarty.const.FROM}</span> {$price_data.PRODUCTS_PRICE_OLD_PRICE}

Ersetze mit:

                  <span class="small_price">{$smarty.const.FROM}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_OLD_PRICE}</span>

Suche:

                <span class="item_price{if $module_data.PRODUCTS_VPE} with_vpe{/if}"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>

Ersetze mit:

                <span class="item_price{if $module_data.PRODUCTS_VPE} with_vpe{/if}"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span></span>

Suche:

                {$price_data.PRODUCTS_PRICE_STANDARD_PRICE}

Ersetze mit:

                <span class="value_price">{$price_data.PRODUCTS_PRICE_STANDARD_PRICE}</span>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.hl_price .item_price {
  display:block;
  font-size:11px;
}

Füge danach ein:

.hl_price .value_price {
  white-space:nowrap;
}

Erneute Korrektur der PayPal Express Checkbox auf checkout_confirmation Seite für tpl_modified[Bearbeiten]

  • optional in
/templates/tpl_modified/stylesheet.css

Betrifft nur das Template tpl_modified

Suche:

.button_right_checkout .checkoutconditions input[type=checkbox] {
  vertical-align: middle;
  bottom: inherit !important;
}
/* END checkout */

Ersetze mit:

.button_right .checkoutconditions input[type=checkbox] {
  vertical-align: middle;
  bottom: inherit !important;
}
/* END checkout */

Überarbeitung der Coupon Mails[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/mail/english/send_coupon.txt
/templates/tpl_modified/admin/mail/english/send_coupon.html
/templates/tpl_modified/admin/mail/german/send_coupon.txt
/templates/tpl_modified/admin/mail/german/send_coupon.html
/templates/tpl_modified_responsive/admin/mail/english/send_coupon.txt
/templates/tpl_modified_responsive/admin/mail/english/send_coupon.html
/templates/tpl_modified_responsive/admin/mail/german/send_coupon.txt
/templates/tpl_modified_responsive/admin/mail/german/send_coupon.html
/templates/xtc5/admin/mail/english/send_coupon.txt
/templates/xtc5/admin/mail/english/send_coupon.html
/templates/xtc5/admin/mail/german/send_coupon.txt
/templates/xtc5/admin/mail/german/send_coupon.html

Änderungen ab Version 2.0.6.0[Bearbeiten]

Korrektur der Zahlungsinformationen auf den Bestell-Druckseiten[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/module/print_order.html
/templates/tpl_modified_responsive/admin/print_order.html
/templates/tpl_modified_responsive/module/print_order.html
/templates/xtc5/admin/print_order.html
/templates/xtc5/module/print_order.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/admin/print_order.html
 /templates/TEMPLATENAME/module/print_order.html

Suche:

{if count($PAYMENT_INFO) > 0}

Ersetze mit:

{if is_array($PAYMENT_INFO) && count($PAYMENT_INFO) > 0}

Zeige auch Sterne-Bewertungen ohne Bewertungs-Text[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/xtc5/source/boxes/reviews.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

                      JOIN ".TABLE_REVIEWS_DESCRIPTION." rd
                           ON r.reviews_id = rd.reviews_id
                              AND rd.languages_id = '" . (int)$_SESSION['languages_id'] . "'
                              AND trim(rd.reviews_text) != ''

Ersetze mit:

                      JOIN ".TABLE_REVIEWS_DESCRIPTION." rd
                           ON r.reviews_id = rd.reviews_id
                              AND rd.languages_id = '" . (int)$_SESSION['languages_id'] . "'

Verhindern, dass Eingaben in Inputfeldern des Suchfeldes, der Login-Box & der Schnellkauf-Box gecached werden[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/add_a_quickie.php
/templates/tpl_modified/source/boxes/loginbox.php
/templates/tpl_modified/source/boxes/search.php
/templates/tpl_modified_responsive/source/boxes/add_a_quickie.php
/templates/tpl_modified_responsive/source/boxes/loginbox.php
/templates/tpl_modified_responsive/source/boxes/search.php
/templates/xtc5/source/boxes/add_a_quickie.php
/templates/xtc5/source/boxes/loginbox.php
/templates/xtc5/source/boxes/search.php

Update jQuery auf Version 3.5.1[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/jquery.min.js
/templates/tpl_modified_responsive/javascript/jquery.min.js
/templates/xtc5/javascript/jquery.min.js


Wechsel der Cookie Consent Lösung zu OIL.js[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified/boxes/box_content.html
/templates/tpl_modified/css/cookieconsent.css
/templates/tpl_modified/css/general_bottom.css.php
/templates/tpl_modified/javascript/extra/colorbox.js.php
/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified/javascript/general.js.php
/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/oil.min.js
/templates/tpl_modified_responsive/stylesheet.css
/templates/tpl_modified_responsive/boxes/box_content.html
/templates/tpl_modified_responsive/css/cookieconsent.css
/templates/tpl_modified_responsive/css/general_bottom.css.php
/templates/tpl_modified_responsive/javascript/extra/colorbox.js.php
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/javascript/general.js.php
/templates/tpl_modified_responsive/javascript/general_bottom.js.php
/templates/tpl_modified_responsive/javascript/oil.min.js
/templates/xtc5/stylesheet.css
/templates/xtc5/boxes/box_content.html
/templates/xtc5/css/cookieconsent.css
/templates/xtc5/css/general_bottom.css.php
/templates/xtc5/css/thickbox.css
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/general.js.php
/templates/xtc5/javascript/general_bottom.js.php
/templates/xtc5/javascript/oil.min.js
/templates/xtc5/javascript/thickbox.js

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

/* 7. START Footer */
#layout_footer {
  background: #434343 url(img/bg_layout_footer.jpg) repeat-x;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 70px 0;
}

Ersetze mit:

/* 7. START Footer */
#layout_footer {
  background: #434343 url(img/bg_layout_footer.jpg) repeat-x;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 20px 0;
}

Suche:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
  margin: -90px 0 0 0;
}

Ersetze mit:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
  margin: -40px 0 0 0;
}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/boxes/box_content.html

Suche:

    <ul class="footerlist">
      {$BOX_CONTENT}
    </ul>

Ersetze mit:

    <ul class="footerlist">
      {$BOX_CONTENT}
      {if "MODULE_COOKIE_CONSENT_STATUS"|defined && $smarty.const.MODULE_COOKIE_CONSENT_STATUS == 'true'}
        <li class="level1"><a href="javascript:;" trigger-cookie-consent-panel="">{$smarty.const.TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING}</a></li>
      {/if}
    </ul>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.cookieconsent.css',

Ersetze mit:

    DIR_TMPL_CSS.'cookieconsent.css',

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/javascript/extra/colorbox.js.php

Suche:

    $(".iframe, .cc-link").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});

Ersetze mit:

    $(".iframe").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/javascript/extra/cookieconsent.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: cookieconsent.js.php 13018 2020-12-07 19:32:43Z GTB $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/

if (defined('MODULE_COOKIE_CONSENT_STATUS') && strtolower(MODULE_COOKIE_CONSENT_STATUS) == 'true') {
  $lang_links = '';
  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
    require_once(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
  }

  if (count($lng->catalog_languages) > 1) {
    $lang_content = array();
    reset($lng->catalog_languages);
    foreach ($lng->catalog_languages as $key => $value) {
      $lng_link_url = xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type);
      if ($lng_link_url != '#') {
        $lang_links .= "<a class='as-oil-lang' href='" . $lng_link_url . "'>" . $value['name'] . "</a>";
      }
    }
  }
?>
<script id="oil-configuration" type="application/configuration">
{
  "config_version": 1,
  "preview_mode": <?php echo defined('COOKIE_CONSENT_NO_TRACKING') ? 'true' : 'false'; ?>,
  "advanced_settings": true,
  "timeout": 0,
  "iabVendorListUrl": "<?php echo decode_htmlentities(xtc_href_link('ajax.php', 'ext=get_cookie_consent&speed=1&language='.$_SESSION['language_code'], $request_type, false)); ?>",
  "locale": {
    "localeId": "<?php echo $_SESSION['language_code']; ?>",
    "version": 1,
    "texts": {
      "label_intro_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_HEADING; ?>",
      "label_intro": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO; ?>",
      "label_button_yes": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES; ?>",
      "label_button_back": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_BACK; ?>",
      "label_button_yes_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES_ALL; ?>",
      "label_button_advanced_settings": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_ADVANCED_SETTINGS; ?>",
      "label_cpc_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING; ?>",
      "label_cpc_activate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_ACTIVATE_ALL; ?>",
      "label_cpc_deactivate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_DEACTIVATE_ALL; ?>",
      "label_nocookie_head": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_HEAD; ?>",
      "label_nocookie_text": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_TEXT; ?>",
      "label_third_party": " ",
      "label_imprint_links": "<?php echo $lang_links; ?><a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=2"); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_PRIVACY; ?></a> <a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=4"); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_IMPRINT; ?></a>"
    }
  }
}
</script>
<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS.'oil.min.js'; ?>"></script>
<script>!function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/",t(t.s=115)}({115:function(e,n,t){"use strict";!function(e,n){e.__cmp||(e.__cmp=function(){function t(e){if(e){var t=!0,r=n.querySelector('script[type="application/configuration"]#oil-configuration');if(null!==r&&r.text)try{var a=JSON.parse(r.text);a&&a.hasOwnProperty("gdpr_applies_globally")&&(t=a.gdpr_applies_globally)}catch(e){}e({gdprAppliesGlobally:t,cmpLoaded:o()},!0)}}function o(){return!(!e.AS_OIL||!e.AS_OIL.commandCollectionExecutor)}var r=[],a=function(n,a,c){if("ping"===n)t(c);else{var i={command:n,parameter:a,callback:c};r.push(i),o()&&e.AS_OIL.commandCollectionExecutor(i)}};return a.commandCollection=r,a.receiveMessage=function(n){var a=n&&n.data&&n.data.__cmpCall;if(a)if("ping"===a.command)t(function(e,t){var o={__cmpReturn:{returnValue:e,success:t,callId:a.callId}};n.source.postMessage(o,n.origin)});else{var c={callId:a.callId,command:a.command,parameter:a.parameter,event:n};r.push(c),o()&&e.AS_OIL.commandCollectionExecutor(c)}},function(n){(e.attachEvent||e.addEventListener)("message",function(e){n.receiveMessage(e)},!1)}(a),function e(){if(!(n.getElementsByName("__cmpLocator").length>0))if(n.body){var t=n.createElement("iframe");t.style.display="none",t.name="__cmpLocator",n.body.appendChild(t)}else setTimeout(e,5)}(),a}())}(window,document)}});</script>
<script>
function cc_popup_content(trgt) {
  $.colorbox({href:trgt.href, iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true});
  return false;
}
(function() {
  // Cross browser event handler definition
  let eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';
  let messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';
  let eventer = window[eventMethod];

  // Callback to be executed when event is fired
  function receiveMessage(event) {
    let eventDataContains = function(str) {
			return JSON.stringify(event.data).indexOf(str) !== -1;
		};
		<?php if (defined('MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE') && strtolower(MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE) == 'true') { ?>
		let oilGtagCookie = function(data) {
			let cookieDate = new Date;
			//  the oil.js cookie expires after 1 month
			cookieDate.setMonth(cookieDate.getMonth() + 1);
			
			let cookieString = 'MODOilTrack=' + JSON.stringify(data.purposeConsents) + ';';
			cookieString += 'expires=' + cookieDate.toUTCString() + ';';
			cookieString += 'path=/;SameSite=Lax;';
			if (typeof SetSecCookie !== 'undefined' && SetSecCookie == true) {
			  cookieString += 'Secure;';
			}
			
			document.cookie = cookieString;
		};
    if (event && event.data && (eventDataContains('oil_optin_done') || eventDataContains('oil_has_optedin'))) {
			__cmp('getVendorConsents', [], oilGtagCookie);
		}
    <?php } ?>
  }

  // Register event handler
  eventer(messageEvent, receiveMessage, false);
  
  $(document).on('click', '[trigger-cookie-consent-panel]',  function () {
	
		window.AS_OIL.showPreferenceCenter();

		if (!$('.as-oil.light').length) {
			$('body').append(
				$('<div/>')
					.addClass('as-oil light')
					.append(
						$('<div/>')
							.attr('id', 'oil-preference-center')
							.addClass('as-oil-content-overlay cpc-dynamic-panel')
					)
			);
		}
	});
})();
</script>
<?php }

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/javascript/general.js.php

Suche:

<script type="text/javascript">var DIR_WS_BASE="<?php echo DIR_WS_BASE ?>"</script>

Ersetze mit:

<script type="text/javascript">
  var DIR_WS_BASE = "<?php echo DIR_WS_BASE ?>";
  var SetSecCookie = "<?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? true : false); ?>";
</script>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.cookieconsent.min.js',
  DIR_TMPL_JS.'jquery.easyTabs.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.easyTabs.min.js',

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* 7. START Footer */
#layout_footer {
  background: #363839;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 70px 0;
}

Ersetze mit:

/* 7. START Footer */
#layout_footer {
  background: #363839;
  min-height:280px;
  margin: 40px 0 0 0;  
  padding: 0 0 20px 0;
}

Suche:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#888;
  font-size:10px;
  line-height:16px;
  font-weight:400;
  padding:0 0 10px 0;
  margin: -88px 0 0 0;
  width:100%;
}

Ersetze mit:

.copyright {
  margin:0 auto;
  text-align:center;
  color:#888;
  font-size:10px;
  line-height:16px;
  font-weight:400;
  padding:0 0 10px 0;
  margin: -40px 0 0 0;
  width:100%;
}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/boxes/box_content.html

Suche:

    <ul class="footerlist">
      {$BOX_CONTENT}
    </ul>

Ersetze mit:

    <ul class="footerlist">
      {$BOX_CONTENT}
      {if "MODULE_COOKIE_CONSENT_STATUS"|defined && $smarty.const.MODULE_COOKIE_CONSENT_STATUS == 'true'}
        <li class="level1"><a href="javascript:;" trigger-cookie-consent-panel=""><i class="fas fa-angle-right"></i>{$smarty.const.TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING}</a></li>
      {/if}
    </ul>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.cookieconsent.css',

Ersetze mit:

    DIR_TMPL_CSS.'cookieconsent.css',

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/extra/colorbox.js.php

Suche:

    $(".iframe, .cc-link").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});

Ersetze mit:

    $(".iframe").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: cookieconsent.js.php 13018 2020-12-07 19:32:43Z GTB $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/

if (defined('MODULE_COOKIE_CONSENT_STATUS') && strtolower(MODULE_COOKIE_CONSENT_STATUS) == 'true') {
  $lang_links = '';
  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
    require_once(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
  }

  if (count($lng->catalog_languages) > 1) {
    $lang_content = array();
    reset($lng->catalog_languages);
    foreach ($lng->catalog_languages as $key => $value) {
      $lng_link_url = xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type);
      if ($lng_link_url != '#') {
        $lang_links .= "<a class='as-oil-lang' href='" . $lng_link_url . "'>" . $value['name'] . "</a>";
      }
    }
  }
?>
<script id="oil-configuration" type="application/configuration">
{
  "config_version": 1,
  "preview_mode": <?php echo defined('COOKIE_CONSENT_NO_TRACKING') ? 'true' : 'false'; ?>,
  "advanced_settings": true,
  "timeout": 0,
  "iabVendorListUrl": "<?php echo decode_htmlentities(xtc_href_link('ajax.php', 'ext=get_cookie_consent&speed=1&language='.$_SESSION['language_code'], $request_type, false)); ?>",
  "locale": {
    "localeId": "<?php echo $_SESSION['language_code']; ?>",
    "version": 1,
    "texts": {
      "label_intro_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_HEADING; ?>",
      "label_intro": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO; ?>",
      "label_button_yes": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES; ?>",
      "label_button_back": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_BACK; ?>",
      "label_button_yes_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES_ALL; ?>",
      "label_button_advanced_settings": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_ADVANCED_SETTINGS; ?>",
      "label_cpc_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING; ?>",
      "label_cpc_activate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_ACTIVATE_ALL; ?>",
      "label_cpc_deactivate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_DEACTIVATE_ALL; ?>",
      "label_nocookie_head": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_HEAD; ?>",
      "label_nocookie_text": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_TEXT; ?>",
      "label_third_party": " ",
      "label_imprint_links": "<?php echo $lang_links; ?><a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=2"); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_PRIVACY; ?></a> <a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=4"); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_IMPRINT; ?></a>"
    }
  }
}
</script>
<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS.'oil.min.js'; ?>"></script>
<script>!function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/",t(t.s=115)}({115:function(e,n,t){"use strict";!function(e,n){e.__cmp||(e.__cmp=function(){function t(e){if(e){var t=!0,r=n.querySelector('script[type="application/configuration"]#oil-configuration');if(null!==r&&r.text)try{var a=JSON.parse(r.text);a&&a.hasOwnProperty("gdpr_applies_globally")&&(t=a.gdpr_applies_globally)}catch(e){}e({gdprAppliesGlobally:t,cmpLoaded:o()},!0)}}function o(){return!(!e.AS_OIL||!e.AS_OIL.commandCollectionExecutor)}var r=[],a=function(n,a,c){if("ping"===n)t(c);else{var i={command:n,parameter:a,callback:c};r.push(i),o()&&e.AS_OIL.commandCollectionExecutor(i)}};return a.commandCollection=r,a.receiveMessage=function(n){var a=n&&n.data&&n.data.__cmpCall;if(a)if("ping"===a.command)t(function(e,t){var o={__cmpReturn:{returnValue:e,success:t,callId:a.callId}};n.source.postMessage(o,n.origin)});else{var c={callId:a.callId,command:a.command,parameter:a.parameter,event:n};r.push(c),o()&&e.AS_OIL.commandCollectionExecutor(c)}},function(n){(e.attachEvent||e.addEventListener)("message",function(e){n.receiveMessage(e)},!1)}(a),function e(){if(!(n.getElementsByName("__cmpLocator").length>0))if(n.body){var t=n.createElement("iframe");t.style.display="none",t.name="__cmpLocator",n.body.appendChild(t)}else setTimeout(e,5)}(),a}())}(window,document)}});</script>
<script>
function cc_popup_content(trgt) {
  $.colorbox({href:trgt.href, iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});
  return false;
}
(function() {
  // Cross browser event handler definition
  let eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';
  let messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';
  let eventer = window[eventMethod];

  // Callback to be executed when event is fired
  function receiveMessage(event) {
    let eventDataContains = function(str) {
			return JSON.stringify(event.data).indexOf(str) !== -1;
		};
		<?php if (defined('MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE') && strtolower(MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE) == 'true') { ?>
		let oilGtagCookie = function(data) {
			let cookieDate = new Date;
			//  the oil.js cookie expires after 1 month
			cookieDate.setMonth(cookieDate.getMonth() + 1);
			
			let cookieString = 'MODOilTrack=' + JSON.stringify(data.purposeConsents) + ';';
			cookieString += 'expires=' + cookieDate.toUTCString() + ';';
			cookieString += 'path=/;SameSite=Lax;';
			if (typeof SetSecCookie !== 'undefined' && SetSecCookie == true) {
			  cookieString += 'Secure;';
			}
			
			document.cookie = cookieString;
		};
    if (event && event.data && (eventDataContains('oil_optin_done') || eventDataContains('oil_has_optedin'))) {
			__cmp('getVendorConsents', [], oilGtagCookie);
		}
    <?php } ?>
  }

  // Register event handler
  eventer(messageEvent, receiveMessage, false);
  
  $(document).on('click', '[trigger-cookie-consent-panel]',  function () {
	
		window.AS_OIL.showPreferenceCenter();

		if (!$('.as-oil.light').length) {
			$('body').append(
				$('<div/>')
					.addClass('as-oil light')
					.append(
						$('<div/>')
							.attr('id', 'oil-preference-center')
							.addClass('as-oil-content-overlay cpc-dynamic-panel')
					)
			);
		}
	});
})();
</script>
<?php }

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/general.js.php

Suche:

<script type="text/javascript">var DIR_WS_BASE="<?php echo DIR_WS_BASE ?>"</script>

Ersetze mit:

<script type="text/javascript">
  var DIR_WS_BASE = "<?php echo DIR_WS_BASE ?>";
  var SetSecCookie = "<?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? true : false); ?>";
</script>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.cookieconsent.min.js',
  DIR_TMPL_JS.'jquery.easyTabs.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.easyTabs.min.js',

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* COPYRIGHT */
.copyright {
  margin:0 auto;
  width:970px;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
}

Ersetze mit:

/* COPYRIGHT */
.copyright {
  margin:0 auto;
  width:970px;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 5px 0;
}

Suche:

/* ParseTime */
.parseTime {
  margin:0 auto;
  width:970px;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 10px 0;
}

Ersetze mit:

/* ParseTime */
.parseTime {
  margin:0 auto;
  width:970px;
  text-align:center;
  color:#666;
  font-size:11px;
  padding:0 0 5px 0;
}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/boxes/box_content.html

Suche:

<ul class="contentmenu">{$BOX_CONTENT}</ul>

Ersetze mit:

<ul class="contentmenu">
  {$BOX_CONTENT}
  {if "MODULE_COOKIE_CONSENT_STATUS"|defined && $smarty.const.MODULE_COOKIE_CONSENT_STATUS == 'true'}
    <li class="level1"><a href="javascript:;" trigger-cookie-consent-panel="">{$smarty.const.TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING}</a></li>
  {/if}
</ul>

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.cookieconsent.css',

Ersetze mit:

    DIR_TMPL_CSS.'cookieconsent.css',

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/css/thickbox.css

Suche:

#TB_window{font:12px Arial, Helvetica, sans-serif;font-weight:bold;position:fixed;background:#ffffff;z-index:102;color:#333333;display:none;border:4px solid #525252;text-align:left;top:50%;left:50%;}

Ersetze mit:

#TB_window{font:12px Arial, Helvetica, sans-serif;font-weight:bold;position:fixed;background:#ffffff;z-index:10002;color:#333333;display:none;border:4px solid #525252;text-align:left;top:50%;left:50%;}

Suche:

#TB_overlay{position:fixed;z-index:100;top:0;left:0;height:100%;width:100%;}

Ersetze mit:

#TB_overlay{position:fixed;z-index:10000;top:0;left:0;height:100%;width:100%;}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/javascript/extra/cookieconsent.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: cookieconsent.js.php 13018 2020-12-07 19:32:43Z GTB $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/

if (defined('MODULE_COOKIE_CONSENT_STATUS') && strtolower(MODULE_COOKIE_CONSENT_STATUS) == 'true') {
  $link_parameters = defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS;
  $lang_links = '';
  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
    require_once(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
  }

  if (count($lng->catalog_languages) > 1) {
    $lang_content = array();
    reset($lng->catalog_languages);
    foreach ($lng->catalog_languages as $key => $value) {
      $lng_link_url = xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type);
      if ($lng_link_url != '#') {
        $lang_links .= "<a class='as-oil-lang' href='" . $lng_link_url . "'>" . $value['name'] . "</a>";
      }
    }
  }
?>
<script id="oil-configuration" type="application/configuration">
{
  "config_version": 1,
  "preview_mode": <?php echo defined('COOKIE_CONSENT_NO_TRACKING') ? 'true' : 'false'; ?>,
  "advanced_settings": true,
  "timeout": 0,
  "iabVendorListUrl": "<?php echo decode_htmlentities(xtc_href_link('ajax.php', 'ext=get_cookie_consent&speed=1&language='.$_SESSION['language_code'], $request_type, false)); ?>",
  "locale": {
    "localeId": "<?php echo $_SESSION['language_code']; ?>",
    "version": 1,
    "texts": {
      "label_intro_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_HEADING; ?>",
      "label_intro": "<?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO; ?>",
      "label_button_yes": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES; ?>",
      "label_button_back": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_BACK; ?>",
      "label_button_yes_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES_ALL; ?>",
      "label_button_advanced_settings": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_ADVANCED_SETTINGS; ?>",
      "label_cpc_heading": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_HEADING; ?>",
      "label_cpc_activate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_ACTIVATE_ALL; ?>",
      "label_cpc_deactivate_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_CPC_DEACTIVATE_ALL; ?>",
      "label_nocookie_head": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_HEAD; ?>",
      "label_nocookie_text": "<?php echo TEXT_COOKIE_CONSENT_LABEL_NOCOOKIE_TEXT; ?>",
      "label_third_party": " ",
      "label_imprint_links": "<?php echo $lang_links; ?><a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=2".$link_parameters); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_PRIVACY; ?></a> <a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=4".$link_parameters); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_IMPRINT; ?></a>"
    }
  }
}
</script>
<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS.'oil.min.js'; ?>"></script>
<script>!function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/",t(t.s=115)}({115:function(e,n,t){"use strict";!function(e,n){e.__cmp||(e.__cmp=function(){function t(e){if(e){var t=!0,r=n.querySelector('script[type="application/configuration"]#oil-configuration');if(null!==r&&r.text)try{var a=JSON.parse(r.text);a&&a.hasOwnProperty("gdpr_applies_globally")&&(t=a.gdpr_applies_globally)}catch(e){}e({gdprAppliesGlobally:t,cmpLoaded:o()},!0)}}function o(){return!(!e.AS_OIL||!e.AS_OIL.commandCollectionExecutor)}var r=[],a=function(n,a,c){if("ping"===n)t(c);else{var i={command:n,parameter:a,callback:c};r.push(i),o()&&e.AS_OIL.commandCollectionExecutor(i)}};return a.commandCollection=r,a.receiveMessage=function(n){var a=n&&n.data&&n.data.__cmpCall;if(a)if("ping"===a.command)t(function(e,t){var o={__cmpReturn:{returnValue:e,success:t,callId:a.callId}};n.source.postMessage(o,n.origin)});else{var c={callId:a.callId,command:a.command,parameter:a.parameter,event:n};r.push(c),o()&&e.AS_OIL.commandCollectionExecutor(c)}},function(n){(e.attachEvent||e.addEventListener)("message",function(e){n.receiveMessage(e)},!1)}(a),function e(){if(!(n.getElementsByName("__cmpLocator").length>0))if(n.body){var t=n.createElement("iframe");t.style.display="none",t.name="__cmpLocator",n.body.appendChild(t)}else setTimeout(e,5)}(),a}())}(window,document)}});</script>
<script>
function cc_popup_content(trgt) {
  tb_show('Information', trgt.href, 'consent');
  return false;
}
(function() {
  // Cross browser event handler definition
  let eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';
  let messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';
  let eventer = window[eventMethod];

  // Callback to be executed when event is fired
  function receiveMessage(event) {
    let eventDataContains = function(str) {
			return JSON.stringify(event.data).indexOf(str) !== -1;
		};
		<?php if (defined('MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE') && strtolower(MODULE_COOKIE_CONSENT_SET_READABLE_COOKIE) == 'true') { ?>
		let oilGtagCookie = function(data) {
			let cookieDate = new Date;
			//  the oil.js cookie expires after 1 month
			cookieDate.setMonth(cookieDate.getMonth() + 1);
			
			let cookieString = 'MODOilTrack=' + JSON.stringify(data.purposeConsents) + ';';
			cookieString += 'expires=' + cookieDate.toUTCString() + ';';
			cookieString += 'path=/;SameSite=Lax;';
			if (typeof SetSecCookie !== 'undefined' && SetSecCookie == true) {
			  cookieString += 'Secure;';
			}
			
			document.cookie = cookieString;
		};
    if (event && event.data && (eventDataContains('oil_optin_done') || eventDataContains('oil_has_optedin'))) {
			__cmp('getVendorConsents', [], oilGtagCookie);
		}
    <?php } ?>
  }

  // Register event handler
  eventer(messageEvent, receiveMessage, false);
  
  $(document).on('click', '[trigger-cookie-consent-panel]',  function () {
	
		window.AS_OIL.showPreferenceCenter();

		if (!$('.as-oil.light').length) {
			$('body').append(
				$('<div/>')
					.addClass('as-oil light')
					.append(
						$('<div/>')
							.attr('id', 'oil-preference-center')
							.addClass('as-oil-content-overlay cpc-dynamic-panel')
					)
			);
		}
	});
})();
</script>
<?php }

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/javascript/general.js.php

Suche:

<script type="text/javascript">var DIR_WS_BASE="<?php echo DIR_WS_BASE ?>"</script>

Ersetze mit:

<script type="text/javascript">
  var DIR_WS_BASE = "<?php echo DIR_WS_BASE ?>";
  var SetSecCookie = "<?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? true : false); ?>";
</script>

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.cookieconsent.min.js',
  DIR_TMPL_JS.'jquery.alertable.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.alertable.min.js',

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/javascript/thickbox.js

Inhalt der Datei ersetzen mit:

/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
 * Fix for jquery 1.7.x by web0null
*/
var tb_pathToImage=DIR_WS_BASE+"images/loadingAnimation.gif";$(document).ready(function(){tb_init('a.thickbox, area.thickbox, input.thickbox');imgLoader=new Image();imgLoader.src=tb_pathToImage});function tb_init(domChunk){$(domChunk).click(function(){var t=this.title||this.name||null;var a=this.href||this.alt;var g=this.rel||false;tb_show(t,a,g);this.blur();return false})}function tb_show(caption,url,imageGroup){try{if(typeof document.body.style.maxHeight==="undefined"){$("body","html").css({height:"100%",width:"100%"});$("html").css("overflow","hidden");if(document.getElementById("TB_HideSelect")===null){$("body").append("<iframe src='javascript:false;' id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");$("#TB_overlay").click(tb_remove)}}else{if(document.getElementById("TB_overlay")===null){$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");$("#TB_overlay").click(tb_remove)}}if(tb_detectMacXFF()){$("#TB_overlay").addClass("TB_overlayMacFFBGHack")}else{$("#TB_overlay").addClass("TB_overlayBG")}if(caption===null){caption=""}$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");$('#TB_load').show();var baseURL;if(url.indexOf("?")!==-1){baseURL=url.substr(0,url.indexOf("?"))}else{baseURL=url}var urlString=/\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;var urlType=baseURL.toLowerCase().match(urlString);if(urlType=='.jpg'||urlType=='.jpeg'||urlType=='.png'||urlType=='.gif'||urlType=='.bmp'){TB_PrevCaption="";TB_PrevURL="";TB_PrevHTML="";TB_NextCaption="";TB_NextURL="";TB_NextHTML="";TB_imageCount="";TB_FoundURL=false;if(imageGroup){TB_TempArray=$("a[rel="+imageGroup+"]").get();for(TB_Counter=0;((TB_Counter<TB_TempArray.length)&&(TB_NextHTML===""));TB_Counter++){var urlTypeTemp=TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);if(!(TB_TempArray[TB_Counter].href==url)){if(TB_FoundURL){TB_NextCaption=TB_TempArray[TB_Counter].title;TB_NextURL=TB_TempArray[TB_Counter].href;TB_NextHTML="<span id='TB_next'>&nbsp;&nbsp;<a href='#'>&rarr;</a></span>"}else{TB_PrevCaption=TB_TempArray[TB_Counter].title;TB_PrevURL=TB_TempArray[TB_Counter].href;TB_PrevHTML="<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&larr;</a></span>"}}else{TB_FoundURL=true;TB_imageCount="Bild/Image "+(TB_Counter+1)+" / "+(TB_TempArray.length)}}}imgPreloader=new Image();imgPreloader.onload=function(){imgPreloader.onload=null;var pagesize=tb_getPageSize();var x=pagesize[0]-150;var y=pagesize[1]-150;var imageWidth=imgPreloader.width;var imageHeight=imgPreloader.height;if(imageWidth>x){imageHeight=imageHeight*(x/imageWidth);imageWidth=x;if(imageHeight>y){imageWidth=imageWidth*(y/imageHeight);imageHeight=y}}else if(imageHeight>y){imageWidth=imageWidth*(y/imageHeight);imageHeight=y;if(imageWidth>x){imageHeight=imageHeight*(x/imageWidth);imageWidth=x}}TB_WIDTH=imageWidth+30;TB_HEIGHT=imageHeight+60;$("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>"+"<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>"+TB_imageCount+TB_PrevHTML+TB_NextHTML+"</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>X</a></div>");$("#TB_closeWindowButton").click(tb_remove);if(!(TB_PrevHTML==="")){function goPrev(){if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev)}$("#TB_window").remove();$("body").append("<div id='TB_window'></div>");tb_show(TB_PrevCaption,TB_PrevURL,imageGroup);return false}$("#TB_prev").click(goPrev)}if(!(TB_NextHTML==="")){function goNext(){$("#TB_window").remove();$("body").append("<div id='TB_window'></div>");tb_show(TB_NextCaption,TB_NextURL,imageGroup);return false}$("#TB_next").click(goNext)}document.onkeydown=function(e){if(e==null){keycode=event.keyCode}else{keycode=e.which}if(keycode==27){tb_remove()}else if(keycode==190){if(!(TB_NextHTML=="")){document.onkeydown="";goNext()}}else if(keycode==188){if(!(TB_PrevHTML=="")){document.onkeydown="";goPrev()}}};tb_position();$("#TB_load").remove();$("#TB_ImageOff").click(tb_remove);$("#TB_window").css({display:"block"})};imgPreloader.src=url}else{var queryString=url.replace(/^[^\?]+\??/,'');var params=tb_parseQuery(queryString);TB_WIDTH=(params['width']*1)+30||630;TB_HEIGHT=(params['height']*1)+40||440;ajaxContentW=TB_WIDTH-30;ajaxContentH=TB_HEIGHT-45;if(url.indexOf('TB_iframe')!=-1){urlNoQuery=url.split('TB_');$("#TB_iframeContent").remove();if(params['modal']!="true"){$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>X</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW+29)+"px;height:"+(ajaxContentH+17)+"px;' > </iframe>")}else{$("#TB_overlay").unbind();$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW+29)+"px;height:"+(ajaxContentH+17)+"px;'> </iframe>")}}else{if($("#TB_window").css("display")!="block"){if(params['modal']!="true"){$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>X</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>")}else{$("#TB_overlay").unbind();$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>")}}else{$("#TB_ajaxContent")[0].style.width=ajaxContentW+"px";$("#TB_ajaxContent")[0].style.height=ajaxContentH+"px";$("#TB_ajaxContent")[0].scrollTop=0;$("#TB_ajaxWindowTitle").html(caption)}}$("#TB_closeWindowButton").click(tb_remove);if(url.indexOf('TB_inline')!=-1){$("#TB_ajaxContent").append($('#'+params['inlineId']).children());$("#TB_window").bind('tb_unload',function(){$('#'+params['inlineId']).append($("#TB_ajaxContent").children())});tb_position();$("#TB_load").remove();$("#TB_window").css({display:"block"})}else if(url.indexOf('TB_iframe')!=-1){tb_position();if($.browser.safari){$("#TB_load").remove();$("#TB_window").css({display:"block"})}}else{$("#TB_ajaxContent").load(url+="&random="+(new Date().getTime()),function(){tb_position();$("#TB_load").remove();tb_init("#TB_ajaxContent a.thickbox");$("#TB_window").css({display:"block"})})}}if(!params['modal']){document.onkeyup=function(e){if(e==null){keycode=event.keyCode}else{keycode=e.which}if(keycode==27){tb_remove()}}}}catch(e){}}function tb_showIframe(){$("#TB_load").remove();$("#TB_window").css({display:"block"})}function tb_remove(){$("#TB_imageOff").unbind("click");$("#TB_closeWindowButton").unbind("click");$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("tb_unload").unbind().remove()});$("#TB_load").remove();if(typeof document.body.style.maxHeight=="undefined"){$("body","html").css({height:"auto",width:"auto"});$("html").css("overflow","")}document.onkeydown="";document.onkeyup="";return false}function tb_position(){$("#TB_window").css({marginLeft:'-'+parseInt((TB_WIDTH/2),10)+'px',width:TB_WIDTH+'px'});if(!(jQuery.browser.msie&&jQuery.browser.version<7)){$("#TB_window").css({marginTop:'-'+parseInt((TB_HEIGHT/2),10)+'px'})}}function tb_parseQuery(query){var Params={};if(!query){return Params}var Pairs=query.split(/[;&]/);for(var i=0;i<Pairs.length;i++){var KeyVal=Pairs[i].split('=');if(!KeyVal||KeyVal.length!=2){continue}var key=unescape(KeyVal[0]);var val=unescape(KeyVal[1]);val=val.replace(/\+/g,' ');Params[key]=val}return Params}function tb_getPageSize(){var de=document.documentElement;var w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;var h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;arrayPageSize=[w,h];return arrayPageSize}function tb_detectMacXFF(){var userAgent=navigator.userAgent.toLowerCase();if(userAgent.indexOf('mac')!=-1&&userAgent.indexOf('firefox')!=-1){return true}}

Wegfall der Funktion für Google Certified Shops Merchant[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/index.html
/templates/tpl_modified/offline.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/offline.html
/templates/xtc5/index.html
/templates/xtc5/offline.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/index.html
 /templates/TEMPLATENAME/offline.html

Suche:

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE == 'true' && $smarty.session.customers_status.customers_status_id == '0') || $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE == 'true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE == 'true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID}
  {/if}
  {if $smarty.const.TRACKING_FACEBOOK_ACTIVE == 'true'}
    {facebook id=$smarty.const.TRACKING_FACEBOOK_ID}
  {/if}
{/if}
{if $smarty.const.GOOGLE_CERTIFIED_SHOPS_MERCHANT_ACTIVE == 'true'}
  {googlecertificate subaccount=$smarty.const.GOOGLE_SHOPPING_ID account=$smarty.const.GOOGLE_TRUSTED_ID}
{/if}

Ersetze mit:

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE == 'true' && $smarty.session.customers_status.customers_status_id == '0') || $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE == 'true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE == 'true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID}
  {/if}
  {if $smarty.const.TRACKING_FACEBOOK_ACTIVE == 'true'}
    {facebook id=$smarty.const.TRACKING_FACEBOOK_ID}
  {/if}
{/if}

Erneute Fehlerkorrektur im Bundeslanddropdown[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/get_states.js.php
/templates/tpl_modified_responsive/javascript/extra/get_states.js.php
/templates/xtc5/javascript/extra/get_states.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/get_states.js.php

Suche:

      $("[name='state']").val(state);
      stateSelect.parent().parent().parent().show();

Ersetze mit:

      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      stateSelect.parent().parent().parent().show();

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/get_states.js.php

Suche:

      $('select').SumoSelect();
      $("[name='state']").val(state);
      stateSelect.parent().parent().parent().parent().show();

Ersetze mit:

      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      $('select').SumoSelect();
      stateSelect.parent().parent().parent().parent().show();

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/extra/get_states.js.php

Suche:

      $("[name='state']").val(state);
      stateSelect.parent().parent().show();

Ersetze mit:

      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      stateSelect.parent().parent().show();

Überarbeitung der xtc_show_category.inc.php & xtc_show_content.inc.php[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/inc/xtc_show_category.inc.php
/templates/tpl_modified/source/inc/xtc_show_content.inc.php
/templates/tpl_modified_responsive/source/inc/xtc_show_category.inc.php
/templates/tpl_modified_responsive/source/inc/xtc_show_content.inc.php
/templates/xtc5/source/inc/xtc_show_category.inc.php
/templates/xtc5/source/inc/xtc_show_content.inc.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/inc/xtc_show_category.inc.php

Suche:

      $categories_string = substr($categories_string, 0, strlen($categories_string) -5);  //letztes  </li>  entfernen

Ersetze mit:

      $categories_string = substr($categories_string, 0, -5);  //letztes  </li>  entfernen

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/inc/xtc_show_content.inc.php

Suche:

      $content_string = substr($content_string, 0, strlen($content_string) -5);  //letztes  </li>  entfernen

Ersetze mit:

      $content_string = substr($content_string, 0, -5);  //letztes  </li>  entfernen

Korrektur der Zeilenumbrüche in Text E-Mails[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/mail/english/downloads.txt
 /templates/tpl_modified/mail/english/order_mail.txt
 /templates/tpl_modified/mail/english/order_mail_step.txt
 /templates/tpl_modified/mail/german/downloads.txt
 /templates/tpl_modified/mail/german/order_mail.txt
 /templates/tpl_modified/mail/german/order_mail_step.txt
 /templates/tpl_modified_responsive/mail/english/downloads.txt
 /templates/tpl_modified_responsive/mail/english/order_mail.txt
 /templates/tpl_modified_responsive/mail/english/order_mail_step.txt
 /templates/tpl_modified_responsive/mail/german/downloads.txt
 /templates/tpl_modified_responsive/mail/german/order_mail.txt
 /templates/tpl_modified_responsive/mail/german/order_mail_step.txt
 /templates/xtc5/mail/english/downloads.txt
 /templates/xtc5/mail/english/order_mail.txt
 /templates/xtc5/mail/english/order_mail_step.txt
 /templates/xtc5/mail/german/downloads.txt
 /templates/xtc5/mail/german/order_mail.txt
 /templates/xtc5/mail/german/order_mail_step.txt

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/mail/english/downloads.txt
 /templates/TEMPLATENAME/mail/german/downloads.txt

Suche:

      {if $dl_data.download_link_plain}{$dl_data.download_link_plain}{else}{$dl_data.download_link}{/if}

Ersetze mit:

      {if $dl_data.download_link_plain}{$dl_data.download_link_plain}
      {else}{$dl_data.download_link}
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/mail/english/order_mail.txt
 /templates/TEMPLATENAME/mail/english/order_mail_step.txt

Suche:

{if $SHIPPING_METHOD}Shippingmethod: {$SHIPPING_METHOD}{/if}
{if $PAYMENT_METHOD}Paymentmethod: {$PAYMENT_METHOD}{/if}
Order No.: {$oID}
Date: {$DATE}
{if $csID}Customer ID: {$csID}{/if}
Your e-mail-address: {$EMAIL}
{if $vatID}Your VAT ID No.: {$vatID}{/if}

Ersetze mit:

{if $SHIPPING_METHOD}Shippingmethod: {$SHIPPING_METHOD}
{/if}
{if $PAYMENT_METHOD}Paymentmethod: {$PAYMENT_METHOD}
{/if}
Order No.: {$oID}
Date: {$DATE}
{if $csID}Customer ID: {$csID}
{/if}
Your e-mail-address: {$EMAIL}
{if $vatID}Your VAT ID No.: {$vatID}
{/if}

Suche:

{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}{/if}
{if $order_values.PRODUCTS_SHIPPING_TIME != ''}Shipping time: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
{if $order_values.PRODUCTS_ATTRIBUTES != ''}{$order_values.PRODUCTS_ATTRIBUTES}{/if}

Ersetze mit:

{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
{if $order_values.PRODUCTS_SHIPPING_TIME != ''}Shipping time: {$order_values.PRODUCTS_SHIPPING_TIME}
{/if}
{if $order_values.PRODUCTS_ATTRIBUTES != ''}{$order_values.PRODUCTS_ATTRIBUTES}
{/if}

Suche:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Pickupaddress{else}Shippingaddress{/if}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Pickupaddress
{else}Shippingaddress
{/if}

Suche:

{if $address_label_payment != $address_label_shipping}Paymentadress{else}Payment-/Shippingaddress{/if}

Ersetze mit:

{if $address_label_payment != $address_label_shipping}Paymentadress
{else}Payment-/Shippingaddress
{/if}

Suche:

----------------------------------------------------------------------{/if}

Ersetze mit:

----------------------------------------------------------------------
{/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/mail/german/order_mail.txt
 /templates/TEMPLATENAME/mail/german/order_mail_step.txt

Suche:

{if $SHIPPING_METHOD}Versandart: {$SHIPPING_METHOD}{/if}
{if $PAYMENT_METHOD}Zahlungsmethode: {$PAYMENT_METHOD}{/if}
Bestellnummer: {$oID}
Datum: {$DATE}
{if $csID}Kundennummer: {$csID}{/if}
Ihre E-Mail-Adresse: {$EMAIL}
{if $vatID}Ihre USt-IdNr.: {$vatID}{/if}

Ersetze mit:

{if $SHIPPING_METHOD}Versandart: {$SHIPPING_METHOD}
{/if}
{if $PAYMENT_METHOD}Zahlungsmethode: {$PAYMENT_METHOD}
{/if}
Bestellnummer: {$oID}
Datum: {$DATE}
{if $csID}Kundennummer: {$csID}
{/if}
Ihre E-Mail-Adresse: {$EMAIL}
{if $vatID}Ihre USt-IdNr.: {$vatID}
{/if}

Suche:

{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}{/if}
{if $order_values.PRODUCTS_SHIPPING_TIME != ''}Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
{if $order_values.PRODUCTS_ATTRIBUTES != ''}{$order_values.PRODUCTS_ATTRIBUTES}{/if}

Ersetze mit:

{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
{if $order_values.PRODUCTS_SHIPPING_TIME != ''}Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}
{/if}
{if $order_values.PRODUCTS_ATTRIBUTES != ''}{$order_values.PRODUCTS_ATTRIBUTES}
{/if}

Suche:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Versandadresse{/if}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strstr($SHIPPING_CLASS, 'selfpickup')}Abholadresse
{else}Versandadresse
{/if}

Suche:

{if $address_label_payment != $address_label_shipping}Rechnungsadresse{else}Rechnungs-/Lieferadresse{/if}

Ersetze mit:

{if $address_label_payment != $address_label_shipping}Rechnungsadresse
{else}Rechnungs-/Lieferadresse
{/if}

Suche:

----------------------------------------------------------------------{/if}

Ersetze mit:

----------------------------------------------------------------------
{/if}

Korrektur der JavaScript Komprimierung im Template tpl_modified[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/bxslider.js.php
/templates/tpl_modified/javascript/extra/colorbox.js.php
/templates/tpl_modified/javascript/extra/tabs.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/bxslider.js.php

Suche:

      nextText: '<i class="fas fa-chevron-right"></i>',
      prevText: '<i class="fas fa-chevron-left"></i>',
      minSlides: 2,

Ersetze mit:

      minSlides: 6,

Suche:

      slideWidth: 124,

Ersetze mit:

      slideWidth: 109,

Suche:

      nextText: '<i class="fas fa-chevron-right"></i>',
      prevText: '<i class="fas fa-chevron-left"></i>',
      adaptiveHeight: false,

Ersetze mit:

      adaptiveHeight: false,

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/colorbox.js.php

Suche:

  $(document).ready(function(){
    $(".cbimages").colorbox({rel:'cbimages', scalePhotos:true, maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>', next: '<i class="fas fa-chevron-right"></i>', previous: '<i class="fas fa-chevron-left"></i>'});
    $(".iframe").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true, close: '<i class="fas fa-times"></i>'});
    $("#print_order_layer").on('submit', function(event) {
      $.colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", close: '<i class="fas fa-times"></i>', href:$(this).attr("action") + '&' + $(this).serialize()});
      return false;
    });
  });

Ersetze mit:

  $(document).ready(function(){
    $(".cbimages").colorbox({rel:'cbimages', scalePhotos:true, maxWidth: "90%", maxHeight: "90%", fixed: true});
    $(".iframe").colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", fixed: true});
    $("#print_order_layer").on('submit', function(event) {
      $.colorbox({iframe:true, width:"780", height:"560", maxWidth: "90%", maxHeight: "90%", href:$(this).attr("action") + '&' + $(this).serialize()});
      return false;
    });
  });

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/tabs.js.php

Entferne den folgenden Code:

    $('.cus_check_gift label').click(function() {
      $('#rd-cot_gv').prop('checked', !$('#rd-cot_gv').prop('checked'));
    });

Suche:

  $('#button_checkout_confirmation').on('click',function() {
    $('.cssButtonPos12').hide();
  });

Ersetze mit:

  $('#button_checkout_confirmation').on('click',function() {
    $(this).hide();
  });

Korrektur der Bildgrößen in Content Popups[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

/* 32. END popup content */

Ersetze mit:

body.popupcontent h1 {
  margin-top:0px !important;
}
body.popupcontent img {
  max-width:100%;
  width:auto;
  height:auto;
}
/* 32. END popup content */

Performance der Bestseller-Box optimiert[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes.php

Suche:

// -----------------------------------------------------------------------------------------
//	product details
// -----------------------------------------------------------------------------------------
  if ($product->isProduct() === true) {
    require_once(DIR_FS_BOXES . 'manufacturer_info.php');
  } else {
    require_once(DIR_FS_BOXES . 'best_sellers.php');
    if ($_SESSION['customers_status']['customers_status_specials'] == '1' && SPECIALS_CATEGORIES === false) {
      require_once(DIR_FS_BOXES . 'specials.php');
    }
  }

Ersetze mit:

// -----------------------------------------------------------------------------------------
//	product details
// -----------------------------------------------------------------------------------------
  if ($product->isProduct() === true) {
    require_once(DIR_FS_BOXES . 'manufacturer_info.php');
  } else {
    if ($_SESSION['customers_status']['customers_status_specials'] == '1' && SPECIALS_CATEGORIES === false) {
      require_once(DIR_FS_BOXES . 'specials.php');
    }
  }

Suche:

// -----------------------------------------------------------------------------------------
// Smarty bestseller
// -----------------------------------------------------------------------------------------
$smarty->assign('bestseller', strpos($PHP_SELF, FILENAME_LOGOFF) 
                           || strpos($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) 
                           || strpos($PHP_SELF, FILENAME_SHOPPING_CART)
                           || strpos($PHP_SELF, FILENAME_NEWSLETTER));

Ersetze mit:

// -----------------------------------------------------------------------------------------
// Smarty bestseller
// -----------------------------------------------------------------------------------------
$smarty->assign('bestseller', false);
$bestsellers = array(FILENAME_DEFAULT,
                     FILENAME_LOGOFF, 
                     FILENAME_CHECKOUT_SUCCESS, 
                     FILENAME_SHOPPING_CART, 
                     FILENAME_NEWSLETTER
                     );
if (in_array(basename($PHP_SELF), $bestsellers) && !isset($_GET['cPath']) && !isset($_GET['manufacturers_id'])) {
  require_once(DIR_FS_BOXES . 'best_sellers.php');
  $smarty->assign('bestseller', true);
}

Anzeige der Bestseller-Box optimiert[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_best_sellers.html
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/boxes/box_best_sellers.html
/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/boxes/box_best_sellers.html

Suche:

        <span class="cb_title">{$box_data.PRODUCTS_NAME|mb_substr:"0":"36":"UTF-8"}</span>

Ersetze mit:

        <span class="cb_title"><span class="cb_title_inner">{$box_data.PRODUCTS_NAME}</span></span>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

ul.bxcarousel_bestseller li .carousel_box .cb_title {
  display:block;
  border-top: 1px dotted #ddd;
  margin: 7px 0 0 0;
  padding:5px 0 2px 0;
  font-size:10px;
  text-align:center;
  line-height:14px;
  height:40px;
}

Ersetze mit:

ul.bxcarousel_bestseller li .carousel_box .cb_title {
  display:block;
  border-top: 1px dotted #ddd;
  margin: 7px 0 0 0;
  padding:5px 0 2px 0;
  text-align:center;
}
ul.bxcarousel_bestseller li .carousel_box .cb_title_inner {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  font-size:10px;
  line-height:14px;
  height:28px;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_best_sellers.html

Suche:

        <span class="cb_title">{$box_data.PRODUCTS_NAME|mb_substr:"0":"36":"UTF-8"}</span>

Ersetze mit:

        <span class="cb_title"><span class="cb_title_inner">{$box_data.PRODUCTS_NAME}</span></span>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

ul.bxcarousel_bestseller li .carousel_box .cb_title {
  display:block;
  border-top: 1px solid #ddd;
  margin: 7px 0 0 0;
  padding:5px 0 2px 0;
  font-size:11px;
  text-align:center;
  line-height:15px;
  height:30px;
  color:#7c2759;
  font-weight:400;
}

Ersetze mit:

ul.bxcarousel_bestseller li .carousel_box .cb_title {
  display:block;
  border-top: 1px solid #ddd;
  margin: 7px 0 0 0;
  padding:5px 0 2px 0;
  text-align:center;
  color:#7c2759;
  font-weight:400;
}
ul.bxcarousel_bestseller li .carousel_box .cb_title_inner {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  font-size:11px;
  line-height:15px;
  height:30px;
}

Korrektur der Variablenrücksetzung in Box "Informationen"[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/information.php
/templates/tpl_modified_responsive/source/boxes/information.php
/templates/xtc5/source/boxes/information.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/information.php

Suche:

                unset ($first_content_element);

Ersetze mit:

                unset ($first_information_element);

Blitzen des Kategorie-Dropdowns am Suchfeld korrigieren[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.search_inner .search_cat {
  position:relative;
  z-index: 1200;
  width:80px;
}

Füge danach ein:

.search_inner .search_cat select {
  height:35px !important;
  padding-left:8px !important;
}

Suche:

.search_inner .search_cat .SumoSelect:focus > .CaptionCont { border-right:1px solid #eeeeee !important; }
.search_inner .search_cat .SumoSelect:focus > .CaptionCont { border-right:1px solid #659eC9 !important; }

Ersetze mit:

.search_inner .search_cat .SumoSelect:hover > .CaptionCont { border-right:1px solid #eeeeee !important; }
.search_inner .search_cat .SumoSelect:focus > .CaptionCont { border-right:1px solid #659eC9 !important; }

PayPal Subscriptions hinzufügen[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/order_details.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/module/shopping_cart.html
/templates/tpl_modified_responsive/module/order_details.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/shopping_cart.html
/templates/xtc5/module/order_details.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/shopping_cart.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/order_details.html

Suche:

{if $PAYPAL_INSTALLMENT}{$PAYPAL_INSTALLMENT}{/if}

Ersetze mit:

{if $PAYPAL_INSTALLMENT && !$PAYPALPLAN}{$PAYPAL_INSTALLMENT}{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_info/product_info_tabs_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_x_accordion_v1.html

An gewünschter Stelle einfügen:

{if $PAYPALPLAN}
  <br class="clearfix" />
  {$PAYPALPLAN}
{/if}

Suche:

{if isset($ADD_CART_BUTTON_EXPRESS)}

Ersetze mit:

{if isset($ADD_CART_BUTTON_EXPRESS) && !$PAYPALPLAN}

Suche:

{if $ADD_CART_BUTTON_PAYPAL}

Ersetze mit:

{if $ADD_CART_BUTTON_PAYPAL && !$PAYPALPLAN}

Suche:

{if $PAYPAL_INSTALLMENT}

Ersetze mit:

{if $PAYPAL_INSTALLMENT && !$PAYPALPLAN}

Suche:

{if $EASYCREDIT}

Ersetze mit:

{if $EASYCREDIT && !$PAYPALPLAN}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/shopping_cart.html

Suche:

    <div class="button_right_cart cf">
      <div class="cssButtonPos8">{$BUTTON_CHECKOUT}</div>
      {if $BUTTON_PAYPAL != ''}<div class="cssButtonPos8">{$BUTTON_PAYPAL}</div>{/if}
      {if isset($BUTTON_CHECKOUT_EXPRESS)}<div class="cssButtonPos8">{$BUTTON_CHECKOUT_EXPRESS}</div>{/if}
    </div>

Ersetze mit:

    <div class="button_right_cart cf">
      <div class="cssButtonPos8">{$BUTTON_CHECKOUT}</div>
      {if $BUTTON_PAYPAL != '' && !$PAYPALPLAN}<div class="cssButtonPos8">{$BUTTON_PAYPAL}</div>{/if}
      {if isset($BUTTON_CHECKOUT_EXPRESS) && !$PAYPALPLAN}<div class="cssButtonPos8">{$BUTTON_CHECKOUT_EXPRESS}</div>{/if}
    </div>

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/shopping_cart.html

Suche:

    <div class="button_right">
      {if !isset($BUTTON_CHECKOUT_EXPRESS)}{if $BUTTON_PAYPAL != ''}<span class="paypal_button">{$BUTTON_PAYPAL}</span>{/if}{/if}
      {if isset($BUTTON_CHECKOUT_EXPRESS)}<span class="express_button">{$BUTTON_CHECKOUT_EXPRESS}</span>{/if}
      {$BUTTON_CHECKOUT}
      {if isset($BUTTON_CHECKOUT_EXPRESS)}{if $BUTTON_PAYPAL != ''}<span class="paypal_button2">{$BUTTON_PAYPAL}</span>{/if}{/if}
    </div>

Ersetze mit:

    <div class="button_right">
      {if !isset($BUTTON_CHECKOUT_EXPRESS)}{if $BUTTON_PAYPAL != '' && !$PAYPALPLAN}<span class="paypal_button">{$BUTTON_PAYPAL}</span>{/if}{/if}
      {if isset($BUTTON_CHECKOUT_EXPRESS) && !$PAYPALPLAN}<span class="express_button">{$BUTTON_CHECKOUT_EXPRESS}</span>{/if}
      {$BUTTON_CHECKOUT}
      {if isset($BUTTON_CHECKOUT_EXPRESS)}{if $BUTTON_PAYPAL != '' && !$PAYPALPLAN}<span class="paypal_button2">{$BUTTON_PAYPAL}</span>{/if}{/if}
    </div>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/shopping_cart.html

Suche:

  <p align="right" style="padding-right:70px;">{if $CONTINUE_LINK}<a href="{$CONTINUE_LINK}">{$BUTTON_CONTINUE_SHOPPING}</a>&nbsp;{/if}{$BUTTON_RELOAD}&nbsp;{if $BUTTON_PAYPAL != ''}{$BUTTON_CHECKOUT}<br />{$BUTTON_PAYPAL}{else}{$BUTTON_CHECKOUT}{/if}</p>
  {if isset($BUTTON_CHECKOUT_EXPRESS)}<p align="right" style="padding-right:70px;">{$BUTTON_CHECKOUT_EXPRESS}</p>{/if}

Ersetze mit:

  <p align="right" style="padding-right:70px;">{if $CONTINUE_LINK}<a href="{$CONTINUE_LINK}">{$BUTTON_CONTINUE_SHOPPING}</a>&nbsp;{/if}{$BUTTON_RELOAD}&nbsp;{if $BUTTON_PAYPAL != '' && !$PAYPALPLAN}{$BUTTON_CHECKOUT}<br />{$BUTTON_PAYPAL}{else}{$BUTTON_CHECKOUT}{/if}</p>
  {if isset($BUTTON_CHECKOUT_EXPRESS) && !$PAYPALPLAN}<p align="right" style="padding-right:70px;">{$BUTTON_CHECKOUT_EXPRESS}</p>{/if}

Fehlende Erfolgsmeldung in reviews.html ergänzt[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/reviews.html
/templates/tpl_modified_responsive/module/reviews.html
/templates/xtc5/module/reviews.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/reviews.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Füge danach ein:

{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Hinweis ausgeben, dass Coupon ggf. die Versandkosten abdeckt[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/checkout_shipping.html
/templates/tpl_modified_responsive/module/checkout_shipping.html
/templates/xtc5/module/checkout_shipping.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/checkout_shipping.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Füge danach ein:

{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Korrektur der Smarty defined Anweisungen[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/checkout_payment.html
/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified_responsive/module/checkout_payment.html
/templates/tpl_modified_responsive/module/contact_us.html
/templates/tpl_modified_responsive/module/create_account.html
/templates/tpl_modified_responsive/module/create_account_guest.html
/templates/tpl_modified_responsive/module/newsletter.html
/templates/xtc5/module/checkout_payment.html
/templates/xtc5/module/contact_us.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/newsletter.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/checkout_payment.html
/templates/TEMPLATENAME/module/contact_us.html
/templates/TEMPLATENAME/module/create_account.html
/templates/TEMPLATENAME/module/create_account_guest.html
/templates/TEMPLATENAME/module/newsletter.html

Suche:

{if defined($smarty.const.SIGN_CONDITIONS_ON_CHECKOUT)}

Ersetze mit:

{if "SIGN_CONDITIONS_ON_CHECKOUT"|defined}

Notwendige Korrekturen für PHP 8[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/graduated_price.html
/templates/tpl_modified/module/order_details.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/graduated_price.html
/templates/tpl_modified_responsive/module/order_details.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/source/inc/css_button.inc.php
/templates/xtc5/module/order_details.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Dateie wie folgt bearbeiten:

/templates/TEMPLATENAME/module/order_details.html

Suche:

{if sizeof($TOTAL_BLOCK_ARRAY) > 0}

Ersetze mit:

{if isset($TOTAL_BLOCK_ARRAY) && count($TOTAL_BLOCK_ARRAY) > 0}

Suche (2x in Template tpl_modified/tpl_modified_responsive, sowie 1x in Template xtc5):

{if sizeof($shipping_content) > 0}

Ersetze mit:

{if isset($shipping_content) && count($shipping_content) > 0}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_info/product_info_tabs_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_x_accordion_v1.html

Suche (2x in Datei product_info_tabs_v1.html/product_info_x_accordion_v1.html, sowie 1x in Datei product_info_v1.html):

{if $more_images|@count > 0}

Ersetze mit:

{if isset($more_images) && count($more_images) > 0}

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/graduated_price.html
/templates/tpl_modified_responsive/module/graduated_price.html

Suche:

{else if $smarty.foreach.aussen.last}

Ersetze mit:

{elseif $smarty.foreach.aussen.last}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/inc/css_button.inc.php

Suche:

function css_button($image, $alt, $parameters = '', $submit) {

Ersetze mit:

function css_button($image, $alt, $parameters = '', $submit = false) {

Hinweis steuerfreie Ausfuhrlieferung auf Rechnung einfügen[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified_responsive/admin/print_order.html
/templates/xtc5/admin/print_order.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/print_order.html

Suche:

{if isset($vat_info)}

Ersetze mit:

{if isset($vat_info) && $vat_info != 0}

Suche:

{#vat_info#}

Ersetze mit:

{if $vat_info == 2}{#vat_info_2#}{else}{#vat_info#}{/if}

Ersetzung der alten Klarna Payment Methods (KPM) Zahlungsmodule durch Klarna Payments (KP)[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/order_details.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/module/order_details.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/module/order_details.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/order_details.html
/templates/tpl_modified_responsive/module/order_details.html

Entferne den folgenden Code:

{if $KLARNA_PPBOX}<div class="karna_container cf">{$KLARNA_PPBOX}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Entferne den folgenden Code:

{if isset($KLARNA_PPBOX)}{$KLARNA_PPBOX}{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css

Entferne den folgenden Code:

/* START Klarna */ 

/* product_info */
.pd_summarybox .klarna_PPBox {
  margin-top:5px !important;
  height:50px !important;
  width: 99% !important;
  font-size:13px !important;

}
.pd_summarybox .klarna_PPBox .klarna_PPBox_topMid span {
  margin-top:9px !important;
}

/* shopping cart */
.karna_container {
  margin: 5px 0px;
  float:right;
  width:300px;
} 
.karna_container .klarna_PPBox {
  margin-top:5px !important;
  margin-bottom:0px !important;
  height:50px !important;
  width: 99% !important;
  font-size:13px !important;
}
.karna_container .klarna_PPBox .klarna_PPBox_bottomMid {
  height:170px !important;
}
.karna_container .klarna_PPBox .klarna_PPBox_topMid span {
  margin-top:9px !important;
}
.karna_container .klarna_PPBox .klarna_PPBox_pull {
  margin-top: -2px !important;
}

/* checkout */
.klarna_box {
  min-width: 100% !important;
  max-width: 100% !important;
  border: none !important; 
  padding: 0px !important;
}
.klarna_box_bottom input {
  height:auto !important;
}
.klarna_box_bottom select {
  height: auto !important;
  padding:3px !important;
}
.klarna_einwilligung {
  max-width: 100% !important;
}
.klarna_language .klarna_display_in {
  display:none !important;
}
.klarna_language .klarna_flag_list {
  border-top:none !important;
}
.klarna_box_bottom {
  display:block !important;
}

.klarna_box_bottom ol.paymentPlan {
  margin: 3px 0 10px 0;
  padding: 5px;
}
/* END Klarna */

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/order_details.html

Entferne den folgenden Code:

{if $KLARNA_PPBOX}<br />{$KLARNA_PPBOX}{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Entferne den folgenden Code:

{if $KLARNA_PPBOX}{$KLARNA_PPBOX}{/if}

Eigene Template-Datei für Banner[Bearbeiten]

  • optional

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/index.html
/templates/tpl_modified/module/banners.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/module/banners.html
/templates/xtc5/index.html
/templates/xtc5/module/banners.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/index.html
/templates/tpl_modified_responsive/index.html

Suche:

{if isset($BANNER)}<div class="content_banner cf">{$BANNER}</div>{/if}

Ersetze mit:

{if isset($BANNER) && $BANNER != ''}<div class="content_banner cf">{$BANNER}</div>{/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/index.html

Suche:

{if isset($BANNER)}<div class="banner_item">{$BANNER}</div>{/if}

Ersetze mit:

{if isset($BANNER) && $BANNER != ''}<div class="banner_item">{$BANNER}</div>{/if}

Tracking Code aus Template in Shop-Core verschoben[Bearbeiten]

  • optional

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/index.html
/templates/tpl_modified/offline.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/offline.html
/templates/xtc5/index.html
/templates/xtc5/offline.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/index.html
/templates/TEMPLATENAME/offline.html

Entferne den folgenden Code:

{if ($smarty.const.TRACKING_COUNT_ADMIN_ACTIVE == 'true' && $smarty.session.customers_status.customers_status_id == '0') || $smarty.session.customers_status.customers_status_id != '0'}
  {if $smarty.const.TRACKING_PIWIK_ACTIVE == 'true'}
    {piwik url=$smarty.const.TRACKING_PIWIK_LOCAL_PATH id=$smarty.const.TRACKING_PIWIK_ID goal=$smarty.const.TRACKING_PIWIK_GOAL}
  {/if}
  {if $smarty.const.TRACKING_GOOGLEANALYTICS_ACTIVE == 'true'}
    {googleanalytics account=$smarty.const.TRACKING_GOOGLEANALYTICS_ID}
  {/if}
  {if $smarty.const.TRACKING_FACEBOOK_ACTIVE == 'true'}
    {facebook id=$smarty.const.TRACKING_FACEBOOK_ID}
  {/if}
{/if}

Erweiterung der Anrede um "Divers"[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen: (Eine Änderung der Templates tpl_modified & tpl_modified_responsive ist nicht notwendig, da hier das Dropdown bereits dynamisch erweitert wird.)

/templates/xtc5/module/account_edit.html
/templates/xtc5/module/address_book_details.html
/templates/xtc5/module/checkout_new_address.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/account_edit.html
/templates/xtc5/module/address_book_details.html
/templates/xtc5/module/checkout_new_address.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html

Suche:

<td>{$INPUT_MALE}</td>
<td>{$INPUT_FEMALE}</td>

Ersetze mit:

<td>{$INPUT_MALE}</td>
<td>{$INPUT_FEMALE}</td>
<td>{$INPUT_DIVERSE}</td>

Vereinheitlichung der Anrede in Mail-Templates[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/mail/english/change_order_mail.html
/templates/tpl_modified/admin/mail/english/change_order_mail.txt
/templates/tpl_modified/admin/mail/german/change_order_mail.html
/templates/tpl_modified/admin/mail/german/change_order_mail.txt
/templates/tpl_modified/mail/english/create_account_mail.html
/templates/tpl_modified/mail/english/create_account_mail.txt
/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified/mail/german/create_account_mail.html
/templates/tpl_modified/mail/german/create_account_mail.txt
/templates/tpl_modified_responsive/admin/mail/english/change_order_mail.html
/templates/tpl_modified_responsive/admin/mail/english/change_order_mail.txt
/templates/tpl_modified_responsive/admin/mail/german/change_order_mail.html
/templates/tpl_modified_responsive/admin/mail/german/change_order_mail.txt
/templates/tpl_modified_responsive/mail/english/create_account_mail.html
/templates/tpl_modified_responsive/mail/english/create_account_mail.txt
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail.txt
/templates/tpl_modified_responsive/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.txt
/templates/tpl_modified_responsive/mail/german/create_account_mail.html
/templates/tpl_modified_responsive/mail/german/create_account_mail.txt
/templates/xtc5/admin/mail/english/change_order_mail.html
/templates/xtc5/admin/mail/english/change_order_mail.txt
/templates/xtc5/admin/mail/german/change_order_mail.html
/templates/xtc5/admin/mail/german/change_order_mail.txt
/templates/xtc5/mail/english/create_account_mail.html
/templates/xtc5/mail/english/create_account_mail.txt
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/english/order_mail_step.txt
/templates/xtc5/mail/german/create_account_mail.html
/templates/xtc5/mail/german/create_account_mail.txt

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alles Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/mail/english/change_order_mail.html
/templates/TEMPLATENAME/admin/mail/english/change_order_mail.txt

Suche:

{if $GENDER == $smarty.const.MALE}Dear Mr.{elseif $GENDER == $smarty.const.FEMALE}Dear Ms./Mrs.{else}Hello{/if} {$NAME}

Ersetze mit:

{if $GENDER == 'm'}Dear Mr.{elseif $GENDER == 'f'}Dear Ms./Mrs.{else}Hello{/if} {$NAME}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/mail/german/change_order_mail.html
/templates/TEMPLATENAME/admin/mail/german/change_order_mail.txt

Suche:

{if $GENDER == $smarty.const.MALE}Sehr geehrter Herr{elseif $GENDER == $smarty.const.FEMALE}Sehr geehrte Frau{else}Hallo{/if} {$NAME}

Ersetze mit:

{if $GENDER == 'm'}Sehr geehrter Herr{elseif $GENDER == 'f'}Sehr geehrte Frau{else}Hallo{/if} {$NAME}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/english/create_account_mail.html
/templates/TEMPLATENAME/mail/english/create_account_mail.txt

Suche:

{if $GENDER != ''}Dear {$GENDER}{else}Hello{/if} {$NAME}

Ersetze mit:

{if $GENDER == 'm'}Dear Mr.{elseif $GENDER == 'f'}Dear Ms./Mrs.{else}Hello{/if} {$NAME}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/english/order_mail.html
/templates/TEMPLATENAME/mail/english/order_mail.txt
/templates/TEMPLATENAME/mail/english/order_mail_step.html
/templates/TEMPLATENAME/mail/english/order_mail_step.txt

Suche:

Dear {if $GENDER == 'm'}Mr.{elseif $GENDER == 'f'}Ms./Mrs.{else}Hello{/if} {$NAME}

Ersetze mit:

{if $GENDER == 'm'}Dear Mr.{elseif $GENDER == 'f'}Dear Ms./Mrs.{else}Hello{/if} {$NAME}

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/german/create_account_mail.html
/templates/TEMPLATENAME/mail/german/create_account_mail.txt

Suche:

{if $GENDER != ''}Sehr geehrte{if $GENDER == 'Herr'}r{/if} {$GENDER}{else}Hallo{/if} {$NAME}

Ersetze mit:

{if $GENDER == 'm'}Sehr geehrter Herr{elseif $GENDER == 'f'}Sehr geehrte Frau{else}Hallo{/if} {$NAME}

Options-Templates vereinheitlicht[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_options/multi_options_1.html
/templates/xtc5/module/product_options/product_options_dropdown.html

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_options/multi_options_1.html

Suche:

<select name="id[{$options_data.ID}]">

Ersetze mit:

<select name="id[{$options_data.ID}]" id="sel_{$options_data.ID}">

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_options/product_options_dropdown.html

Suche:

            <option value="{$item_data.ID}"{if $item_data.CHECKED == '1'} selected="selected"{/if}>&nbsp;{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if}&nbsp; </option>

Ersetze mit:

            <option value="{$item_data.ID}"{if $item_data.CHECKED == '1'} selected="selected"{/if}>{$item_data.TEXT} {if $item_data.PRICE != ''}{$item_data.PREFIX} {$item_data.PRICE}{/if} </option>

Gutscheine & Coupons auf checkout_confirmation Seite eingeben und Optimierung der Anzeige auf checkout_payment Seite[Bearbeiten]

  • optional in
/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/checkout_payment_block.html
/templates/tpl_modified/module/gift_cart.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/checkout_payment_block.html
/templates/tpl_modified_responsive/module/gift_cart.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/gift_cart.html

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html

Suche:

{if $PAYMENT_INFORMATION != ''}
<div class="twoColums{if $ORDER_COMMENTS != ''} last stickyright{/if}">
  <div class="highlightbox {if $ORDER_COMMENTS != ''}plainright{else}plainleft{/if}">
    <h4 class="checkout">{#text_payment_info#}</h4>
    <table class="paymentinfotable">
      {foreach name=aussen item=data from=$PAYMENT_INFORMATION}
        <tr>
          <td>{if $data.title != ''}{$data.title|stripslashes}{else}&nbsp;{/if}</td>
          <td>{if $data.field != ''}{$data.field|stripslashes}{else}&nbsp;{/if}</td>
        </tr>
      {/foreach}
    </table>
  </div>
</div>
{/if}

Füge danach ein:

{if $MODULE_gift_cart}
<div class="twoColums">
  <div class="highlightbox plainleft">
    {$MODULE_gift_cart}
  </div>
</div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_payment_block.html

Suche:

<div id="horizontalAccordion" class="checkout_accordion">

Füge davor ein:

{foreach name=outer item=gift_data from=$module_gift}
  <div class="resp-easy-accordion">
    <h2 class="resp-accordion resp-tab-active">{$gift_data.module|onlytext}<span class="payment_costs">{$gift_data.credit_amount}</span></h2>
    <div class="resp-tab-content resp-tab-content-active">
      <div>
        {$gift_data.selection}
        <label for="rd-cot_gv">{if $gift_data.description != ''}{$gift_data.description}{/if}</label>
      </div> 
      <br />
      {$credit_amount_payment_info}
    </div>  
  </div>
  <br />
{/foreach}

Entferne den folgenden Code:

    {foreach name=outer item=gift_data from=$module_gift}
      <li><span class="payment_radio">{$gift_data.selection}</span>{$gift_data.module|onlytext}<span class="payment_costs">{$gift_data.credit_amount}</span></li>
    {/foreach}

Entferne den folgenden Code:

    {foreach name=outer item=gift_data from=$module_gift}
      <div>{if $gift_data.description != ''}{$gift_data.description}<br />{/if}{$credit_amount_payment_info}</div>
    {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/gift_cart.html

Suche:

<h1>{#title#}</h1>

Ersetze mit:

{if $D_FLAG == 'checkout'}
<h4>{#title#}</h4>
{else}
<h1>{#title#}</h1>
{/if}

Suche:

{if $GV_AMOUNT neq ''}

Ersetze mit:

{if isset($GV_AMOUNT) && $GV_AMOUNT > 0}

Suche:

{if $COUPON_AMOUNT2 neq ''}

Ersetze mit:

{if isset($COUPON_AMOUNT2) && $COUPON_AMOUNT2 > 0}

Suche:

{if $COUPON_HELP_LINK neq ''}
  <br />
  <div class="infomessage">{*#cart_coupon#*} {$smarty.const.REDEEMED_COUPON} {$COUPON_HELP_LINK} {#cart_coupon_info#}</a></div>
{/if}

{if $C_FLAG == 'true'}

Ersetze mit:

{if $C_FLAG == 'true'}
  {if isset($COUPON_HELP_LINK)}
    <p>{$COUPON_HELP_LINK}{#cart_coupon_info#}</a></p>
  {/if}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_confirmation.html

Suche:

{if $PAYMENT_INFORMATION != ''}
<div class="twoColums{if $ORDER_COMMENTS != ''} last stickyright{/if}">
  <div class="highlightbox {if $ORDER_COMMENTS != ''}plainright{else}plainleft{/if}">
    <h4 class="checkout">{#text_payment_info#}</h4>
    <table class="paymentinfotable">
      {foreach name=aussen item=data from=$PAYMENT_INFORMATION}
        <tr>
          <td>{if $data.title != ''}{$data.title|stripslashes}{else}&nbsp;{/if}</td>
          <td>{if $data.field != ''}{$data.field|stripslashes}{else}&nbsp;{/if}</td>
        </tr>
      {/foreach}
    </table>
  </div>
</div>
{/if}

Füge danach ein:

{if $MODULE_gift_cart}
  <br class="clearfix" /> 
  <div class="highlightbox plainleft plainright">
    {$MODULE_gift_cart}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_payment_block.html

Suche:

<div id="horizontalAccordion" class="checkout_accordion">

Füge davor ein:

{foreach name=outer item=gift_data from=$module_gift}
  <div class="resp-easy-accordion">
    <h2 class="resp-accordion resp-tab-active">{$gift_data.module|onlytext}<span class="payment_costs">{$gift_data.credit_amount}</span></h2>
    <div class="resp-tab-content resp-tab-content-active">
      <div class="cus_check cus_check_gift">
        {$gift_data.selection}
        <label>{if $gift_data.description != ''}{$gift_data.description}{/if}</label>
      </div> 
      <br />
      {$credit_amount_payment_info}
    </div>  
  </div>
  <br />
{/foreach}

Entferne den folgenden Code:

    {foreach name=outer item=gift_data from=$module_gift}
      <li>
        <div class="cus_check cus_check_gift">
          {$gift_data.selection}
          <label>{$gift_data.module|onlytext}<span class="payment_costs">{$gift_data.credit_amount}</span></label>
        </div> 
      </li>
    {/foreach}

Entferne den folgenden Code:

    {foreach name=outer item=gift_data from=$module_gift}
      <div>{if $gift_data.description != ''}{$gift_data.description}<br />{/if}{$credit_amount_payment_info}</div>
    {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/gift_cart.html

Suche:

<h1>{#title#}</h1>

Ersetze mit:

{if $D_FLAG == 'checkout'}
<h4>{#title#}</h4>
{else}
<h1>{#title#}</h1>
{/if}

Suche:

    {if $GV_AMOUNT neq ''}

Ersetze mit:

    {if isset($GV_AMOUNT) && $GV_AMOUNT > 0}

Suche:

    {if $COUPON_AMOUNT2 neq ''}

Ersetze mit:

    {if isset($COUPON_AMOUNT2) && $COUPON_AMOUNT2 > 0}

Suche:

    {if $COUPON_HELP_LINK neq ''}
      <br />
      <div class="infomessage">{*#cart_coupon#*} {$smarty.const.REDEEMED_COUPON} {$COUPON_HELP_LINK} {#cart_coupon_info#}</a></div>
    {/if}

Ersetze mit:

    {if isset($COUPON_HELP_LINK)}<p>{$COUPON_HELP_LINK}{#cart_coupon_info#}</a></p>{/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_confirmation.html

Suche:

  {if $PAYMENT_INFORMATION != ''}
    <br />
    <h2>{#text_payment_info#}</h2>
    <table style="clear:both">
      {foreach name=aussen item=data from=$PAYMENT_INFORMATION}
        <tr>
          <td class="main">{if $data.title != ''}{$data.title|stripslashes}{else}&nbsp;{/if}</td>
          <td>&nbsp;</td>
          <td class="main">{if $data.field != ''}{$data.field|stripslashes}{else}&nbsp;{/if}</td>
        </tr>
      {/foreach}
    </table>
  {/if}

Füge danach ein:

  {if $MODULE_gift_cart}
    <br />
    {$MODULE_gift_cart}
    <div style="clear:both"></div>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/gift_cart.html

Suche:

  <h1>{#title#}</h1>

Ersetze mit:

  {if $D_FLAG == 'checkout'}
  <h2>{#title#}</h2>
  <div style="clear:both"></div>
  {else}
  <h1>{#title#}</h1>
  {/if}
  {if $D_FLAG == 'checkout'}
    {if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
    {if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}
  {/if}

Suche:

  {if $GV_AMOUNT neq ''}

Ersetze mit:

  {if isset($GV_AMOUNT) && $GV_AMOUNT > 0}

Suche:

  {if $COUPON_AMOUNT2 neq ''}

Ersetze mit:

  {if isset($COUPON_AMOUNT2) && $COUPON_AMOUNT2 > 0}

Suche:

  {if $COUPON_HELP_LINK neq ''}
    <p><div class="infomessage">{*#cart_coupon#*} {$smarty.const.REDEEMED_COUPON} {$COUPON_HELP_LINK} {#cart_coupon_info#}</a></div></p>
  {/if}
  {if $C_FLAG == 'true'}
    <p>{#text_gift#}</p>
    <div class="highlightbox">

Ersetze mit:

  {if $C_FLAG == 'true'}
    {if isset($COUPON_HELP_LINK)}
      <p>{$COUPON_HELP_LINK}{#cart_coupon_info#}</a></p>
    {/if}
    <p>{#text_gift#}</p>
    <div class="highlightbox"{if $D_FLAG == 'checkout'} style="margin-right:20px;"{/if}>

Hersteller-Box optimiert[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/manufacturer_info.php

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturer_info.php

Suche:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_manufacturers_info.html', $cache_id) || !$cache) {

  $manufacturer_query = xtDBquery("SELECT m.manufacturers_id,
                                          m.manufacturers_name,
                                          m.manufacturers_image,
                                          mi.manufacturers_url
                                     FROM " . TABLE_MANUFACTURERS . " m
                                     JOIN " . TABLE_MANUFACTURERS_INFO . " mi
                                       ON (m.manufacturers_id = mi.manufacturers_id
                                           AND mi.languages_id = '" . (int)$_SESSION['languages_id'] . "')
                                    WHERE m.manufacturers_id = '" . $product->data['manufacturers_id'] . "'");

  if (xtc_db_num_rows($manufacturer_query, true)) {
    $manufacturer = xtc_db_fetch_array($manufacturer_query, true);
    $image = '';
    if ($manufacturer['manufacturers_image'] != '') {
      $image = DIR_WS_IMAGES.$manufacturer['manufacturers_image'];
    }    
    if (!is_file(DIR_FS_CATALOG.$image)) {
      $image = ((MANUFACTURER_IMAGE_SHOW_NO_IMAGE == 'true') ? DIR_WS_IMAGES.'manufacturers/noimage.gif' : '');
    }
    $box_smarty->assign('IMAGE', (($image != '') ? DIR_WS_BASE . $image : ''));
    $box_smarty->assign('NAME',$manufacturer['manufacturers_name']);
    if ($manufacturer['manufacturers_url'] != '') {
      $box_smarty->assign('URL','<a href="' . xtc_href_link(FILENAME_REDIRECT, 'action=manufacturer&'.xtc_manufacturer_link($manufacturer['manufacturers_id'],$manufacturer['manufacturers_name'])) . '" onclick="window.open(this.href); return false;">' . sprintf(BOX_MANUFACTURER_INFO_HOMEPAGE, $manufacturer['manufacturers_name']) . '</a>');
    }
    $box_smarty->assign('LINK_MORE','<a href="' . xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturer['manufacturers_id'],$manufacturer['manufacturers_name'])) . '">' . BOX_MANUFACTURER_INFO_OTHER_PRODUCTS . '</a>');
  }
}

Ersetze mit:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_manufacturers_info.html', $cache_id) || !$cache) {
  $manufacturers_array = xtc_get_manufacturers();
  if (isset($manufacturers_array[$product->data['manufacturers_id']])) {
    $manufacturer = $manufacturers_array[$product->data['manufacturers_id']];
    $image = $main->getImage($manufacturer['manufacturers_image'], '', MANUFACTURER_IMAGE_SHOW_NO_IMAGE, 'manufacturers/noimage.gif');

    $box_smarty->assign('IMAGE', (($image != '') ? DIR_WS_BASE . $image : ''));
    $box_smarty->assign('NAME', $manufacturer['manufacturers_name']);
    if ($manufacturer['manufacturers_url'] != '') {
      $box_smarty->assign('URL','<a href="' . xtc_href_link(FILENAME_REDIRECT, 'action=manufacturer&'.xtc_manufacturer_link($manufacturer['manufacturers_id'],$manufacturer['manufacturers_name'])) . '" onclick="window.open(this.href); return false;">' . sprintf(BOX_MANUFACTURER_INFO_HOMEPAGE, $manufacturer['manufacturers_name']) . '</a>');
    }
    $box_smarty->assign('LINK_MORE','<a href="' . xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturer['manufacturers_id'],$manufacturer['manufacturers_name'])) . '">' . BOX_MANUFACTURER_INFO_OTHER_PRODUCTS . '</a>');
  }
}

SEMKNOX Produktsuche integriert[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/search.php

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/search.php

Suche:

$box_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_quick_find.gif', IMAGE_BUTTON_SEARCH,''));

Ersetze mit:

$box_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_quick_find.gif', IMAGE_BUTTON_SEARCH, 'id="inputStringSubmit"'));

Responsive Template erweitert um Picture Sets[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/boxes/box_best_sellers.html
/templates/tpl_modified_responsive/boxes/box_last_viewed.html
/templates/tpl_modified_responsive/boxes/box_manufacturers_info.html
/templates/tpl_modified_responsive/boxes/box_reviews.html
/templates/tpl_modified_responsive/boxes/box_specials.html
/templates/tpl_modified_responsive/boxes/box_whatsnew.html
/templates/tpl_modified_responsive/config/config.php
/templates/tpl_modified_responsive/css/general_bottom.css.php
/templates/tpl_modified_responsive/css/jquery.slick.css
/templates/tpl_modified_responsive/css/media-queries.css
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/javascript/extra/slick.js.php
/templates/tpl_modified_responsive/javascript/general_bottom.js.php
/templates/tpl_modified_responsive/javascript/jquery.lazysizes.min.js
/templates/tpl_modified_responsive/javascript/jquery.slick.min.js
/templates/tpl_modified_responsive/module/account.html
/templates/tpl_modified_responsive/module/autocomplete.html
/templates/tpl_modified_responsive/module/banners.html
/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html
/templates/tpl_modified_responsive/module/includes/product_info_include.html
/templates/tpl_modified_responsive/module/includes/product_listing_include.html
/templates/tpl_modified_responsive/module/order_details.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_listing/product_listing_v1.html
/templates/tpl_modified_responsive/module/product_reviews.html
/templates/tpl_modified_responsive/module/product_reviews_info.html
/templates/tpl_modified_responsive/module/reviews.html
/templates/tpl_modified_responsive/module/sub_categories_listing.html
/templates/tpl_modified_responsive/module/wishlist.html
/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_best_sellers.html

Suche:

<div class="bxcarousel_box_bestseller">
  <ul class="bxcarousel_bestseller">
  {foreach name=aussen item=box_data from=$box_content}
  <li>
    <div class="carousel_box">
      <a href="{$box_data.PRODUCTS_LINK}" title="{$box_data.PRODUCTS_NAME|onlytext}">
        <span class="cb_image">{if $box_data.PRODUCTS_IMAGE}<img src="{$box_data.PRODUCTS_IMAGE}" alt="{$box_data.PRODUCTS_NAME|onlytext}" title="{$box_data.PRODUCTS_NAME|onlytext}" />{/if}</span>
        <span class="cb_title"><span class="cb_title_inner">{$box_data.PRODUCTS_NAME}</span></span>
      </a>
    </div>
  </li>
  {/foreach}
</ul>
<br class="clearfix" />

Ersetze mit:

<div class="slider_bestseller">
  {foreach name=aussen item=box_data from=$box_content}
    <div class="carousel_box">
      <div class="carousel_box_inner">
        <a href="{$box_data.PRODUCTS_LINK}" title="{$box_data.PRODUCTS_NAME|onlytext}">
          <span class="cb_image">
            {if $box_data.PRODUCTS_IMAGE}
              {if $smarty.const.PICTURESET_ACTIVE === true}
                <img class="lazyload" data-src="{$box_data.PRODUCTS_IMAGE|replace:"thumbnail_":"midi_"}" alt="{$box_data.PRODUCTS_NAME|onlytext}" title="{$box_data.PRODUCTS_NAME|onlytext}" />
              {else}
                <img class="lazyload" data-src="{$box_data.PRODUCTS_IMAGE}" alt="{$box_data.PRODUCTS_NAME|onlytext}" title="{$box_data.PRODUCTS_NAME|onlytext}" />
              {/if}
              <noscript><img src="{$box_data.PRODUCTS_IMAGE}" alt="{$box_data.PRODUCTS_NAME|onlytext}" title="{$box_data.PRODUCTS_NAME|onlytext}" /></noscript>
            {/if}
          </span>
          <span class="cb_title"><span class="cb_title_inner">{$box_data.PRODUCTS_NAME}</span></span>
        </a>
      </div>
    </div>
  {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_last_viewed.html

Suche:

      {if $box_content.PRODUCTS_IMAGE != ''}<div class="box_image"><a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></a></div>{/if}

Ersetze mit:

      {if $box_content.PRODUCTS_IMAGE != ''}
        <div class="box_image">
          <a href="{$box_content.PRODUCTS_LINK}">
            {if $smarty.const.PICTURESET_ACTIVE === true}
              <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE|replace:"thumbnail_":"midi_"}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
            {else}
              <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
            {/if}
            <noscript><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></noscript>
          </a>
        </div>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_manufacturers_info.html

Suche:

          <div class="box_image"><img src="{$IMAGE}" alt="{$NAME|onlytext}" /></div>

Ersetze mit:

          <div class="box_image">
            <img class="lazyload" data-src="{$IMAGE}" alt="{$NAME|onlytext}" />
            <noscript><img src="{$IMAGE}" alt="{$NAME|onlytext}" /></noscript>
          </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_reviews.html

Suche:

      {if $PRODUCTS_IMAGE != ''}<div class="box_image"><a href="{$PRODUCTS_LINK}"><img src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></div>{/if}

Ersetze mit:

      {if $PRODUCTS_IMAGE != ''}
        <div class="box_image">
          <a href="{$PRODUCTS_LINK}">
            {if $smarty.const.PICTURESET_ACTIVE === true}
              <img class="lazyload" data-src="{$PRODUCTS_IMAGE|replace:"thumbnail_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
            {else}
              <img class="lazyload" data-src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
            {/if}
            <noscript><img src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
          </a>
        </div>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_specials.html

Suche:

    {if $box_content.PRODUCTS_IMAGE != ''}<div class="box_image"><a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></a></div>{/if}

Ersetze mit:

    {if $box_content.PRODUCTS_IMAGE != ''}
      <div class="box_image">
        <a href="{$box_content.PRODUCTS_LINK}">
          {if $smarty.const.PICTURESET_ACTIVE === true}
            <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE|replace:"thumbnail_":"midi_"}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
          {else}
            <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
          {/if}
          <noscript><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></noscript>
        </a>
      </div>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_whatsnew.html

Suche:

    {if $box_content.PRODUCTS_IMAGE != ''}<div class="box_image"><a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></a></div>{/if}

Ersetze mit:

    {if $box_content.PRODUCTS_IMAGE != ''}
      <div class="box_image">
        <a href="{$box_content.PRODUCTS_LINK}">
          {if $smarty.const.PICTURESET_ACTIVE === true}
            <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE|replace:"thumbnail_":"midi_"}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
          {else}
            <img class="lazyload" data-src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" />
          {/if}
          <noscript><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME|onlytext}" title="{$box_content.PRODUCTS_NAME|onlytext}" /></noscript>
        </a>
      </div>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/config/config.php

Suche:

  // set base
  define('DIR_WS_BASE', xtc_href_link('', '', $request_type, false, false));

Füge davor ein:

  // picture set listing box
  define('PICTURESET_ACTIVE', defined('DIR_WS_MINI_IMAGES'));
  define('PICTURESET_BOX', '360:thumbnail,480:midi,600:thumbnail,690:thumbnail,920:thumbnail,985:midi');
  define('PICTURESET_ROW', '985:midi');

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/css/general_bottom.css.php

Suche:

    DIR_TMPL_CSS.'jquery.bxslider.css',

Ersetze mit:

    DIR_TMPL_CSS.'jquery.slick.css',

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/css/media-queries.css

Entferne den folgenden Code:

  .pd_small_image_tab { width:16.6666%; }

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/index.html

Suche:

          {if isset($SLIDER)}
            <div class="content_banner cf">
              <ul class="bxcarousel_slider">
              {foreach name=outer item=slider from=$SLIDER}
                <li>{$slider.IMAGE}</li>
              {/foreach}
              </ul>
            </div>
          {/if}

Ersetze mit:

          {if isset($SLIDER)}
            <div class="content_slider cf">
              <div class="slider_home">
                {foreach name=outer item=slider from=$SLIDER}
                  <div class="slider_item">          
                    {if $slider.LINK != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <a title="{$slider.TITLE}" href="{$slider.LINK}" {$slider.TARGET}>
                          <picture>
                            <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                            <source data-srcset="{$slider.IMAGE_SRC}">
                            <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.TITLE|onlytext}" title="{$slider.TITLE|onlytext}">
                          </picture>
                        </a>
                      {else}
                        <a title="{$slider.TITLE}" href="{$slider.LINK}" {$slider.TARGET}>{$slider.IMAGE_IMG}</a>
                      {/if}
                    {elseif $slider.IMAGE_IMG != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <picture>
                          <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                          <source data-srcset="{$slider.IMAGE_SRC}">
                          <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.TITLE|onlytext}" title="{$slider.TITLE|onlytext}">
                        </picture>
                      {else}
                        {$slider.IMAGE_IMG}
                      {/if}
                    {/if}
                  </div>
                {/foreach}
              </div>
            </div>            
          {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.unveil.min.js',
  DIR_TMPL_JS.'jquery.bxslider.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.lazysizes.min.js',
  DIR_TMPL_JS.'jquery.slick.min.js',

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/account.html

Suche:

          <a href="{$prod_history_data.PRODUCTS_LINK}"><img src="{$prod_history_data.PRODUCTS_IMAGE}" alt="{$prod_history_data.PRODUCTS_NAME|onlytext}" title="{$prod_history_data.PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

          {if $smarty.const.PICTURESET_ACTIVE === true}
            <a href="{$prod_history_data.PRODUCTS_LINK}"><img class="lazyload" data-src="{$prod_history_data.PRODUCTS_IMAGE|replace:"thumbnail_":"mini_"}" alt="{$prod_history_data.PRODUCTS_NAME|onlytext}" title="{$prod_history_data.PRODUCTS_NAME|onlytext}" /></a>
          {else}
            <a href="{$prod_history_data.PRODUCTS_LINK}"><img class="lazyload" data-src="{$prod_history_data.PRODUCTS_IMAGE}" alt="{$prod_history_data.PRODUCTS_NAME|onlytext}" title="{$prod_history_data.PRODUCTS_NAME|onlytext}" /></a>
          {/if}
          <noscript><a href="{$prod_history_data.PRODUCTS_LINK}"><img class="lazyload" data-src="{$prod_history_data.PRODUCTS_IMAGE}" alt="{$prod_history_data.PRODUCTS_NAME|onlytext}" title="{$prod_history_data.PRODUCTS_NAME|onlytext}" /></a></noscript>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/autocomplete.html

Suche:

            <span class="autocomplete_image cf"><img src="{$products_data.PRODUCTS_IMAGE}" alt="{$products_data.PRODUCTS_NAME|onlytext}" title="{$products_data.PRODUCTS_NAME|onlytext}" /></span>

Ersetze mit:

            <span class="autocomplete_image cf">
              {if $smarty.const.PICTURESET_ACTIVE === true}
                <img class="lazyload" data-src="{$products_data.PRODUCTS_IMAGE|replace:"thumbnail_":"mini_"}" alt="{$products_data.PRODUCTS_NAME|onlytext}" title="{$products_data.PRODUCTS_NAME|onlytext}" />
              {else}
                <img class="lazyload" data-src="{$products_data.PRODUCTS_IMAGE}" alt="{$products_data.PRODUCTS_NAME|onlytext}" title="{$products_data.PRODUCTS_NAME|onlytext}" />
              {/if}
            </span>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/banners.html

Suche:

{elseif $banner_data.LINK != ''}
  <a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>

Ersetze mit:

{elseif $banner_data.LINK != ''}
  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>
      <picture>
        <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
        <source data-srcset="{$banner_data.IMAGE_SRC}">
        <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}">
        <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}"></noscript>
      </picture>
    </a>
  {else}
    <a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>
  {/if}

Suche:

{elseif $banner_data.IMAGE_IMG != ''}
  {$banner_data.IMAGE_IMG}
{/if}

Ersetze mit:

{elseif $banner_data.IMAGE_IMG != ''}
  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <picture>
      <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
      <source data-srcset="{$banner_data.IMAGE_SRC}">
      <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}">
      <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}"></noscript>
    </picture>
  {else}
    {$banner_data.IMAGE_IMG}
  {/if}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html

Suche:

{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
     || isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}
<div class="cat_description cf">
  {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}<img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />{/if}
  {if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}

Ersetze mit:

{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
     || (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
     || (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
     }
<div class="cat_description cf">
  {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}
    {if isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != ''}
      <picture>
        <source media="(max-width:600px)" data-srcset="{$CATEGORIES_IMAGE_MOBILE}">
        <source data-srcset="{$CATEGORIES_IMAGE}">
        <img class="lazyload cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" data-src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />
        <noscript><img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" /></noscript>
      </picture>
    {else}
      <img class="lazyload cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" data-src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />
      <noscript><img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" /></noscript>
    {/if}
  {/if}
  {if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}

Suche:

        {if $module_data.CATEGORIES_IMAGE}<span class="subcat_image"><span class="subcat_image_inner cf"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></span></span>{/if}

Ersetze mit:

        {if $module_data.CATEGORIES_IMAGE != '' || (isset($module_data.CATEGORIES_IMAGE_LIST) && $module_data.CATEGORIES_IMAGE_LIST != '')}
          <span class="subcat_image">
            <span class="subcat_image_inner cf">
              {if isset($module_data.CATEGORIES_IMAGE_LIST) && $module_data.CATEGORIES_IMAGE_LIST != ''}
                <img class="lazyload" data-src="{$module_data.CATEGORIES_IMAGE_LIST}" alt="{$module_data.CATEGORIES_NAME|onlytext}" />
                <noscript><img src="{$module_data.CATEGORIES_IMAGE_LIST}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></noscript>
              {else}
                <img class="lazyload" data-src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" />
                <noscript><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></noscript>
              {/if}
            </span>
          </span>
        {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/includes/product_info_include.html

Suche:

      <div class="lb_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
        <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
      {else}
        &nbsp;
      {/if}
      </div>

Ersetze mit:

      <div class="lb_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}">
            {if isset($pictureset_box) && count($pictureset_box) > 0}
              <picture>
                {foreach name=inner item=picture_data from=$pictureset_box}
                  <source media="(max-width:{$picture_data.SIZE}px)" data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"`$picture_data.IMAGE`"}">
                {/foreach}
                <source data-srcset="{$module_data.PRODUCTS_IMAGE}">
                <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
                <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
              </picture>
            {else}
              <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
              <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
            {/if}
          </a>
        {/if}
      </div>

Suche:

      <div class="lr_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
        <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
      {else}
        &nbsp;
      {/if}      
      </div>

Ersetze mit:

      <div class="lr_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}">
            {if isset($pictureset_row) && count($pictureset_row) > 0}
              <picture>
                {foreach name=inner item=picture_data from=$pictureset_row}
                  <source media="(max-width:{$picture_data.SIZE}px)" data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"`$picture_data.IMAGE`"}">
                {/foreach}
                <source data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"midi_images"}">
                <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
                <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
              </picture>
            {else}
              <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
              <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
            {/if}
          </a>
        {/if}   
      </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/includes/product_listing_include.html

Suche:

      <div class="lb_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
        <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
      {else}
        &nbsp;
      {/if}
      </div>

Ersetze mit:

      <div class="lb_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}">
            {if isset($pictureset_box) && count($pictureset_box) > 0}
              <picture>
                {foreach name=inner item=picture_data from=$pictureset_box}
                  <source media="(max-width:{$picture_data.SIZE}px)" data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"`$picture_data.IMAGE`"}">
                {/foreach}
                <source data-srcset="{$module_data.PRODUCTS_IMAGE}">
                <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
                <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
              </picture>
            {else}
              <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
              <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
            {/if}
          </a>
        {/if}
      </div>

Suche:

      <div class="lr_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
        <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
      {else}
        &nbsp;
      {/if}      
      </div>

Ersetze mit:

      <div class="lr_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}">
            {if isset($pictureset_row) && count($pictureset_row) > 0}
              <picture>
                {foreach name=inner item=picture_data from=$pictureset_row}
                  <source media="(max-width:{$picture_data.SIZE}px)" data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"`$picture_data.IMAGE`"}">
                {/foreach}
                <source data-srcset="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_images":"midi_images"}">
                <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
                <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
              </picture>
            {else}
              <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}">
              <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
            {/if}
          </a>
        {/if}
      </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/order_details.html

Suche:

      <span class="ol_image ol_width2">&nbsp;<img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></span>

Ersetze mit:

      <span class="ol_image ol_width2">
        {if $module_data.PRODUCTS_IMAGE != ''}        
          {if $smarty.const.PICTURESET_ACTIVE === true}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_":"mini_"}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {else}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {/if}
          <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
        {else}
          &nbsp;
        {/if}
      </span>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html

Suche:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}<div class="pd_manu_image"><a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}"><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></a></div>{/if}

Ersetze mit:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}
      <div class="pd_manu_image">
        <a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}">
          <img class="lazyload" data-src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" />
          <noscript><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></noscript>
        </a>
      </div>
    {/if}

Suche:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
              <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>

Ersetze mit:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_v1.html

Suche:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}<div class="pd_manu_image"><a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}"><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></a></div>{/if}

Ersetze mit:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}
      <div class="pd_manu_image">
        <a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}">
          <img class="lazyload" data-src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" />
          <noscript><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></noscript>
        </a>
      </div>
    {/if}

Suche:

            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>

Ersetze mit:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"mini_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}<div class="pd_manu_image"><a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}"><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></a></div>{/if}

Ersetze mit:

    {if isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != ''}
      <div class="pd_manu_image">
        <a title="{$MANUFACTURER|onlytext}" href="{$MANUFACTURER_LINK}">
          <img class="lazyload" data-src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" />
          <noscript><img src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER|onlytext}" /></noscript>
        </a>
      </div>
    {/if}

Suche:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
              <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>

Ersetze mit:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_listing/product_listing_v1.html

Suche:

{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
     || (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')}
<div class="cat_description cf">
  {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}<img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />{/if}
  {if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}

Ersetze mit:

{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
     || (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
     || (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
     }
<div class="cat_description cf">
  {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}
    {if isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != ''}
      <picture>
        <source media="(max-width:600px)" data-srcset="{$CATEGORIES_IMAGE_MOBILE}">
        <source data-srcset="{$CATEGORIES_IMAGE}">
        <img class="lazyload cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" data-src="{$CATEGORIES_IMAGE}" title="{$CATEGORIES_NAME|onlytext}" alt="{$CATEGORIES_NAME|onlytext}" />
        <noscript><img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" /></noscript>
      </picture>
    {else}
      <img class="lazyload cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" data-src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />
      <noscript><img class="cat_image{if !$CATEGORIES_DESCRIPTION} ci_nomargin{/if}" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" /></noscript>
    {/if}
  {/if}
  {if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}

Suche:

  {if $MANUFACTURER_IMAGE}<img class="manu_image{if !$MANUFACTURER_DESCRIPTION} mi_nomargin{/if}" src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER_NAME|onlytext}" />{/if}

Ersetze mit:

  {if $MANUFACTURER_IMAGE}
    <img class="lazyload manu_image{if !$MANUFACTURER_DESCRIPTION} mi_nomargin{/if}" data-src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER_NAME|onlytext}" />
    <noscript><img class="manu_image{if !$MANUFACTURER_DESCRIPTION} mi_nomargin{/if}" src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER_NAME|onlytext}" /></noscript>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_reviews.html

Suche:

    <div class="rb_image">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>{/if}</div>

Ersetze mit:

    <div class="rb_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}">
          {if $smarty.const.PICTURESET_ACTIVE === true}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_":"mini_"}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {else}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {/if}
          <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
        </a>
      {/if}
    </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_reviews_info.html

Suche:

    {if $PRODUCTS_IMAGE != ''}<a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>{/if}

Ersetze mit:

    {if $PRODUCTS_IMAGE != ''}
      <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
        <img class="lazyload" data-src="{$PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
        <noscript><img src="{$PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
      </a>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/reviews.html

Suche:

    <div class="rb_image">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>{/if}</div>

Ersetze mit:

    <div class="rb_image">
      {if $module_data.PRODUCTS_IMAGE != ''}
        <a href="{$module_data.PRODUCTS_LINK}">
          {if $smarty.const.PICTURESET_ACTIVE === true}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail_":"mini_"}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {else}
            <img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" />
          {/if}
          <noscript><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></noscript>
        </a>
      {/if}    
    </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/sub_categories_listing.html

Suche:

        {if $categories_data.CATEGORIES_IMAGE}<span class="subcat_image"><span class="subcat_image_inner cf"><img src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" /></span></span>{/if}

Ersetze mit:

        {if $categories_data.CATEGORIES_IMAGE != '' || (isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != '')}
          <span class="subcat_image">
            <span class="subcat_image_inner cf">
              {if isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != ''}
                <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE_LIST}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
              {else}
                <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
              {/if}
              <noscript><img src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" /></noscript>
            </span>
          </span>
        {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/wishlist.html

Suche:

        <div class="lb_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
          <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
        {else}
          &nbsp;
        {/if}
        </div>

Ersetze mit:

        <div class="lb_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}"><img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
          <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
        {/if}
        </div>

Suche:

        <div class="lr_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
          <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
        {else}
          &nbsp;
        {/if}      
        </div>

Ersetze mit:

        <div class="lr_image">
        {if $module_data.PRODUCTS_IMAGE != ''}
          <a href="{$module_data.PRODUCTS_LINK}"><img class="lazyload" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>
          <noscript><a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a></noscript>
        {/if}      
        </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* END Links global */

Füge davor ein:

.lazyload,
.lazyloading {
  opacity: 0;
}
.lazyloaded {
  opacity: 1;
  -webkit-transition: opacity 1s ease;
  -moz-transition: opacity 1s ease;
  -o-transition: opacity 1s ease;
  transition: opacity 1s ease;
}

Suche:

.box_image {
  text-align:center;
  margin: 0px 0px 10px 0px;
  width:100%;
}
.box_image img {
  padding:5px;
  margin: 0px auto;
  background-color:#ffffff;
  border: 1px solid #ddd;
  max-width:160px;
}

Ersetze mit:

.box_image {
  text-align:center;
  margin: 0px auto 10px auto;
  width:160px;
  background-color:#ffffff;
  border: 1px solid #ddd;
  position:relative;
  overflow:hidden;
}
.box_image:before {
  content: "";
  display:block;
  padding-top: 100%;
}
.box_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(4.4);
  -moz-transform: scale(4.4);
  -ms-transform: scale(4.4);
  -o-transform: scale(4.4);
  transform: scale(4.4);
}

Entferne den folgenden Code:

.unveil {
  display: none;
}

Suche:

.lb_image {
  margin: 0 0 10px 0;
  text-align: center;
  width: 100%;
  height:160px;  
  position:relative;
}
.lb_image img {
  position:absolute;
  margin: auto;
	top:0px;
	bottom:0px;
	left:0px;
	right:0px;  
  background-color: #FFFFFF;
  max-height:160px;
  max-width:200px;
}

Ersetze mit:

.lb_image {    
  display:block;
  vertical-align:middle;
  text-align:center;
  position:relative;
  margin: 0 0 10px 0;
}
.lb_image:before {
  content: "";
  display:block;
  padding-top: 78%;
}
.lb_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(5.0);
  -moz-transform: scale(5.0);
  -ms-transform: scale(5.0);
  -o-transform: scale(5.0);
  transform: scale(5.0);
}

Suche:

.pd_small_image_tab {
  float:left;
  position:relative;
  width:14.2857%;
  padding: 0px 5px;
  margin: 0px 0px 10px 0px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

Ersetze mit:

.pd_small_image_tab {
  float:left;
  position:relative;
  width:16.6666%;
  padding: 0px 5px;
  margin: 0px 0px 10px 0px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

Suche:

/* 40. START carousel Bestseller box */
.bxcarousel_box_bestseller {
  width:100%; 
  margin: 0px auto;
}
ul.bxcarousel_bestseller li {
  float:left;
  width:123px;
  background:#fff;
  border: 1px solid #ddd;
  display:block;
}
ul.bxcarousel_bestseller li .carousel_box {
  padding:5px;
}  
ul.bxcarousel_bestseller li .carousel_box .cb_image {
  position:relative;
  display:block;
  height:113px;
  overflow:hidden;
}
ul.bxcarousel_bestseller li .carousel_box .cb_image img {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  left: 0;
  display: block;
  margin: auto;
  max-height: 110px;
}
ul.bxcarousel_bestseller li .carousel_box .cb_title {
  display:block;
  border-top: 1px solid #ddd;
  margin: 7px 0 0 0;
  padding:5px 0 2px 0;
  text-align:center;
  color:#7c2759;
  font-weight:400;
}
ul.bxcarousel_bestseller li .carousel_box .cb_title_inner {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  font-size:11px;
  line-height:15px;
  height:30px;
}
ul.bxcarousel_bestseller li .carousel_box a:hover {
  text-decoration:none;
}

ul.bxcarousel_slider {
  list-style-type:none;
}
ul.bxcarousel_slider li {
  display:none;
}
ul.bxcarousel_slider li:first-child {
  display:block;
}
ul.bxcarousel_slider img {
  position: relative !important;
}
/* END carousel Bestseller box */

Ersetze mit:

/* 40. START carousel Bestseller box */
.slider_bestseller {
  margin: 0px -10px 30px -10px;
}
.slider_bestseller .carousel_box {
  padding:0px 10px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

}
.slider_bestseller .carousel_box_inner {
  border: 1px solid #eee;
  padding:5px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}  
.slider_bestseller .carousel_box_inner:hover {
  border: 1px solid #ccc;
}
.slider_bestseller .carousel_box .cb_image {    
  display:block;
  vertical-align:middle;
  text-align:center;
  position:relative;
  margin: 0 0 10px 0;
}
.slider_bestseller .carousel_box .cb_image:before {
  content: "";
  display:block;
  padding-top: 78%;
}
.slider_bestseller .carousel_box .cb_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(5.0);
  -moz-transform: scale(5.0);
  -ms-transform: scale(5.0);
  -o-transform: scale(5.0);
  transform: scale(5.0);
}
.slider_bestseller .carousel_box .cb_title {
  display:block;
  border-top: 1px solid #eee;
  margin: 7px 0 0 0;
  padding:7px 0 2px 0;
  text-align:center;
  color:#7c2759;
  font-weight:400;
}
.slider_bestseller .carousel_box .cb_title_inner {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  font-size:11px;
  line-height:15px;
  height:30px;
}
.slider_bestseller .carousel_box a:hover {
  text-decoration:none;
}
.slider_bestseller .slick-prev, 
.slider_bestseller .slick-next {
  top:initial;
  bottom: -40px;
}
.slider_bestseller .slick-prev {
  left:10px;
}
.slider_bestseller .slick-next {
  right:10px;
}
.slider_bestseller .slick-dots li button:before {
  font-size: 12px;
}
/* END carousel Bestseller box */

Suche:

/* START Bannermanager */

Füge davor ein:

.content_slider {
  margin: 20px 0 20px 0;
}
.content_slider .slick-dotted {
  margin-bottom: 20px;
}
.slider_home {
  display:none; 
}
.slider_item {
  vertical-align:top;
}
.content_slider img {
  float:left;
  width:100%;
  height:auto;
  vertical-align:top;
}

.content_slider .slick-prev:before, 
.content_slider .slick-next:before {
  font-size: 20px;
}
.content_slider .slick-prev, 
.content_slider .slick-next {
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,0.4);
}
.content_slider .slick-prev:hover,
.content_slider .slick-prev:focus,
.content_slider .slick-next:hover,
.content_slider .slick-next:focus {
  background: rgba(255,255,255,0.8);
}

Neue Attribut-Verwaltung[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/admin.php
 /templates/tpl_modified_responsive/source/boxes/admin.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/admin.php

Suche:

  if ($admin_access['new_attributes'] == '1') {

Ersetze mit:

  if ($admin_access['products_attributes'] == '1') {

Suche:

      $box_smarty->assign('EDIT_PRODUCT_ATTRIBUTES', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'new_attributes.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit'));

Ersetze mit:

      $box_smarty->assign('EDIT_PRODUCT_ATTRIBUTES', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'products_attributes.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit'));

Neue Ladegrafik für Colorbox[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/css/images/loading.svg
 /templates/tpl_modified_responsive/css/jquery.colorbox.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/css/jquery.colorbox.css

Suche:

#cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}

Ersetze mit:

#cboxLoadingGraphic{background:url(images/loading.svg) no-repeat center center;}

Optimierung der Suche-Box[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/source/boxes/search.php

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/search.php

Suche:

// include smarty
include(DIR_FS_BOXES_INC . 'smarty_default.php');

Füge danach ein:

// include needed functions
require_once (DIR_FS_INC.'xtc_get_categories.inc.php');

Suche:

  $categories_array = array(array(
    'id' => '',
    'text' => TEXT_AC_ALL_CATEGORIES,
  ));
  $categories_query = xtDBquery("SELECT c.categories_id,
                                        cd.categories_name
                                   FROM ".TABLE_CATEGORIES." c
                                   JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd
                                        ON c.categories_id = cd.categories_id
                                           AND cd.language_id='".(int)$_SESSION['languages_id']."'
                                           AND trim(cd.categories_name) != ''
                                  WHERE c.categories_status = '1'
                                    AND c.parent_id = '0'
                                        ".CATEGORIES_CONDITIONS_C."
                               ORDER BY c.sort_order, cd.categories_name");
  if (xtc_db_num_rows($categories_query, true) > 0) {
    while ($categories = xtc_db_fetch_array($categories_query, true)) {
      $categories_array[] = array(
        'id' => $categories['categories_id'],
        'text' => $categories['categories_name'],
      );
    }
  }
  $box_smarty->assign('CATEGORIES', xtc_draw_pull_down_menu('categories_id', $categories_array, isset($_GET['categories_id']) ? (int)$_GET['categories_id'] : '', 'id="cat_search"').xtc_draw_hidden_field('inc_subcat', '1'));

Ersetze mit:

  $box_smarty->assign('CATEGORIES', xtc_draw_pull_down_menu('categories_id', xtc_get_categories(array(array('id' => '', 'text' => TEXT_AC_ALL_CATEGORIES)), 0, false), isset($_GET['categories_id']) ? (int)$_GET['categories_id'] : '', 'id="cat_search"').xtc_draw_hidden_field('inc_subcat', '1'));

Template umgestellt auf "Mobile First" & SEO-Optimierung[Bearbeiten]

  • optional

Änderungen siehe https://trac.modified-shop.org/changeset/13433/

Betrifft nur das Template tpl_modified_responsive

Aus dem original tpl_modified_responsive Template sind die folgende Dateien ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified_responsive/boxes/box_add_a_quickie.html
/templates/tpl_modified_responsive/boxes/box_cart.html
/templates/tpl_modified_responsive/boxes/box_login.html
/templates/tpl_modified_responsive/boxes/box_newsletter.html
/templates/tpl_modified_responsive/boxes/box_wishlist.html
/templates/tpl_modified_responsive/css/adminbar.css
/templates/tpl_modified_responsive/css/general_bottom.css.php
/templates/tpl_modified_responsive/css/jquery.alertable.css
/templates/tpl_modified_responsive/css/jquery.colorbox.css
/templates/tpl_modified_responsive/css/jquery.sumoselect.css
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/lang/lang_english.custom
/templates/tpl_modified_responsive/lang/lang_german.custom
/templates/tpl_modified_responsive/stylesheet.css

Folgende Dateien können danach gelöscht werden:

/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-100.eot
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-100.svg
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-100.ttf
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-100.woff
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-100.woff2
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-200.eot
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-200.svg
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-200.ttf
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-200.woff
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-200.woff2
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-800.eot
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-800.svg
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-800.ttf
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-800.woff
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-800.woff2
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-900.eot
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-900.svg
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-900.ttf
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-900.woff
/templates/TEMPLATENAME/css/fonts/poppins-v6-latin-900.woff2
/templates/TEMPLATENAME/css/jquery.sidebar.css
/templates/TEMPLATENAME/css/media-queries.css

Korrektur der strukturierten Daten für Autor einer Rezension[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/products_reviews.html
 /templates/tpl_modified_responsive/module/products_reviews.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/products_reviews.html

Suche:

          <strong>{#text_author#}</strong>&nbsp;<span itemprop="author">{$module_data.AUTHOR}</span>

Ersetze mit:

          <span itemprop="author" itemtype="http://schema.org/Person" itemscope>
            <strong>{#text_author#}</strong>&nbsp;<span itemprop="name">{$module_data.AUTHOR}</span>
          </span>

Fehler im Template für Attribute korrigiert[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/order_details.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/order_details.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/order_details.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html

Suche:

        {if $data.attributes != ''}

Ersetze mit:

        {if is_array($data.attributes) && count($data.attributes) > 0}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/order_details.html
/templates/tpl_modified_responsive/module/order_details.html

Suche:

      {if $module_data.ATTRIBUTES != ''}

Ersetze mit:

      {if is_array($module_data.ATTRIBUTES) && count($module_data.ATTRIBUTES) > 0}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_confirmation.html

Suche:

          {foreach key=a_data item=attrib_data from=$data.attributes}
            {if $attrib_data.value != ''}<br /><span class="nobr small">&nbsp;<i> - {$attrib_data.option} : {$attrib_data.value}</i></span>{/if}
          {/foreach}

Ersetze mit:

          {if is_array($data.attributes) && count($data.attributes) > 0}
            {foreach key=a_data item=attrib_data from=$data.attributes}
              {if $attrib_data.value != ''}<br /><span class="nobr small">&nbsp;<i> - {$attrib_data.option} : {$attrib_data.value}</i></span>{/if}
            {/foreach}
          {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/order_details.html

Suche:

    {if $module_data.ATTRIBUTES != ''}

Ersetze mit:

    {if is_array($module_data.ATTRIBUTES) && count($module_data.ATTRIBUTES) > 0}

Suche:

    {if $module_data.ATTRIBUTES == ''}<br />{/if}

Ersetze mit:

    {if !is_array($module_data.ATTRIBUTES) || count($module_data.ATTRIBUTES) == 0}<br />{/if}

JavaScript-Fehler im Template für Warenkorb & Merkzettel korrigiert[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/default.js.php
/templates/tpl_modified_responsive/javascript/extra/default.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/default.js.php

Suche:

      $("html").not('.toggle_cart').bind('click',function(e) {
        $('.toggle_cart').slideUp('slow');
      });

Ersetze mit:

      $('html').on('click', function(e) {
        if (!$(e.target).closest('.toggle_cart').length > 0 ) {
          $('.toggle_cart').slideUp('slow');
        }
      });

Suche:

      $("html").not('.toggle_wishlist').bind('click',function(e) {
        $('.toggle_wishlist').slideUp('slow');
      });

Ersetze mit:

      $('html').on('click', function(e) {
        if (!$(e.target).closest('.toggle_wishlist').length > 0 ) {
          $('.toggle_wishlist').slideUp('slow');
        }
      });

Änderungen ab Version 2.0.7.0[Bearbeiten]

Schönheitsfehler in Template tpl_modified_responsive korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_responsive/stylesheet.css

Betrifft nur das Template tpl_modified_responsive

Suche:

.box_header.sidebar_active .fas { 
  display:inline-block; 
  vertical-align:0px; 
  -moz-transform: rotate(180deg); 
  -ms-transform: rotate(180deg); 
  -o-transform: rotate(180deg); 
  -webkit-transform: rotate(180deg); 
  transform: rotate(180deg); 
}

Füge danach ein:

@media only screen and (min-width: 985px) {
  .box_header.sidebar_inactive .fas { display:none; } 
  .box_header.sidebar_active .fas { display:none; }  
  .sidebar_inactive { cursor: default; }
  .sidebar_active { cursor: default; }
}

Auflistung von Artikeln aus inaktiven Kategorien verhindern[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/best_sellers.php
/templates/tpl_modified/source/boxes/last_viewed.php
/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified/source/boxes/specials.php
/templates/tpl_modified_responsive/source/boxes/best_sellers.php
/templates/tpl_modified_responsive/source/boxes/last_viewed.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/specials.php
/templates/xtc5/source/boxes/best_sellers.php
/templates/xtc5/source/boxes/last_viewed.php
/templates/xtc5/source/boxes/reviews.php
/templates/xtc5/source/boxes/specials.php 

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/best_sellers.php

Suche:

                             JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                  ON p.products_id = pd.products_id
                                     AND trim(pd.products_name) != ''
                                     AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                             JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                  ON p.products_id = p2c.products_id
                                     ".$join_where."
                             JOIN ".TABLE_CATEGORIES." c
                                  ON p2c.categories_id = c.categories_id
                                     AND c.categories_status = 1
                                     AND (c.categories_id = '" . (int)$current_category_id . "' 
                                          OR c.parent_id = '" . (int)$current_category_id . "')
                            WHERE p.products_status = 1
                              AND p.products_ordered > 0
                                  ".PRODUCTS_CONDITIONS_P."
                         GROUP BY p.products_id

Ersetze mit:

                             JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                  ON p.products_id = pd.products_id
                                     AND trim(pd.products_name) != ''
                                     AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                             JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                  ON p.products_id = p2c.products_id
                                     ".$join_where."
                             JOIN ".TABLE_CATEGORIES." c
                                  ON p2c.categories_id = c.categories_id
                                     AND c.categories_status = 1
                                     AND (c.categories_id = '" . (int)$current_category_id . "' 
                                          OR c.parent_id = '" . (int)$current_category_id . "')
                                         ".CATEGORIES_CONDITIONS_C." 
                            WHERE p.products_status = 1
                              AND p.products_ordered > 0
                                  ".PRODUCTS_CONDITIONS_P."
                         GROUP BY p.products_id

Suche:

                             JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                  ON p.products_id = pd.products_id
                                     AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                                     AND trim(pd.products_name) != ''
                            WHERE p.products_status = 1
                              AND p.products_ordered > 0
                                  ".$where."
                                  ".PRODUCTS_CONDITIONS_P."
                         GROUP BY p.products_id

Ersetze mit:

                             JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                  ON p.products_id = pd.products_id
                                     AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                                     AND trim(pd.products_name) != ''
                             JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                  ON p.products_id = p2c.products_id
                             JOIN ".TABLE_CATEGORIES." c
                                  ON c.categories_id = p2c.categories_id
                                     AND c.categories_status = 1
                                         ".CATEGORIES_CONDITIONS_C."
                            WHERE p.products_status = 1
                              AND p.products_ordered > 0
                                  ".$where."
                                  ".PRODUCTS_CONDITIONS_P."
                         GROUP BY p.products_id

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/last_viewed.php

Suche:

                       JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd
                            ON p.products_id = pd.products_id
                               AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                               AND trim(pd.products_name) != ''
                       JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
                            ON p.products_id = p2c.products_id
                       JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
                            ON cd.categories_id = p2c.categories_id
                               AND cd.language_id = '".(int)$_SESSION['languages_id']."'

Ersetze mit:

                       JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                            ON p.products_id = pd.products_id
                               AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                               AND trim(pd.products_name) != ''
                       JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                            ON p.products_id = p2c.products_id
                       JOIN ".TABLE_CATEGORIES." c
                            ON c.categories_id = p2c.categories_id
                               AND c.categories_status = 1
                                   ".CATEGORIES_CONDITIONS_C."
                       JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd
                            ON cd.categories_id = p2c.categories_id
                               AND cd.language_id = '".(int)$_SESSION['languages_id']."'

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

                      JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                           ON p.products_id = pd.products_id
                              AND trim(pd.products_name) != ''
                              AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                     WHERE p.products_status = '1'

Ersetze mit:

                      JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                           ON p.products_id = pd.products_id
                              AND trim(pd.products_name) != ''
                              AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                      JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                           ON p.products_id = p2c.products_id
                      JOIN ".TABLE_CATEGORIES." c
                           ON c.categories_id = p2c.categories_id
                              AND c.categories_status = 1
                                  ".CATEGORIES_CONDITIONS_C."
                     WHERE p.products_status = '1'

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

                                  JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                       ON pd.products_id = p.products_id
                                          AND trim(pd.products_name) != ''
                                          AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                                  JOIN ".TABLE_SPECIALS." s 
                                       ON p.products_id = s.products_id
                                          ".SPECIALS_CONDITIONS_S."
                                 WHERE p.products_status = '1'

Ersetze mit:

                                  JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                       ON pd.products_id = p.products_id
                                          AND trim(pd.products_name) != ''
                                          AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                                  JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                       ON p.products_id = p2c.products_id
                                  JOIN ".TABLE_CATEGORIES." c
                                       ON c.categories_id = p2c.categories_id
                                          AND c.categories_status = 1
                                              ".CATEGORIES_CONDITIONS_C."
                                  JOIN ".TABLE_SPECIALS." s 
                                       ON p.products_id = s.products_id
                                          ".SPECIALS_CONDITIONS_S."
                                 WHERE p.products_status = '1'

Erweiterung für OSS (One-Stop-Shop)[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_shipping_country.html
/templates/tpl_modified/index.html
/templates/tpl_modified/source/boxes.php
/templates/tpl_modified/source/boxes/shipping_country.php
/templates/tpl_modified_responsive/boxes/box_shipping_country.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/source/boxes.php
/templates/tpl_modified_responsive/source/boxes/shipping_country.php
/templates/xtc5/boxes/box_shipping_country.html
/templates/xtc5/index.html
/templates/xtc5/source/boxes.php
/templates/xtc5/source/boxes/shipping_country.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/index.html

Suche (ggf. 2x):

{if isset($box_CURRENCIES)}{$box_CURRENCIES}{/if}

Füge danach ein:

{if isset($box_SHIPPING_COUNTRY)}{$box_SHIPPING_COUNTRY}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes.php

Suche:

require_once(DIR_FS_BOXES . 'currencies.php');

Füge danach ein:

require_once(DIR_FS_BOXES . 'shipping_country.php');

Korrektur der Bewertungsbox bei eingeschaltetem Cache & Vereinheitlichung der Cache ID sowie notwendige Korrektur für PHP 8.1[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/best_sellers.php
/templates/tpl_modified/source/boxes/categories.php
/templates/tpl_modified/source/boxes/content.php
/templates/tpl_modified/source/boxes/currencies.php
/templates/tpl_modified/source/boxes/infobox.php
/templates/tpl_modified/source/boxes/information.php
/templates/tpl_modified/source/boxes/languages.php
/templates/tpl_modified/source/boxes/manufacturer_info.php
/templates/tpl_modified/source/boxes/manufacturers.php
/templates/tpl_modified/source/boxes/miscellaneous.php
/templates/tpl_modified/source/boxes/newsletter.php
/templates/tpl_modified/source/boxes/order_history.php
/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified/source/boxes/trustedshops.php
/templates/tpl_modified/source/boxes/whats_new.php
/templates/tpl_modified_responsive/source/boxes/best_sellers.php
/templates/tpl_modified_responsive/source/boxes/categories.php
/templates/tpl_modified_responsive/source/boxes/content.php
/templates/tpl_modified_responsive/source/boxes/currencies.php
/templates/tpl_modified_responsive/source/boxes/infobox.php
/templates/tpl_modified_responsive/source/boxes/information.php
/templates/tpl_modified_responsive/source/boxes/languages.php
/templates/tpl_modified_responsive/source/boxes/manufacturer_info.php
/templates/tpl_modified_responsive/source/boxes/manufacturers.php
/templates/tpl_modified_responsive/source/boxes/miscellaneous.php
/templates/tpl_modified_responsive/source/boxes/newsletter.php
/templates/tpl_modified_responsive/source/boxes/order_history.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/trustedshops.php
/templates/tpl_modified_responsive/source/boxes/whats_new.php
/templates/xtc5/source/boxes/best_sellers.php
/templates/xtc5/source/boxes/categories.php
/templates/xtc5/source/boxes/content.php
/templates/xtc5/source/boxes/currencies.php
/templates/xtc5/source/boxes/infobox.php
/templates/xtc5/source/boxes/information.php
/templates/xtc5/source/boxes/languages.php
/templates/xtc5/source/boxes/manufacturer_info.php
/templates/xtc5/source/boxes/manufacturers.php
/templates/xtc5/source/boxes/newsletter.php
/templates/xtc5/source/boxes/order_history.php
/templates/xtc5/source/boxes/reviews.php
/templates/xtc5/source/boxes/trustedshops.php
/templates/xtc5/source/boxes/whats_new.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/best_sellers.php

Suche:

$cache_id = md5($_SESSION['currency'].$_SESSION['language'].$current_category_id);

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|cID:'.$current_category_id);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/categories.php

Suche:

$cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status'].'-'.$cPath.(((defined('SPECIALS_CATEGORIES') && SPECIALS_CATEGORIES === true) || (defined('WHATSNEW_CATEGORIES') && WHATSNEW_CATEGORIES === true)) ? '-'.basename($PHP_SELF) : ''));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|cP:'.$cPath.(((defined('SPECIALS_CATEGORIES') && SPECIALS_CATEGORIES === true) || (defined('WHATSNEW_CATEGORIES') && WHATSNEW_CATEGORIES === true)) ? '|self:'.basename($PHP_SELF) : ''));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/content.php

Suche:

$cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].(isset($coPath) ? $coPath : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|coP:'.$coPath);

Suche:

    if (isset($coPath)) {
      $new_path = '';
      $coid = explode('_', $coPath);
      reset($coid);
      foreach ($coid as $key => $value) {

Ersetze mit:

    if ($coPath) {
      $new_path = '';
      $coid = explode('_', $coPath);
      reset($coid);
      foreach ($coid as $key => $value) {

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/currencies.php

Suche:

$cache_id = md5(basename($PHP_SELF).$_SESSION['currency'].$_SESSION['language'].xtc_get_all_get_params(array('currency', 'language')));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|curr:'.$_SESSION['currency'].'|site:'.basename($PHP_SELF).'|params:'.xtc_get_all_get_params(array('currency', 'language')));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/infobox.php

Suche:

$cache_id = md5($_SESSION['language'] . $_SESSION['customers_status']['customers_status']);

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/information.php

Suche:

$cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].(isset($coPath) ? $coPath : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'coP:'.$coPath);

Suche:

    if (isset($coPath)) {
      $new_path = '';
      $coid = explode('_', $coPath);
      reset($coid);
      foreach ($coid as $key => $value) {

Ersetze mit:

    if ($coPath) {
      $new_path = '';
      $coid = explode('_', $coPath);
      reset($coid);
      foreach ($coid as $key => $value) {

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/languages.php

Suche:

$cache_id = md5($_SESSION['language'].basename($PHP_SELF).xtc_get_all_get_params());

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|site:'.basename($PHP_SELF).'|params:'.xtc_get_all_get_params());

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturer_info.php

Suche:

$cache_id = md5($_SESSION['language'].((isset($product->data['manufacturers_id']) && $product->data['manufacturers_id'] != '') ? $product->data['manufacturers_id'] : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|mID:'.((isset($product->data['manufacturers_id']) && $product->data['manufacturers_id'] != '') ? $product->data['manufacturers_id'] : '0'));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturers.php

Suche:

$cache_id = md5($_SESSION['language'] . (isset($_GET['manufacturers_id']) ? (int)$_GET['manufacturers_id'] : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|mID:'.(isset($_GET['manufacturers_id']) ? (int)$_GET['manufacturers_id'] : '0'));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/miscellaneous.php

Suche:

$cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].(isset($coPath) ? $coPath : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'coP:'.$coPath);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/newsletter.php

Suche:

$cache_id = md5($_SESSION['language']);

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/order_history.php

Suche:

$cache_id = md5($_SESSION['language'].((isset($_SESSION['customer_id'])) ? $_SESSION['customer_id'] : '0'));

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'cID:'.((isset($_SESSION['customer_id'])) ? $_SESSION['customer_id'] : '0'));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

  $cache_id = md5($_SESSION['language']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.$product->data['products_id']);

Suche:

    $cache_id = md5($_SESSION['language'].$reviews['reviews_id']);

Ersetze mit:

    $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.($product->isProduct() === true ? $product->data['products_id'] : 0).'|rID:'.$reviews['reviews_id']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/trustedshops.php

Suche:

$cache_id = md5($_SESSION['language']);

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language']);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/whats_new.php

Suche:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$whats_new['products_id']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|pID:'.$whats_new['products_id']);

Korrektur der OIL.js Cookie Consent Lösung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified/javascript/general.js.php
/templates/tpl_modified/javascript/oil.min.js
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/javascript/general.js.php
/templates/tpl_modified_responsive/javascript/oil.min.js
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/general.js.php
/templates/xtc5/javascript/oil.min.js

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/cookieconsent.js.php

Suche:

			cookieString += 'path=/;SameSite=Lax;';

Ersetze mit:

			cookieString += 'path=' + DIR_WS_CATALOG + ';SameSite=Lax;';

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/general.js.php

Suche:

  var DIR_WS_BASE = "<?php echo DIR_WS_BASE ?>";

Füge danach ein:

  var DIR_WS_CATALOG = "<?php echo DIR_WS_CATALOG ?>";

Erweiterung der Rechnung um Leistungsdatum[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified_responsive/admin/print_order.html
/templates/xtc5/admin/print_order.html
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/print_order.html

Suche:

<strong>{#invoice_date#}</strong> {$INVOICE_DATE}

Ersetze mit:

<strong>{#invoice_date#}</strong> {$INVOICE_DATE}<br />
<strong>{#performance_date#}</strong> {$INVOICE_DATE}

Erweiterung der Newsletter-Seite um individuellen Content[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified_responsive/module/newsletter.html
/templates/xtc5/module/newsletter.html
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/newsletter.html

Suche (ggf. 2x):

<p>{#text_zusatz#}</p>

Ersetze mit:

<p>{if isset($NEWSLETTER_INFOS)}{$NEWSLETTER_INFOS}{else}{#text_zusatz#}{/if}</p>

Weiterer Schönheitsfehler in Template tpl_modified_responsive korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_responsive/stylesheet.css

Betrifft nur das Template tpl_modified_responsive

Suche:

ul.contentnavigation li {
  float:left;
  padding: 0px 10px 0px 10px;
  line-height:45px;
  color:#666;
  font-size:13px;
}

Ersetze mit:

ul.contentnavigation li {
  float:left;
  padding: 0px 10px 0px 10px;
  line-height:45px;
  color:#666;
  font-size:13px;
  height:43px;
}

Suche:

ul.contentnavigation li.cart {
  float:right;
  border:none;
  padding: 1px 10px 0px 10px;
  margin: 0px;
  line-height:43px;
  height:43px;
  position:static;
}

Ersetze mit:

ul.contentnavigation li.cart {
  float:right;
  border:none;
  padding: 1px 10px 0px 10px;
  margin: 0px;
  line-height:43px;
  height:43px;
  position:static;
  box-sizing:border-box;
}

Suche:

ul.contentnavigation li.wishlist {
  float:right;
  border:none;
  padding: 1px 10px 0px 10px;
  margin: 0px;
  line-height:43px;
  height:43px;
  position:static;
}

Ersetze mit:

ul.contentnavigation li.wishlist {
  float:right;
  border:none;
  padding: 1px 10px 0px 10px;
  margin: 0px;
  line-height:43px;
  height:43px;
  position:static;
  box-sizing:border-box;
}

Performance der Box last_viewed & loginbox optimiert[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/last_viewed.php
/templates/tpl_modified/source/boxes/loginbox.php
/templates/tpl_modified_responsive/source/boxes/last_viewed.php
/templates/tpl_modified_responsive/source/boxes/loginbox.php
/templates/xtc5/source/boxes/last_viewed.php
/templates/xtc5/source/boxes/loginbox.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/last_viewed.php

Suche:

    $random_query = xtDBquery($random_query);

    if (xtc_db_num_rows($random_query, true) > 0) {
      $random_product = xtc_db_fetch_array($random_query, true);
      $box_smarty->assign('box_content', $product->buildDataArray($random_product));
      $box_smarty->assign('MY_PERSONAL_PAGE', xtc_href_link(FILENAME_ACCOUNT));
      $box_smarty->assign('CATEGORY_LINK', xtc_href_link(FILENAME_DEFAULT, xtc_category_link($random_product['categories_id'], $random_product['categories_name'])));
      $box_smarty->assign('CATEGORY_NAME', $random_product['categories_name']);
    }
  }
}

if (!$cache) {
  $box_last_viewed = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html');
} else {
  $box_last_viewed = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html', $cache_id);
}

$smarty->assign('box_LAST_VIEWED', $box_last_viewed);
?>

Ersetze mit:

    $random_query = xtDBquery($random_query);

    if (xtc_db_num_rows($random_query, true) > 0) {
      $random_product = xtc_db_fetch_array($random_query, true);
      $box_smarty->assign('box_content', $product->buildDataArray($random_product));
      $box_smarty->assign('MY_PERSONAL_PAGE', xtc_href_link(FILENAME_ACCOUNT));
      $box_smarty->assign('CATEGORY_LINK', xtc_href_link(FILENAME_DEFAULT, xtc_category_link($random_product['categories_id'], $random_product['categories_name'])));
      $box_smarty->assign('CATEGORY_NAME', $random_product['categories_name']);
    }
  }

  if (!$cache) {
    $box_last_viewed = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html');
  } else {
    $box_last_viewed = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html', $cache_id);
  }

  $smarty->assign('box_LAST_VIEWED', $box_last_viewed);
}
?>

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/loginbox.php

Suche:

  $box_smarty->assign('LINK_LOST_PASSWORD', xtc_href_link(FILENAME_PASSWORD_DOUBLE_OPT, '', 'SSL'));
  $box_smarty->assign('FORM_END', '</form>');
}

$box_smarty->caching = 0;
$box_loginbox = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_login.html');
$smarty->assign('box_LOGIN', $box_loginbox);
?>

Ersetze mit:

  $box_smarty->assign('LINK_LOST_PASSWORD', xtc_href_link(FILENAME_PASSWORD_DOUBLE_OPT, '', 'SSL'));
  $box_smarty->assign('FORM_END', '</form>');

  $box_smarty->caching = 0;
  $box_loginbox = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_login.html');
  $smarty->assign('box_LOGIN', $box_loginbox);
}
?>

Weiterer Schönheitsfehler in Template tpl_modified_responsive korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_responsive/stylesheet.css

Betrifft nur das Template tpl_modified_responsive

Suche:

body {
  position: relative;
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  font-size:13px;
  background-color:#fff;
  color:#555;
  line-height:21px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust:     100%;
}

Füge danach ein:

strong, b {
  font-weight:700;
}

Update Font Awesome von 5.8.2 auf 5.15.3[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/css/fontawesome-all.css
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.eot
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.svg
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.ttf
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.woff
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.woff2
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.eot
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.svg
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.ttf
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.woff
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.woff2
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.eot
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.svg
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.ttf
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.woff
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.woff2

Update lazysizes 5.3.0 auf 5.3.1[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/javascript/jquery.lazysizes.min.js

Nur Hersteller in Box anzeigen, zu denen es auch Artikel gibt[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/manufacturers.php
/templates/tpl_modified_responsive/source/boxes/manufacturers.php
/templates/xtc5/source/boxes/manufacturers.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturers.php

Suche:

  $manufacturers_query = "SELECT DISTINCT m.manufacturers_id,
                                          m.manufacturers_name 
                                     FROM ".TABLE_MANUFACTURERS." as m
                                     JOIN ".TABLE_PRODUCTS." as p 
                                          ON m.manufacturers_id = p.manufacturers_id
                                    WHERE p.products_status = '1'
                                          ".PRODUCTS_CONDITIONS_P."
                                 ORDER BY m.manufacturers_name";

Ersetze mit:

  $manufacturers_query = "SELECT m.*
                            FROM ".TABLE_MANUFACTURERS." as m
                            JOIN ".TABLE_PRODUCTS." as p 
                                 ON m.manufacturers_id = p.manufacturers_id
                                    AND p.products_status = '1'
                                        ".PRODUCTS_CONDITIONS_P."
                            JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                                 ON p.products_id = pd.products_id
                                    AND pd.language_id = '".(int)$_SESSION['languages_id']."'
                                    AND trim(pd.products_name) != ''
                            JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." p2c 
                                 ON p2c.products_id = pd.products_id
                            JOIN ".TABLE_CATEGORIES." c
                                 ON c.categories_id = p2c.categories_id
                                    AND c.categories_status = 1
                                        ".CATEGORIES_CONDITIONS_C."
                        GROUP BY m.manufacturers_id 
                        ORDER BY m.manufacturers_name ASC";

Korrektur der Anzeige langer Bewertungstexte[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

.rb_rezension {
  float:right;
  width:360px;
}

Füge danach ein:

.rb_rezension p {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  max-height:74px;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.rb_rezension {
  float:right;
  width:70%;
}

Füge danach ein:

.rb_rezension p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;  
  overflow: hidden;
  max-height:63px;
}

"Font Boosting" auf mobilen Endgeräten verhindern[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

body {
  position: relative;
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  font-size:13px;
  background-color:#fff;
  color:#555;
  line-height:21px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust:     100%;
}

Ersetze mit:

/* Disable font boosting on mobile browsers */
body * {
  -moz-text-size-adjust: none;    /* Firefox Mobile */
  -webkit-text-size-adjust: 100%; /* Safari */
  -ms-text-size-adjust:     100%; /* Windows Mobile */
  max-height:          1000000px; /* Chrome for Android */
}
    
body {
  position: relative;
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  font-size:13px;
  background-color:#fff;
  color:#555;
  line-height:21px;
}

Neue Darstellung der Colorbox[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/css/jquery.colorbox.css
 /templates/tpl_modified_responsive/javascript/extra/colorbox.js.php
 /templates/tpl_modified_responsive/javascript/jquery.colorbox.min.js
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/css/jquery.colorbox.css

Inhalt der Datei ersetzen mit:

#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
#cboxWrapper {max-width:none;}
#cboxOverlay{position:fixed; width:100%; height:100%;}
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
#cboxContent{position:relative;}
#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}

#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
.cboxPhoto{margin: 0px 20px; float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}

#colorbox, #cboxContent, #cboxLoadedContent{background:#fff; box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
#colorbox { -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; }
#cboxOverlay{background:rgba(0,0,0,0.4);}
#colorbox{outline:0;}

#cboxTopLeft{width:20px; height:12px; background:#fff;}
#cboxTopRight{width:20px; height:12px; background:#fff;}
#cboxTopCenter{height:12px; background:#fff;}

#cboxBottomLeft{width:20px; height:10px; background:#fff;}
#cboxBottomRight{width:20px; height:10px; background:#fff;}
#cboxBottomCenter{height:20px; background:#fff;}

#cboxMiddleLeft{width:0px; background:#fff;}
#cboxMiddleRight{width:0px; background:#fff;}

#cboxContent{background:#fff; overflow:hidden; padding: 0px 20px;}
.cboxIframe{background:#fff;}
#cboxError{padding:50px; border:1px solid #ccc;}
#cboxLoadedContent{margin-top:40px; margin-bottom: 20px; padding: 20px 0 0 0;}

#cboxTitle {margin:0; top: 0px; left: 20px; right:20px; padding: 0px 60px 8px 0px; position: absolute; height:40px; background:#fff; display:flex; -ms-flex-align: center; -webkit-align-items: center; -webkit-box-align: center; align-items: center; border-bottom: 1px solid #eee;}
#cboxTitle > span { max-height:34px; font-size:12px; line-height:16px; font-weight:500; color: #555; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
#cboxCurrent{position:absolute; bottom:0px; left:0px; width:100%; text-align:center; color:#555; font-size:12px; line-height:12px; font-weight:500; } 

#cboxLoadingOverlay{background:#fff}
#cboxLoadingGraphic{background:url(images/loading.svg) no-repeat center center;}
#cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
#cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
#cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#555;}

#cboxPrevious{position:absolute; margin: auto; top:0px; bottom:0px; left:10px; width:40px; height:40px;font-size:20px; line-height:40px; text-align:center; outline:none; background:#fff;}
#cboxPrevious:hover{ color:#555;}
#cboxNext{position:absolute; margin: auto; top:0px; bottom:0px; right:10px; width:40px; height:40px;font-size:20px; line-height:40px; text-align:center; outline:none; background:#fff;}
#cboxNext:hover{color:#555;}


#cboxClose{position: absolute; top: 0px; right: 8px; width: 40px; height: 40px; font-size: 20px; outline: none; line-height: 40px; }
#cboxClose:hover{color:#555;}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/javascript/extra/colorbox.js.php

Entferne den folgenden Code:

  $(document).bind('cbox_complete', function(){
    if($('#cboxTitle').height() > 20){
      $("#cboxTitle").hide();
      $("<div>"+$("#cboxTitle").html()+"</div>").css({color: $("#cboxTitle").css('color')}).insertAfter("#cboxPhoto");
      //$.fn.colorbox.resize(); // Tomcraft - 2016-06-05 - Fix Colorbox resizing
    }
  });

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/javascript/jquery.colorbox.min.js

Inhalt der Datei ersetzen mit:

/*!
	Colorbox 1.6.4
	license: MIT
	http://www.jacklmoore.com/colorbox
*/
(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return '<span>'+this.title+'</span>'},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* 32. START popup content (popup print_product_info, popup print_order.html) */
body.popupcontent {
  min-width:100%;
  background:#fff none;
}

Ersetze mit:

/* 32. START popup content (popup print_product_info, popup print_order.html) */
body.popupcontent {
  min-width:100%;
  background:#fff none;
  box-sizing:border-box;
  padding: 0 10px 0 0;
}

HTML-Validierungsfehler in EasyTabs korrigiert[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/javascript/jquery.easyTabs.min.js
 /templates/tpl_modified/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified_responsive/javascript/jquery.easyTabs.min.js
 /templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/javascript/jquery.easyTabs.min.js
/templates/tpl_modified_responsive/javascript/jquery.easyTabs.min.js

Inhalt der Datei ersetzen mit:

/*
 * Easy Responsive Tabs Plugin
 * Author: Samson.Onna <Email : samson3d@gmail.com>
 * https: *github.com/samsono/Easy-Responsive-Tabs-to-Accordion
 * FIX aria -> https://github.com/samsono/Easy-Responsive-Tabs-to-Accordion/issues/76
 */
!function(t){t.fn.extend({easyResponsiveTabs:function(a){var e=a=t.extend({type:"default",width:"auto",fit:!0,closed:!1,activate:function(){}},a),s=e.type,i=e.fit,n=e.width,r="vertical",c="accordion",o=window.location.hash,d=!(!window.history||!history.replaceState);t(this).bind("tabactivate",function(t,e){"function"==typeof a.activate&&a.activate.call(e,t)}),this.each(function(){var e,l=t(this),p=l.find("ul.resp-tabs-list"),b=l.attr("id");l.find("ul.resp-tabs-list li").addClass("resp-tab-item"),l.css({display:"block",width:n}),l.find(".resp-tabs-container > div").addClass("resp-tab-content"),s==r&&l.addClass("resp-vtabs"),1==i&&l.css({width:"100%",margin:"0px"}),s==c&&(l.addClass("resp-easy-accordion"),l.find(".resp-tabs-list").css("display","none")),l.find(".resp-tab-content").before("<h2 class='resp-accordion' role='tab'><span class='resp-arrow'></span></h2>");var f=0;l.find(".resp-accordion").each(function(){e=t(this);var a=l.find(".resp-tab-item:eq("+f+")"),s=l.find(".resp-accordion:eq("+f+")");s.append(a.html()),s.data(a.data()),e.attr("aria-controls","tab_item-"+f),f++});var v=0,h="";l.find(".resp-tab-item").each(function(){$tabItem=t(this),$tabItem.attr("aria-controls","tab_item-"+v),$tabItem.attr("id","tab_item-"+v),$tabItem.attr("role","tab");var a=0;l.find(".resp-tab-content").each(function(){t(this).attr("aria-labelledby","tab_item-"+a),1===l.find('[aria-controls="tab_item-'+a+'"] input:checked').length&&(h=a),a++}),v++});var m=0;if(""!=o){var u=o.match(new RegExp(b+"([0-9]+)"));null!==u&&2===u.length&&(m=parseInt(u[1],10)-1)>v&&(m=0)}t(l.find(".resp-tab-item")[m]).addClass("resp-tab-active"),!0===a.closed||"accordion"===a.closed&&!p.is(":visible")||"tabs"===a.closed&&p.is(":visible")?t(l.find(".resp-tab-content")[m]).addClass("resp-tab-content-active resp-accordion-closed"):(t(l.find(".resp-accordion")[m]).addClass("resp-tab-active"),t(l.find(".resp-tab-content")[m]).addClass("resp-tab-content-active").attr("style","display:block")),""!==h&&(t(l.find('.resp-tab-content[aria-labelledby="tab_item-'+h+'"]')).removeClass("resp-tab-content-active resp-accordion-closed"),t(l.find('.resp-tab-content[aria-labelledby="tab_item-'+h+'"]')).addClass("resp-tab-content-active"),t(l.find('.resp-accordion[aria-controls="tab_item-'+h+'"]')).addClass("resp-tab-active")),l.find("[role=tab]").each(function(){t(this).click(function(){var a=t(this),e=a.attr("aria-controls");if(a.hasClass("resp-accordion")&&a.hasClass("resp-tab-active"))return l.find(".resp-tab-content-active").slideUp("",function(){t(this).addClass("resp-accordion-closed")}),a.removeClass("resp-tab-active"),!1;if(!a.hasClass("resp-tab-active")&&a.hasClass("resp-accordion")?(l.find(".resp-tab-active").removeClass("resp-tab-active"),l.find(".resp-tab-content-active").slideUp().removeClass("resp-tab-content-active resp-accordion-closed"),l.find("[aria-controls="+e+"]").addClass("resp-tab-active"),l.find(".resp-tab-content[aria-labelledby = "+e+"]").slideDown().addClass("resp-tab-content-active")):(l.find(".resp-tab-active").removeClass("resp-tab-active"),l.find(".resp-tab-content-active").removeAttr("style").removeClass("resp-tab-content-active").removeClass("resp-accordion-closed"),l.find("[aria-controls="+e+"]").addClass("resp-tab-active"),l.find(".resp-tab-content[aria-labelledby = "+e+"]").addClass("resp-tab-content-active").attr("style","display:block")),a.trigger("tabactivate",a),d){var s=window.location.hash,i=b+(parseInt(e.substring(9),10)+1).toString();if(""!=s){var n=new RegExp(b+"[0-9]+");i=null!=s.match(n)?s.replace(n,i):s+"|"+i}else i="#"+i;tmpUrl=window.location.href,tmpBis=tmpUrl.indexOf("#"),tmpBis>0&&(tmpUrl=tmpUrl.substr(0,tmpBis)),history.replaceState(null,null,tmpUrl+i)}})}),s==c&&l.find(".resp-tabs-list").remove(),t(window).resize(function(){l.find(".resp-accordion-closed").removeAttr("style")})})}})}(jQuery);

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html

Suche:

    <ul class="resp-tabs-list">
      {if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container">

Ersetze mit:

    <ul class="resp-tabs-list" role="tablist">
      {counter start=-1 print=0 assign="tablist_cnt"}
      {if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}{counter}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}{counter}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}{counter}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}{counter}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}{counter}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}{counter}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}{counter}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container" role="tablist" {if $tablist_cnt >= 0}aria-owns="{for $tablist_data=0 to $tablist_cnt}tab_item-{$tablist_data} {/for}"{/if}>

Rechtschreibfehler in change_order_mail.txt(html) korrigiert[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/mail/german/change_order_mail.html
/templates/tpl_modified/admin/mail/german/change_order_mail.txt
/templates/tpl_modified_responsive/admin/mail/german/change_order_mail.html
/templates/tpl_modified_responsive/admin/mail/german/change_order_mail.txt
/templates/xtc5/admin/mail/german/change_order_mail.html
/templates/xtc5/admin/mail/german/change_order_mail.txt 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/mail/german/change_order_mail.html

Suche:

          Sie k&ouml;nnen sich &uuml;ber den Zustellstatus durch einen Klick auf die nachstende(n) Paketnummer(n) informieren:<br />

Ersetze mit:

          Sie k&ouml;nnen sich &uuml;ber den Zustellstatus durch einen Klick auf die nachstehende(n) Paketnummer(n) informieren:<br />

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/mail/german/change_order_mail.txt

Suche:

Sie können sich über den Zustellstatus durch einen Klick auf die nachstende(n) Paketnummer(n) informieren:

Ersetze mit:

Sie können sich über den Zustellstatus durch einen Klick auf die nachstehende(n) Paketnummer(n) informieren:

Überarbeitung der Caching Routine[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/config/config.php
/templates/tpl_modified/module/also_purchased.html
/templates/tpl_modified/module/categorie_listing/categorie_listing.html
/templates/tpl_modified/module/content.html
/templates/tpl_modified/module/cross_selling.html
/templates/tpl_modified/module/graduated_price.html
/templates/tpl_modified/module/main_content.html
/templates/tpl_modified/module/new_products.html
/templates/tpl_modified/module/new_products_default.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/module/product_navigator.html
/templates/tpl_modified/module/product_tags.html
/templates/tpl_modified/module/products_category.html
/templates/tpl_modified/module/products_media.html
/templates/tpl_modified/module/products_reviews.html
/templates/tpl_modified/module/reverse_cross_selling.html
/templates/tpl_modified/module/sitemap.html
/templates/tpl_modified/module/sub_content_listing.html
/templates/tpl_modified/module/upcoming_products.html
/templates/tpl_modified/source/boxes.php
/templates/tpl_modified/source/inc/smarty_default.php
/templates/tpl_modified_responsive/config/config.php
/templates/tpl_modified_responsive/module/also_purchased.html
/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html
/templates/tpl_modified_responsive/module/content.html
/templates/tpl_modified_responsive/module/cross_selling.html
/templates/tpl_modified_responsive/module/graduated_price.html
/templates/tpl_modified_responsive/module/main_content.html
/templates/tpl_modified_responsive/module/new_products.html
/templates/tpl_modified_responsive/module/new_products_default.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_navigator.html
/templates/tpl_modified_responsive/module/product_tags.html
/templates/tpl_modified_responsive/module/products_category.html
/templates/tpl_modified_responsive/module/products_media.html
/templates/tpl_modified_responsive/module/products_reviews.html
/templates/tpl_modified_responsive/module/reverse_cross_selling.html
/templates/tpl_modified_responsive/module/sitemap.html
/templates/tpl_modified_responsive/module/sub_content_listing.html
/templates/tpl_modified_responsive/module/upcoming_products.html
/templates/tpl_modified_responsive/source/boxes.php
/templates/tpl_modified_responsive/source/inc/smarty_default.php
/templates/xtc5/module/also_purchased.html
/templates/xtc5/module/categorie_listing/categorie_listing.html
/templates/xtc5/module/content.html
/templates/xtc5/module/cross_selling.html
/templates/xtc5/module/graduated_price.html
/templates/xtc5/module/main_content.html
/templates/xtc5/module/new_products.html
/templates/xtc5/module/new_products_default.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/product_navigator.html
/templates/xtc5/module/product_tags.html
/templates/xtc5/module/products_category.html
/templates/xtc5/module/products_media.html
/templates/xtc5/module/products_reviews.html
/templates/xtc5/module/reverse_cross_selling.html
/templates/xtc5/module/sitemap.html
/templates/xtc5/module/sub_content_listing.html
/templates/xtc5/module/upcoming_products.html
/templates/xtc5/source/inc/smarty_default.php 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/config/config.php

Suche:

  define('DIR_WS_BASE', xtc_href_link('', '', $request_type, false, false));

Füge danach ein:

  // css buttons
  if (is_file(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php')) {
    require_once(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php');
  }

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/also_purchased.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
{foreach name=aussen item=module_data from=$module_content}
  {include file="module/includes/product_info_include.html"}
{/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/categorie_listing/categorie_listing.html

Suche:

{if $module_content != '' && $TR_COLS > 0}
<h4>{#heading_more_categories#}</h4>
<div class="subcats cf">
  {assign var="anzahl_spalten" value="$TR_COLS"}
  {foreach name=aussen item=module_data from=$module_content key=spalten}
  <div class="subcatlist{if $smarty.foreach.aussen.iteration is div by $TR_COLS} last{/if}">
    <a href="{$module_data.CATEGORIES_LINK}">
      {if $module_data.CATEGORIES_IMAGE}<span class="subcat_image"><span class="subcat_image_inner"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></span></span>{/if}
      <span class="subcat_title"><span class="subcat_title_inner">{$module_data.CATEGORIES_NAME}</span></span>
    </a>
    {* <span class="subcat_desc">{$module_data.CATEGORIES_DESCRIPTION}</span> *}
  </div>
  {if $smarty.foreach.aussen.iteration is div by $TR_COLS}<br class="clearfix" />{/if}
  {/foreach}
</div>
{/if}

Ersetze mit:

{if isset($CATEGORIES_LISTING)}{$CATEGORIES_LISTING}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/content.html

Suche:

    {if isset($SUB_CONTENT_LISTING)}<div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>{/if}

Ersetze mit:

    {if isset($SUB_CONTENT_LISTING) && trim($SUB_CONTENT_LISTING) != ''}
      <div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>
    {/if}

Suche:

  {if isset($MODULE_content_manager_media)}

Ersetze mit:

  {if isset($MODULE_content_manager_media) && trim($MODULE_content_manager_media) != ''}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/cross_selling.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
{foreach name=aussen item=products_data from=$module_content}
{if $products_data.GROUP != ''}<h2>{$products_data.GROUP}</h2>{/if}
  <div class="listingcontainer_details cf">
  {foreach item=module_data from=$products_data.PRODUCTS}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
  </div>  
{/foreach}

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  {foreach name=aussen item=products_data from=$module_content}
  {if $products_data.GROUP != ''}<h2>{$products_data.GROUP}</h2>{/if}
    <div class="listingcontainer_details cf">
    {foreach item=module_data from=$products_data.PRODUCTS}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
    </div>  
  {/foreach}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/graduated_price.html

Suche:

<div class="graduated_prices cf">
  <div class="gp_headline">{#heading_text#}</div>
  {foreach name=aussen item=module_data from=$module_content}
    <div class="gp_box{if $module_data.VPE != ''} vpe{/if}{if ($module_data.VPE != '' && $smarty.foreach.aussen.iteration is div by 2) || ($module_data.VPE == '' && $smarty.foreach.aussen.iteration is div by 3) || $smarty.foreach.aussen.last} last{/if}">
      <span class="gp_title">{$module_data.FROM_QUANTITY} {$module_data.PLAIN_QUANTITY} {#unit#}</span>
      <span class="gp_price">{#pieces#} {$module_data.PRICE}</span>
      {if $module_data.VPE != ''}<span class="gp_vpe">{$module_data.VPE}</span>{/if}
    </div>
  {if $smarty.foreach.aussen.first}
    {assign var=maxPrice value=$module_data.PLAIN_PRICE}
  {elseif $smarty.foreach.aussen.last}
    {assign var=minPrice value=$module_data.PLAIN_PRICE}
  {/if}
  {/foreach}
  <div itemprop="PriceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
    <meta itemprop="priceCurrency" content="{$smarty.session.currency}">
    <meta itemprop="price" content="{$maxPrice}">
    <meta itemprop="minPrice" content="{$minPrice}">
    <meta itemprop="maxPrice" content="{$maxPrice}">
  </div>
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="graduated_prices cf">
    <div class="gp_headline">{#heading_text#}</div>
    {foreach name=aussen item=module_data from=$module_content}
      <div class="gp_box{if $module_data.VPE != ''} vpe{/if}{if ($module_data.VPE != '' && $smarty.foreach.aussen.iteration is div by 2) || ($module_data.VPE == '' && $smarty.foreach.aussen.iteration is div by 3) || $smarty.foreach.aussen.last} last{/if}">
        <span class="gp_title">{$module_data.FROM_QUANTITY} {$module_data.PLAIN_QUANTITY} {#unit#}</span>
        <span class="gp_price">{#pieces#} {$module_data.PRICE}</span>
        {if $module_data.VPE != ''}<span class="gp_vpe">{$module_data.VPE}</span>{/if}
      </div>
    {if $smarty.foreach.aussen.first}
      {assign var=maxPrice value=$module_data.PLAIN_PRICE}
    {elseif $smarty.foreach.aussen.last}
      {assign var=minPrice value=$module_data.PLAIN_PRICE}
    {/if}
    {/foreach}
    <div itemprop="PriceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
      <meta itemprop="priceCurrency" content="{$smarty.session.currency}">
      <meta itemprop="price" content="{$maxPrice}">
      <meta itemprop="minPrice" content="{$minPrice}">
      <meta itemprop="maxPrice" content="{$maxPrice}">
    </div>
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/main_content.html

Suche:

{if isset($MODULE_new_products)}
{$MODULE_new_products}
{/if}
{if isset($MODULE_upcoming_products)}
{$MODULE_upcoming_products}
{/if}

Ersetze mit:

{if isset($MODULE_new_products) && trim($MODULE_new_products) != ''}
  {$MODULE_new_products}
{/if}
{if isset($MODULE_upcoming_products) && trim($MODULE_upcoming_products) != ''}
  {$MODULE_upcoming_products}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/new_products.html

Suche:

<h4>{#heading_text#}</h4>
<div class="listingcontainer cf">
  {include file="module/includes/product_listing_include.html"}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4>{#heading_text#}</h4>
  <div class="listingcontainer cf">
    {include file="module/includes/product_listing_include.html"}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/new_products_default.html

Suche:

<div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
<div class="listingcontainer cf">
  {include file="module/includes/product_listing_include.html"}
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
  <div class="listingcontainer cf">
    {include file="module/includes/product_listing_include.html"}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  <div id="horizontalTab" class="pd_tabs">
    <ul class="resp-tabs-list" role="tablist">
      {counter start=-1 print=0 assign="tablist_cnt"}
      {if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}{counter}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}{counter}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}{counter}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}{counter}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}{counter}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}{counter}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}{counter}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container" role="tablist" {if $tablist_cnt >= 0}aria-owns="{for $tablist_data=0 to $tablist_cnt}tab_item-{$tablist_data} {/for}"{/if}>
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
          </div>                          
        {/foreach}
      </div>
      {/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && $MODULE_cross_selling != '' || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<div>{if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Ersetze mit:

  <div id="horizontalTab" class="pd_tabs">
    <ul class="resp-tabs-list" role="tablist">
      {counter start=-1 print=0 assign="tablist_cnt"}
      {if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}{counter}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}{counter}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}{counter}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}{counter}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '') || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}{counter}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}{counter}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}{counter}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container" role="tablist" {if $tablist_cnt >= 0}aria-owns="{for $tablist_data=0 to $tablist_cnt}tab_item-{$tablist_data} {/for}"{/if}>
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
          </div>                          
        {/foreach}
      </div>
      {/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '' || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<div>{if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}{$MODULE_product_tags}{/if}
  {if isset($MODULE_products_media) && $MODULE_products_media != ''}{$MODULE_products_media}{/if}
  {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}{$MODULE_products_reviews}{/if}
  {if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}
  {if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}
  {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}{$MODULE_also_purchased}{/if}
  {if isset($MODULE_products_category) && $MODULE_products_category != ''}{$MODULE_products_category}{/if}

Ersetze mit:

  {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}{$MODULE_product_tags}{/if}
  {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}{$MODULE_products_media}{/if}
  {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}{$MODULE_products_reviews}{/if}
  {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}
  {if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}
  {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}{$MODULE_also_purchased}{/if}
  {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}{$MODULE_products_category}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  <div id="horizontalAccordion" class="pd_accordion">
    <ul class="resp-tabs-list">
      {if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container">
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
          </div>                          
        {/foreach}
      </div>
      {/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && $MODULE_cross_selling != '' || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<div>{if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Ersetze mit:

  <div id="horizontalAccordion" class="pd_accordion">
    <ul class="resp-tabs-list">
      {if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '') || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container">
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
          </div>                          
        {/foreach}
      </div>
      {/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '' || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<div>{if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_navigator.html

Suche:

<div class="productnavigator cf">
  <span class="detail_back">{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{/if}{#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}</span>
  <span class="detail_next_previous">
    {if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $LAST != ''}<a href="{$LAST}">{#last#}</a>{else}<span class="inactive">{#last#}</span>{/if}
  </span>
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="productnavigator cf">
    <span class="detail_back">{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{/if}{#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}</span>
    <span class="detail_next_previous">
      {if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $LAST != ''}<a href="{$LAST}">{#last#}</a>{else}<span class="inactive">{#last#}</span>{/if}
    </span>
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_tags.html

Suche:

<h4 class="detailbox">{#heading_products_tags#}</h4>
<div class="tags_block cf">
  {foreach name=aussen item=module_data from=$module_content}
  <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
    <span class="tags_options">
      <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
      {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
    </span>

    <span class="tags_values cf">
    {foreach name=inner item=item_data from=$module_data.DATA}
      {if $item_data.VALUES_IMAGE != ''}
        <span class="tags_values_icon_row cf">
          <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
        </span>
      {else}
        <span class="tags_values_text_row">
          <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
          {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
          {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
        </span>
      {/if}
    {/foreach}
    </span>
  </div>
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_products_tags#}</h4>
  <div class="tags_block cf">
    {foreach name=aussen item=module_data from=$module_content}
    <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
      <span class="tags_options">
        <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
        {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
      </span>

      <span class="tags_values cf">
      {foreach name=inner item=item_data from=$module_data.DATA}
        {if $item_data.VALUES_IMAGE != ''}
          <span class="tags_values_icon_row cf">
            <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
          </span>
        {else}
          <span class="tags_values_text_row">
            <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
            {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
            {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
          </span>
        {/if}
      {/foreach}
      </span>
    </div>
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/products_category.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
    {foreach name=aussen item=module_data from=$module_content}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/products_media.html

Suche:

<h4 class="detailbox">{#file#}</h4>
{foreach name=aussen item=module_data from=$module_content}
<div class="mediarow {cycle values="media_bg1,media_bg2"}">
  <div class="mediarow_headline cf">
    <span class="mediarow_title">{$module_data.FILENAME}</span>
    <span class="mediarow_button">{if $module_data.BUTTON != ''}{$module_data.BUTTON}{else}&nbsp;{/if}</span>
    <span class="mediarow_filesize">{$module_data.FILESIZE}</span>
  </div>
  {if $module_data.DESCRIPTION != ''}<div class="mediarow_desc">{$module_data.DESCRIPTION}</div>{/if}
</div>
{/foreach}

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#file#}</h4>
  {foreach name=aussen item=module_data from=$module_content}
  <div class="mediarow {cycle values="media_bg1,media_bg2"}">
    <div class="mediarow_headline cf">
      <span class="mediarow_title">{$module_data.FILENAME}</span>
      <span class="mediarow_button">{if $module_data.BUTTON != ''}{$module_data.BUTTON}{else}&nbsp;{/if}</span>
      <span class="mediarow_filesize">{$module_data.FILESIZE}</span>
    </div>
    {if $module_data.DESCRIPTION != ''}<div class="mediarow_desc">{$module_data.DESCRIPTION}</div>{/if}
  </div>
  {/foreach}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/products_reviews.html

Suche:

{if isset($MODULE_TS_PRODUCT_STICKER)}
  {$MODULE_TS_PRODUCT_STICKER}
{else}

Ersetze mit:

{if isset($MODULE_TS_PRODUCT_STICKER)}
  {$MODULE_TS_PRODUCT_STICKER}
{elseif isset($module_content)}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/reverse_cross_selling.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
    {foreach name=aussen item=module_data from=$module_content}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/sitemap.html

Suche:

<div class="sitemap cf">
  {foreach name=aussen item=module_data from=$module_content}
  <ul class="nocolumnbreak cf">
    <li class="sitemap_header"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a>
    {if $module_data.SCATS|@sizeof != 0}
    <ul>
      {foreach key=key_data item=item_data from=$module_data.SCATS}
      <li><a href="{$item_data.link}">{$item_data.text}</a></li>
      {/foreach}
    </ul>
    {/if}
    </li>
  </ul>
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="sitemap cf">
    {foreach name=aussen item=module_data from=$module_content}
    <ul class="nocolumnbreak cf">
      <li class="sitemap_header"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a>
      {if $module_data.SCATS|@sizeof != 0}
      <ul>
        {foreach key=key_data item=item_data from=$module_data.SCATS}
        <li><a href="{$item_data.link}">{$item_data.text}</a></li>
        {/foreach}
      </ul>
      {/if}
      </li>
    </ul>
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/sub_content_listing.html

Suche:

<h4><a href="{$parent_content.CONTENT_LINK}">{$parent_content.CONTENT_TITLE}</a></h4>
<ul>
  {foreach name=aussen item=content_data from=$sub_content}
  <li>
    <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
  </li>
  {/foreach}
</ul>

Ersetze mit:

{if isset($parent_content)}
  <h4><a href="{$parent_content.CONTENT_LINK}">{$parent_content.CONTENT_TITLE}</a></h4>
  <ul>
    {foreach name=aussen item=content_data from=$sub_content}
    <li>
      <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
    </li>
    {/foreach}
  </ul>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/upcoming_products.html

Suche:

<h1>{#heading_upcoming#}</h1>
<ul class="upcoming_list">
{foreach name=aussen item=module_data from=$module_content}
  <li>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></li>
{/foreach}
</ul>

Ersetze mit:

{if isset($module_content)}
  <h1>{#heading_upcoming#}</h1>
  <ul class="upcoming_list">
  {foreach name=aussen item=module_data from=$module_content}
    <li>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></li>
  {/foreach}
  </ul>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes.php

Entferne den folgenden Code:

// css buttons
if (file_exists(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php')) {
  require_once ('templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php');
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/inc/smarty_default.php

Suche:

  $box_smarty->cache_modified_check = CACHE_CHECK;

Ersetze mit:

  $box_smarty->cache_modified_check = CACHE_CHECK == 'true';

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/config/config.php

Suche:

  define('DIR_WS_BASE', xtc_href_link('', '', $request_type, false, false));

Füge danach ein:

  // css buttons
  if (is_file(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php')) {
    require_once(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php');
  }

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/also_purchased.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
{foreach name=aussen item=module_data from=$module_content}
  {include file="module/includes/product_info_include.html"}
{/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html

Suche:

{if $module_content != '' && $TR_COLS > 0}
<h4>{#heading_more_categories#}</h4>
<div class="subcats cf">
  {foreach name=aussen item=module_data from=$module_content key=spalten}
  <div class="subcatlist">
    <div class="subcatlist_inner cf">
      <a href="{$module_data.CATEGORIES_LINK}">
        {if $module_data.CATEGORIES_IMAGE != '' || (isset($module_data.CATEGORIES_IMAGE_LIST) && $module_data.CATEGORIES_IMAGE_LIST != '')}
          <span class="subcat_image">
            <span class="subcat_image_inner cf">
              {if isset($module_data.CATEGORIES_IMAGE_LIST) && $module_data.CATEGORIES_IMAGE_LIST != ''}
                <img class="lazyload" data-src="{$module_data.CATEGORIES_IMAGE_LIST}" alt="{$module_data.CATEGORIES_NAME|onlytext}" />
                <noscript><img src="{$module_data.CATEGORIES_IMAGE_LIST}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></noscript>
              {else}
                <img class="lazyload" data-src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" />
                <noscript><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></noscript>
              {/if}
            </span>
          </span>
        {/if}
        <span class="subcat_title"><span class="subcat_title_inner">{$module_data.CATEGORIES_NAME}</span></span>
      </a>
    </div>
  </div>
  {/foreach}
</div>
{/if}

Ersetze mit:

{if isset($CATEGORIES_LISTING)}{$CATEGORIES_LISTING}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/content.html

Suche:

    {if isset($SUB_CONTENT_LISTING)}<div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>{/if}

Ersetze mit:

    {if isset($SUB_CONTENT_LISTING) && trim($SUB_CONTENT_LISTING) != ''}
      <div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>
    {/if}

Suche:

  {if isset($MODULE_content_manager_media)}

Ersetze mit:

  {if isset($MODULE_content_manager_media) && trim($MODULE_content_manager_media) != ''}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/cross_selling.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
{foreach name=aussen item=products_data from=$module_content}
{if $products_data.GROUP != ''}<h2>{$products_data.GROUP}</h2>{/if}
  <div class="listingcontainer_details cf">
  {foreach item=module_data from=$products_data.PRODUCTS}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
  </div>  
{/foreach}

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  {foreach name=aussen item=products_data from=$module_content}
  {if $products_data.GROUP != ''}<h2>{$products_data.GROUP}</h2>{/if}
    <div class="listingcontainer_details cf">
    {foreach item=module_data from=$products_data.PRODUCTS}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
    </div>  
  {/foreach}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/graduated_price.html

Suche:

<div class="graduated_prices cf">
  <div class="gp_headline">{#heading_text#}</div>
  {foreach name=aussen item=module_data from=$module_content}
    <div class="gp_box{if $module_data.VPE != ''} vpe{/if}{if ($module_data.VPE != '' && $smarty.foreach.aussen.iteration is div by 2) || ($module_data.VPE == '' && $smarty.foreach.aussen.iteration is div by 3) || $smarty.foreach.aussen.last} last{/if}">
      <span class="gp_title">{$module_data.FROM_QUANTITY} {$module_data.PLAIN_QUANTITY} {#unit#}</span>
      <span class="gp_price">{#pieces#} {$module_data.PRICE}</span>
      {if $module_data.VPE != ''}<span class="gp_vpe">{$module_data.VPE}</span>{/if}
    </div>
  {if $smarty.foreach.aussen.first}
    {assign var=maxPrice value=$module_data.PLAIN_PRICE}
  {elseif $smarty.foreach.aussen.last}
    {assign var=minPrice value=$module_data.PLAIN_PRICE}
  {/if}
  {/foreach}
  <div itemprop="PriceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
    <meta itemprop="priceCurrency" content="{$smarty.session.currency}">
    <meta itemprop="price" content="{$maxPrice}">
    <meta itemprop="minPrice" content="{$minPrice}">
    <meta itemprop="maxPrice" content="{$maxPrice}">
  </div>
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="graduated_prices cf">
    <div class="gp_headline">{#heading_text#}</div>
    {foreach name=aussen item=module_data from=$module_content}
      <div class="gp_box{if $module_data.VPE != ''} vpe{/if}{if ($module_data.VPE != '' && $smarty.foreach.aussen.iteration is div by 2) || ($module_data.VPE == '' && $smarty.foreach.aussen.iteration is div by 3) || $smarty.foreach.aussen.last} last{/if}">
        <span class="gp_title">{$module_data.FROM_QUANTITY} {$module_data.PLAIN_QUANTITY} {#unit#}</span>
        <span class="gp_price">{#pieces#} {$module_data.PRICE}</span>
        {if $module_data.VPE != ''}<span class="gp_vpe">{$module_data.VPE}</span>{/if}
      </div>
    {if $smarty.foreach.aussen.first}
      {assign var=maxPrice value=$module_data.PLAIN_PRICE}
    {elseif $smarty.foreach.aussen.last}
      {assign var=minPrice value=$module_data.PLAIN_PRICE}
    {/if}
    {/foreach}
    <div itemprop="PriceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
      <meta itemprop="priceCurrency" content="{$smarty.session.currency}">
      <meta itemprop="price" content="{$maxPrice}">
      <meta itemprop="minPrice" content="{$minPrice}">
      <meta itemprop="maxPrice" content="{$maxPrice}">
    </div>
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/main_content.html

Suche:

{if isset($MODULE_new_products)}
{$MODULE_new_products}
{/if}
{if isset($MODULE_upcoming_products)}
{$MODULE_upcoming_products}
{/if}

Ersetze mit:

{if isset($MODULE_new_products) && trim($MODULE_new_products) != ''}
  {$MODULE_new_products}
{/if}
{if isset($MODULE_upcoming_products) && trim($MODULE_upcoming_products) != ''}
  {$MODULE_upcoming_products}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/new_products.html

Suche:

<h4>{#heading_text#}</h4>
<div class="listingcontainer cf">
  {include file="module/includes/product_listing_include.html"}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4>{#heading_text#}</h4>
  <div class="listingcontainer cf">
    {include file="module/includes/product_listing_include.html"}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/new_products_default.html

Suche:

<div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
<div class="listingcontainer cf">
  {include file="module/includes/product_listing_include.html"}
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
  <div class="listingcontainer cf">
    {include file="module/includes/product_listing_include.html"}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  <div id="horizontalTab" class="pd_tabs">
    <ul class="resp-tabs-list" role="tablist">
      {counter start=-1 print=0 assign="tablist_cnt"}
      {if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}{counter}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}{counter}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}{counter}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}{counter}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}{counter}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}{counter}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}{counter}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container" role="tablist" {if $tablist_cnt >= 0}aria-owns="{for $tablist_data=0 to $tablist_cnt}tab_item-{$tablist_data} {/for}"{/if}>
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        <div class="pd_small_image_tab_row cf">
          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div></div>
          {/foreach}
        </div>
      </div>
      {/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && $MODULE_cross_selling != '' || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<div>{if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Ersetze mit:

  <div id="horizontalTab" class="pd_tabs">
    <ul class="resp-tabs-list" role="tablist">
      {counter start=-1 print=0 assign="tablist_cnt"}
      {if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}{counter}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}{counter}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}{counter}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}{counter}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '') || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}{counter}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}{counter}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}{counter}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container" role="tablist" {if $tablist_cnt >= 0}aria-owns="{for $tablist_data=0 to $tablist_cnt}tab_item-{$tablist_data} {/for}"{/if}>
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        <div class="pd_small_image_tab_row cf">
          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div></div>
          {/foreach}
        </div>
      </div>
      {/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '' || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<div>{if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}{$MODULE_product_tags}{/if}
  {if isset($MODULE_products_media) && $MODULE_products_media != ''}{$MODULE_products_media}{/if}
  {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}{$MODULE_products_reviews}{/if}
  {if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}
  {if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}
  {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}{$MODULE_also_purchased}{/if}
  {if isset($MODULE_products_category) && $MODULE_products_category != ''}{$MODULE_products_category}{/if}

Ersetze mit:

  {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}{$MODULE_product_tags}{/if}
  {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}{$MODULE_products_media}{/if}
  {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}{$MODULE_products_reviews}{/if}
  {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}
  {if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}
  {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}{$MODULE_also_purchased}{/if}
  {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}{$MODULE_products_category}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

<div itemscope itemtype="http://schema.org/Product">

Ersetze mit:

<div id="product_info" itemscope itemtype="http://schema.org/Product">

Suche:

  <div id="horizontalAccordion" class="pd_accordion">
    <ul class="resp-tabs-list">
      {if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && $MODULE_cross_selling != '') || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container">
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && $MODULE_product_tags != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        <div class="pd_small_image_tab_row cf">
          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div></div>
          {/foreach}
        </div>
      </div>
      {/if}
      {if isset($MODULE_products_media) && $MODULE_products_media != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && $MODULE_products_reviews != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && $MODULE_cross_selling != '' || (isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != '')}<div>{if isset($MODULE_cross_selling) && $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && $MODULE_also_purchased != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && $MODULE_products_category != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Ersetze mit:

  <div id="horizontalAccordion" class="pd_accordion">
    <ul class="resp-tabs-list">
      {if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<li>{#products_tags#}</li>{/if}
      {if isset($more_images) && count($more_images) > 0}<li>{#more_images#}</li>{/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<li>{#products_media#}</li>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<li>{#products_reviews#}</li>{/if}
      {if (isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '') || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<li>{#cross_selling#}</li>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<li>{#also_purchased#}</li>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<li>{#products_category#}</li>{/if}
    </ul>
    <div class="resp-tabs-container">
      {if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
      {if isset($MODULE_product_tags) && trim($MODULE_product_tags) != ''}<div>{$MODULE_product_tags}</div>{/if}
      {if isset($more_images) && count($more_images) > 0}
      <div class="cf">
        <div class="pd_small_image_tab_row cf">
          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div></div>
          {/foreach}
        </div>
      </div>
      {/if}
      {if isset($MODULE_products_media) && trim($MODULE_products_media) != ''}<div>{$MODULE_products_media}</div>{/if}
      {if isset($MODULE_products_reviews) && trim($MODULE_products_reviews) != ''}<div>{$MODULE_products_reviews}</div>{/if}
      {if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != '' || (isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != '')}<div>{if isset($MODULE_cross_selling) && trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}{if isset($MODULE_reverse_cross_selling) && trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
      {if isset($MODULE_also_purchased) && trim($MODULE_also_purchased) != ''}<div>{$MODULE_also_purchased}</div>{/if}
      {if isset($MODULE_products_category) && trim($MODULE_products_category) != ''}<div>{$MODULE_products_category}</div>{/if}
    </div>
  </div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_navigator.html

Suche:

<div class="productnavigator cf">
  <span class="detail_back">{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{/if}{#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}</span>
  <span class="detail_next_previous">
    {if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
    {if $LAST != ''}<a href="{$LAST}">{#last#}</a>{else}<span class="inactive">{#last#}</span>{/if}
  </span>
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="productnavigator cf">
    <span class="detail_back">{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{/if}{#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}</span>
    <span class="detail_next_previous">
      {if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
      {if $LAST != ''}<a href="{$LAST}">{#last#}</a>{else}<span class="inactive">{#last#}</span>{/if}
    </span>
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_tags.html

Suche:

<h4 class="detailbox">{#heading_products_tags#}</h4>
<div class="tags_block cf">
  {foreach name=aussen item=module_data from=$module_content}
  <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
    <span class="tags_options">
      <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
      {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
    </span>

    <span class="tags_values cf">
    {foreach name=inner item=item_data from=$module_data.DATA}
      {if $item_data.VALUES_IMAGE != ''}
        <span class="tags_values_icon_row cf">
          <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
        </span>
      {else}
        <span class="tags_values_text_row">
          <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
          {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
          {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
        </span>
      {/if}
    {/foreach}
    </span>
  </div>
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_products_tags#}</h4>
  <div class="tags_block cf">
    {foreach name=aussen item=module_data from=$module_content}
    <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
      <span class="tags_options">
        <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
        {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
      </span>

      <span class="tags_values cf">
      {foreach name=inner item=item_data from=$module_data.DATA}
        {if $item_data.VALUES_IMAGE != ''}
          <span class="tags_values_icon_row cf">
            <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
          </span>
        {else}
          <span class="tags_values_text_row">
            <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
            {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
            {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
          </span>
        {/if}
      {/foreach}
      </span>
    </div>
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/products_category.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
    {foreach name=aussen item=module_data from=$module_content}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/products_media.html

Suche:

<h4 class="detailbox">{#file#}</h4>
{foreach name=aussen item=module_data from=$module_content}
<div class="mediarow {cycle values="media_bg1,media_bg2"}">
  <div class="mediarow_headline cf">
    <span class="mediarow_title">{$module_data.FILENAME}</span>
    <span class="mediarow_button">{if $module_data.BUTTON != ''}{$module_data.BUTTON}{else}&nbsp;{/if}</span>
    <span class="mediarow_filesize">{$module_data.FILESIZE}</span>
  </div>
  {if $module_data.DESCRIPTION != ''}<div class="mediarow_desc">{$module_data.DESCRIPTION}</div>{/if}
</div>
{/foreach}

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#file#}</h4>
  {foreach name=aussen item=module_data from=$module_content}
  <div class="mediarow {cycle values="media_bg1,media_bg2"}">
    <div class="mediarow_headline cf">
      <span class="mediarow_title">{$module_data.FILENAME}</span>
      <span class="mediarow_button">{if $module_data.BUTTON != ''}{$module_data.BUTTON}{else}&nbsp;{/if}</span>
      <span class="mediarow_filesize">{$module_data.FILESIZE}</span>
    </div>
    {if $module_data.DESCRIPTION != ''}<div class="mediarow_desc">{$module_data.DESCRIPTION}</div>{/if}
  </div>
  {/foreach}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/products_reviews.html

Suche:

{if isset($MODULE_TS_PRODUCT_STICKER)}
  {$MODULE_TS_PRODUCT_STICKER}
{else}

Ersetze mit:

{if isset($MODULE_TS_PRODUCT_STICKER)}
  {$MODULE_TS_PRODUCT_STICKER}
{elseif isset($module_content)}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/reverse_cross_selling.html

Suche:

<h4 class="detailbox">{#heading_text#}</h4>
<div class="listingcontainer_details cf">
  {foreach name=aussen item=module_data from=$module_content}
    {include file="module/includes/product_info_include.html"}
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h4 class="detailbox">{#heading_text#}</h4>
  <div class="listingcontainer_details cf">
    {foreach name=aussen item=module_data from=$module_content}
      {include file="module/includes/product_info_include.html"}
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/sitemap.html

Suche:

<div class="sitemap cf">
  {foreach name=aussen item=module_data from=$module_content}
  <ul class="nocolumnbreak cf">
    <li class="sitemap_header"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a>
    {if $module_data.SCATS|@sizeof != 0}
    <ul>
      {foreach key=key_data item=item_data from=$module_data.SCATS}
      <li><a href="{$item_data.link}">{$item_data.text}</a></li>
      {/foreach}
    </ul>
    {/if}
    </li>
  </ul>
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="sitemap cf">
    {foreach name=aussen item=module_data from=$module_content}
    <ul class="nocolumnbreak cf">
      <li class="sitemap_header"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a>
      {if $module_data.SCATS|@sizeof != 0}
      <ul>
        {foreach key=key_data item=item_data from=$module_data.SCATS}
        <li><a href="{$item_data.link}">{$item_data.text}</a></li>
        {/foreach}
      </ul>
      {/if}
      </li>
    </ul>
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/sub_content_listing.html

Suche:

<h4><a href="{$parent_content.CONTENT_LINK}">{$parent_content.CONTENT_TITLE}</a></h4>
<ul>
  {foreach name=aussen item=content_data from=$sub_content}
  <li>
    <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
  </li>
  {/foreach}
</ul>

Ersetze mit:

{if isset($parent_content)}
  <h4><a href="{$parent_content.CONTENT_LINK}">{$parent_content.CONTENT_TITLE}</a></h4>
  <ul>
    {foreach name=aussen item=content_data from=$sub_content}
    <li>
      <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
    </li>
    {/foreach}
  </ul>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/upcoming_products.html

Suche:

<h1>{#heading_upcoming#}</h1>
<ul class="upcoming_list">
{foreach name=aussen item=module_data from=$module_content}
  <li>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></li>
{/foreach}
</ul>

Ersetze mit:

{if isset($module_content)}
  <h1>{#heading_upcoming#}</h1>
  <ul class="upcoming_list">
  {foreach name=aussen item=module_data from=$module_content}
    <li>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></li>
  {/foreach}
  </ul>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes.php

Entferne den folgenden Code:

// css buttons
if (file_exists(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php')) {
  require_once ('templates/'.CURRENT_TEMPLATE.'/source/inc/css_button.inc.php');
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/inc/smarty_default.php

Suche:

  $box_smarty->cache_modified_check = CACHE_CHECK;

Ersetze mit:

  $box_smarty->cache_modified_check = CACHE_CHECK == 'true';

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/also_purchased.html

Suche:

<h2>{#heading_text#}</h2>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach name=aussen item=module_data from=$module_content}
  <tr>
    <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
    <td class="productPreviewContent">
    <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
    <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
    <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
    {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
    <div class="hrproductpreview"></div>
    </td>
  </tr>
{/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h2>{#heading_text#}</h2>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
      <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
      <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
      {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/categorie_listing/categorie_listing.html

Suche:

{if $module_content != '' && $TR_COLS > 0} <strong>{#heading_more_categories#}</strong>
  <br />
  <table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {assign var="anzahl_spalten" value="$TR_COLS"}
    {foreach name=aussen item=module_data from=$module_content key=spalten}
      <td class="categorie_listing" width="{$TD_WIDTH}">
        <table width="100%" border="0" cellpadding="0" cellspacing="4">
          <tr>
            <td align="center">{if $module_data.CATEGORIES_IMAGE}<a href="{$module_data.CATEGORIES_LINK}"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME|onlytext}" /></a>{/if}</td>
          </tr>
          <tr>
            <td align="center"><strong><a href="{$module_data.CATEGORIES_LINK}">{$module_data.CATEGORIES_NAME}</a></strong></td>
          </tr>
          <tr>
            <td align="center">{$module_data.CATEGORIES_DESCRIPTION}</td>
          </tr>
        </table>
      </td>
      {if (($spalten+1) % $anzahl_spalten == 0 && ($spalten+1) < $module_content|@count)}
        </tr>
        <tr>
      {/if}
    {/foreach}
    {*BOF RESTZELLEN AUFFÜLLEN*}
    {assign var="content_count" value=$module_content|@count}
    {if $content_count%$anzahl_spalten != 0}
      {section name=zelle start=0 loop=$anzahl_spalten-$content_count%$anzahl_spalten step=1}
      <td>&nbsp;</td>
      {/section}
    {/if}
    {*EOF RESTZELLEN AUFFÜLLEN*}
    </tr>
  </table>
{/if}<br />
{$MODULE_new_products}

Ersetze mit:

{if isset($CATEGORIES_LISTING)}{$CATEGORIES_LISTING}{/if}
{if isset($MODULE_new_products)}{$MODULE_new_products}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/content.html

Suche:

    {if isset($SUB_CONTENT_LISTING)}<div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>{/if}

Ersetze mit:

    {if isset($SUB_CONTENT_LISTING) && trim($SUB_CONTENT_LISTING) != ''}
      <div class="subcontent cf">{$SUB_CONTENT_LISTING}</div>
    {/if}

Suche:

  {if isset($MODULE_content_manager_media)}

Ersetze mit:

  {if isset($MODULE_content_manager_media) && trim($MODULE_content_manager_media) != ''}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/cross_selling.html

Suche:

<h2>{#heading_text#}</h2>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach name=aussen item=module_data from=$module_content}
  <tr>
    <td align="center" colspan="2">
    <h3>{$module_data.GROUP}</h3>
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
    <div class="hrproductpreview"></div>
    </td>
  </tr>
  {foreach item=products_data from=$module_data.PRODUCTS}
    <tr>
      <td class="productPreviewImage">{if $products_data.PRODUCTS_IMAGE != ''}<a href="{$products_data.PRODUCTS_LINK}"><img src="{$products_data.PRODUCTS_IMAGE}" alt="{$products_data.PRODUCTS_NAME|onlytext}" title="{$products_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$products_data.PRODUCTS_LINK}">{$products_data.PRODUCTS_NAME}</a></h2>
      <p>{$products_data.PRODUCTS_SHORT_DESCRIPTION}</p>
      <span class="price">{$products_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$products_data.PRODUCTS_TAX_INFO}{$products_data.PRODUCTS_SHIPPING_LINK})</span>
      {if $products_data.PRODUCTS_VPE}<p class="vpe">{$products_data.PRODUCTS_VPE}</p>{/if}
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
{/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h2>{#heading_text#}</h2>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td align="center" colspan="2">
      <h3>{$module_data.GROUP}</h3>
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
    {foreach item=products_data from=$module_data.PRODUCTS}
      <tr>
        <td class="productPreviewImage">{if $products_data.PRODUCTS_IMAGE != ''}<a href="{$products_data.PRODUCTS_LINK}"><img src="{$products_data.PRODUCTS_IMAGE}" alt="{$products_data.PRODUCTS_NAME|onlytext}" title="{$products_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
        <td class="productPreviewContent">
        <h2><a href="{$products_data.PRODUCTS_LINK}">{$products_data.PRODUCTS_NAME}</a></h2>
        <p>{$products_data.PRODUCTS_SHORT_DESCRIPTION}</p>
        <span class="price">{$products_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$products_data.PRODUCTS_TAX_INFO}{$products_data.PRODUCTS_SHIPPING_LINK})</span>
        {if $products_data.PRODUCTS_VPE}<p class="vpe">{$products_data.PRODUCTS_VPE}</p>{/if}
        </td>
      </tr>
      <tr>
        <td align="center" colspan="2">
        <div class="hrproductpreview"></div>
        </td>
      </tr>
    {/foreach}
  {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/graduated_price.html

Suche:

<table cellpadding="2" cellspacing="0" border="0" class="graduatedprice">
  <tr> 
    <td colspan="2" class="header">{#heading_text#}:</td>
  </tr>
  {foreach name=aussen item=module_data from=$module_content} 
    <tr> 
      <td>{if $module_data.TO_QUANTITY == ''}{$module_data.FROM_QUANTITY} {/if}{$module_data.PLAIN_QUANTITY}{if $module_data.TO_QUANTITY != ''} - {$module_data.TO_QUANTITY}{/if} {#unit#}</td>
      <td>{#pieces#} {$module_data.PRICE}{if $module_data.VPE}<br />{$module_data.VPE}{/if}</td>
    </tr>
  {/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <table cellpadding="2" cellspacing="0" border="0" class="graduatedprice">
    <tr> 
      <td colspan="2" class="header">{#heading_text#}:</td>
    </tr>
    {foreach name=aussen item=module_data from=$module_content} 
      <tr> 
        <td>{if $module_data.TO_QUANTITY == ''}{$module_data.FROM_QUANTITY} {/if}{$module_data.PLAIN_QUANTITY}{if $module_data.TO_QUANTITY != ''} - {$module_data.TO_QUANTITY}{/if} {#unit#}</td>
        <td>{#pieces#} {$module_data.PRICE}{if $module_data.VPE}<br />{$module_data.VPE}{/if}</td>
      </tr>
    {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/main_content.html

Suche:

{if isset($MODULE_new_products)}
<div>{$MODULE_new_products}</div>
{/if}
{if isset($MODULE_upcoming_products)}
<div>{$MODULE_upcoming_products}</div>
{/if}

Ersetze mit:

{if isset($MODULE_new_products) && trim($MODULE_new_products) != ''}
  <div>{$MODULE_new_products}</div>
{/if}
{if isset($MODULE_upcoming_products) && trim($MODULE_upcoming_products) != ''}
  <div>{$MODULE_upcoming_products}</div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/new_products.html

Suche:

<h1>{#heading_text#}</h1>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach name=aussen item=module_data from=$module_content}
  <tr>
    <td align="center" class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
    <td class="productPreviewContent">
    <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
    <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
    <p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
    {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
    {if ACTIVATE_SHIPPING_STATUS == 'true'}
      {if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}&nbsp;
        {if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
        {$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
      {/if}
    {/if}
    <p>{if $module_data.PRODUCTS_BUTTON_BUY_NOW}{$module_data.PRODUCTS_BUTTON_BUY_NOW}&nbsp;{/if}{$module_data.PRODUCTS_BUTTON_DETAILS}</p>
  </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
    <div class="hrproductpreview"></div>
    </td>
  </tr>
{/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h1>{#heading_text#}</h1>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td align="center" class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
      <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
      <p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
      {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
      {if ACTIVATE_SHIPPING_STATUS == 'true'}
        {if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}&nbsp;
          {if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
          {$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
        {/if}
      {/if}
      <p>{if $module_data.PRODUCTS_BUTTON_BUY_NOW}{$module_data.PRODUCTS_BUTTON_BUY_NOW}&nbsp;{/if}{$module_data.PRODUCTS_BUTTON_DETAILS}</p>
    </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/new_products_default.html

Suche:

<div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach name=aussen item=module_data from=$module_content}
  <tr>
    <td align="center" class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
    <td class="productPreviewContent">
    <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
    <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
    <p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
    {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
    {if ACTIVATE_SHIPPING_STATUS == 'true'}
      {if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}&nbsp;
        {if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
        {$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
      {/if}
    {/if}
    <p>{if $module_data.PRODUCTS_BUTTON_BUY_NOW}{$module_data.PRODUCTS_BUTTON_BUY_NOW}&nbsp;{/if}{$module_data.PRODUCTS_BUTTON_DETAILS}</p>
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
    <div class="hrproductpreview"></div>
    </td>
  </tr>
{/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <div class="headline_big">{if #heading_text_top# != ''}{#heading_text_top#}{else}{#heading_text#}{/if}</div>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td align="center" class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
      <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
      <p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
      {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
      {if ACTIVATE_SHIPPING_STATUS == 'true'}
        {if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}&nbsp;
          {if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
          {$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
        {/if}
      {/if}
      <p>{if $module_data.PRODUCTS_BUTTON_BUY_NOW}{$module_data.PRODUCTS_BUTTON_BUY_NOW}&nbsp;{/if}{$module_data.PRODUCTS_BUTTON_DETAILS}</p>
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_tabs_v1.html

Suche:

<div id="tabbed_product_info">
  <ul>
    {if $PRODUCTS_DESCRIPTION != ''}<li><a href="#tab_description">{#description#}</a></li>{/if}
    {if $MODULE_product_tags != ''}<li><a href="#tab_tags">{#products_tags#}</a></li>{/if}
    {if isset($more_images) && count($more_images) > 0}<li><a href="#tab_more_images">{#more_images#}</a></li>{/if}
    {if $MODULE_products_media != ''}<li><a href="#tab_media">{#products_media#}</a></li>{/if}
    {if $MODULE_products_reviews != ''}<li><a href="#tab_reviews">{#products_reviews#}</a></li>{/if}
    {if $MODULE_cross_selling != '' || $MODULE_reverse_cross_selling != ''}<li><a href="#tab_cross_selling">{#cross_selling#}</a></li>{/if}
    {if $MODULE_also_purchased != ''}<li><a href="#tab_also_purchased">{#also_purchased#}</a></li>{/if}
    {if $MODULE_products_category != ''}<li><a href="#tab_products_category">{#products_category#}</a></li>{/if}
  </ul>
  {if $PRODUCTS_DESCRIPTION != ''}<div id="tab_description">{$PRODUCTS_DESCRIPTION}</div>{/if}
  {if $MODULE_product_tags != ''}<div id="tab_tags">{$MODULE_product_tags}</div>{/if}
  {if isset($more_images) && count($more_images) > 0}
    <div id="tab_more_images">
      {* More Pictures *}
      <div class="morepics">
        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE|onlytext}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}
      </div>
      <div style="clear:both;"></div>
    </div>
  {/if}
  {if $MODULE_products_media != ''}<div id="tab_media">{$MODULE_products_media}</div>{/if}
  {if $MODULE_products_reviews != ''}<div id="tab_reviews">{$MODULE_products_reviews}</div>{/if}
  {if $MODULE_cross_selling != '' || $MODULE_reverse_cross_selling != ''}<div id="tab_cross_selling">{$MODULE_cross_selling}{if $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
  {if $MODULE_also_purchased != ''}<div id="tab_also_purchased">{$MODULE_also_purchased}</div>{/if}
  {if $MODULE_products_category != ''}<div id="tab_products_category">{$MODULE_products_category}</div>{/if}
</div>

Ersetze mit:

<div id="tabbed_product_info">
  <ul>
    {if $PRODUCTS_DESCRIPTION != ''}<li><a href="#tab_description">{#description#}</a></li>{/if}
    {if trim($MODULE_product_tags) != ''}<li><a href="#tab_tags">{#products_tags#}</a></li>{/if}
    {if isset($more_images) && count($more_images) > 0}<li><a href="#tab_more_images">{#more_images#}</a></li>{/if}
    {if trim($MODULE_products_media) != ''}<li><a href="#tab_media">{#products_media#}</a></li>{/if}
    {if trim($MODULE_products_reviews) != ''}<li><a href="#tab_reviews">{#products_reviews#}</a></li>{/if}
    {if trim($MODULE_cross_selling) != '' || trim($MODULE_reverse_cross_selling) != ''}<li><a href="#tab_cross_selling">{#cross_selling#}</a></li>{/if}
    {if trim($MODULE_also_purchased) != ''}<li><a href="#tab_also_purchased">{#also_purchased#}</a></li>{/if}
    {if trim($MODULE_products_category) != ''}<li><a href="#tab_products_category">{#products_category#}</a></li>{/if}
  </ul>
  {if $PRODUCTS_DESCRIPTION != ''}<div id="tab_description">{$PRODUCTS_DESCRIPTION}</div>{/if}
  {if trim($MODULE_product_tags) != ''}<div id="tab_tags">{$MODULE_product_tags}</div>{/if}
  {if isset($more_images) && count($more_images) > 0}
    <div id="tab_more_images">
      {* More Pictures *}
      <div class="morepics">
        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE|onlytext}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}
      </div>
      <div style="clear:both;"></div>
    </div>
  {/if}
  {if trim($MODULE_products_media) != ''}<div id="tab_media">{$MODULE_products_media}</div>{/if}
  {if trim($MODULE_products_reviews) != ''}<div id="tab_reviews">{$MODULE_products_reviews}</div>{/if}
  {if trim($MODULE_cross_selling) != '' || trim($MODULE_reverse_cross_selling) != ''}<div id="tab_cross_selling">{$MODULE_cross_selling}{if trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
  {if trim($MODULE_also_purchased) != ''}<div id="tab_also_purchased">{$MODULE_also_purchased}</div>{/if}
  {if trim($MODULE_products_category) != ''}<div id="tab_products_category">{$MODULE_products_category}</div>{/if}
</div>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_v1.html

Suche:

{if $MODULE_product_tags != ''}{$MODULE_product_tags}{/if}
{if $MODULE_products_media != ''}{$MODULE_products_media}{/if}
{if $MODULE_products_reviews != ''}{$MODULE_products_reviews}{/if}
{if $MODULE_cross_selling != ''}{$MODULE_cross_selling}{/if}
{if $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}
{if $MODULE_also_purchased != ''}{$MODULE_also_purchased}{/if}
{if $MODULE_products_category != ''}{$MODULE_products_category}{/if}

Ersetze mit:

{if trim($MODULE_product_tags) != ''}{$MODULE_product_tags}{/if}
{if trim($MODULE_products_media) != ''}{$MODULE_products_media}{/if}
{if trim($MODULE_products_reviews) != ''}{$MODULE_products_reviews}{/if}
{if trim($MODULE_cross_selling) != ''}{$MODULE_cross_selling}{/if}
{if trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}
{if trim($MODULE_also_purchased) != ''}{$MODULE_also_purchased}{/if}
{if trim($MODULE_products_category) != ''}{$MODULE_products_category}{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Suche:

<div id="accordion_product_info">
  {if $PRODUCTS_DESCRIPTION != ''}<h3><a href="#">{#description#}</a></h3><div>{$PRODUCTS_DESCRIPTION}</div>{/if}
  {if $MODULE_product_tags != ''}<h3><a href="#">{#products_tags#}</a></h3><div>{$MODULE_product_tags}</div>{/if}
  {if isset($more_images) && count($more_images) > 0}<h3><a href="#">{#more_images#}</a></h3>
    <div>
      <div id="accordion_more_images">
        {* More Pictures *}
        <div class="morepics">
        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}
        </div>
        <div style="clear:both;"></div>
      </div>
    </div>
  {/if}
  {if $MODULE_products_media != ''}<h3><a href="#">{#products_media#}</a></h3><div>{$MODULE_products_media}</div>{/if}
  {if $MODULE_products_reviews != ''}<h3><a href="#">{#products_reviews#}</a></h3><div>{$MODULE_products_reviews}</div>{/if}
  {if $MODULE_cross_selling != '' || $MODULE_reverse_cross_selling != ''}<h3><a href="#">{#cross_selling#}</a></h3><div>{$MODULE_cross_selling}
  {if $MODULE_reverse_cross_selling != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
  {if $MODULE_also_purchased != ''}<h3><a href="#">{#also_purchased#}</a></h3><div>{$MODULE_also_purchased}</div>{/if}
  {if $MODULE_products_category != ''}<h3><a href="#">{#products_category#}</a></h3><div>{$MODULE_products_category}</div>{/if}
</div>

Ersetze mit:

<div id="accordion_product_info">
  {if $PRODUCTS_DESCRIPTION != ''}<h3><a href="#">{#description#}</a></h3><div>{$PRODUCTS_DESCRIPTION}</div>{/if}
  {if trim($MODULE_product_tags) != ''}<h3><a href="#">{#products_tags#}</a></h3><div>{$MODULE_product_tags}</div>{/if}
  {if isset($more_images) && count($more_images) > 0}<h3><a href="#">{#more_images#}</a></h3>
    <div>
      <div id="accordion_more_images">
        {* More Pictures *}
        <div class="morepics">
        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}
        </div>
        <div style="clear:both;"></div>
      </div>
    </div>
  {/if}
  {if trim($MODULE_products_media) != ''}<h3><a href="#">{#products_media#}</a></h3><div>{$MODULE_products_media}</div>{/if}
  {if trim($MODULE_products_reviews) != ''}<h3><a href="#">{#products_reviews#}</a></h3><div>{$MODULE_products_reviews}</div>{/if}
  {if trim($MODULE_cross_selling) != '' || trim($MODULE_reverse_cross_selling) != ''}<h3><a href="#">{#cross_selling#}</a></h3><div>{$MODULE_cross_selling}
  {if trim($MODULE_reverse_cross_selling) != ''}{$MODULE_reverse_cross_selling}{/if}</div>{/if}
  {if trim($MODULE_also_purchased) != ''}<h3><a href="#">{#also_purchased#}</a></h3><div>{$MODULE_also_purchased}</div>{/if}
  {if trim($MODULE_products_category) != ''}<h3><a href="#">{#products_category#}</a></h3><div>{$MODULE_products_category}</div>{/if}
</div>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_navigator.html

Suche:

<div class="productnavigator">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>&nbsp;|&nbsp;{/if}
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>&nbsp;|&nbsp;{/if}
{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;|&nbsp;{/if}
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>&nbsp;|&nbsp;{/if}
{if $LAST != ''}<a href="{$LAST}">{#last#}</a>&nbsp;|&nbsp;{/if}
{#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="productnavigator">
    {if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>&nbsp;|&nbsp;{/if}
    {if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>&nbsp;|&nbsp;{/if}
    {if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a>&nbsp;|&nbsp;{/if}
    {if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>&nbsp;|&nbsp;{/if}
    {if $LAST != ''}<a href="{$LAST}">{#last#}</a>&nbsp;|&nbsp;{/if}
    {#product#}&nbsp;<strong>{$ACTUAL_PRODUCT}&nbsp;{#of#}&nbsp;{$PRODUCTS_COUNT}</strong>&nbsp;{#total#}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_tags.html

Suche:

<h1>{#heading_products_tags#}</h1>
<div class="tags_block cf">
  {foreach name=aussen item=module_data from=$module_content}
  <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
    <span class="tags_options">
      <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
      {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
    </span>

    <span class="tags_values cf">
    {foreach name=inner item=item_data from=$module_data.DATA}
      {if $item_data.VALUES_IMAGE != ''}
        <span class="tags_values_icon_row cf">
          <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
        </span>
      {else}
        <span class="tags_values_text_row">
          <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
          {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
          {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
        </span>
      {/if}
    {/foreach}
    </span>
  </div>
  {/foreach}
</div>

Ersetze mit:

{if isset($module_content)}
  <h1>{#heading_products_tags#}</h1>
  <div class="tags_block cf">
    {foreach name=aussen item=module_data from=$module_content}
    <div class="tags_row {cycle values="tags_bg1,tags_bg2"} cf">
      <span class="tags_options">
        <span class="tags_options_tooltip{if $module_data.OPTIONS_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$module_data.OPTIONS_NAME}{if $module_data.OPTIONS_DESCRIPTION != ''}<span class="tags_options_tooltip_hover">{$module_data.OPTIONS_DESCRIPTION}</span>{/if}</span>:
        {if $module_data.OPTIONS_CONTENT_LINK != ''}<a class="iframe" target="_blank" title="{$module_data.OPTIONS_NAME|onlytext}" href="{$module_data.OPTIONS_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a>{/if}
      </span>

      <span class="tags_values cf">
      {foreach name=inner item=item_data from=$module_data.DATA}
        {if $item_data.VALUES_IMAGE != ''}
          <span class="tags_values_icon_row cf">
            <span class="tags_values_icon"><span class="tags_icons_tooltip cf">{if $item_data.VALUES_CONTENT_LINK != ''}<a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}" title="{$item_data.VALUES_NAME|onlytext}">{/if}<img src="{$item_data.VALUES_IMAGE}" alt="{$item_data.VALUES_NAME|onlytext}" />{if $item_data.VALUES_CONTENT_LINK != ''}</a>{/if}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_icons_tooltip_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span></span>
          </span>
        {else}
          <span class="tags_values_text_row">
            <span class="tags_values_name{if $item_data.VALUES_DESCRIPTION != ''} tags_values_name_tooltip{/if}">{$item_data.VALUES_NAME}{if $item_data.VALUES_DESCRIPTION != ''}<span class="tags_values_desc_hover">{$item_data.VALUES_DESCRIPTION}</span>{/if}</span>
            {if $item_data.VALUES_CONTENT_LINK != ''}<span class="tags_values_info"><a class="iframe" target="_blank" href="{$item_data.VALUES_CONTENT_LINK}"><img src="{$tpl_path}img/icon_tags_info.png" alt="" /></a></span>{/if}
            {if !$smarty.foreach.inner.last}<span class="tags_values_diff">, </span>{/if}
          </span>
        {/if}
      {/foreach}
      </span>
    </div>
    {/foreach}
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/products_category.html

Suche:

<h2>{#heading_text#}</h2>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
{foreach name=aussen item=module_data from=$module_content}
  <tr>
    <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
    <td class="productPreviewContent">
    <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
    <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
    <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
    {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
    <div class="hrproductpreview"></div>
    </td>
  </tr>
{/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h2>{#heading_text#}</h2>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
      <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
      <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
      {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/products_media.html

Suche:

<h1>{#file#}:</h1>
<table class="medialist" border="0" width="100%" cellspacing="0" cellpadding="4">
  {foreach name=aussen item=module_data from=$module_content}
    <tr class="{cycle values="contentrow1,contentrow2"}">
      <td width="100%"><strong>{$module_data.FILENAME}</strong><br />{$module_data.DESCRIPTION}</td>
      <td>{$module_data.FILESIZE}</td>
      <td>{$module_data.BUTTON}</td>
    </tr>
  {/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h1>{#file#}:</h1>
  <table class="medialist" border="0" width="100%" cellspacing="0" cellpadding="4">
    {foreach name=aussen item=module_data from=$module_content}
      <tr class="{cycle values="contentrow1,contentrow2"}">
        <td width="100%"><strong>{$module_data.FILENAME}</strong><br />{$module_data.DESCRIPTION}</td>
        <td>{$module_data.FILESIZE}</td>
        <td>{$module_data.BUTTON}</td>
      </tr>
    {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/products_reviews.html

Suche:

{else}
  <h1>{#heading_reviews#}</h1>
  {if $reviews_count > 0}

Ersetze mit:

{elseif isset($reviews_count)}
  <h1>{#heading_reviews#}</h1>
  {if $module_content > 0}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/reverse_cross_selling.html

Suche:

<h2>{#heading_text#}</h2>
<div class="hrproductpreview"></div>
<table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=aussen item=module_data from=$module_content}
    <tr>
      <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
      <td class="productPreviewContent">
      <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
      <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
      <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
      <div class="hrproductpreview"></div>
      </td>
    </tr>
  {/foreach}
</table>

Ersetze mit:

{if isset($module_content)}
  <h2>{#heading_text#}</h2>
  <div class="hrproductpreview"></div>
  <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
    {foreach name=aussen item=module_data from=$module_content}
      <tr>
        <td class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE != ''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
        <td class="productPreviewContent">
        <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2>
        <br />{$module_data.PRODUCTS_SHORT_DESCRIPTION}
        <span class="price">{$module_data.PRODUCTS_PRICE}</span>&nbsp;<span class="taxandshippinginfo">({$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK})</span>
        </td>
      </tr>
      <tr>
        <td align="center" colspan="2">
        <div class="hrproductpreview"></div>
        </td>
      </tr>
    {/foreach}
  </table>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/sitemap.html

Suche:

<div class="sitemapwrap">
  {foreach name=aussen item=module_data from=$module_content}
    {if $smarty.foreach.aussen.iteration % 2 == 1}
      <div class="sitemapleft">
    {else}
      <div class="sitemapright">
    {/if}
        <div class="sitemapheader"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a></div>
        <div class="sitemapcontent">
        {if $module_data.SCATS|@sizeof!=0}
          <ul>
          {foreach key=key_data item=item_data from=$module_data.SCATS}
            <li><a href="{$item_data.link}">{$item_data.text}</a></li>
          {/foreach}
          </ul>
        {/if}
        </div>
      </div>
    {if $smarty.foreach.aussen.iteration % 2 == 0}
      <div style="clear:both;"></div>
    {/if}
  {/foreach}
  <div style="clear:both;"></div>
</div>

Ersetze mit:

{if isset($module_content)}
  <div class="sitemapwrap">
    {foreach name=aussen item=module_data from=$module_content}
      {if $smarty.foreach.aussen.iteration % 2 == 1}
        <div class="sitemapleft">
      {else}
        <div class="sitemapright">
      {/if}
          <div class="sitemapheader"><a href="{$module_data.CAT_LINK}">{$module_data.CAT_NAME}</a></div>
          <div class="sitemapcontent">
          {if $module_data.SCATS|@sizeof!=0}
            <ul>
            {foreach key=key_data item=item_data from=$module_data.SCATS}
              <li><a href="{$item_data.link}">{$item_data.text}</a></li>
            {/foreach}
            </ul>
          {/if}
          </div>
        </div>
      {if $smarty.foreach.aussen.iteration % 2 == 0}
        <div style="clear:both;"></div>
      {/if}
    {/foreach}
    <div style="clear:both;"></div>
  </div>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/sub_content_listing.html

Suche:

<p><a href="{$parent_content.CONTENT_LINK}"><strong>{$parent_content.CONTENT_TITLE}</strong></a></p>
<ul>
  {foreach name=aussen item=content_data from=$sub_content}
  <li>
    <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
  </li>
  {/foreach}
</ul>

Ersetze mit:

{if isset($parent_content)}
  <p><a href="{$parent_content.CONTENT_LINK}"><strong>{$parent_content.CONTENT_TITLE}</strong></a></p>
  <ul>
    {foreach name=aussen item=content_data from=$sub_content}
    <li>
      <a href="{$content_data.CONTENT_LINK}">{$content_data.CONTENT_TITLE}</a>
    </li>
    {/foreach}
  </ul>
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/upcoming_products.html

Suche:

<h1>{#heading_upcoming#}</h1>
{foreach name=aussen item=module_data from=$module_content}
<p>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></p>
<div class="hrproductpreview"></div>
{/foreach}

Ersetze mit:

{if isset($module_content)}
  <h1>{#heading_upcoming#}</h1>
  {foreach name=aussen item=module_data from=$module_content}
  <p>{$module_data.PRODUCTS_DATE}: <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></p>
  <div class="hrproductpreview"></div>
  {/foreach}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/inc/smarty_default.php

Suche:

  $box_smarty->cache_modified_check = CACHE_CHECK;

Ersetze mit:

  $box_smarty->cache_modified_check = CACHE_CHECK == 'true';

Umbau der Bewertungsbox auf dynamische Smarties[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/xtc5/source/boxes/reviews.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

  $reviews_query = "SELECT r.reviews_id,
                           r.reviews_rating,
                           substring(rd.reviews_text, 1, 60) as reviews_text,
                           p.products_id,
                           p.products_image,
                           pd.products_name,
                           pd.products_heading_title
                      FROM ".TABLE_REVIEWS." r

Ersetze mit:

  $reviews_query = "SELECT ".$product->default_select.",
                           r.reviews_id,
                           r.reviews_rating,
                           substring(rd.reviews_text, 1, 60) as reviews_text
                      FROM ".TABLE_REVIEWS." r

Suche:

      $products_image = $product->productImage($reviews['products_image'], 'thumbnail');

Ersetze mit:

      // include needed functions
      require_once(DIR_FS_INC . 'xtc_break_string.inc.php');

      $productDataArray = $product->buildDataArray($reviews, 'thumbnail');
      foreach ($productDataArray as $key => $value) {
        $box_smarty->assign($key, $value);
      }

Suche:

      // include needed functions
      require_once(DIR_FS_INC . 'xtc_break_string.inc.php');
      $box_smarty->assign('REVIEWS_VOTE', $reviews['reviews_rating']);
      $box_smarty->assign('REVIEWS_LINK', xtc_href_link(FILENAME_REVIEWS));
      $box_smarty->assign('PRODUCTS_IMAGE', $products_image);
      $box_smarty->assign('PRODUCTS_NAME', $reviews['products_name']);
      $box_smarty->assign('PRODUCTS_HEADING_TITLE', $reviews['products_heading_title']);

Ersetze mit:

      $box_smarty->assign('REVIEWS_VOTE', $reviews['reviews_rating']);
      $box_smarty->assign('REVIEWS_LINK', xtc_href_link(FILENAME_REVIEWS));

Korrektes Instanziieren von Smarty[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/shopping_cart.php
 /templates/tpl_modified/source/boxes/wishlist.php
 /templates/tpl_modified_responsive/source/boxes/shopping_cart.php
 /templates/tpl_modified_responsive/source/boxes/wishlist.php
 /templates/xtc5/source/boxes/shopping_cart.php
 /templates/xtc5/source/boxes/wishlist.php 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/shopping_cart.php
 /templates/TEMPLATENAME/source/boxes/wishlist.php

Suche:

$box_smarty = new smarty;

Ersetze mit:

$box_smarty = new Smarty;

Möglichkeit im Checkout die Adresse zu ändern anstatt eine neue anzugeben[Bearbeiten]

  • optional

Änderungen siehe https://trac.modified-shop.org/changeset?new=13707%40%2F&old=13704%40%2F

Aus dem original xtc5 bzw. tpl_modified Template ist die folgende Datei ins eigene Template in den selben Ordner zu kopieren:

/templates/tpl_modified/buttons/english/small_continue.gif
/templates/tpl_modified/buttons/english/small_delete.gif
/templates/tpl_modified/buttons/english/small_edit.gif
/templates/tpl_modified/buttons/german/small_continue.gif
/templates/tpl_modified/buttons/german/small_delete.gif
/templates/tpl_modified/buttons/german/small_edit.gif
/templates/tpl_modified/module/address_book.html
/templates/tpl_modified/module/checkout_new_address.html
/templates/tpl_modified/module/checkout_payment_address.html
/templates/tpl_modified/module/checkout_shipping_address.html
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/lang/buttons_english.php
/templates/tpl_modified_responsive/lang/buttons_german.php
/templates/tpl_modified_responsive/module/address_book.html
/templates/tpl_modified_responsive/module/checkout_new_address.html
/templates/tpl_modified_responsive/module/checkout_payment_address.html
/templates/tpl_modified_responsive/module/checkout_shipping_address.html
/templates/tpl_modified_responsive/source/inc/css_button.inc.php
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/buttons/english/small_continue.gif
/templates/xtc5/buttons/german/small_continue.gif
/templates/xtc5/module/address_book.html
/templates/xtc5/module/checkout_new_address.html
/templates/xtc5/module/checkout_payment_address.html
/templates/xtc5/module/checkout_shipping_address.html
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Füge am Ende der Datei ein:

/* START new address book handling */
#address_block_new {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style-type:none;
  margin: 15px -10px 0 -10px;
  padding: 0px;
}
#address_block_new > li {
  order:2;
  float:left;
  width:50%;  
  box-sizing:border-box;
  padding: 0px 10px;
  margin: 0px;  
}
#address_block_new > li.selected {
  order:1;
}
#address_block_new > li.selected .address_inner {
  background:#eee;
  padding: 15px 10px;
}
#address_block_new > li .address_inner {
  border-top: 1px solid #ccc;
  padding: 15px 10px;
  box-sizing:border-box;
  height:100%;
}
ol#address_block_new li label {
  font-weight: 700;
}
ol#address_block_new li label .address {
  display: block !important;
  padding: 5px 0px 0px 0px !important;
  font-weight: 400 !important;
}
#address_block_new form {
  position:relative;
  padding: 0px 150px 0px 0px; 
}
#address_block_new .address_actions {
  overflow:hidden;
  position:absolute;
  top:0px;
  right:0px;
  width:140px;
  text-align:right;
}
#address_block_new .address_actions img {
  margin: 0 0 0 8px;
}
#address_block_new .address_actions input[type=image] {
  margin: 0 0 0 8px;
}
#address_block_new .address_inner_block {
  position:relative;
  padding: 0px 150px 0px 0px; 
}
/* END new address book handling */

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.button_right_checkout {
  float:right;
  text-align:right;
  display:inline-block;
  margin: 5px 0px 0px 0px;
  min-width:200px;
}

Ersetze mit:

.button_right_checkout {
  float:right;
  text-align:right;
  display:inline-block;
  margin: 10px 0px 0px 0px;
  min-width:200px;
}

Suche:

.account_edit_buttons {
  display:block;
  float:right;
  width:100px;
  margin: 10px 0px 10px 10px;
}

Ersetze mit:

.account_edit_buttons {
  display:block;
  float:right;
  width:100px;
  margin: 10px 0px 10px 10px;
  text-align:right;
}

Suche:

.cssButtonPos5 {
  display:block;
  margin: 0 0 5px 0;
}

Ersetze mit:

.cssButtonPos5 {
  display:inline-block;
  margin: 0 0 0 10px;
  width:35px;
}
.cssButtonPos5 .fas,
.cssButtonPos5 .far {
  font-size:16px;
  vertical-align:middle;
}

Suche:

.cssButtonPos6 .fas {
  font-size:16px;
  vertical-align:bottom;
}

Ersetze mit:

.cssButtonPos6 .fas,
.cssButtonPos6 .far {
  font-size:16px;
  vertical-align:bottom;
}

Füge am Ende der Datei ein:

/* 50. START New address book handling */
#address_block_new {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style-type:none;
  margin: 15px -10px 0 -10px;
  padding: 0px;
}
#address_block_new > li {
  order:2;
  float:left;
  width:100%;  
  box-sizing:border-box;
  padding: 0px 10px;
  margin: 0px;  
}
@media only screen and (min-width: 759px) {
  #address_block_new > li { width:50%; } 
}
#address_block_new > li.selected {
  order:1;
}
#address_block_new > li.selected .address_inner {
  background:#eee;
  padding: 15px 10px;
}
#address_block_new > li .address_inner {
  border-top: 1px solid #ddd;
  padding: 15px 10px;
  box-sizing:border-box;
  height:100%;
}
ol#address_block_new li label {
  font-weight: 700;
}
ol#address_block_new li label .address {
  display: block !important;
  padding: 5px 0px 0px 0px !important;
  font-weight: 400 !important;
}
#address_block_new form {
  position:relative;
  padding: 0px 120px 0px 0px; 
}
#address_block_new .address_actions {
  overflow:hidden;
  position:absolute;
  top:0px;
  right:0px;
  width:100px;
  text-align:right;
}
#address_block_new .address_inner_block {
  position:relative;
  padding: 0px 120px 0px 0px; 
}
/* END New address book handling */

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Füge am Ende der Datei ein:

/* START new address book handling */
h2.addressbook {
  margin-top: 0px;
}
#address_block_new {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style-type:none;
  margin: 15px -10px 0 -10px !important;
  padding: 0px;
}
#address_block_new > li {
  order:2;
  float:left;
  width:50%;  
  box-sizing:border-box;
  padding: 0px 10px;
  margin: 0px;  
}
#address_block_new.address_book > li {
  width:100%;  
}



#address_block_new > li.selected {
  order:1;
}
#address_block_new > li.selected .address_inner {
  background:#ddd;
}
#address_block_new > li .address_inner {
  position:relative;
  border-top: 1px solid #ccc;
  padding: 20px 150px 20px 10px;
  box-sizing:border-box;
  width:100%;
}
ol#address_block_new li label {
  font-weight: 700;
}
ol#address_block_new li label .address {
  display: block !important;
  padding: 5px 0px 0px 0px !important;
  font-weight: 400 !important;
}
#address_block_new .address_actions {
  overflow:hidden;
  position:absolute;
  top:15px;
  right:10px;
  width:140px;
  text-align:right;
}
#address_block_new .address_actions img {
  margin: 0 0 5px 0px;
}
#address_block_new .address_actions input[type=image] {
  margin: 0 0 5px 0px;
}
#address_block_new .address_inner_block {
  padding: 0px 0px 0px 0px; 
  width:100%;
  box-sizing:border-box;
}
/* END new address book handling */

Korrektur der strukturierten Daten für Hersteller[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified/module/product_info/product_info_v1.html
 /templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/product_info/product_info_tabs_v1.html
 /templates/TEMPLATENAME/module/product_info/product_info_v1.html
 /templates/TEMPLATENAME/module/product_info/product_info_x_accordion_v1.html

Suche:

        {if isset($MANUFACTURER) && $MANUFACTURER != ''}<div class="pd_inforow"><strong>{#manufacturer#}</strong> <span itemprop="brand">{$MANUFACTURER}</span></div>{/if}

Ersetze mit:

        {if isset($MANUFACTURER) && $MANUFACTURER != ''}<div class="pd_inforow" itemprop="brand" itemscope itemtype="https://schema.org/Brand"><strong>{#manufacturer#}</strong> <span itemprop="name">{$MANUFACTURER}</span></div>{/if}

Reaktivierung von Link-Funktionen für Performance Optimierung[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/order_history.php
/templates/tpl_modified/source/inc/xtc_show_content.inc.php
/templates/tpl_modified_responsive/source/boxes/order_history.php
/templates/tpl_modified_responsive/source/inc/xtc_show_content.inc.php
/templates/xtc5/source/boxes/order_history.php
/templates/xtc5/source/inc/xtc_show_content.inc.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/order_history.php

Suche:

          'PRODUCTS_LINK' => '<a href="' . xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$orders['products_id']) . '">' . $orders['products_name'] . '</a>',

Ersetze mit:

          'PRODUCTS_LINK' => '<a href="' . xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($orders['products_id'], $orders['products_name'])) . '">' . $orders['products_name'] . '</a>',

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/inc/xtc_show_content.inc.php

Suche:

    $content_string .= '<a href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_array[$counter]['coID']).'" title="'. $content_array[$counter]['name'] . '">';

Ersetze mit:

    $content_string .= '<a href="'.xtc_href_link(FILENAME_CONTENT, xtc_content_link($content_array[$counter]['coID'], $content_array[$counter]['name'])).'" title="'. $content_array[$counter]['name'] . '">';

Pfad-Korrektur in Templates[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/css/general_bottom.css.php
/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified_responsive/css/general_bottom.css.php
/templates/tpl_modified_responsive/javascript/general_bottom.js.php
/templates/xtc5/css/general_bottom.css.php
/templates/xtc5/javascript/general_bottom.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/css/general_bottom.css.php

Suche:

// This CSS file get includes at the BOTTOM of every template page in shop
// you can add your template specific css scripts here

Ersetze mit:

// This CSS file get includes at the BOTTOM of every template page in shop
// you can add your template specific css scripts here
defined('DIR_TMPL') OR define('DIR_TMPL', 'templates/'.CURRENT_TEMPLATE.'/');
defined('DIR_TMPL_CSS') OR define('DIR_TMPL_CSS', DIR_TMPL.'css/');

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/general_bottom.js.php

Suche:

// this javascriptfile get includes at the BOTTOM of every template page in shop
// you can add your template specific js scripts here

Ersetze mit:

// this javascriptfile get includes at the BOTTOM of every template page in shop
// you can add your template specific js scripts here
defined('DIR_TMPL_JS') OR define('DIR_TMPL_JS', DIR_TMPL.'javascript/');

Pfad-Korrektur für Bilder in Hersteller-Info-Box[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/manufacturer_info.php
/templates/tpl_modified_responsive/source/boxes/manufacturer_info.php
/templates/xtc5/source/boxes/manufacturer_info.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturer_info.php

Suche:

    $image = $main->getImage($manufacturer['manufacturers_image'], '', MANUFACTURER_IMAGE_SHOW_NO_IMAGE, 'manufacturers/noimage.gif');

Ersetze mit:

    $image = $main->getImage($manufacturer['manufacturers_image'], 'manufacturers/', MANUFACTURER_IMAGE_SHOW_NO_IMAGE);

Entfernen nicht benötigter Funktion xtc_recalculate_price.inc.php[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/source/boxes/shopping_cart.php
/templates/tpl_modified_responsive/source/boxes/shopping_cart.php
/templates/xtc5/source/boxes/shopping_cart.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/shopping_cart.php

Entferne den folgenden Code:

  // include needed files
  require_once (DIR_FS_INC.'xtc_recalculate_price.inc.php');

Korrektur der Tabellen-Syntax im Warenkorb in Template tpl_modified[Bearbeiten]

  • zwingend notwendig

Betrifft nur das Template tpl_modified

Aus dem original tpl_modified ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/order_details.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/order_details.html

Suche:

          {if $SELECT_COUNTRY}
          <td class="ord_table_right" colspan="2">{$SELECT_COUNTRY}
          {/if}

Ersetze mit:

          {if $SELECT_COUNTRY}
          <tr>
            <td class="ord_table_right" colspan="2">{$SELECT_COUNTRY}</td>
          </tr>
          {/if}

Austausch von unveil durch lazysizes in Template tpl_modified[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified

Aus dem original tpl_modified sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/javascript/general_bottom.js.php
/templates/tpl_modified/javascript/jquery.lazysizes.min.js
/templates/tpl_modified/module/includes/product_info_include.html
/templates/tpl_modified/module/includes/product_listing_include.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/module/wishlist.html
/templates/tpl_modified/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/general_bottom.js.php

Suche:

  DIR_TMPL_JS.'jquery.unveil.min.js',

Ersetze mit:

  DIR_TMPL_JS.'jquery.lazysizes.min.js',

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/includes/product_info_include.html
/templates/tpl_modified/module/includes/product_listing_include.html
/templates/tpl_modified/module/wishlist.html

Suche (2x pro Datei):

        <a href="{$module_data.PRODUCTS_LINK}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

        <a href="{$module_data.PRODUCTS_LINK}"><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME|onlytext}" title="{$module_data.PRODUCTS_NAME|onlytext}" /></a>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

Suche:

            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Entferne den folgenden Code:

.unveil {
  display: none;
}

Suche:

a img {
  border:none;
  outline:none;
}

Füge danach ein:

.lazyload,
.lazyloading {
  opacity: 0;
}
.lazyloaded {
  opacity: 1;
  -webkit-transition: opacity 1s ease;
  -moz-transition: opacity 1s ease;
  -o-transition: opacity 1s ease;
  transition: opacity 1s ease;
}

Colorbox Popup Bilder erweitert um Alt-tag[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

Suche:

        <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img itemprop="image" src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

        <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'><img itemprop="image" src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Suche:

            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Für Template tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

        <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img itemprop="image" src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Ersetze mit:

        <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'><img itemprop="image" src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>

Suche:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}">

Ersetze mit:

              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'>

Überarbeitung der OIL.js Cookie Consent Lösung für Button "Nur Notwendige"[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/css/cookieconsent.css
/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified/javascript/oil.min.js
/templates/tpl_modified_responsive/css/cookieconsent.css
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/javascript/oil.min.js
/templates/xtc5/css/cookieconsent.css
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/oil.min.js

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/css/cookieconsent.css

Suche:

.as-oil__btn-optin{text-transform:uppercase;min-width:160px;min-height:42px;margin:0;padding:.5rem 1rem;font-size:0.9rem;font-weight:700;border:none;border-radius:3px;outline:none;cursor:pointer;color:#fff;background-color:#444;transition:opacity .8s ease 0s}

Ersetze mit:

.as-oil__btn-optin, .as-oil__btn-only-essentials{text-transform:uppercase;min-width:175px;min-height:42px;margin:0;padding:.5rem 1rem;font-size:0.9rem;font-weight:700;border:none;border-radius:3px;outline:none;cursor:pointer;color:#fff;background-color:#444;transition:opacity .8s ease 0s}
.as-oil__btn-only-essentials{margin:10px 0 0 0;}

Suche:

.as-oil__btn-optin:hover{color:#f2f2f2;background-color:#222}

Ersetze mit:

.as-oil__btn-optin:hover, .as-oil__btn-only-essentials:hover{color:#f2f2f2;background-color:#222}

Suche:

.as-oil__btn-cpc{color:#999;float:right;min-height:auto;min-width:135px;margin:.75rem 0;padding:4px;font-size:14px;font-weight:400;text-decoration:none;background-color:transparent;border:none;border-bottom:1px solid;border-radius:0;cursor:pointer}

Ersetze mit:

.as-oil__btn-cpc{color:#999;float:right;min-height:auto;min-width:175px;margin:.75rem 0;padding:4px;font-size:14px;font-weight:400;text-decoration:none;background-color:transparent;border:none;border-bottom:1px solid;border-radius:0;cursor:pointer}

Suche:

  .as-oil__btn-optin{width:100%;min-width:auto;padding:0}

Ersetze mit:

  .as-oil__btn-optin, .as-oil__btn-only-essentials{width:100%;min-width:auto;padding:0;margin:0}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/cookieconsent.js.php

Suche:

      "label_button_yes_all": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_YES_ALL; ?>",

Füge danach ein:

      "label_button_only_essentials": "<?php echo TEXT_COOKIE_CONSENT_LABEL_BUTTON_ESSENTIALS_ONLY; ?>",

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/oil.min.js

Inhalt der Datei ersetzen mit:

/*! 1.3.6-SNAPSHOT *//*oil.js Licensed under GPL 2.0 (https://opensource.org/licenses/GPL-2.0)*/
!function(e){function t(t){for(var n,i,r=t[0],a=t[1],s=0,l=[];s<r.length;s++)i=r[s],o[i]&&l.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(c&&c(t);l.length;)l.shift()()}var n={},o={0:0};function i(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=e,i.c=n,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var r=window.oilJsonp=window.oilJsonp||[],a=r.push.bind(r);r.push=t,r=r.slice();for(var s=0;s<r.length;s++)t(r[s]);var c=a;i(i.s=122)}([function(e,t,n){var o=n(36)("wks"),i=n(19),r=n(1).Symbol,a="function"==typeof r;(e.exports=function(e){return o[e]||(o[e]=a&&r[e]||(a?r:i)("Symbol."+e))}).store=o},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OIL_SPEC={CMP_ID:80,CMP_VERSION:1,LATEST_CONSENT_STRING_VERSION:1},t.OIL_CONFIG={ATTR_CONFIG_VERSION:"config_version",ATTR_ACTIVATE_POI:"poi_activate_poi",ATTR_HUB_ORIGIN:"poi_hub_origin",ATTR_HUB_PATH:"poi_hub_path",ATTR_PUBLIC_PATH:"publicPath",ATTR_HUB_LOCATION:"poi_hub_location",ATTR_PREVIEW_MODE:"preview_mode",ATTR_COOKIE_EXPIRES_IN_DAYS:"cookie_expires_in_days",ATTR_TIMESTAMP:"timestamp",ATTR_PRIVACY_PAGE_URL:"privacy_page_url",ATTR_POI_GROUP_NAME:"poi_group_name",ATTR_ADVANCED_SETTINGS:"advanced_settings",ATTR_PERSIST_MINIMUM_TRACKING:"persist_min_tracking",ATTR_LOCALE:"locale",ATTR_CPC_TYPE:"cpc_type",ATTR_THEME:"theme",ATTR_TIMEOUT:"timeout",ATTR_LOCALE_URL:"locale_url",ATTR_IAB_VENDOR_LIST_URL:"iabVendorListUrl",ATTR_CUSTOM_PURPOSES:"customPurposes",ATTR_CUSTOM_VENDOR_LIST_URL:"customVendorListUrl",ATTR_IAB_VENDOR_BLACKLIST:"iabVendorBlacklist",ATTR_IAB_VENDOR_WHITELIST:"iabVendorWhitelist",ATTR_SHOW_LIMITED_VENDORS_ONLY:"show_limited_vendors_only",ATTR_ADVANCED_SETTINGS_PURPOSES_DEFAULT:"advanced_settings_purposes_default",ATTR_DEFAULT_TO_OPTIN:"default_to_optin",ATTR_GDPR_APPLIES_GLOBALLY:"gdpr_applies_globally",ATTR_GDPR_APPLIES:"gdpr_applies",ATTR_REQUIRE_OPTOUT_CONFIRM:"require_optout_confirm",ATTR_INFO_BANNER_ONLY:"info_banner_only",ATTR_SUPPRESS_COOKIES:"suppress_cookies"},t.OIL_CONFIG_CPC_TYPES={CPC_TYPE_STANDARD:"standard",CPC_TYPE_TABS:"tabs"},t.OIL_CONFIG_DEFAULT_VERSION=0,t.EVENT_NAME_OPT_IN="oil_optin_done",t.EVENT_NAME_OPT_IN_BUTTON_CLICKED="oil_optin_done_button_clicked",t.EVENT_NAME_SOI_OPT_IN="oil_soi_optin_done",t.EVENT_NAME_POI_OPT_IN="oil_poi_optin_done",t.EVENT_NAME_OPT_OUT="oil_optout_done",t.EVENT_NAME_AS_PRIVACY_SELECTED="oil_as_cpc_privacy_selected",t.EVENT_NAME_ADVANCED_SETTINGS="oil_click_advanced_settings",t.EVENT_NAME_TIMEOUT="oil_hide_layer",t.EVENT_NAME_COMPANY_LIST="oil_click_company_list",t.EVENT_NAME_THIRD_PARTY_LIST="oil_click_thirdparty_list",t.EVENT_NAME_BACK_TO_MAIN="oil_click_back_to_main",t.EVENT_NAME_NO_COOKIES_ALLOWED="oil_no_cookies_allowed",t.EVENT_NAME_OIL_SHOWN="oil_shown",t.EVENT_NAME_HAS_OPTED_IN="oil_has_optedin",t.PRIVACY_MINIMUM_TRACKING=0,t.PRIVACY_FULL_TRACKING=1,t.POI_FALLBACK_NAME="fallback",t.POI_FALLBACK_GROUP_NAME="group_name",t.POI_PAYLOAD="payload",t.OIL_PAYLOAD_PRIVACY="p",t.OIL_PAYLOAD_VERSION="v",t.OIL_PAYLOAD_LOCALE_VARIANT_NAME="lvn",t.OIL_PAYLOAD_LOCALE_VARIANT_VERSION="lvv",t.OIL_PAYLOAD_CUSTOM_PURPOSES="cp",t.OIL_PAYLOAD_CUSTOM_VENDORLIST_VERSION="cvl",t.OIL_PAYLOAD_CONFIG_VERSION="cv",t.DATAQA_PRIVACY_PAGE="oil-PrivacyPage",t.JS_CLASS_BUTTON_OPTIN="as-js-optin",t.JS_CLASS_BUTTON_ONLY_ESSENTIALS="as-js-only-essentials",t.JS_CLASS_BUTTON_OILBACK="as-js-oilback",t.JS_CLASS_BUTTON_PROCEED="as-js-proceed",t.JS_CLASS_BUTTON_CANCEL="as-js-cancel",t.JS_CLASS_BUTTON_ADVANCED_SETTINGS="as-js-advanced-settings",t.CSS_CLASS_OPTOUT_DIALOG="as-oil-optout-confirm",t.DATA_CONTEXT_YES="YES",t.DATA_CONTEXT_ONLY_ESSENTIALS="ONLYESSENTIALS",t.DATA_CONTEXT_CANCEL="CANCEL",t.DATA_CONTEXT_PROCEED="PROCEED",t.DATA_CONTEXT_ADVANCED_SETTINGS="ADVANCEDSETTINGS",t.DATA_CONTEXT_BACK="BACK",t.OIL_GLOBAL_OBJECT_NAME="AS_OIL",t.MANAGED_TAG_IDENTIFIER="as-oil",t.MANAGED_TAG_IDENTIFIER_ATTRIBUTE="data-managed",t.MANAGED_TAG_PURPOSES_ATTRIBUTE="data-purposes"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.logError=function(){((0,o.isDev)()||(0,i.isVerboseCookieSet)())&&window.console&&s(window.console.error,arguments)},t.logInfo=function(){((0,o.isDev)()||(0,i.isVerboseCookieSet)())&&window.console&&s(window.console.info,arguments)},t.logWarn=function(){((0,o.isDev)()||(0,i.isVerboseCookieSet)())&&window.console&&s(window.console.warn,arguments)},t.logPreviewInfo=function(){((0,o.isDev)()||(0,r.isPreviewMode)()||(0,i.isPreviewCookieSet)()||(0,i.isVerboseCookieSet)())&&s(window.console.info,arguments)};var o=n(5),i=n(14),r=n(4),a="OIL: ";function s(e,t){window.console||(window.console={}),window.console.log||(window.console.log=function(){});var n=[a].concat(Array.prototype.slice.call(t));if(e)try{e.apply(window.console,n)}catch(t){try{e(c(n))}catch(e){}}else window.console.log(c(n))}function c(e){for(var t="",n=0;n<e.length;n++)t+=e[n];return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigValue=c,t.getConfigVersion=function(){return c(o.OIL_CONFIG.ATTR_CONFIG_VERSION,o.OIL_CONFIG_DEFAULT_VERSION)},t.isPreviewMode=function(){return c(o.OIL_CONFIG.ATTR_PREVIEW_MODE,!1)},t.isPoiActive=function(){return c(o.OIL_CONFIG.ATTR_ACTIVATE_POI,!1)},t.getHubOrigin=l,t.getHubPath=u,t.getPublicPath=d,t.getLocaleUrl=f,t.getIabVendorListUrl=function(){return c(o.OIL_CONFIG.ATTR_IAB_VENDOR_LIST_URL,"https://vendorlist.consensu.org/vendorlist.json")},t.getIabVendorBlacklist=function(){return c(o.OIL_CONFIG.ATTR_IAB_VENDOR_BLACKLIST,void 0)},t.getCustomVendorListUrl=function(){return c(o.OIL_CONFIG.ATTR_CUSTOM_VENDOR_LIST_URL,void 0)},t.getIabVendorWhitelist=function(){return c(o.OIL_CONFIG.ATTR_IAB_VENDOR_WHITELIST,void 0)},t.setIabVendorBlacklist=function(e){s(o.OIL_CONFIG.ATTR_IAB_VENDOR_BLACKLIST,e)},t.setIabVendorWhitelist=function(e){s(o.OIL_CONFIG.ATTR_IAB_VENDOR_WHITELIST,e)},t.getPoiGroupName=function(){return c(o.OIL_CONFIG.ATTR_POI_GROUP_NAME,"default")},t.getCookieExpireInDays=function(){return c(o.OIL_CONFIG.ATTR_COOKIE_EXPIRES_IN_DAYS,31)},t.getLocaleVariantName=p,t.getLanguage=function(){return _(p())},t.getLanguageFromLocale=_,t.getHubLocation=function(){return l()+u()},t.getPoiListDirectory=function(){var e,t=l();return-1!==(e=t).indexOf("/",e.length-"/".length)?t.replace(/\/$/,"/poi-lists"):t+"/poi-lists"},t.resetConfiguration=function(){(0,r.setGlobalOilObject)("CONFIG",null)},t.getCustomPurposes=v,t.getCustomPurposeIds=function(){return v().map(function(e){return e.id})},t.getAdvancedSettingsPurposesDefault=function(){return c(o.OIL_CONFIG.ATTR_ADVANCED_SETTINGS_PURPOSES_DEFAULT,!1)},t.getDefaultToOptin=function(){return c(o.OIL_CONFIG.ATTR_DEFAULT_TO_OPTIN,!1)},t.getLocale=g,t.setLocale=function(e){s(o.OIL_CONFIG.ATTR_LOCALE,e)},t.gdprApplies=function(){return c(o.OIL_CONFIG.ATTR_GDPR_APPLIES_GLOBALLY,!0)||c(o.OIL_CONFIG.ATTR_GDPR_APPLIES,!1)},t.setGdprApplies=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];s(o.OIL_CONFIG.ATTR_GDPR_APPLIES,e)},t.getShowLimitedVendors=function(){return c(o.OIL_CONFIG.ATTR_SHOW_LIMITED_VENDORS_ONLY,!1)},t.isInfoBannerOnly=h,t.suppressCookies=m,t.isAmpModeActivated=function(){return h()&&m()};var o=n(2),i=n(3),r=n(5);function a(){if(!(0,r.getGlobalOilObject)("CONFIG")){var e=document.querySelector('script[type="application/configuration"]#oil-configuration');null===e&&(0,i.logInfo)("Using default config"),(0,r.setGlobalOilObject)("CONFIG",function(e){var t={};try{e&&e.text&&(t=JSON.parse(e.text),(0,i.logInfo)("Parsed config",t))}catch(e){(0,i.logError)("Error config",e)}return t}(e)),(0,r.setGlobalOilObject)("CONFIG_ATTRIBUTES",o.OIL_CONFIG),c(o.OIL_CONFIG.ATTR_CONFIG_VERSION,void 0)||(0,i.logError)('Your configuration is faulty - it must contain a "config_version" property. See the oil.js documentation for details.'),(t=g())&&"string"!=typeof t||void 0!==f()?t&&(0,r.isObject)(t)&&(t.localeId||(0,i.logError)('Your configuration is faulty - "locale" object misses "localeId" property. See the oil.js documentation for details.'),t.version||(0,i.logError)('Your configuration is faulty - "locale" object misses "version" property. See the oil.js documentation for details.')):(0,i.logError)("Incorrect or missing locale parameter found. Please review documentation on how to set the locale object in your configuration. Using default locale."),d()&&(n.p=d())}var t;return(0,r.getGlobalOilObject)("CONFIG")}function s(e,t){a()[e]=t}function c(e,t){var n=a();return n&&void 0!==n[e]?n[e]:t}function l(){var e=c(o.OIL_CONFIG.ATTR_HUB_ORIGIN,"https://unpkg.com");return e?"/"===e||-1!==e.indexOf("http")?e:location.protocol+e:null}function u(){return c(o.OIL_CONFIG.ATTR_HUB_PATH,"/@ideasio/oil.js@"+r.OilVersion.getLatestReleaseVersion()+"/release/current/hub.html")}function d(){var e=c(o.OIL_CONFIG.ATTR_PUBLIC_PATH,void 0);return e&&"/"!==e.substr(-1)&&(e+="/"),e}function f(){return c(o.OIL_CONFIG.ATTR_LOCALE_URL,void 0)}function p(){var e=g();return e||(e="enEN_01"),e&&(0,r.isObject)(e)?e.localeId?e.localeId:"enEN_01":e}function _(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en").substring(0,2)}function v(){return c(o.OIL_CONFIG.ATTR_CUSTOM_PURPOSES,[])}function g(){return c(o.OIL_CONFIG.ATTR_LOCALE,void 0)}function h(){return c(o.OIL_CONFIG.ATTR_INFO_BANNER_ONLY,!1)}function m(){return c(o.OIL_CONFIG.ATTR_SUPPRESS_COOKIES,!1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OilVersion=void 0,t.isProd=function(){return!0},t.isDev=function(){return!1},t.getOrigin=a,t.sendEventToHostSite=function(e){window.postMessage(e,a()),window.AS_OIL.eventCollection=window.AS_OIL.eventCollection||[],window.AS_OIL.eventCollection.push({name:e,timestamp:(new Date).getTime()}),(0,o.logInfo)("Sent postmessage event: "+e)},t.removeMessageListener=function(e){u(f,e,!1)},t.registerMessageListener=function(e){l(d,e,!1)},t.getClientTimestamp=function(){return Date.now||(Date.now=function(){return(new Date).getTime()}),Date.now()},t.arrayContains=function(e,t){for(var n=e.length,o=0;o<n;o++)if(e[o]===t)return!0;return!1},t.arrayContainsArray=function(e,t){if(!e||!t)return!1;for(var n={},o=0;o<e.length;o++)n[e[o]]||(n[e[o]]=0),n[e[o]]++;for(var i=0;i<t.length;i++)if(!n[t[i]]||--n[t[i]]<0)return!1;return!0},t.setGlobalOilObject=function(e,t){window[i.OIL_GLOBAL_OBJECT_NAME]||(window[i.OIL_GLOBAL_OBJECT_NAME]={}),window[i.OIL_GLOBAL_OBJECT_NAME][e]=t},t.getGlobalOilObject=function(e){return window[i.OIL_GLOBAL_OBJECT_NAME]?window[i.OIL_GLOBAL_OBJECT_NAME][e]:void 0},t.getLocaleVariantVersion=function(){var e=(0,r.getLocale)();return e&&e.version?e.version:0},t.getCommandCollection=function(){return window.__cmp?window.__cmp.commandCollection:void 0},t.fetchJsonData=function(e){return new Promise(function(t,n){var i=new XMLHttpRequest;(0,o.logInfo)("Fetching data from url: "+e),i.open("GET",e),i.onreadystatechange=function(){if(i.readyState===this.DONE)if(200===i.status)t(JSON.parse(i.responseText));else{var o=void 0;if(0!==i.status){var r=JSON.parse(i.responseText);o=new Error(r.errorMessage)}else o=new Error("Connection error occurred while fetching JSON data from "+e+"!");n(o)}},i.send()})},t.isObject=function(e){return e instanceof Object&&e.constructor===Object};var o=n(3),i=n(2),r=n(4);function a(){return window.location.origin||(window.location.origin=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")),window.location.origin}var s=window.addEventListener?"addEventListener":"attachEvent",c=window.removeEventListener?"removeEventListener":"removeEvent",l=window[s],u=window[c],d="attachEvent"===s?"onmessage":"message",f="removeEvent"===c?"onmessage":"message";t.OilVersion={get:function(){return"1.3.6-SNAPSHOT"},getLatestReleaseVersion:function(){return"1.3.6"}}},function(e,t,n){var o=n(7);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var o=n(1),i=n(9),r=n(15),a=n(24),s=n(25),c=function(e,t,n){var l,u,d,f,p=e&c.F,_=e&c.G,v=e&c.S,g=e&c.P,h=e&c.B,m=_?o:v?o[t]||(o[t]={}):(o[t]||{}).prototype,O=_?i:i[t]||(i[t]={}),T=O.prototype||(O.prototype={});for(l in _&&(n=t),n)d=((u=!p&&m&&void 0!==m[l])?m:n)[l],f=h&&u?s(d,o):g&&"function"==typeof d?s(Function.call,d):d,m&&a(m,l,d,e&c.U),O[l]!=d&&r(O,l,f),g&&T[l]!=d&&(T[l]=d)};o.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){var o=n(6),i=n(41),r=n(33),a=Object.defineProperty;t.f=n(11)?Object.defineProperty:function(e,t,n){if(o(e),t=r(t,!0),o(n),i)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(18)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var o=n(43),i=n(34);e.exports=function(e){return o(i(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.setSessionCookie=g,t.setDomainCookie=h,t.getOilCookie=m,t.hasOutdatedOilCookie=O,t.findCookieConsideringCookieVersions=T,t.getSoiCookie=function(){var e=T(S(),P);return(0,a.logInfo)("Current Oil data from domain cookie: ",e),e},t.setSoiCookieWithPoiCookieData=function(e){return new Promise(function(t,n){(0,u.loadVendorListAndCustomVendorList)().then(function(){var n=S(),o=void 0,i=e.configVersion||n.configVersion;if(e.consentString)o=e.consentString;else{var r=n.defaultCookieContent.consentData;r.setPurposesAllowed(e.consentData.allowedPurposeIds),r.setVendorsAllowed(e.consentData.allowedVendorIds),r.setConsentLanguage(e.consentData.consentLanguage),o=r.getConsentString()}var a={opt_in:!0,version:n.defaultCookieContent.version,localeVariantName:n.defaultCookieContent.localeVariantName,localeVariantVersion:n.defaultCookieContent.localeVariantVersion,customVendorListVersion:e.customVendorListVersion,customPurposes:e.customPurposes,consentString:(0,s.isInfoBannerOnly)()?"":o,configVersion:i};h(n.name,a,n.expires),t(a)}).catch(function(e){return n(e)})})},t.buildSoiCookie=A,t.setSoiCookie=function(e){return new Promise(function(t,n){A(e).then(function(e){h(_,e,(0,s.getCookieExpireInDays)()),t(e)}).catch(function(e){return n(e)})})},t.setPreviewCookie=function(){g(f,"true")},t.setVerboseCookie=function(){g(p,"true")},t.removePreviewCookie=function(){r.default.remove(f)},t.removeVerboseCookie=function(){r.default.remove(p)},t.isPreviewCookieSet=function(){return"true"===r.default.get(f)},t.isVerboseCookieSet=function(){return"true"===r.default.get(p)},t.removeSubscriberCookies=L,t.removeHubCookie=function(e){L(),e&&r.default.remove(e+"_"+_)},t.removePurposesCookies=E,t.isBrowserCookieEnabled=function(){r.default.set("oil_cookie_exp","cookiedata");var e=b("oil_cookie_exp");return r.default.remove("oil_cookie_exp"),e},t.getStandardPurposesWithConsent=y,t.getCustomPurposesWithConsent=I;var i,r=(i=n(40))&&i.__esModule?i:{default:i},a=n(3),s=n(4),c=n(5),l=n(2),u=n(17),d=n(61).ConsentString,f="oil_preview",p="oil_verbose",_="oil_data",v="oil_data_session";function g(e,t){r.default.set(e,t)}function h(e,t,n){delete t.consentData,r.default.set(e,t,{expires:n})}function m(e){var t=r.default.getJSON(e.name);return t.consentData=new d(t.consentString),t}function O(e){return C(e.name,e.outdated_cookie_content_keys)}function T(e,t){var n=void 0;return function(e){return C(e.name,Object.keys(e.defaultCookieContent))}(e)?n=m(e):function(e){var t=Object.keys(e.defaultCookieContent);return t.splice(t.indexOf("configVersion"),1),C(e.name,t)}(e)?(n=m(e)).configVersion=l.OIL_CONFIG_DEFAULT_VERSION:n=O(e)?t(e):e.defaultCookieContent,n}function A(e){return new Promise(function(t,n){(0,u.loadVendorListAndCustomVendorList)().then(function(){var n=S(),o=n.defaultCookieContent.consentData;o.setGlobalVendorList((0,u.getVendorList)()),o.setPurposesAllowed(y(e)),o.setVendorsAllowed((0,u.getLimitedVendorIds)());for(var i=(0,u.getPurposes)(),r=0;r<i.length;r++)i[r].cookies&&!e[i[r].id]&&E(i[r].cookies);var a={opt_in:!0,version:n.defaultCookieContent.version,localeVariantName:n.defaultCookieContent.localeVariantName,localeVariantVersion:n.defaultCookieContent.localeVariantVersion,customVendorListVersion:(0,u.getCustomVendorListVersion)(),customPurposes:I(e),consentString:(0,s.isInfoBannerOnly)()?"":o.getConsentString(),configVersion:n.defaultCookieContent.configVersion};t(a)}).catch(function(e){return n(e)})})}function L(){r.default.remove(_),r.default.remove(v)}function E(e){Array.isArray(e)||(e=[e]);for(var t=document.cookie?document.cookie.split("; "):[],n=0;n<t.length;n++)for(var o=t[n].split("=")[0],i=0;i<e.length;i++)if(o.indexOf(e[i])===Number(0))for(var a=window.location.hostname.split(".");a.length>1;){for(var s=window.location.pathname.split("/");s.length>0;){var c=s.join("/");""===c&&(c="/"),r.default.remove(o),r.default.remove(o,{path:"",domain:""}),r.default.remove(o,{path:c,domain:a.join(".")}),r.default.remove(o,{path:c,domain:"."+a.join(".")}),s.pop()}a.shift()}}function y(e){return"object"===(void 0===e?"undefined":o(e))?(0,u.getPurposes)().map(function(e){return e.id}).filter(function(t){return e[t]}):1===e?(0,u.getPurposes)().map(function(e){return e.id}):[]}function I(e,t){return t||(t=(0,s.getCustomPurposes)()),"object"===(void 0===e?"undefined":o(e))?t.map(function(e){return e.id}).filter(function(t){return e[t]}):1===e?t.map(function(e){return e.id}):[]}function b(e){return void 0!==r.default.get(e)}function C(e,t){return function(e,t){if("string"==typeof e&&Array.isArray(t)&&b(e)){var n=r.default.getJSON(e);return t.every(function(e){return"consentData"===e||n.hasOwnProperty(e)})}return!1}(e,t)}function S(){var e=new d;return e.setCmpId(l.OIL_SPEC.CMP_ID),e.setCmpVersion(l.OIL_SPEC.CMP_VERSION),e.setConsentScreen(1),e.setConsentLanguage((0,s.getLanguage)()),e.setPurposesAllowed((0,s.getDefaultToOptin)()?(0,u.getPurposes)().map(function(e){return e.id}):[]),e.setVendorsAllowed((0,s.getDefaultToOptin)()?(0,u.getLimitedVendorIds)():[]),e.setGlobalVendorList((0,u.getVendorList)()),{name:_,expires:(0,s.getCookieExpireInDays)(),defaultCookieContent:{opt_in:!1,version:c.OilVersion.get(),localeVariantName:(0,s.getLocaleVariantName)(),localeVariantVersion:(0,c.getLocaleVariantVersion)(),customPurposes:I((0,s.getDefaultToOptin)()?1:0),consentData:e,consentString:(0,s.isInfoBannerOnly)()?"":e.getConsentString(),configVersion:(0,s.getConfigVersion)()},outdated_cookie_content_keys:["opt_in","timestamp","version","localeVariantName","localeVariantVersion","privacy"]}}function P(e){var t=r.default.getJSON(e.name),n=e.defaultCookieContent;return n.opt_in=t.opt_in,n.version=t.version,n.localeVariantName=t.localeVariantName,n.localeVariantVersion=t.localeVariantVersion,n.configVersion=l.OIL_CONFIG_DEFAULT_VERSION,n.customPurposes=I(t.privacy),n.consentData.setConsentLanguage((0,s.getLanguageFromLocale)(t.localeVariantName)),n.consentData.setPurposesAllowed(y(t.privacy)),n.consentData.setVendorsAllowed((0,u.getLimitedVendorIds)()),n.consentData.setGlobalVendorList((0,u.getVendorList)()),n.consentString=(0,s.isInfoBannerOnly)()?"":n.consentData.getConsentString(),n}},function(e,t,n){var o=n(10),i=n(23);e.exports=n(11)?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pendingVendorListPromise=t.cachedCustomVendorList=t.cachedVendorList=t.cachedCategoriesList=t.DEFAULT_CUSTOM_VENDOR_LIST=t.DEFAULT_VENDOR_LIST=void 0,t.loadVendorListAndCustomVendorList=function(){return l&&u?new Promise(function(e){e()}):d||(t.pendingVendorListPromise=d=new Promise(function(e){var n=(0,o.getIabVendorListUrl)();(0,r.fetchJsonData)(n).then(function(n){var o;(o=n).vendors=o.vendors.sort(function(e,t){return e.id-t.id}),t.cachedVendorList=l=n,t.cachedCategoriesList=c=n,f().then(function(){t.pendingVendorListPromise=d=null,e()})}).catch(function(n){(0,i.logError)("OIL getVendorList failed and returned error: "+n+". Falling back to default vendor list!"),f().then(function(){t.pendingVendorListPromise=d=null,e()})})}),d)},t.getCategories=function(){return c?c.categories:O(a.categoryIds)},t.getPurposes=p,t.getPurposeIds=function(){return p().map(function(e){return e.id})},t.getVendors=_,t.getVendorIds=v,t.getVendorList=function(){return l||{vendorListVersion:a.vendorListVersion,lastUpdated:a.lastUpdated,vendors:O(m()),purposes:O(a.purposeIds),features:[],isDefault:!0}},t.getCustomVendorList=function(){return u||s},t.getCustomVendorListVersion=function(){return u&&!u.isDefault?u.vendorListVersion:void 0},t.clearVendorListCache=function(){t.cachedVendorList=l=void 0,t.cachedCustomVendorList=u=void 0,t.pendingVendorListPromise=d=null},t.getVendorsToDisplay=function(){return(0,o.getShowLimitedVendors)()?g():_()},t.getLimitedVendors=g,t.getLimitedVendorIds=h,t.getPurposesOfCategory=function(e){var t=[];return(l?l.purposes:O(a.purposeIds)).forEach(function(n){n.category===e&&t.push(n)}),t};var o=n(4),i=n(3),r=n(5),a=t.DEFAULT_VENDOR_LIST={vendorListVersion:36,maxVendorId:380,lastUpdated:"2018-05-30T16:00:15Z",purposeIds:[1,2,3,4,5],categoryIds:[1,2,3]},s=t.DEFAULT_CUSTOM_VENDOR_LIST={vendorListVersion:-1,isDefault:!0,vendors:[]},c=t.cachedCategoriesList=void 0,l=t.cachedVendorList=void 0,u=t.cachedCustomVendorList=void 0,d=t.pendingVendorListPromise=null;function f(){return new Promise(function(e){var n=(0,o.getCustomVendorListUrl)();n?(0,r.fetchJsonData)(n).then(function(n){t.cachedCustomVendorList=u=n,e()}).catch(function(n){t.cachedCustomVendorList=u=s,(0,i.logError)("OIL getCustomVendorList failed and returned error: "+n+". Falling back to default custom vendor list!"),e()}):(t.cachedCustomVendorList=u=s,e())})}function p(){return l?l.purposes:O(a.purposeIds)}function _(){return l?l.vendors:O(m())}function v(){return _().map(function(e){return e.id})}function g(){var e=_(),t=h();return(0,i.logInfo)("limiting vendors"),e.filter(function(e){return t.indexOf(e.id)>-1})}function h(){var e=void 0;e=l?v():m();var t=(0,o.getIabVendorWhitelist)(),n=(0,o.getIabVendorBlacklist)();return t&&t.length>0?e=e.filter(function(e){return t.indexOf(e)>-1}):n&&n.length>0&&(e=e.filter(function(e){return-1===n.indexOf(e)})),e}function m(){return function(e,t){for(;e--;)t[e]=e+1;return t}(a.maxVendorId,[])}function O(e){return e.map(function(e){return{id:e}})}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},function(e,t,n){var o=n(42),i=n(37);e.exports=Object.keys||function(e){return o(e,i)}},function(e,t){e.exports=!1},function(e,t){t.f={}.propertyIsEnumerable},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var o=n(1),i=n(15),r=n(12),a=n(19)("src"),s=Function.toString,c=(""+s).split("toString");n(9).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(r(n,"name")||i(n,"name",t)),e[t]!==n&&(l&&(r(n,a)||i(n,a,e[t]?""+e[t]:c.join(String(t)))),e===o?e[t]=n:s?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(e,t,n){var o=n(26);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,i){return e.call(t,n,o,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var o=n(44),i=Math.min;e.exports=function(e){return e>0?i(o(e),9007199254740991):0}},function(e,t){e.exports={}},function(e,t,n){var o=n(10).f,i=n(12),r=n(0)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,r)&&o(e,r,{configurable:!0,value:t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPersistMinimumTracking=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_PERSIST_MINIMUM_TRACKING,!0)},t.isAdvancedSettings=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_ADVANCED_SETTINGS,!1)},t.getTimeOutValue=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_TIMEOUT,r)},t.getTheme=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_THEME,"light")},t.getCpcType=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_CPC_TYPE,o.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD)},t.getLabel=function(e){return a(e,e)},t.getLabelWithDefault=a,t.isOptoutConfirmRequired=function(){return(0,i.getConfigValue)(o.OIL_CONFIG.ATTR_REQUIRE_OPTOUT_CONFIRM,!1)};var o=n(2),i=n(4),r=60;function a(e,t){var n=(0,i.getLocale)();return(0,i.getConfigValue)(e,n&&n.texts&&n.texts[e]?n.texts[e]:t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OIL_LABELS={ATTR_LABEL_INTRO_HEADING:"label_intro_heading",ATTR_LABEL_INTRO:"label_intro",ATTR_LABEL_BUTTON_YES:"label_button_yes",ATTR_LABEL_BUTTON_YES_ALL:"label_button_yes_all",ATTR_LABEL_BUTTON_ONLY_ESSENTIALS:"label_button_only_essentials",ATTR_LABEL_BUTTON_BACK:"label_button_back",ATTR_LABEL_BUTTON_ADVANCED_SETTINGS:"label_button_advanced_settings",ATTR_LABEL_POI_GROUP_LIST_HEADING:"label_poi_group_list_heading",ATTR_LABEL_POI_GROUP_LIST_TEXT:"label_poi_group_list_text",ATTR_LABEL_THIRD_PARTY:"label_third_party",ATTR_LABEL_THIRD_PARTY_LIST_HEADING:"label_thirdparty_list_heading",ATTR_LABEL_THIRD_PARTY_LIST_TEXT:"label_thirdparty_list_text",ATTR_LABEL_CUSTOM_THIRD_PARTY_HEADING:"label_custom_thirdparty_heading",ATTR_LABEL_CPC_HEADING:"label_cpc_heading",ATTR_LABEL_CPC_TEXT:"label_cpc_text",ATTR_LABEL_CPC_ACTIVATE_ALL:"label_cpc_activate_all",ATTR_LABEL_CPC_DEACTIVATE_ALL:"label_cpc_deactivate_all",ATTR_LABEL_CPC_PURPOSE_DESC:"label_cpc_purpose_desc",ATTR_LABEL_CPC_PURPOSE_OPTOUT_HEADING:"label_cpc_purpose_optout_confirm_heading",ATTR_LABEL_CPC_PURPOSE_OPTOUT_TEXT:"label_cpc_purpose_optout_confirm_text",ATTR_LABEL_CPC_PURPOSE_OPTOUT_PROCEED:"label_cpc_purpose_optout_confirm_proceed",ATTR_LABEL_CPC_PURPOSE_OPTOUT_CANCEL:"label_cpc_purpose_optout_confirm_cancel",ATTR_LABEL_NO_COOKIES_HEADING:"label_nocookie_head",ATTR_LABEL_NO_COOKIES_TEXT:"label_nocookie_text",ATTR_LABEL_IMPRINT_LINKS:"label_imprint_links"},t.OPTIONAL_LABEL_PREFIX="label_cpc_purpose"},function(e,t,n){var o=n(7),i=n(1).document,r=o(i)&&o(i.createElement);e.exports=function(e){return r?i.createElement(e):{}}},function(e,t,n){var o=n(7);e.exports=function(e,t){if(!o(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!o(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!o(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!o(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t,n){var o=n(36)("keys"),i=n(19);e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e,t,n){var o=n(9),i=n(1),r=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:o.version,mode:n(21)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var o=n(34);e.exports=function(e){return Object(o(e))}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var o,i,r;
/*!
 * JavaScript Cookie v2.1.4
 * https://github.com/js-cookie/js-cookie
 *
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 * Released under the MIT license
 */
void 0===(i="function"==typeof(o=r=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var o in n)t[o]=n[o]}return t}return function t(n){function o(t,i,r){var a;if("undefined"!=typeof document){if(arguments.length>1){if("number"==typeof(r=e({path:DIR_WS_CATALOG},o.defaults,r)).expires){var s=new Date;s.setMilliseconds(s.getMilliseconds()+864e5*r.expires),r.expires=s}r.expires=r.expires?r.expires.toUTCString():"";try{a=JSON.stringify(i),/^[\{\[]/.test(a)&&(i=a)}catch(e){}i=n.write?n.write(i,t):encodeURIComponent(String(i)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=(t=(t=encodeURIComponent(String(t))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var c="";for(var l in r)r[l]&&(c+="; "+l,!0!==r[l]&&(c+="="+r[l]));return c+="; SameSite=Lax;",c+="undefined"!=typeof SetSecCookie&&1==SetSecCookie?" Secure;":"",document.cookie=t+"="+i+c}t||(a={});for(var u=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,f=0;f<u.length;f++){var p=u[f].split("="),_=p.slice(1).join("=");'"'===_.charAt(0)&&(_=_.slice(1,-1));try{var v=p[0].replace(d,decodeURIComponent);if(_=n.read?n.read(_,v):n(_,v)||_.replace(d,decodeURIComponent),this.json)try{_=JSON.parse(_)}catch(e){}if(t===v){a=_;break}t||(a[v]=_)}catch(e){}}return a}}return o.set=o,o.get=function(e){return o.call(o,e)},o.getJSON=function(){return o.apply({json:!0},[].slice.call(arguments))},o.defaults={},o.remove=function(t,n){o(t,"",e(n,{expires:-1}))},o.withConverter=t,o}(function(){})})?o.call(t,n,t,e):o)||(e.exports=i),e.exports=r()},function(e,t,n){e.exports=!n(11)&&!n(18)(function(){return 7!=Object.defineProperty(n(32)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var o=n(12),i=n(13),r=n(65)(!1),a=n(35)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),c=0,l=[];for(n in s)n!=a&&o(s,n)&&l.push(n);for(;t.length>c;)o(s,n=t[c++])&&(~r(l,n)||l.push(n));return l}},function(e,t,n){var o=n(16);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},function(e,t){var n=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},function(e,t,n){var o=n(44),i=Math.max,r=Math.min;e.exports=function(e,t){return(e=o(e))<0?i(e+t,0):r(e,t)}},function(e,t,n){var o=n(0)("unscopables"),i=Array.prototype;null==i[o]&&n(15)(i,o,{}),e.exports=function(e){i[o][e]=!0}},function(e,t,n){var o=n(6),i=n(72),r=n(37),a=n(35)("IE_PROTO"),s=function(){},c=function(){var e,t=n(32)("iframe"),o=r.length;for(t.style.display="none",n(48).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;o--;)delete c.prototype[r[o]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=o(e),n=new s,s.prototype=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var o=n(1).document;e.exports=o&&o.documentElement},function(e,t,n){t.f=n(0)},function(e,t,n){var o=n(42),i=n(37).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,i)}},function(e,t,n){var o=n(16),i=n(0)("toStringTag"),r="Arguments"==o(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:r?o(t):"Object"==(a=o(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var o,i,r,a=n(25),s=n(94),c=n(48),l=n(32),u=n(1),d=u.process,f=u.setImmediate,p=u.clearImmediate,_=u.MessageChannel,v=u.Dispatch,g=0,h={},m=function(){var e=+this;if(h.hasOwnProperty(e)){var t=h[e];delete h[e],t()}},O=function(e){m.call(e.data)};f&&p||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return h[++g]=function(){s("function"==typeof e?e:Function(e),t)},o(g),g},p=function(e){delete h[e]},"process"==n(16)(d)?o=function(e){d.nextTick(a(m,e,1))}:v&&v.now?o=function(e){v.now(a(m,e,1))}:_?(r=(i=new _).port2,i.port1.onmessage=O,o=a(r.postMessage,r,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(o=function(e){u.postMessage(e+"","*")},u.addEventListener("message",O,!1)):o="onreadystatechange"in l("script")?function(e){c.appendChild(l("script")).onreadystatechange=function(){c.removeChild(this),m.call(e)}}:function(e){setTimeout(a(m,e,1),0)}),e.exports={set:f,clear:p}},function(e,t,n){"use strict";var o=n(26);e.exports.f=function(e){return new function(e){var t,n;this.promise=new e(function(e,o){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=o}),this.resolve=o(t),this.reject=o(n)}(e)}},function(e,t,n){"use strict";var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},i=n(55),r=i.encodeToBase64,a=i.padRight;function s(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n="",o=1;o<=e;o+=1)n+=-1!==t.indexOf(o)?"1":"0";return a(n,Math.max(0,e-n.length))}function c(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,o=0;o<e.length;o+=1)n=Math.max(n,e[o].id);for(var i=0;i<t.length;i+=1)n=Math.max(n,t[i]);for(var r="",a=1;a<=n;a+=1)r+=-1!==t.indexOf(a)?"1":"0";return r}function l(e,t){for(var n=[],o=[],i=e.map(function(e){return e.id}),r=0;r<e.length;r+=1){var a=e[r].id;if(-1!==t.indexOf(a)&&n.push(a),(-1===t.indexOf(a)||r===e.length-1||-1===i.indexOf(a+1))&&n.length){var s=n.shift(),c=n.pop();n=[],o.push({isRange:"number"==typeof c,startVendorId:s,endVendorId:c})}}return o}function u(e){var t=0;return e.forEach(function(e){e.id>t&&(t=e.id)}),t}e.exports={convertVendorsToRanges:l,encodeConsentString:function(e){var t=e.maxVendorId,n=e.vendorList,i=void 0===n?{}:n,a=e.allowedPurposeIds,d=e.allowedVendorIds,f=i.vendors,p=void 0===f?[]:f,_=i.purposes,v=void 0===_?[]:_;t||(t=u(p));var g=r(o({},e,{maxVendorId:t,purposeIdBitString:c(v,a),isRange:!1,vendorIdBitString:s(t,d)})),h=l(p,d),m=r(o({},e,{maxVendorId:t,purposeIdBitString:c(v,a),isRange:!0,defaultConsent:!1,numEntries:h.length,vendorRangeList:h}));return g.length<m.length?g:m},getMaxVendorId:u,encodeVendorIdsToBits:s,encodePurposeIdsToBits:c}},function(e,t,n){"use strict";var o=n(103),i=n(56),r=i.versionNumBits,a=i.vendorVersionMap;function s(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0",n="",o=0;o<e;o+=1)n+=t;return n}function c(e,t){return s(Math.max(0,t))+e}function l(e,t){return e+s(Math.max(0,t))}function u(e,t){var n="";return"number"!=typeof e||isNaN(e)||(n=parseInt(e,10).toString(2)),t>=n.length&&(n=c(n,t-n.length)),n.length>t&&(n=n.substring(0,t)),n}function d(e){return u(!0===e?1:0,1)}function f(e,t){return e instanceof Date?u(e.getTime()/100,t):u(e,t)}function p(e,t){return u(e.toUpperCase().charCodeAt(0)-65,t)}function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:12;return p(e.slice(0,1),t/2)+p(e.slice(1),t/2)}function v(e,t,n){return parseInt(e.substr(t,n),2)}function g(e,t,n){return new Date(100*v(e,t,n))}function h(e,t){return 1===parseInt(e.substr(t,1),2)}function m(e){var t=v(e);return String.fromCharCode(t+65).toLowerCase()}function O(e,t,n){var o=e.substr(t,n);return m(o.slice(0,n/2))+m(o.slice(n/2))}function T(e){var t=e.input,n=e.field,o=n.name,i=n.type,r=n.numBits,a=n.encoder,s=n.validator;if("function"==typeof s&&!s(t))return"";if("function"==typeof a)return a(t);var c="function"==typeof r?r(t):r,p=t[o],v=null==p?"":p;switch(i){case"int":return u(v,c);case"bool":return d(v);case"date":return f(v,c);case"bits":return l(v,c-v.length).substring(0,c);case"list":return v.reduce(function(e,t){return e+A({input:t,fields:n.fields})},"");case"language":return _(v,c);default:throw new Error("ConsentString - Unknown field type "+i+" for encoding")}}function A(e){var t=e.input;return e.fields.reduce(function(e,n){return e+T({input:t,field:n})},"")}function L(e,t){var n=e.version;if("number"!=typeof n)throw new Error("ConsentString - No version field to encode");if(t[n])return A({input:e,fields:t[n].fields});throw new Error("ConsentString - No definition for version "+n)}e.exports={padRight:l,padLeft:c,encodeField:T,encodeDataToBits:L,encodeIntToBits:u,encodeBoolToBits:d,encodeDateToBits:f,encodeLanguageToBits:_,encodeLetterToBits:p,encodeToBase64:function(e){var t=L(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:a);if(t){for(var n=l(t,7-(t.length+7)%8),i="",r=0;r<n.length;r+=8)i+=String.fromCharCode(parseInt(n.substr(r,8),2));return o.encode(i).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}return null},decodeBitsToIds:function(e){return e.split("").reduce(function(e,t,n){return"1"===t&&-1===e.indexOf(n+1)&&e.push(n+1),e},[])},decodeBitsToInt:v,decodeBitsToDate:g,decodeBitsToBool:h,decodeBitsToLanguage:O,decodeBitsToLetter:m,decodeFromBase64:function(e,t){for(var n=e;n.length%4!=0;)n+="=";n=n.replace(/-/g,"+").replace(/_/g,"/");for(var i=o.decode(n),s="",l=0;l<i.length;l+=1){var u=i.charCodeAt(l).toString(2);s+=c(u,8-u.length)}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,n=v(e,0,r);if("number"!=typeof n)throw new Error("ConsentString - Unknown version number in the string to decode");if(!a[n])throw new Error("ConsentString - Unsupported version "+n+" in the string to decode");return function e(t){var n=t.input,o=t.fields,i=t.startPosition,r=void 0===i?0:i;return{decodedObject:o.reduce(function(t,o){var i=o.name,a=o.numBits,s=function(t){var n=t.input,o=t.output,i=t.startPosition,r=t.field,a=r.type,s=r.numBits,c=r.decoder,l=r.validator,u=r.listCount;if("function"==typeof l&&!l(o))return{newPosition:i};if("function"==typeof c)return c(n,o,i);var d="function"==typeof s?s(o):s;switch(a){case"int":return{fieldValue:v(n,i,d)};case"bool":return{fieldValue:h(n,i)};case"date":return{fieldValue:g(n,i,d)};case"bits":return{fieldValue:n.substr(i,d)};case"list":return function(t,n,o,i,r){var a=0;"function"==typeof r?a=r(n):"number"==typeof r&&(a=r);for(var s=o,c=[],l=0;l<a;l+=1){var u=e({input:t,fields:i.fields,startPosition:s});s=u.newPosition,c.push(u.decodedObject)}return{fieldValue:c,newPosition:s}}(n,o,i,r,u);case"language":return{fieldValue:O(n,i,d)};default:throw new Error("ConsentString - Unknown field type "+a+" for decoding")}}({input:n,output:t,startPosition:r,field:o}),c=s.fieldValue,l=s.newPosition;return void 0!==c&&(t[i]=c),void 0!==l?r=l:"number"==typeof a&&(r+=a),t},{}),newPosition:r}}({input:e,fields:t[n].fields}).decodedObject}(s,t)}}},function(e,t,n){"use strict";e.exports={versionNumBits:6,vendorVersionMap:{1:{version:1,metadataFields:["version","created","lastUpdated","cmpId","cmpVersion","consentScreen","vendorListVersion"],fields:[{name:"version",type:"int",numBits:6},{name:"created",type:"date",numBits:36},{name:"lastUpdated",type:"date",numBits:36},{name:"cmpId",type:"int",numBits:12},{name:"cmpVersion",type:"int",numBits:12},{name:"consentScreen",type:"int",numBits:6},{name:"consentLanguage",type:"language",numBits:12},{name:"vendorListVersion",type:"int",numBits:12},{name:"purposeIdBitString",type:"bits",numBits:24},{name:"maxVendorId",type:"int",numBits:16},{name:"isRange",type:"bool",numBits:1},{name:"vendorIdBitString",type:"bits",numBits:function(e){return e.maxVendorId},validator:function(e){return!e.isRange}},{name:"defaultConsent",type:"bool",numBits:1,validator:function(e){return e.isRange}},{name:"numEntries",numBits:12,type:"int",validator:function(e){return e.isRange}},{name:"vendorRangeList",type:"list",listCount:function(e){return e.numEntries},validator:function(e){return e.isRange},fields:[{name:"isRange",type:"bool",numBits:1},{name:"startVendorId",type:"int",numBits:16},{name:"endVendorId",type:"int",numBits:16,validator:function(e){return e.isRange}}]}]}}}},function(e,t,n){"use strict";var o=n(55),i=o.decodeBitsToIds,r=o.decodeFromBase64;e.exports={decodeConsentString:function(e){var t=r(e),n=t.version,o=t.cmpId,a=t.vendorListVersion,s=t.purposeIdBitString,c=t.maxVendorId,l=t.created,u=t.lastUpdated,d=t.isRange,f=t.defaultConsent,p=t.vendorIdBitString,_=t.vendorRangeList,v=t.cmpVersion,g=t.consentScreen,h=t.consentLanguage,m={version:n,cmpId:o,vendorListVersion:a,allowedPurposeIds:i(s),maxVendorId:c,created:l,lastUpdated:u,cmpVersion:v,consentScreen:g,consentLanguage:h};if(d){var O=_.reduce(function(e,t){for(var n=t.isRange,o=t.startVendorId,i=t.endVendorId,r=n?i:o,a=o;a<=r;a+=1)e[a]=!0;return e},{});m.allowedVendorIds=[];for(var T=1;T<=c;T+=1)(f&&!O[T]||!f&&O[T])&&-1===m.allowedVendorIds.indexOf(T)&&m.allowedVendorIds.push(T)}else m.allowedVendorIds=i(p);return m}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.addFrame=u,t.init=d,t.sendEventToFrame=f,t.verifyPowerOptIn=function(){return new Promise(function(e){(0,r.isPoiActive)()?d().then(function(t){var n=t.iframe;n?n.onload?p((0,a.getOrigin)()).then(function(t){t||e({power_opt_in:!1}),e(t)}):n.onload=function(){return p((0,a.getOrigin)()).then(function(t){t||e({power_opt_in:!1}),e(t)})}:((0,s.logInfo)("Could not initialize POI. Fallback to POI false."),e({power_opt_in:!1}))}):e({power_opt_in:!1})})},t.deActivatePowerOptIn=function(){return(0,s.logInfo)("deActivatePowerOptIn"),(0,r.isPoiActive)()?new Promise(function(e){return d().then(function(){f("oil-poi-delete",(0,a.getOrigin)(),{}),setTimeout(e)})}):new Promise(function(e){e()})};var i=n(2),r=n(4),a=n(5),s=n(3),c=500,l=!1;function u(e){var t=document.getElementById("oil-frame");return t?(0,s.logInfo)("Found iframe"):((0,s.logInfo)("Creating iframe..."),(t=document.createElement("iframe")).setAttribute("id","oil-frame"),t.setAttribute("title","oil-frame"),t.setAttribute("aria-hidden","true"),t.setAttribute("src",e),t.setAttribute("sandbox","allow-same-origin allow-scripts allow-forms allow-top-navigation"),t.style.width="0",t.style.height="0",t.style.border="0",t.style.border="none",t.style.display="block",document.body.appendChild(t)),t}function d(){return new Promise(function(e){return setTimeout(function(){if((0,s.logInfo)("Initializing Frame..."),(0,r.isPoiActive)()){var t=(0,r.getHubLocation)();if(t){var n=u(t);n&&!n.onload?n.onload=function(){return e({iframe:n})}:e({iframe:n})}else(0,s.logError)("Config for "+i.OIL_CONFIG.ATTR_HUB_ORIGIN+" and "+i.OIL_CONFIG.ATTR_HUB_PATH+" isnt set. No POI possible."),e(!1)}else(0,s.logInfo)("POI not active. Frame not initialized."),e(!1)})})}function f(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,s.logInfo)("Send to Frame:",e,t),(0,r.isPoiActive)()&&d().then(function(o){var i=o.iframe,a=(0,r.getHubOrigin)(),s=(0,r.getPoiGroupName)();if(i&&a){var c=JSON.stringify({event:e,origin:t,group_name:s,payload:n});i.contentWindow.postMessage(c,a)}})}function p(e){return new Promise(function(t){function n(e){var i=(0,r.getHubOrigin)();if(i&&-1!==i.indexOf(e.origin)){var c="object"!==o(e.data)?JSON.parse(e.data):e.data;(0,s.logInfo)("Message from hub received...",e.origin,c),(0,a.removeMessageListener)(n),l=!1,t(c)}}(0,r.isPoiActive)()||t(!1),setTimeout(function(){return f("oil-status-read",e)}),l||((0,a.registerMessageListener)(n),l=!0),setTimeout(function(){(0,a.removeMessageListener)(n),l=!1,t(!1)},c)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasRunningTimeout=t.oilWrapper=void 0,t.stopTimeOut=E,t.forEach=y,t.renderOil=I,t.oilShowPreferenceCenter=b,t.handleOptIn=S,t.handleOnlyEssentials=w;var o=n(5),i=n(14),r=n(2),a=n(129),s=n(58),c=n(131),l=n(132),u=T(n(112)),d=T(n(133)),f=n(3),p=n(30),_=n(4),v=n(134),g=n(135),h=n(17),m=n(106),O=n(107);function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var A=t.oilWrapper=function(){var e=document.createElement("div");return e.setAttribute("class","as-oil "+(0,p.getTheme)()),e.setAttribute("data-qa","oil-Layer"),e},L=t.hasRunningTimeout=void 0;function E(){L&&(clearTimeout(L),t.hasRunningTimeout=L=void 0)}function y(e,t,n){for(var o=0;o<e.length;o++)t.call(n,e[o])}function I(e){!function(e){return!0!==e.optIn&&(0,_.gdprApplies)()}(e)?R():(e.noCookie?V((0,l.oilNoCookiesTemplate)()):e.advancedSettings?V(function(){var e=(0,p.getCpcType)();switch(e){case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD:return u.oilAdvancedSettingsTemplate();case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_TABS:return d.oilAdvancedSettingsTemplate();default:return(0,f.logError)("Found unknown CPC type '"+e+"'! Falling back to CPC type '"+r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD+"'!"),u.oilAdvancedSettingsTemplate()}}()):(!L&&(0,p.getTimeOutValue)()>0&&((0,f.logInfo)("OIL will auto-hide in",(0,p.getTimeOutValue)(),"seconds."),t.hasRunningTimeout=L=setTimeout(function(){R(),(0,o.sendEventToHostSite)(r.EVENT_NAME_TIMEOUT),(0,_.isInfoBannerOnly)()&&S(),t.hasRunningTimeout=L=void 0},1e3*(0,p.getTimeOutValue)())),V((0,c.oilDefaultTemplate)())),(0,o.sendEventToHostSite)(r.EVENT_NAME_OIL_SHOWN))}function b(){new Promise(function(e){Promise.resolve().then(function(t){e(n(109))}.bind(null,n)).catch(n.oe)}),(0,h.loadVendorListAndCustomVendorList)().then(function(){new Promise(function(e){Promise.resolve().then(function(t){e(n(110))}.bind(null,n)).catch(n.oe)}).then(function(e){e.getGroupList().then(function(){var e=document.querySelector(".as-oil"),t=document.querySelector("#oil-preference-center");if(e)I({advancedSettings:!0});else{if(!t)return void(0,f.logError)("No wrapper for the CPC with the id #oil-preference-center was found.");t.innerHTML=function(){var e=(0,p.getCpcType)();switch(e){case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD:return u.oilAdvancedSettingsInlineTemplate();case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_TABS:return d.oilAdvancedSettingsInlineTemplate();default:return(0,f.logError)("Found unknown CPC type '"+e+"'! Falling back to CPC type '"+r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD+"'!"),u.oilAdvancedSettingsInlineTemplate()}}(),F(B())}var n,o=(0,v.getSoiConsentData)();n=o?o.getPurposesAllowed():(0,_.getAdvancedSettingsPurposesDefault)()?(0,h.getPurposeIds)():[],(0,v.applyPrivacySettings)(n),y(document.querySelectorAll(".as-js-purpose-slider"),function(e){u.checkCategory(e)})})})}).catch(function(e){return(0,f.logError)(e)})}function C(){(0,o.sendEventToHostSite)(r.EVENT_NAME_OPT_IN_BUTTON_CLICKED),S()}function S(){var e,t;E(),(0,_.isPoiActive)()?new Promise(function(e){Promise.resolve().then(function(t){e(n(110))}.bind(null,n)).catch(n.oe)}).then(function(e){e.getGroupList().then(function(){var e;(e=(0,v.getPrivacySettings)(),(0,f.logInfo)("Handling POI with settings: ",e),M(e),G(e)?(0,a.oilPowerOptIn)(e).then(function(){I({optIn:!0}),(0,_.isPoiActive)()&&(0,o.sendEventToHostSite)(r.EVENT_NAME_POI_OPT_IN)}):((0,i.removeSubscriberCookies)(),(0,s.deActivatePowerOptIn)())).then(N)})}):(e=(0,v.getPrivacySettings)(),(0,f.logInfo)("Handling SOI with settings: ",e),M(e),G(e)?(0,a.oilOptIn)(e).then(function(){I({optIn:!0}),(0,o.sendEventToHostSite)(r.EVENT_NAME_SOI_OPT_IN)}):new Promise(function(e){(0,i.removeSubscriberCookies)(),e()})).then(N),(t=document.querySelector("."+r.JS_CLASS_BUTTON_OPTIN))&&(t.className+=" as-oil__btn-optin-clicked",window.setTimeout(function(){t.className=t.className.replace(" as-js-clicked","")},1200))}function P(){(0,o.sendEventToHostSite)(r.EVENT_NAME_OPT_IN_BUTTON_CLICKED),w()}function w(){var e,t;E(),(0,_.isPoiActive)()?new Promise(function(e){Promise.resolve().then(function(t){e(n(110))}.bind(null,n)).catch(n.oe)}).then(function(e){e.getGroupList().then(function(){var e;(e=(0,v.getOnlyEssentialsPrivacySettings)(),(0,f.logInfo)("Handling POI with Only Essentials settings: ",e),M(e),G(e)?(0,a.oilPowerOptIn)(e).then(function(){I({optIn:!0}),(0,_.isPoiActive)()&&(0,o.sendEventToHostSite)(r.EVENT_NAME_POI_OPT_IN)}):((0,i.removeSubscriberCookies)(),(0,s.deActivatePowerOptIn)())).then(N)})}):(e=(0,v.getOnlyEssentialsPrivacySettings)(),(0,f.logInfo)("Handling SOI with Only Essentials settings: ",e),M(e),G(e)?(0,a.oilOptIn)(e).then(function(){I({optIn:!0}),(0,o.sendEventToHostSite)(r.EVENT_NAME_SOI_OPT_IN)}):new Promise(function(e){(0,i.removeSubscriberCookies)(),e()})).then(N),(t=document.querySelector("."+r.JS_CLASS_BUTTON_OPTIN))&&(t.className+=" as-oil__btn-optin-clicked",window.setTimeout(function(){t.className=t.className.replace(" as-js-clicked","")},1200))}function N(){var e=(0,o.getGlobalOilObject)("commandCollectionExecutor");e&&e(),(0,O.sendConsentInformationToCustomVendors)().then(function(){return(0,f.logInfo)("Consent information sending to custom vendors after user's opt-in finished!")}),(0,m.manageDomElementActivation)()}function V(e){var t=A();t.innerHTML=e,function(e){R(),document.body.appendChild(e),F(B())}(t)}function R(){var e=B();e.oilWrapper&&y(e.oilWrapper,function(e){e.parentElement.removeChild(e)})}function B(){return{oilWrapper:document.querySelectorAll(".as-oil"),btnOptIn:document.querySelectorAll("."+r.JS_CLASS_BUTTON_OPTIN),btnOnlyEssentials:document.querySelectorAll("."+r.JS_CLASS_BUTTON_ONLY_ESSENTIALS),btnPoiOptIn:document.querySelectorAll(".as-js-optin-poi"),companyList:document.querySelectorAll(".as-js-companyList"),thirdPartyList:document.querySelectorAll(".as-js-thirdPartyList"),btnAdvancedSettings:document.querySelectorAll("."+r.JS_CLASS_BUTTON_ADVANCED_SETTINGS),btnBack:document.querySelectorAll("."+r.JS_CLASS_BUTTON_OILBACK)}}function k(){(0,f.logInfo)("Handling Back Button"),E(),I({}),(0,o.sendEventToHostSite)(r.EVENT_NAME_BACK_TO_MAIN)}function D(){(0,f.logInfo)("Handling Show Advanced Settings"),E(),b(),(0,o.sendEventToHostSite)(r.EVENT_NAME_ADVANCED_SETTINGS)}function x(){(0,f.logInfo)("Handling Show Company List"),E(),new Promise(function(e){Promise.resolve().then(function(t){e(n(109))}.bind(null,n)).catch(n.oe)}).then(function(e){e.renderOilGroupListTemplate(V)}).catch(function(e){(0,f.logError)("Error on oilShowCompanyList.",e)}),(0,o.sendEventToHostSite)(r.EVENT_NAME_COMPANY_LIST)}function j(){(0,f.logInfo)("Handling Show Third Party List"),E(),new Promise(function(e){Promise.resolve().then(function(t){e(n(109))}.bind(null,n)).catch(n.oe)}).then(function(e){e.renderOilThirdPartyListTemplate(V)}).catch(function(e){(0,f.logError)("Error on oilShowThirdPartyList.",e)}),(0,o.sendEventToHostSite)(r.EVENT_NAME_THIRD_PARTY_LIST)}function M(e){(0,o.isObject)(e)&&(0,o.sendEventToHostSite)(r.EVENT_NAME_AS_PRIVACY_SELECTED)}function G(e){return e!==r.PRIVACY_MINIMUM_TRACKING||(0,p.isPersistMinimumTracking)()}function U(e,t){e&&y(e,function(e){e&&e.addEventListener("click",t,!1)})}function F(e){U(e.btnOptIn,C),U(e.btnOnlyEssentials,P),U(e.btnAdvancedSettings,D),U(e.btnBack,k),U(e.companyList,x),U(e.thirdPartyList,j),function(){(0,p.isOptoutConfirmRequired)()&&(0,g.activateOptoutConfirm)();var e=(0,p.getCpcType)();switch(e){case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD:u.attachCpcHandlers();break;case r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_TABS:d.attachCpcHandlers();break;default:(0,f.logError)("Found unknown CPC type '"+e+"'! Falling back to CPC type '"+r.OIL_CONFIG_CPC_TYPES.CPC_TYPE_STANDARD+"'!"),u.attachCpcHandlers()}}()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdvancedSettingsButton=t.BackButton=t.CancelButton=t.ProceedButton=t.YesAllButton=t.YesButton=t.OnlyEssentialsButton=void 0;var o=n(31),i=n(30),r=n(2);t.YesButton=function(e){return'\n    <button class="'+e+'" data-context="'+r.DATA_CONTEXT_YES+'" data-qa="oil-YesButton">\n      '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_BUTTON_YES)+"\n    </button>\n  "},t.YesAllButton=function(e){return'\n    <button class="'+e+'" data-context="'+r.DATA_CONTEXT_YES+'" data-qa="oil-YesButton">\n      '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_BUTTON_YES_ALL)+"\n    </button>\n  "},t.OnlyEssentialsButton=function(e){return'\n    <button class="'+e+'" data-context="'+r.DATA_CONTEXT_ONLY_ESSENTIALS+'" data-qa="oil-only-essentials-button">\n      '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_BUTTON_ONLY_ESSENTIALS)+"\n    </button>\n  "},t.ProceedButton=function(){return'\n    <button class="as-oil__btn-proceed as-oil__btn-blue '+r.JS_CLASS_BUTTON_PROCEED+'" data-context="'+r.DATA_CONTEXT_PROCEED+'" data-qa="oil-proceed-button">\n      '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_PURPOSE_OPTOUT_PROCEED)+"\n    </button>\n  "},t.CancelButton=function(){return'\n    <button class="as-oil__btn-cancel as-oil__btn-grey '+r.JS_CLASS_BUTTON_CANCEL+'" data-context="'+r.DATA_CONTEXT_CANCEL+'" data-qa="oil-cancel-button">\n      '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_PURPOSE_OPTOUT_CANCEL)+"\n    </button>\n  "},t.BackButton=function(){return'\n    <button class="as-oil-back-button '+r.JS_CLASS_BUTTON_OILBACK+'" data-context="'+r.DATA_CONTEXT_BACK+'" data-qa="oil-back-button">\n      <span class="as-oil-back-button__text">\n        '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_BUTTON_BACK)+'\n      </span>\n      <svg class="as-oil-back-button__icon" width="22" height="22" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg">\n        <g fill="none" fill-rule="evenodd">\n          <circle fill="#757575" cx="11" cy="11" r="11"/>\n          <path d="M15.592 14.217a.334.334 0 0 1 .098.245c0 .098-.033.18-.098.246l-.928.908a.303.303 0 0 1-.22.098.33.33 0 0 1-.244-.098L11 12.4l-3.2 3.216a.303.303 0 0 1-.22.098.33.33 0 0 1-.244-.098l-.928-.908a.334.334 0 0 1-.098-.246c0-.098.033-.18.098-.245L9.632 11 6.408 7.808c-.163-.164-.163-.327 0-.491l.904-.933a.473.473 0 0 1 .244-.098.33.33 0 0 1 .244.098L11 9.576l3.2-3.192a.473.473 0 0 1 .244-.098.33.33 0 0 1 .244.098l.904.933c.163.164.163.32 0 .466l-3.224 3.192 3.224 3.242z"\n                fill="#FFF" opacity=".88"/>\n        </g>\n      </svg>\n    </button>\n  '},t.AdvancedSettingsButton=function(e){return!0===e?'\n        <button class="as-oil__btn-cpc '+r.JS_CLASS_BUTTON_ADVANCED_SETTINGS+'" data-context="'+r.DATA_CONTEXT_ADVANCED_SETTINGS+'" data-qa="oil-AdvancedSettingsButton">\n            '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_BUTTON_ADVANCED_SETTINGS)+"\n        </button>\n      ":""}},function(e,t,n){"use strict";var o=n(102).ConsentString,i=n(57).decodeConsentString,r=n(54).encodeConsentString;e.exports={ConsentString:o,decodeConsentString:i,encodeConsentString:r}},function(e,t,n){"use strict";function o(){if(Object.values||n(63),Array.prototype.fill||n(66),Array.prototype.values||n(68),String.startsWith||n(74),Object.assign||n(78),window.Symbol||n(80),!window.Promise&&(n(87),n(9),"function"!=typeof window.CustomEvent)){var e=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n};e.prototype=window.Event.prototype,window.CustomEvent=e}}Object.defineProperty(t,"__esModule",{value:!0}),t.generatePolyfills=o,t.default=o()},function(e,t,n){var o=n(8),i=n(64)(!1);o(o.S,"Object",{values:function(e){return i(e)}})},function(e,t,n){var o=n(20),i=n(13),r=n(22).f;e.exports=function(e){return function(t){for(var n,a=i(t),s=o(a),c=s.length,l=0,u=[];c>l;)r.call(a,n=s[l++])&&u.push(e?[n,a[n]]:a[n]);return u}}},function(e,t,n){var o=n(13),i=n(27),r=n(45);e.exports=function(e){return function(t,n,a){var s,c=o(t),l=i(c.length),u=r(a,l);if(e&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var o=n(8);o(o.P,"Array",{fill:n(67)}),n(46)("fill")},function(e,t,n){"use strict";var o=n(38),i=n(45),r=n(27);e.exports=function(e){for(var t=o(this),n=r(t.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,l=void 0===c?n:i(c,n);l>s;)t[s++]=e;return t}},function(e,t,n){"use strict";var o=n(46),i=n(69),r=n(28),a=n(13);e.exports=n(70)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),r.Arguments=r.Array,o("keys"),o("values"),o("entries")},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var o=n(21),i=n(8),r=n(24),a=n(15),s=n(28),c=n(71),l=n(29),u=n(73),d=n(0)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,_,v,g,h){c(n,t,_);var m,O,T,A=function(e){if(!f&&e in I)return I[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},L=t+" Iterator",E="values"==v,y=!1,I=e.prototype,b=I[d]||I["@@iterator"]||v&&I[v],C=b||A(v),S=v?E?A("entries"):C:void 0,P="Array"==t&&I.entries||b;if(P&&(T=u(P.call(new e)))!==Object.prototype&&T.next&&(l(T,L,!0),o||"function"==typeof T[d]||a(T,d,p)),E&&b&&"values"!==b.name&&(y=!0,C=function(){return b.call(this)}),o&&!h||!f&&!y&&I[d]||a(I,d,C),s[t]=C,s[L]=p,v)if(m={values:E?C:A("values"),keys:g?C:A("keys"),entries:S},h)for(O in m)O in I||r(I,O,m[O]);else i(i.P+i.F*(f||y),t,m);return m}},function(e,t,n){"use strict";var o=n(47),i=n(23),r=n(29),a={};n(15)(a,n(0)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=o(a,{next:i(1,n)}),r(e,t+" Iterator")}},function(e,t,n){var o=n(10),i=n(6),r=n(20);e.exports=n(11)?Object.defineProperties:function(e,t){i(e);for(var n,a=r(t),s=a.length,c=0;s>c;)o.f(e,n=a[c++],t[n]);return e}},function(e,t,n){var o=n(12),i=n(38),r=n(35)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),o(e,r)?e[r]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){"use strict";var o=n(8),i=n(27),r=n(75),a="".startsWith;o(o.P+o.F*n(77)("startsWith"),"String",{startsWith:function(e){var t=r(this,e,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),o=String(e);return a?a.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){var o=n(76),i=n(34);e.exports=function(e,t,n){if(o(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},function(e,t,n){var o=n(7),i=n(16),r=n(0)("match");e.exports=function(e){var t;return o(e)&&(void 0!==(t=e[r])?!!t:"RegExp"==i(e))}},function(e,t,n){var o=n(0)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,!"/./"[e](t)}catch(e){}}return!0}},function(e,t,n){var o=n(8);o(o.S+o.F,"Object",{assign:n(79)})},function(e,t,n){"use strict";var o=n(20),i=n(39),r=n(22),a=n(38),s=n(43),c=Object.assign;e.exports=!c||n(18)(function(){var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=o})?function(e,t){for(var n=a(e),c=arguments.length,l=1,u=i.f,d=r.f;c>l;)for(var f,p=s(arguments[l++]),_=u?o(p).concat(u(p)):o(p),v=_.length,g=0;v>g;)d.call(p,f=_[g++])&&(n[f]=p[f]);return n}:c},function(e,t,n){"use strict";var o=n(1),i=n(12),r=n(11),a=n(8),s=n(24),c=n(81).KEY,l=n(18),u=n(36),d=n(29),f=n(19),p=n(0),_=n(49),v=n(82),g=n(83),h=n(84),m=n(6),O=n(7),T=n(13),A=n(33),L=n(23),E=n(47),y=n(85),I=n(86),b=n(10),C=n(20),S=I.f,P=b.f,w=y.f,N=o.Symbol,V=o.JSON,R=V&&V.stringify,B=p("_hidden"),k=p("toPrimitive"),D={}.propertyIsEnumerable,x=u("symbol-registry"),j=u("symbols"),M=u("op-symbols"),G=Object.prototype,U="function"==typeof N,F=o.QObject,H=!F||!F.prototype||!F.prototype.findChild,Y=r&&l(function(){return 7!=E(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(e,t,n){var o=S(G,t);o&&delete G[t],P(e,t,n),o&&e!==G&&P(G,t,o)}:P,q=function(e){var t=j[e]=E(N.prototype);return t._k=e,t},J=U&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},W=function(e,t,n){return e===G&&W(M,t,n),m(e),t=A(t,!0),m(n),i(j,t)?(n.enumerable?(i(e,B)&&e[B][t]&&(e[B][t]=!1),n=E(n,{enumerable:L(0,!1)})):(i(e,B)||P(e,B,L(1,{})),e[B][t]=!0),Y(e,t,n)):P(e,t,n)},K=function(e,t){m(e);for(var n,o=g(t=T(t)),i=0,r=o.length;r>i;)W(e,n=o[i++],t[n]);return e},X=function(e){var t=D.call(this,e=A(e,!0));return!(this===G&&i(j,e)&&!i(M,e))&&(!(t||!i(this,e)||!i(j,e)||i(this,B)&&this[B][e])||t)},z=function(e,t){if(e=T(e),t=A(t,!0),e!==G||!i(j,t)||i(M,t)){var n=S(e,t);return!n||!i(j,t)||i(e,B)&&e[B][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=w(T(e)),o=[],r=0;n.length>r;)i(j,t=n[r++])||t==B||t==c||o.push(t);return o},Z=function(e){for(var t,n=e===G,o=w(n?M:T(e)),r=[],a=0;o.length>a;)!i(j,t=o[a++])||n&&!i(G,t)||r.push(j[t]);return r};U||(s((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===G&&t.call(M,n),i(this,B)&&i(this[B],e)&&(this[B][e]=!1),Y(this,e,L(1,n))};return r&&H&&Y(G,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",function(){return this._k}),I.f=z,b.f=W,n(50).f=y.f=Q,n(22).f=X,n(39).f=Z,r&&!n(21)&&s(G,"propertyIsEnumerable",X,!0),_.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!U,{Symbol:N});for(var $="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;$.length>ee;)p($[ee++]);for(var te=C(p.store),ne=0;te.length>ne;)v(te[ne++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(x,e+="")?x[e]:x[e]=N(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in x)if(x[t]===e)return t},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!U,"Object",{create:function(e,t){return void 0===t?E(e):K(E(e),t)},defineProperty:W,defineProperties:K,getOwnPropertyDescriptor:z,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),V&&a(a.S+a.F*(!U||l(function(){var e=N();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){for(var t,n,o=[e],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=t=o[1],(O(t)||void 0!==e)&&!J(e))return h(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),o[1]=t,R.apply(V,o)}}),N.prototype[k]||n(15)(N.prototype,k,N.prototype.valueOf),d(N,"Symbol"),d(Math,"Math",!0),d(o.JSON,"JSON",!0)},function(e,t,n){var o=n(19)("meta"),i=n(7),r=n(12),a=n(10).f,s=0,c=Object.isExtensible||function(){return!0},l=!n(18)(function(){return c(Object.preventExtensions({}))}),u=function(e){a(e,o,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:o,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,o)){if(!c(e))return"F";if(!t)return"E";u(e)}return e[o].i},getWeak:function(e,t){if(!r(e,o)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[o].w},onFreeze:function(e){return l&&d.NEED&&c(e)&&!r(e,o)&&u(e),e}}},function(e,t,n){var o=n(1),i=n(9),r=n(21),a=n(49),s=n(10).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=r?{}:o.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){var o=n(20),i=n(39),r=n(22);e.exports=function(e){var t=o(e),n=i.f;if(n)for(var a,s=n(e),c=r.f,l=0;s.length>l;)c.call(e,a=s[l++])&&t.push(a);return t}},function(e,t,n){var o=n(16);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){var o=n(13),i=n(50).f,r={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==r.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(o(e))}},function(e,t,n){var o=n(22),i=n(23),r=n(13),a=n(33),s=n(12),c=n(41),l=Object.getOwnPropertyDescriptor;t.f=n(11)?l:function(e,t){if(e=r(e),t=a(t,!0),c)try{return l(e,t)}catch(e){}if(s(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,n){"use strict";var o,i,r,a,s=n(21),c=n(1),l=n(25),u=n(51),d=n(8),f=n(7),p=n(26),_=n(88),v=n(89),g=n(93),h=n(52).set,m=n(95)(),O=n(53),T=n(96),A=n(97),L=n(98),E=c.TypeError,y=c.process,I=y&&y.versions,b=I&&I.v8||"",C=c.Promise,S="process"==u(y),P=function(){},w=i=O.f,N=!!function(){try{var e=C.resolve(1),t=(e.constructor={})[n(0)("species")]=function(e){e(P,P)};return(S||"function"==typeof PromiseRejectionEvent)&&e.then(P)instanceof t&&0!==b.indexOf("6.6")&&-1===A.indexOf("Chrome/66")}catch(e){}}(),V=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},R=function(e,t){if(!e._n){e._n=!0;var n=e._c;m(function(){for(var o=e._v,i=1==e._s,r=0,a=function(t){var n,r,a,s=i?t.ok:t.fail,c=t.resolve,l=t.reject,u=t.domain;try{s?(i||(2==e._h&&D(e),e._h=1),!0===s?n=o:(u&&u.enter(),n=s(o),u&&(u.exit(),a=!0)),n===t.promise?l(E("Promise-chain cycle")):(r=V(n))?r.call(n,c,l):c(n)):l(o)}catch(e){u&&!a&&u.exit(),l(e)}};n.length>r;)a(n[r++]);e._c=[],e._n=!1,t&&!e._h&&B(e)})}},B=function(e){h.call(c,function(){var t,n,o,i=e._v,r=k(e);if(r&&(t=T(function(){S?y.emit("unhandledRejection",i,e):(n=c.onunhandledrejection)?n({promise:e,reason:i}):(o=c.console)&&o.error&&o.error("Unhandled promise rejection",i)}),e._h=S||k(e)?2:1),e._a=void 0,r&&t.e)throw t.v})},k=function(e){return 1!==e._h&&0===(e._a||e._c).length},D=function(e){h.call(c,function(){var t;S?y.emit("rejectionHandled",e):(t=c.onrejectionhandled)&&t({promise:e,reason:e._v})})},x=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),R(t,!0))},j=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E("Promise can't be resolved itself");(t=V(e))?m(function(){var o={_w:n,_d:!1};try{t.call(e,l(j,o,1),l(x,o,1))}catch(e){x.call(o,e)}}):(n._v=e,n._s=1,R(n,!1))}catch(e){x.call({_w:n,_d:!1},e)}}};N||(C=function(e){_(this,C,"Promise","_h"),p(e),o.call(this);try{e(l(j,this,1),l(x,this,1))}catch(e){x.call(this,e)}},(o=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(99)(C.prototype,{then:function(e,t){var n=w(g(this,C));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=S?y.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&R(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new o;this.promise=e,this.resolve=l(j,e,1),this.reject=l(x,e,1)},O.f=w=function(e){return e===C||e===a?new r(e):i(e)}),d(d.G+d.W+d.F*!N,{Promise:C}),n(29)(C,"Promise"),n(100)("Promise"),a=n(9).Promise,d(d.S+d.F*!N,"Promise",{reject:function(e){var t=w(this);return(0,t.reject)(e),t.promise}}),d(d.S+d.F*(s||!N),"Promise",{resolve:function(e){return L(s&&this===a?C:this,e)}}),d(d.S+d.F*!(N&&n(101)(function(e){C.all(e).catch(P)})),"Promise",{all:function(e){var t=this,n=w(t),o=n.resolve,i=n.reject,r=T(function(){var n=[],r=0,a=1;v(e,!1,function(e){var s=r++,c=!1;n.push(void 0),a++,t.resolve(e).then(function(e){c||(c=!0,n[s]=e,--a||o(n))},i)}),--a||o(n)});return r.e&&i(r.v),n.promise},race:function(e){var t=this,n=w(t),o=n.reject,i=T(function(){v(e,!1,function(e){t.resolve(e).then(n.resolve,o)})});return i.e&&o(i.v),n.promise}})},function(e,t){e.exports=function(e,t,n,o){if(!(e instanceof t)||void 0!==o&&o in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var o=n(25),i=n(90),r=n(91),a=n(6),s=n(27),c=n(92),l={},u={};(t=e.exports=function(e,t,n,d,f){var p,_,v,g,h=f?function(){return e}:c(e),m=o(n,d,t?2:1),O=0;if("function"!=typeof h)throw TypeError(e+" is not iterable!");if(r(h)){for(p=s(e.length);p>O;O++)if((g=t?m(a(_=e[O])[0],_[1]):m(e[O]))===l||g===u)return g}else for(v=h.call(e);!(_=v.next()).done;)if((g=i(v,m,_.value,t))===l||g===u)return g}).BREAK=l,t.RETURN=u},function(e,t,n){var o=n(6);e.exports=function(e,t,n,i){try{return i?t(o(n)[0],n[1]):t(n)}catch(t){var r=e.return;throw void 0!==r&&o(r.call(e)),t}}},function(e,t,n){var o=n(28),i=n(0)("iterator"),r=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||r[i]===e)}},function(e,t,n){var o=n(51),i=n(0)("iterator"),r=n(28);e.exports=n(9).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||r[o(e)]}},function(e,t,n){var o=n(6),i=n(26),r=n(0)("species");e.exports=function(e,t){var n,a=o(e).constructor;return void 0===a||null==(n=o(a)[r])?t:i(n)}},function(e,t){e.exports=function(e,t,n){var o=void 0===n;switch(t.length){case 0:return o?e():e.call(n);case 1:return o?e(t[0]):e.call(n,t[0]);case 2:return o?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return o?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return o?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var o=n(1),i=n(52).set,r=o.MutationObserver||o.WebKitMutationObserver,a=o.process,s=o.Promise,c="process"==n(16)(a);e.exports=function(){var e,t,n,l=function(){var o,i;for(c&&(o=a.domain)&&o.exit();e;){i=e.fn,e=e.next;try{i()}catch(o){throw e?n():t=void 0,o}}t=void 0,o&&o.enter()};if(c)n=function(){a.nextTick(l)};else if(!r||o.navigator&&o.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(l)}}else n=function(){i.call(o,l)};else{var d=!0,f=document.createTextNode("");new r(l).observe(f,{characterData:!0}),n=function(){f.data=d=!d}}return function(o){var i={fn:o,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var o=n(1).navigator;e.exports=o&&o.userAgent||""},function(e,t,n){var o=n(6),i=n(7),r=n(53);e.exports=function(e,t){if(o(e),i(t)&&t.constructor===e)return t;var n=r.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var o=n(24);e.exports=function(e,t,n){for(var i in t)o(e,i,t[i],n);return e}},function(e,t,n){"use strict";var o=n(1),i=n(10),r=n(11),a=n(0)("species");e.exports=function(e){var t=o[e];r&&t&&!t[a]&&i.f(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var o=n(0)("iterator"),i=!1;try{var r=[7][o]();r.return=function(){i=!0},Array.from(r,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var r=[7],a=r[o]();a.next=function(){return{done:n=!0}},r[o]=function(){return a},e(r)}catch(e){}return n}},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=n(54),a=r.encodeConsentString,s=r.getMaxVendorId,c=r.encodeVendorIdsToBits,l=r.encodePurposeIdsToBits,u=n(57).decodeConsentString,d=n(56).vendorVersionMap,f=/^[a-z]{2}$/,p=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;!function(t,n){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this),this.created=new Date,this.lastUpdated=new Date,this.version=1,this.vendorList=null,this.vendorListVersion=null,this.cmpId=null,this.cmpVersion=null,this.consentScreen=null,this.consentLanguage=null,this.allowedPurposeIds=[],this.allowedVendorIds=[],t&&Object.assign(this,u(t))}return i(e,[{key:"getConsentString",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!this.vendorList)throw new Error("ConsentString - A vendor list is required to encode a consent string");return!0===e&&(this.lastUpdated=new Date),a({version:this.getVersion(),vendorList:this.vendorList,allowedPurposeIds:this.allowedPurposeIds,allowedVendorIds:this.allowedVendorIds,created:this.created,lastUpdated:this.lastUpdated,cmpId:this.cmpId,cmpVersion:this.cmpVersion,consentScreen:this.consentScreen,consentLanguage:this.consentLanguage,vendorListVersion:this.vendorListVersion})}},{key:"getLastUpdated",value:function(){return this.lastUpdated}},{key:"setLastUpdated",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.lastUpdated=e?new Date(e):new Date}},{key:"getCreated",value:function(){return this.created}},{key:"setCreated",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.created=e?new Date(e):new Date}},{key:"getMaxVendorId",value:function(){return s(this.vendorList.vendors)}},{key:"getParsedVendorConsents",value:function(){return c(s(this.vendorList.vendors),this.allowedVendorIds)}},{key:"getParsedPurposeConsents",value:function(){return l(this.vendorList.purposes,this.allowedPurposeIds)}},{key:"getMetadataString",value:function(){return a({version:this.getVersion(),created:this.created,lastUpdated:this.lastUpdated,cmpId:this.cmpId,cmpVersion:this.cmpVersion,consentScreen:this.consentScreen,vendorListVersion:this.vendorListVersion})}},{key:"getVersion",value:function(){return this.version}},{key:"getVendorListVersion",value:function(){return this.vendorListVersion}},{key:"setGlobalVendorList",value:function(e){if("object"!==(void 0===e?"undefined":o(e)))throw new Error("ConsentString - You must provide an object when setting the global vendor list");if(!e.vendorListVersion||!Array.isArray(e.purposes)||!Array.isArray(e.vendors))throw new Error("ConsentString - The provided vendor list does not respect the schema from the IAB EU’s GDPR Consent and Transparency Framework");this.vendorList={vendorListVersion:e.vendorListVersion,lastUpdated:e.lastUpdated,purposes:e.purposes,features:e.features,vendors:e.vendors.slice(0).sort(function(e,t){return e.id<t.id?-1:1})},this.vendorListVersion=e.vendorListVersion}},{key:"getGlobalVendorList",value:function(){return this.vendorList}},{key:"setCmpId",value:function(e){this.cmpId=e}},{key:"getCmpId",value:function(){return this.cmpId}},{key:"setCmpVersion",value:function(e){this.cmpVersion=e}},{key:"getCmpVersion",value:function(){return this.cmpVersion}},{key:"setConsentScreen",value:function(e){this.consentScreen=e}},{key:"getConsentScreen",value:function(){return this.consentScreen}},{key:"setConsentLanguage",value:function(e){if(!1===f.test(e))throw new Error("ConsentString - The consent language must be a two-letter ISO639-1 code (en, fr, de, etc.)");this.consentLanguage=e}},{key:"getConsentLanguage",value:function(){return this.consentLanguage}},{key:"setPurposesAllowed",value:function(e){this.allowedPurposeIds=e}},{key:"getPurposesAllowed",value:function(){return this.allowedPurposeIds}},{key:"setPurposeAllowed",value:function(e,t){var n=this.allowedPurposeIds.indexOf(e);!0===t?-1===n&&this.allowedPurposeIds.push(e):!1===t&&-1!==n&&this.allowedPurposeIds.splice(n,1)}},{key:"isPurposeAllowed",value:function(e){return-1!==this.allowedPurposeIds.indexOf(e)}},{key:"setVendorsAllowed",value:function(e){this.allowedVendorIds=e}},{key:"getVendorsAllowed",value:function(){return this.allowedVendorIds}},{key:"setVendorAllowed",value:function(e,t){var n=this.allowedVendorIds.indexOf(e);!0===t?-1===n&&this.allowedVendorIds.push(e):!1===t&&-1!==n&&this.allowedVendorIds.splice(n,1)}},{key:"isVendorAllowed",value:function(e){return-1!==this.allowedVendorIds.indexOf(e)}}],[{key:"decodeMetadataString",value:function(e){var t=u(e),n={};return d[t.version].metadataFields.forEach(function(e){n[e]=t[e]}),n}}]),e}();e.exports={ConsentString:p}},function(e,t,n){(function(e,o){var i;!function(r){var a=("object"==typeof e&&e&&e.exports,"object"==typeof o&&o);a.global!==a&&a.window;var s=function(e){this.message=e};(s.prototype=new Error).name="InvalidCharacterError";var c=function(e){throw new s(e)},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=/[\t\n\f\r ]/g,d={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,o,i,r=e.length%3,a="",s=-1,u=e.length-r;++s<u;)t=e.charCodeAt(s)<<16,n=e.charCodeAt(++s)<<8,o=e.charCodeAt(++s),a+=l.charAt((i=t+n+o)>>18&63)+l.charAt(i>>12&63)+l.charAt(i>>6&63)+l.charAt(63&i);return 2==r?(t=e.charCodeAt(s)<<8,n=e.charCodeAt(++s),a+=l.charAt((i=t+n)>>10)+l.charAt(i>>4&63)+l.charAt(i<<2&63)+"="):1==r&&(i=e.charCodeAt(s),a+=l.charAt(i>>2)+l.charAt(i<<4&63)+"=="),a},decode:function(e){var t=(e=String(e).replace(u,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,o,i=0,r="",a=-1;++a<t;)o=l.indexOf(e.charAt(a)),n=i%4?64*n+o:o,i++%4&&(r+=String.fromCharCode(255&n>>(-2*i&6)));return r},version:"0.1.0"};void 0===(i=function(){return d}.call(t,n,t,e))||(e.exports=i)}()}).call(this,n(104)(e),n(105))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.manageDomElementActivation=function(){for(var e=document.querySelectorAll("["+o.MANAGED_TAG_IDENTIFIER_ATTRIBUTE+"='"+o.MANAGED_TAG_IDENTIFIER+"']"),t=(0,i.getSoiCookie)(),n=0;n<e.length;n++)c(e[n],t)};var o=n(2),i=n(14),r=n(5),a=n(17),s=n(4);function c(e,t){"SCRIPT"===e.tagName?function(e,t){for(var n=document.createElement("script"),i=0;i<e.attributes.length;i++){var r=e.attributes[i];r.name.match(/^data-/)&&n.setAttribute(r.name,r.value)}d(e,t)?(e.getAttribute("data-type")&&(n.type=e.getAttribute("data-type")),e.getAttribute("data-src")&&(n.src=e.getAttribute("data-src"))):n.type=o.MANAGED_TAG_IDENTIFIER,n.innerText=e.innerText,n.text=e.text,n.class=e.class,n.id=e.id,n.defer=e.defer,n.async=e.async,n.charset=e.charset;var a=e.parentElement;a.insertBefore(n,e),a.removeChild(e)}(e,t):function(e,t){var n=["href","src","title","display"];if(d(e,t))for(var o=0;o<n.length;o++)l(e,n[o]);else for(var i=0;i<n.length;i++)u(e,n[i])}(e,t)}function l(e,t){var n=e.getAttribute("data-"+t);"display"===t?e.style.display=n||"":n&&e.setAttribute(t,n)}function u(e,t){"display"===t?e.style.display="none":e.hasAttribute(t)&&e.removeAttribute(t)}function d(e,t){if(t.opt_in){var n=function(e){var t=e.getAttribute(o.MANAGED_TAG_PURPOSES_ATTRIBUTE);return t?t.split(/,\s*/):(0,a.getPurposeIds)().concat((0,s.getCustomPurposeIds)())}(e),i=t.consentData.getPurposesAllowed();return i=i?i.concat(t.customPurposes):t.customPurposes,(0,r.arrayContainsArray)(i,n)}return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendConsentInformationToCustomVendors=function(){return(0,o.loadVendorListAndCustomVendorList)().then(function(){var e=(0,o.getCustomVendorList)();if(e&&!e.isDefault){var t=(0,r.getSoiCookie)();t&&t.consentData&&e.vendors.forEach(function(e){return function(e,n){var o=t.consentData.getPurposesAllowed();e.purposeIds.every(function(e){return-1!==o.indexOf(e)})?a("opt-in",e.optInSnippet,e):a("opt-out",e.optOutSnippet,e)}(e)})}})};var o=n(17),i=n(3),r=n(14);function a(e,t,n){if(t)try{(0,eval)(t)}catch(t){(0,i.logError)("Error occurred while executing "+e+" script for custom vendor "+n.id+" ("+n.name+")! Error was: ",t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilWrapper=t.handleOptIn=t.oilShowPreferenceCenter=t.renderOil=void 0;var o=n(59);Object.defineProperty(t,"renderOil",{enumerable:!0,get:function(){return o.renderOil}}),Object.defineProperty(t,"oilShowPreferenceCenter",{enumerable:!0,get:function(){return o.oilShowPreferenceCenter}}),Object.defineProperty(t,"handleOptIn",{enumerable:!0,get:function(){return o.handleOptIn}}),Object.defineProperty(t,"oilWrapper",{enumerable:!0,get:function(){return o.oilWrapper}}),t.locale=function(e){var t=this,n=(0,c.getLocale)();if(!function(e){var t;return!e||!e.texts||(t=e.texts,Object.values(r.OIL_LABELS).filter(function(e){return!e.startsWith(r.OPTIONAL_LABEL_PREFIX)}).filter(function(e){return!t[e]})).length>0}(n))return e(this);var o=(0,c.getLocaleUrl)();if(!o)return u(l.default,n),e(this);(0,s.fetchJsonData)(o).then(function(o){return u(o,n),e(t)}).catch(function(o){return(0,a.logError)("OIL backend returned error: "+o+". Falling back to default locale '"+l.default.localeId+"', version "+l.default.version+"!"),u(l.default,n),e(t)})};var i,r=n(31),a=n(3),s=n(5),c=n(4),l=(i=n(138))&&i.__esModule?i:{default:i};function u(e,t){if(t&&t.texts){for(var n in e.texts)t.texts[n]||(t.texts[n]=e.texts[n]);for(var o in l.default.texts)t.texts[o]||(0,a.logWarn)(o+" missing from locale config.");(0,c.setLocale)(t)}else(0,c.setLocale)(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(137);Object.defineProperty(t,"oilGroupListTemplate",{enumerable:!0,get:function(){return o.oilGroupListTemplate}}),Object.defineProperty(t,"oilThirdPartyListTemplate",{enumerable:!0,get:function(){return o.oilThirdPartyListTemplate}}),Object.defineProperty(t,"renderOilGroupListTemplate",{enumerable:!0,get:function(){return o.renderOilGroupListTemplate}}),Object.defineProperty(t,"renderOilThirdPartyListTemplate",{enumerable:!0,get:function(){return o.renderOilThirdPartyListTemplate}}),Object.defineProperty(t,"listSnippet",{enumerable:!0,get:function(){return o.listSnippet}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getGroupList=function(){var e=(0,r.getPoiGroupName)(),t=(0,o.getGlobalOilObject)("oilCachedGroupList");return new Promise(function(n){t||!(0,r.isPoiActive)()?n(t):(0,o.fetchJsonData)((0,r.getPoiListDirectory)()+"/"+e+".json").then(function(e){t=e.companyList,(0,o.setGlobalOilObject)("oilCachedGroupList",t),e.iabVendorWhitelist&&e.iabVendorWhitelist.length&&(0,r.setIabVendorWhitelist)(e.iabVendorWhitelist),e.iabVendorBlacklist&&e.iabVendorBlacklist.length&&(0,r.setIabVendorBlacklist)(e.iabVendorBlacklist),n(t)}).catch(function(t){(0,i.logError)("OIL getGroupList failed and returned error: "+t+'. Group "'+e+'" not found! Please add the JSON file with the correct name.'),n([])})})};var o=n(5),i=n(3),r=n(4)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.executeCommandCollection=function(e){if(void 0!==e)c(e);else{var t=(0,i.getCommandCollection)();if(t)for(var n=t.length,o=0;o<n;o++)c(t[o])}};var o=n(3),i=n(5),r=n(126),a=n(17),s={getVendorConsents:function(e){return(0,r.getVendorConsentData)(e)},getConsentData:function(e){return(0,r.getConsentDataString)(e)},getPublisherConsents:function(e){return(0,r.getPublisherConsentData)(e)},getVendorList:function(){return(0,a.getVendorList)()}};function c(e){(0,a.loadVendorListAndCustomVendorList)().then(function(){var t,n;(t=e.command,n=e.parameter,new Promise(function(e,i){return"function"==typeof s[t]?((0,o.logInfo)('Processing command "'+t+'" with parameters "'+n+'"'),e(s[t](n))):i('Invalid CMP command "'+t+'"')})).then(function(t){if(e.callback)e.callback(t,void 0!==t);else if(e.callId){var n=function(e,t){return{__cmpReturn:{returnValue:e,success:void 0!==e,callId:t.callId}}}(t,e);e.event.source.postMessage(n,e.event.origin)}else(0,o.logError)("Invalid command entry '"+JSON.stringify(e)+"' found!")},function(e){return(0,o.logError)(e)})}).catch(function(e){return(0,o.logError)(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilAdvancedSettingsTemplate=function(){return'\n  <div id="as-oil-cpc" class="as-oil-content-overlay" data-qa="oil-cpc-overlay">\n    '+d()+"\n  </div>"},t.oilAdvancedSettingsInlineTemplate=d,t.attachCpcHandlers=function(){(0,i.forEach)(document.querySelectorAll(".as-js-btn-activate-all"),function(e){e&&e.addEventListener("click",L,!1)}),(0,i.forEach)(document.querySelectorAll(".as-js-btn-deactivate-all"),function(e){e&&e.addEventListener("click",E,!1)}),(0,i.forEach)(document.querySelectorAll(".as-oil-cpc__category-header"),function(e){e&&e.addEventListener("click",function(e){!function(e){e.srcElement.parentNode.classList.toggle("as-oil-cpc__category-container_open")}(e)},!1)}),(0,i.forEach)(document.querySelectorAll(".as-js-purpose-slider"),function(e){e&&e.addEventListener("click",A,!1)}),(0,i.forEach)(document.querySelectorAll(".as-js-category-slider[data-locked=false]"),function(e){e&&e.addEventListener("input",function(e){!function(e){var t,n,o=e.srcElement.checked,r=e.srcElement.dataset.id;document.getElementById("as-js-category-slider-"+r).classList.remove("half-active"),!0===o?(t=r,n=document.querySelectorAll('.as-js-purpose-slider[data-category="'+t+'"]'),(0,i.forEach)(n,function(e){e&&(e.checked=!0)})):function(e){var t=document.querySelectorAll('.as-js-purpose-slider[data-category="'+e+'"]');(0,i.forEach)(t,function(e){e&&(e.checked=!1)})}(r)}(e)},!1)})},t.checkCategory=A,t.deactivateAll=E;var o=n(31),i=n(59),r=n(30),a=n(4),s=n(2),c=n(5),l=n(17),u=n(60);function d(){return'<div class="as-oil-l-wrapper-layout-max-width as-oil-cpc-wrapper">\n    <div class="as-oil__header">\n      <div class="as-oil__heading">\n        '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_HEADING)+"\n      </div>\n      "+(0,u.BackButton)()+"\n    </div>\n    "+f()+"\n  </div>"}var f=function(){return'\n<div data-qa="cpc-snippet" class="as-oil-l-row as-oil-cpc__content">\n  <div class="as-oil-cpc__middle as-js-purposes">\n    '+m()+'\n    <div class="as-oil-cpc__categories_wrapper">\n        '+O((0,l.getCategories)())+"\n    </div>\n    "+p()+"\n    "+_()+'\n  </div>\n  <div class="as-oil-cpc__right">\n    <div class="as-oil-l-row as-oil-l-buttons-'+(0,r.getTheme)()+'">\n      <div class="as-oil-l-item">\n        '+(0,u.YesButton)("as-oil__btn-optin "+s.JS_CLASS_BUTTON_OPTIN)+"\n      </div>\n    </div>\n  </div>\n</div>"},p=function(){return'\n<div class="as-oil-cpc__row-title" id="as-oil-cpc-third-parties">\n  '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_THIRD_PARTY)+'\n</div>\n<div id="as-js-third-parties-list">\n  '+v()+"\n</div>"},_=function(){return(0,a.getCustomVendorListUrl)()?'\n<div class="as-oil-cpc__row-title" id="as-oil-cpc-custom-third-parties">\n  '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CUSTOM_THIRD_PARTY_HEADING)+'\n</div>\n<div id="as-oil-custom-third-parties-list">\n  '+g()+"\n</div>":""},v=function(){var e=(0,l.getVendorList)();return e&&!e.isDefault?'<div class="as-oil-poi-category-list">'+(0,l.getVendorsToDisplay)().map(function(e){return h(e)}).join("")+"</div>":"Missing vendor list! Maybe vendor list retrieval has failed! Please contact web administrator!"},g=function(){var e=(0,l.getCustomVendorList)();return e&&!e.isDefault?'<div class="as-oil-poi-category-list">'+e.vendors.map(function(e){return h(e)}).join("")+"</div>":"Missing custom vendor list! Maybe vendor list retrieval has failed! Please contact web administrator!"},h=function(e){if(e.name)return'\n          <div class="as-oil-third-party-list-element">\n              <span onclick=\''+s.OIL_GLOBAL_OBJECT_NAME+'._toggleViewElements(this)\'>\n                  <svg class=\'as-oil-icon-plus\' width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">\n                    <path d="M5.675 4.328H10v1.344H5.675V10h-1.35V5.672H0V4.328h4.325V0h1.35z" fill="#0068FF" fill-rule="evenodd" fill-opacity=".88"/>\n                  </svg>\n                  <svg class=\'as-oil-icon-minus\' style=\'display: none;\' width="10" height="5" viewBox="0 0 10 5" xmlns="http://www.w3.org/2000/svg">\n                    <path d="M0 0h10v1.5H0z" fill="#3B7BE2" fill-rule="evenodd" opacity=".88"/>\n                  </svg>\n                  <span class=\'as-oil-third-party-name\'>'+e.name+"</span>\n              </span>\n              <div class='as-oil-third-party-toggle-part' style='display: none;'>\n                <a class='as-oil-third-party-link' href='"+e.policyUrl+"'>"+e.policyUrl+"</a>\n              </div>\n            </div>\n          "},m=function(){return'\n  <div class="as-oil-cpc__row-btn-all">\n        <span class="as-js-btn-deactivate-all as-oil__btn-grey">'+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_DEACTIVATE_ALL)+'</span>\n        <span class="as-js-btn-activate-all as-oil__btn-blue">'+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_ACTIVATE_ALL)+"</span>\n      </div>\n  "},O=function(e){return e.map(function(e){return function(e){var t=e.id,n=e.header,o=e.text,i=e.value,a=e.locked;if((0,l.getPurposesOfCategory)(t).length){var s="",c="",u="";return a&&(s="readonly",u="as-oil-cpc__category-disabled"),i&&(c="checked"),o||(u+=" no-cat-description"),'\n<div class="as-oil-cpc__category '+u+'">\n    <div class="as-oil-cpc__category-container">\n        <div class="as-oil-cpc__category-header">\n          '+n+'\n        </div>\n\n        <div class="as-oil-cpc__category-text">'+o+'</div>\n        <label class="as-oil-cpc__switch">\n            <input data-id="'+t+'" id="as-js-category-slider-'+t+'" class="as-js-category-slider" type="checkbox" name="oil-cpc-category-'+t+'" value="'+i+'" data-locked="'+a+'" '+s+" "+c+'/>\n            <span class="as-oil-cpc__status"></span>\n            <span class="as-oil-cpc__slider"></span>\n        </label>\n\n\n        <div class="as-oil-cpc_category-children">\n            '+function(e,t){return e.map(function(e){return function(e){var t=e.id,n=e.text,o=e.value,i=e.locked,r="",a="",s="";return i&&(r="readonly"),o&&(a="checked"),n||(s+=" no-purpose-description"),'\n<div class="as-oil-cpc__purpose '+s+'">\n    <div class="as-oil-cpc__purpose-container">\n        <div class="as-oil-cpc__purpose-header">'+e.header+'</div>\n        <div class="as-oil-cpc__purpose-text">'+n+'</div>\n        <label class="as-oil-cpc__switch">\n            <input data-id="'+t+'" data-category="'+e.category+'" '+a+' id="as-js-purpose-slider-'+t+'" class="as-js-purpose-slider" type="checkbox" name="oil-cpc-purpose-'+t+'" value="'+o+'" data-locked="'+i+'" '+r+'/>\n            <span class="as-oil-cpc__status"></span>\n            <span class="as-oil-cpc__slider"></span>\n        </label>\n    </div>\n</div>'}({id:e.id,header:(0,r.getLabelWithDefault)("label_cpc_purpose_"+T(e.id)+"_text",e.name||"Error: Missing text for purpose with id "+e.id+"!"),text:(0,r.getLabelWithDefault)("label_cpc_purpose_"+T(e.id)+"_desc",e.description||""),value:e.value||!1,category:e.category,locked:t})}).join("")}((0,l.getPurposesOfCategory)(t),a)+"\n        </div>\n\n    </div>\n</div>"}}({id:e.id,header:(0,r.getLabelWithDefault)("label_cpc_category_"+T(e.id)+"_text",e.name||"Error: Missing text for category with id "+e.id+"!"),text:(0,r.getLabelWithDefault)("label_cpc_category_"+T(e.id)+"_desc",e.description||""),value:!1,locked:e.locked||!1})}).join("")},T=function(e){return e<10?"0"+e:e};function A(e){var t;t=e.target?e.target.getAttribute("data-category"):e.getAttribute("data-category");var n=document.querySelectorAll('[data-category="'+t+'"]'),o=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n)).filter(function(e){return e.checked});document.getElementById("as-js-category-slider-"+t).checked=o.length===n.length,o.length<n.length?document.getElementById("as-js-category-slider-"+t).classList.add("half-active"):document.getElementById("as-js-category-slider-"+t).classList.remove("half-active"),0===o.length&&document.getElementById("as-js-category-slider-"+t).classList.remove("half-active")}function L(){var e=document.querySelectorAll(".as-js-category-slider[data-locked=false]");(0,i.forEach)(e,function(e){e&&(e.checked=!0)});var t=document.querySelectorAll(".as-js-purpose-slider[data-locked=false]");(0,i.forEach)(t,function(e){e&&(e.checked=!0)})}function E(){var e=document.querySelectorAll(".as-js-category-slider[data-locked=false]");(0,i.forEach)(e,function(e){e&&(e.checked=!1)}),(0,i.forEach)(document.querySelectorAll(".as-js-purpose-slider[data-locked=false]"),function(e){e&&(e.checked=!1)})}(0,c.setGlobalOilObject)("_switchLeftMenuClass",function(e){var t=e.parentNode.children;(0,i.forEach)(t,function(e){e.className=e.className.replace(new RegExp("\\s?as-oil-cpc__category-link--active\\s?","g"),"")}),e.className+=" as-oil-cpc__category-link--active"})},,,,,,,,,,function(e,t,n){"use strict";n(123),n(62),(0,n(124).initOilLayer)()},function(e,t,n){"use strict";if(window.AS_OIL&&window.AS_OIL.CONFIG)n.p=window.AS_OIL.CONFIG.publicPath;else{var o=document.querySelector('script[type="application/configuration"]#oil-configuration');if(null!==o&&o.text)try{var i=JSON.parse(o.text);i&&i.hasOwnProperty("publicPath")&&(n.p=i.publicPath)}catch(e){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initOilLayer=function e(){if((0,r.logInfo)("Init OilLayer (version "+o.OilVersion.get()+")"),(0,l.isPreviewMode)()&&!(0,s.isPreviewCookieSet)()&&(0,r.logPreviewInfo)("Preview mode ON and OIL layer remains hidden. Run AS_OIL.previewModeOn() and reload to display the layer."),document.addEventListener("DOMContentLoaded",_),function(){function t(e){new Promise(function(e){Promise.resolve().then(function(t){e(n(108))}.bind(null,n)).catch(n.oe)}).then(function(t){(0,l.getLocale)()?e(t):t.locale(e)}).catch(function(e){(0,r.logError)("Locale could not be loaded.",e)})}(0,o.setGlobalOilObject)("previewModeOn",function(){return(0,s.setPreviewCookie)(),"preview mode on"}),(0,o.setGlobalOilObject)("previewModeOff",function(){return(0,s.removePreviewCookie)(),"preview mode off"}),(0,o.setGlobalOilObject)("verboseModeOn",function(){return(0,s.setVerboseCookie)(),"verbose mode on"}),(0,o.setGlobalOilObject)("verboseModeOff",function(){return(0,s.removeVerboseCookie)(),"verbose mode off"}),(0,o.setGlobalOilObject)("reload",function(){return(0,l.resetConfiguration)(),e(),"OIL reloaded"}),(0,o.setGlobalOilObject)("status",function(){return(0,s.getSoiCookie)()}),(0,o.setGlobalOilObject)("showPreferenceCenter",function(){t(function(e){e.oilShowPreferenceCenter()})}),(0,o.setGlobalOilObject)("triggerOptIn",function(){t(function(e){e.handleOptIn()})}),(0,o.setGlobalOilObject)("triggerSoiOptIn",function(){t(function(e){e.handleSoiOptIn()})}),(0,o.setGlobalOilObject)("triggerPoiOptIn",function(){t(function(e){e.handlePoiOptIn()})}),(0,o.setGlobalOilObject)("triggerOptOut",function(){(0,i.handleOptOut)()}),(0,o.setGlobalOilObject)("applyGDPR",function(){return(0,l.setGdprApplies)(!0),e(),"GDPR applied"})}(),(0,c.doSetTealiumVariables)(),!(0,l.isPreviewMode)()||(0,s.isPreviewCookieSet)()){if(!(0,l.isAmpModeActivated)()&&!(0,s.isBrowserCookieEnabled)())return(0,r.logInfo)("This browser doesn't allow cookies."),new Promise(function(e){Promise.resolve().then(function(t){e(n(108))}.bind(null,n)).catch(n.oe)}).then(function(e){e.locale(function(e){return e.renderOil({noCookie:!0})})}).catch(function(e){(0,r.logError)("Locale could not be loaded.",e)}),void(0,o.sendEventToHostSite)(u.EVENT_NAME_NO_COOKIES_ALLOWED);(0,a.checkOptIn)().then(function(e){e?((0,o.sendEventToHostSite)(u.EVENT_NAME_HAS_OPTED_IN),(0,d.executeCommandCollection)(),v(),(0,p.sendConsentInformationToCustomVendors)().then(function(){return(0,r.logInfo)("Consent information sending to custom vendors after OIL start with found opt-in finished!")})):(new Promise(function(e){Promise.resolve().then(function(t){e(n(108))}.bind(null,n)).catch(n.oe)}).then(function(e){e.locale(function(e){return e.renderOil({optIn:!1})}),v()}).catch(function(e){(0,r.logError)("Locale could not be loaded.",e)}),(0,p.sendConsentInformationToCustomVendors)().then(function(){return(0,r.logInfo)("Consent information sending to custom vendors after OIL start without found opt-in finished!")}))})}};var o=n(5),i=n(125),r=n(3),a=n(127),s=n(14),c=n(128),l=n(4),u=n(2),d=n(111),f=n(106),p=n(107);function _(){document.removeEventListener("DOMContentLoaded",_),(0,f.manageDomElementActivation)()}function v(){(0,o.setGlobalOilObject)("commandCollectionExecutor",d.executeCommandCollection)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleOptOut=function(){(0,i.logInfo)("OptOut Received."),(0,r.removeSubscriberCookies)(),(0,o.deActivatePowerOptIn)().then(function(){return(0,a.sendEventToHostSite)(s.EVENT_NAME_OPT_OUT)}),(0,l.executeCommandCollection)(),(0,u.sendConsentInformationToCustomVendors)().then(function(){return(0,i.logInfo)("Consent information sending to custom vendors after opt-out is done!")}),(0,c.manageDomElementActivation)()};var o=n(58),i=n(3),r=n(14),a=n(5),s=n(2),c=n(106),l=n(111),u=n(107)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getVendorConsentData=function(e){var t=(0,o.getSoiCookie)();if(t&&t.consentData)return{metadata:t.consentData.getMetadataString(),gdprApplies:(0,i.gdprApplies)(),hasGlobalScope:!1,purposeConsents:s(t.consentData.getPurposesAllowed(),(0,r.getPurposeIds)()),vendorConsents:function(e,t){var n=t&&t.length?t:(0,r.getLimitedVendorIds)(),o=e.consentData.getVendorsAllowed();return n.reduce(function(e,t){return e[t]=-1!==o.indexOf(t),e},{})}(t,e)}},t.getConsentDataString=function(e){var t=(0,o.getSoiCookie)();if(t&&t.consentData){var n=function(e,t){var n=t?parseInt(t,10):a.OIL_SPEC.LATEST_CONSENT_STRING_VERSION;return!isNaN(n)&&n<=e.consentData.getVersion()?e.consentString:null}(t,e);if(n)return{gdprApplies:(0,i.gdprApplies)(),hasGlobalScope:!1,consentData:n}}},t.getPublisherConsentData=function(e){var t=(0,o.getSoiCookie)();if(t&&t.consentData&&t.customPurposes)return{metadata:t.consentData.getMetadataString(),gdprApplies:(0,i.gdprApplies)(),hasGlobalScope:!1,standardPurposeConsents:s(t.consentData.getPurposesAllowed(),(0,r.getPurposeIds)(),e),customPurposeConsents:s(t.customPurposes,(0,i.getCustomPurposeIds)(),e)}};var o=n(14),i=n(4),r=n(17),a=n(2);function s(e,t,n){return(n&&n.length?n:t).filter(function(e){return-1!==t.indexOf(e)}).reduce(function(t,n){return t[n]=-1!==e.indexOf(n),t},{})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkOptIn=function(){return new Promise(function(e,t){var n=(0,o.getSoiCookie)().opt_in,a=n;(0,r.verifyPowerOptIn)().then(function(r){!function(e,t){r.power_opt_in?(0,i.logPreviewInfo)("User has given POI permit, OIL not shown."):e?(0,i.logPreviewInfo)("User has given SOI permit, OIL not shown."):(0,i.logPreviewInfo)("User has not opted in at all, OIL should be shown.")}(n),r.power_opt_in&&(a=r.power_opt_in,n||(0,o.setSoiCookieWithPoiCookieData)(r).then(function(){return e(a)}).catch(function(e){return t(e)})),e(a)})})};var o=n(14),i=n(3),r=n(58)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.doSetTealiumVariables=f;var o=n(4),i=n(14);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a="_dip_oil_purpose_all",s="_dip_oil_purpose_01",c="_dip_oil_purpose_02",l="_dip_oil_purpose_03",u="_dip_oil_purpose_04",d="_dip_oil_purpose_05";function f(){if(window&&window.utag){!function(){if(!window.oilEventListenerForLoadingRules){window.oilEventListenerForLoadingRules=p;var e=window.addEventListener?"addEventListener":"attachEvent",t="attachEvent"===e?"onmessage":"message";(0,window[e])(t,window.oilEventListenerForLoadingRules,!1)}}(),window.utag_data||(window.utag_data={});var e=window.utag_data,t=(0,i.getSoiCookie)().consentData;if(t){var n=t.getPurposesAllowed();5===n.length?e[a]=1:(function(e,t){e[s]=-1!==t.indexOf(1)?1:0,e[c]=-1!==t.indexOf(2)?1:0,e[l]=-1!==t.indexOf(3)?1:0,e[u]=-1!==t.indexOf(4)?1:0,e[d]=-1!==t.indexOf(5)?1:0}(e,n),function(e){e[a]=1===e[s]&&1===e[c]&&1===e[l]&&1===e[u]&&1===e[d]?1:0}(e))}else!function(e){e[a]=0,e[s]=0,e[c]=0,e[l]=0,e[u]=0,e[d]=0}(e)}}function p(e){e&&e.data&&("oil_opt",-1!==JSON.stringify(e.data).indexOf("oil_opt"))&&(f(),function(){var e=window.utag_data;if(e){var t,n=(r(t={},a,e[a]),r(t,s,e[s]),r(t,c,e[c]),r(t,l,e[l]),r(t,u,e[u]),r(t,d,e[d]),t);(0,o.isInfoBannerOnly)()||window.utag.view(n)}}())}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilPowerOptIn=function(e){return(0,l.isAmpModeActivated)()?((0,a.sendEventToHostSite)(s.EVENT_NAME_OPT_IN),Promise.resolve(!0)):new Promise(function(t,n){(0,c.setSoiCookie)(e).then(function(e){var n,c=(u(n={},s.OIL_PAYLOAD_PRIVACY,(0,l.isInfoBannerOnly)()?"":e.consentString),u(n,s.OIL_PAYLOAD_VERSION,e.version),u(n,s.OIL_PAYLOAD_LOCALE_VARIANT_NAME,e.localeVariantName),u(n,s.OIL_PAYLOAD_LOCALE_VARIANT_VERSION,e.localeVariantVersion),u(n,s.OIL_PAYLOAD_CUSTOM_VENDORLIST_VERSION,e.customVendorListVersion),u(n,s.OIL_PAYLOAD_CUSTOM_PURPOSES,e.customPurposes),u(n,s.OIL_PAYLOAD_CONFIG_VERSION,e.configVersion),n);(0,l.isPoiActive)()&&((0,r.activatePowerOptInWithIFrame)(c),(0,o.verifyPowerOptIn)().then(function(e){!1===e.power_opt_in&&((0,i.logInfo)("iFrame POI didn't work. Trying fallback now."),(0,r.activatePowerOptInWithRedirect)(c))})),(0,a.sendEventToHostSite)(s.EVENT_NAME_OPT_IN),t(!0)}).catch(function(e){return n(e)})})},t.oilOptIn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s.PRIVACY_FULL_TRACKING;return(0,l.isAmpModeActivated)()?((0,a.sendEventToHostSite)(s.EVENT_NAME_OPT_IN),Promise.resolve(!0)):new Promise(function(t,n){(0,c.setSoiCookie)(e).then(function(){(0,a.sendEventToHostSite)(s.EVENT_NAME_OPT_IN),t(!0)}).catch(function(e){return n(e)})})};var o=n(58),i=n(3),r=n(130),a=n(5),s=n(2),c=n(14),l=n(4);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.activatePowerOptInWithIFrame=function(e){return(0,i.isPoiActive)()?new Promise(function(t){return(0,r.init)().then(function(){(0,r.sendEventToFrame)("oil-poi-activate",(0,a.getOrigin)(),e),setTimeout(t)})}):new Promise(function(e){e()})},t.redirectToLocation=function(e){window.location.replace(e)},t.activatePowerOptInWithRedirect=function(e){if((0,i.isPoiActive)()){var n=JSON.stringify(e),r=encodeURIComponent(n),a=(0,i.getHubLocation)(),s=(0,i.getPoiGroupName)();if(a){var c=a+"?"+o.POI_FALLBACK_NAME+"=1";s&&(c=c+"&"+o.POI_FALLBACK_GROUP_NAME+"="+s),e&&(c=c+"&"+o.POI_PAYLOAD+"="+r),t.redirectToLocation(c)}}};var o=n(2),i=n(4),r=n(58),a=n(5)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilDefaultTemplate=function(){return'\n    <div class="as-oil-content-overlay" data-qa="oil-full">\n        <div class="as-oil-l-wrapper-layout-max-width">\n            <div class="as-oil__heading-intro-description">\n              <div class="as-oil__heading">\n                  '+(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_INTRO_HEADING)+'\n              </div>\n              <p class="as-oil__intro-txt">\n                  '+(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_INTRO)+'\n              </p>\n            </div>\n            <div class="as-oil-l-row as-oil-l-buttons">\n                <div class="as-oil-l-item">\n                    '+(0,a.YesAllButton)("as-oil__btn-optin "+o.JS_CLASS_BUTTON_OPTIN)+'\n                </div>\n\n                <div class="as-oil-l-item">\n                    '+(0,a.OnlyEssentialsButton)("as-oil__btn as-oil__btn-only-essentials "+o.JS_CLASS_BUTTON_ONLY_ESSENTIALS)+'\n                </div>\n                <div class="as-oil-l-item as-oil-l-item--stretch">\n                    '+(0,a.AdvancedSettingsButton)((0,i.isAdvancedSettings)())+'\n                </div>\n            </div>\n            <div class="as-oil-l-row as-oil-imprint-links">'+(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_IMPRINT_LINKS)+"</div>\n        </div>\n    </div>\n"};var o=n(2),i=n(30),r=n(31),a=n(60)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilNoCookiesTemplate=function(){return'\n    <div class="as-oil-content-overlay oil-nocookies" data-qa="oil-nocookies">\n        <div class="as-oil-l-wrapper-layout-max-width">\n            <div class="as-oil__heading">\n                '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_NO_COOKIES_HEADING)+'\n            </div>\n            <p class="as-oil__intro-txt">\n                '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_NO_COOKIES_TEXT)+"\n            </p>\n        </div>\n    </div>\n"};var o=n(31),i=n(30)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oilAdvancedSettingsTemplate=function(){return'\n    <div id="as-oil-cpc" class="as-oil-content-overlay" data-qa="oil-cpc-overlay">\n      '+u()+"\n    </div>\n  "},t.oilAdvancedSettingsInlineTemplate=u,t.attachCpcHandlers=function(){(0,i.forEach)(document.querySelectorAll(".as-js-purpose-slider"),function(e){e&&e.addEventListener("change",function(e){return function(e){var t=e.getAttribute("data-id"),n=document.getElementById("purpose-feature-texts-"+t).getElementsByClassName("checkmark");if(e.checked)for(var o=0;o<n.length;o++)n[o].classList.remove("checkmark-off"),n[o].classList.add("checkmark-on");else for(var i=0;i<n.length;i++)n[i].classList.remove("checkmark-on"),n[i].classList.add("checkmark-off")}(e.target||e.srcElement)},!1)}),(0,i.forEach)(document.querySelectorAll(".as-js-tab-label"),function(e){e&&e.addEventListener("click",function(e){return function(e){for(var t=document.getElementsByClassName("as-js-tab-label"),n=0;n<t.length;n++)t[n].classList.remove("as-oil-tabs-cpc__purpose-label-active"),t[n].classList.add("as-oil-tabs-cpc__purpose-label-inactive");e.classList.remove("as-oil-tabs-cpc__purpose-label-inactive"),e.classList.add("as-oil-tabs-cpc__purpose-label-active");for(var o=document.getElementsByClassName("as-js-tab-section"),i=0;i<o.length;i++)o[i].style.display="none";var r=e.getAttribute("data-id");document.getElementById("as-js-tab-section-"+r).style.display="block"}(e.target||e.srcElement)},!1)});var e=document.getElementById("as-js-third-parties-link");e&&e.addEventListener("click",m,!1)};var o=n(31),i=n(59),r=n(30),a=n(4),s=n(2),c=n(17),l=n(60);function u(){return'\n    <div class="as-oil-l-wrapper-layout-max-width as-oil-tabs-cpc__wrapper">\n      <div class="as-oil-tabs-cpc__headline as-oil-center">\n        '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_HEADING)+'\n      </div>\n      <p class="as-oil-center as-oil-margin-top">\n        '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_TEXT)+"\n      </p>\n      <hr/>\n      "+(0,l.BackButton)()+"\n      "+d()+"\n    </div>\n  "}var d=function(){return'\n    <div class="as-oil-tabs-cpc__purpose-description as-oil-center as-oil-margin-top" id="as-oil-cpc-purposes">\n      '+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_PURPOSE_DESC)+'\n    </div>\n    <div class="as-oil-cpc__middle">\n      '+p((0,c.getPurposes)().concat((0,a.getCustomPurposes)()))+'\n      <div class="as-oil-margin-top">\n        <div class="as-oil-tabs-cpc__third-parties-link" id="as-js-third-parties-link"><span>i</span>'+(0,r.getLabel)(o.OIL_LABELS.ATTR_LABEL_THIRD_PARTY)+'</a></div>\n        \n        <div id="as-js-third-parties-list" class="as-oil-tabs-cpc__third-parties-list" style="display: none;">\n           '+_()+"\n           \n          "+(g()?'\n          <div id="as-oil-custom-third-parties-list">\n            '+v()+"\n          </div>\n           ":"")+'\n        </div>\n        \n   \n      </div>\n    </div>\n    <hr>\n      <div class="as-oil-l-item">\n        '+(0,l.YesButton)("as-oil__btn-optin "+s.JS_CLASS_BUTTON_OPTIN)+"\n      </div>\n  "},f=function(e){return e<10?"0"+e:e},p=function(e){return'\n    <div class="as-oil-tabs-cpc__purpose-labels as-oil-margin-top">\n      '+function(e){return e.map(function(e){return'\n    <span data-id="'+(n=(t={id:e.id,label:(0,r.getLabelWithDefault)("label_cpc_purpose_"+f(e.id)+"_text",e.name||"Error: Missing text for purpose with id "+e.id+"!")}).id)+'" class="as-js-tab-label '+(1===n?"as-oil-tabs-cpc__purpose-label-active":"as-oil-tabs-cpc__purpose-label-inactive")+'">'+t.label+"</span>\n  ";var t,n}).join("")}(e)+'\n    </div>\n    <div class="as-oil-tabs-cpc__purpose-text as-oil-margin-top">\n      '+function(e){return e.map(function(e){return'\n    <section id="as-js-tab-section-'+(n=(t={id:e.id,text:(0,r.getLabelWithDefault)("label_cpc_purpose_"+f(e.id)+"_desc",e.description||""),featureTexts:(0,r.getLabelWithDefault)("label_cpc_purpose_"+f(e.id)+"_features",[]),isSelected:!1}).id)+'" class="as-oil-margin-top as-js-tab-section">\n      <div>\n        <p>'+t.text+'</p>\n        <label class="as-oil-tabs-cpc__switch">\n          <input data-id="'+n+'" id="as-js-purpose-slider-'+n+'" class="as-js-purpose-slider" type="checkbox" name="oil-cpc-purpose-'+n+'" value="'+t.isSelected+'">\n          <span class="as-oil-cpc__slider"></span>\n        </label>\n      </div>\n      <div class="as-oil-tabs-cpc__purpose-feature-texts as-oil-margin-top" id="purpose-feature-texts-'+n+'">\n        '+((o=t.featureTexts).length>0?"\n    <ul>\n      "+o.map(function(e){return function(e){return'\n    <li>\n      <span class="checkmark checkmark-off"></span><span>'+e+"</span>\n    </li>\n  "}(e)}).join("")+"\n    </ul>\n  ":"")+"\n      </div>\n    </section>\n  ";var t,n,o}).join("")}(e)+"\n    </div>\n  "},_=function(){var e=(0,c.getVendorList)();return e&&!e.isDefault?'<div class="as-oil-poi-group-list">'+(0,c.getVendorsToDisplay)().map(function(e){if(e.name)return h(e)}).join("")+"</div>":"Missing vendor list! Maybe vendor list retrieval has failed! Please contact web administrator!"},v=function(){var e=(0,c.getCustomVendorList)();return e&&!e.isDefault&&e.vendors?'<div class="as-oil-poi-group-list">'+e.vendors.map(function(e){if(e.name)return h(e)}).join("")+"</div>":"Missing custom vendor list! Maybe custom vendor list retrieval has failed! Please contact web administrator!"},g=function(){return!!(0,a.getCustomVendorListUrl)()},h=function(e){return'\n          <div class="as-oil-third-party-list-element">\n            <span onclick=\''+s.OIL_GLOBAL_OBJECT_NAME+'._toggleViewElements(this)\'>\n                <svg class=\'as-oil-icon-plus\' width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">\n                  <path d="M5.675 4.328H10v1.344H5.675V10h-1.35V5.672H0V4.328h4.325V0h1.35z" fill="#0068FF" fill-rule="evenodd" fill-opacity=".88"/>\n                </svg>\n                <svg class=\'as-oil-icon-minus\' style=\'display: none;\' width="10" height="5" viewBox="0 0 10 5" xmlns="http://www.w3.org/2000/svg">\n                  <path d="M0 0h10v1.5H0z" fill="#3B7BE2" fill-rule="evenodd" opacity=".88"/>\n                </svg>\n                <span class=\'as-oil-third-party-name\'>'+e.name+"</span>\n            </span>\n            <div class='as-oil-third-party-toggle-part' style='display: none;'>\n              <a class='as-oil-third-party-link' href='"+e.policyUrl+"'>"+e.policyUrl+"</a>\n            </div>\n          </div>\n        "};function m(){var e=document.getElementById("as-js-third-parties-list");e.style.display="none"===e.style.display?"block":"none"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSoiConsentData=function(){var e=(0,o.getSoiCookie)();return e.opt_in?e.consentData:void 0},t.getPrivacySettings=function(){if(document.querySelector(".as-js-purpose-slider")){var e={};return(0,a.forEach)(document.querySelectorAll(".as-js-purpose-slider"),function(t){var n=t.dataset?t.dataset.id:t.getAttribute("data-id");e[n]=t.checked},this),e}return i.PRIVACY_FULL_TRACKING},t.getOnlyEssentialsPrivacySettings=function(){var e={};return(0,s.getPurposes)().forEach(function(t){e[t.id]=1===t.category}),e},t.applyPrivacySettings=function(e){(0,r.logInfo)("Apply privacy settings from cookie",e),(0,a.forEach)(document.querySelectorAll(".as-js-purpose-slider[data-locked=false]"),function(t){if(t){var n=parseInt(t.dataset?t.dataset.id:t.getAttribute("data-id"),10);t.checked=-1!==e.indexOf(n)}}),1===e&&(0,a.forEach)(document.querySelectorAll(".as-js-purpose-slider[data-locked=false]"),function(e){e&&(e.checked=!0)}),0===e&&(0,a.forEach)(document.querySelectorAll(".as-js-purpose-slider[data-locked=false]"),function(e){e&&(e.checked=!1)})};var o=n(14),i=n(2),r=n(3),a=n(59),s=n(17)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.showOptoutConfirmation=c,t.activateOptoutConfirm=function(){(0,i.forEach)(document.querySelectorAll(".as-js-purpose-slider"),function(e){e.addEventListener("click",d,!0)}),(0,i.forEach)(document.querySelectorAll(".as-js-btn-deactivate-all"),function(e){e.addEventListener("click",u,!0)})};var o=n(136),i=n(59),r=n(112),a=n(2),s=n(3);function c(){return new Promise(function(e){var t=document.querySelector("#as-oil-cpc");if(null===t&&(t=document.querySelector("#oil-preference-center")),null!==t){var n=(0,o.OptoutConfirmDialog)();t.insertBefore(n,t.firstElementChild),document.querySelector("."+a.JS_CLASS_BUTTON_CANCEL).addEventListener("click",function(){return e(!0)},!1),document.querySelector("."+a.JS_CLASS_BUTTON_PROCEED).addEventListener("click",function(){return e(!1)},!1),document.querySelector("."+a.CSS_CLASS_OPTOUT_DIALOG).addEventListener("click",function(t){t.target.id===a.CSS_CLASS_OPTOUT_DIALOG&&e(!0)},!1)}else(0,s.logError)("No wrapper for the CPC was found.")})}function l(){var e=document.querySelector("."+a.CSS_CLASS_OPTOUT_DIALOG);e.parentNode.removeChild(e)}function u(e){return c().then(function(e){e||(0,r.deactivateAll)(),l()}),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!1}function d(e){e.target.checked||(c().then(function(t){e.target.checked=t,e.target.dispatchEvent(new CustomEvent("change")),l()}),e.target.checked=!0,e.preventDefault(),e.stopPropagation())}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptoutConfirmDialog=void 0;var o=n(31),i=n(30),r=n(60);t.OptoutConfirmDialog=function(){var e=document.createElement("div");return e.id="as-oil-optout-confirm",e.className="as-oil-optout-confirm",e.innerHTML='\n    <div class="as-oil-optout-confirm__dialog">\n      <div class="as-oil-optout-confirm__dialog__heading">\n        '+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_PURPOSE_OPTOUT_HEADING)+"\n      </div>\n      <p>\n        "+(0,i.getLabel)(o.OIL_LABELS.ATTR_LABEL_CPC_PURPOSE_OPTOUT_TEXT)+'\n      </p>\n      <div class="as-oil-l-row as-oil-l-buttons">\n        '+(0,r.CancelButton)()+"\n        "+(0,r.ProceedButton)()+"\n      </div>\n    </div>\n  ",e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.listSnippet=void 0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.renderOilGroupListTemplate=function(e){(0,c.getGroupList)().then(function(t){e(d(t))})},t.renderOilThirdPartyListTemplate=function(e){(0,l.loadVendorListAndCustomVendorList)().then(function(){(0,c.getGroupList)().then(function(){e(f((0,l.getVendorsToDisplay)()))})})},t.oilGroupListTemplate=d,t.oilThirdPartyListTemplate=f;var i=n(30),r=n(31),a=n(2),s=n(5),c=n(110),l=n(17),u=n(60);function d(e){return v(e,(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_POI_GROUP_LIST_HEADING),(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_POI_GROUP_LIST_TEXT))}function f(e){return v(e,(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_THIRD_PARTY_LIST_HEADING),(0,i.getLabel)(r.OIL_LABELS.ATTR_LABEL_THIRD_PARTY_LIST_TEXT))}var p=t.listSnippet=function(e){return e||(e=[]),'<div class="as-oil-poi-group-list">'+e.map(function(e){return"object"===(void 0===e?"undefined":o(e))?'<div class="as-oil-third-party-list-element">\n                <span onclick=\''+a.OIL_GLOBAL_OBJECT_NAME+'._toggleViewElements(this)\'>\n                    <svg class=\'as-oil-icon-plus\' width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">\n                      <path d="M5.675 4.328H10v1.344H5.675V10h-1.35V5.672H0V4.328h4.325V0h1.35z" fill="#0068FF" fill-rule="evenodd" fill-opacity=".88"/>\n                    </svg>\n                    <svg class=\'as-oil-icon-minus\' style=\'display: none;\' width="10" height="5" viewBox="0 0 10 5" xmlns="http://www.w3.org/2000/svg">\n                      <path d="M0 0h10v1.5H0z" fill="#3B7BE2" fill-rule="evenodd" opacity=".88"/>\n                    </svg>\n                    <span class=\'as-oil-third-party-name\'>'+e.name+"</span>\n                </span>\n                <div class='as-oil-third-party-toggle-part' style='display: none;'>\n                <p class='as-oil-third-party-description' >"+e.description+"</p>\n                  <div class='as-oil-third-party-link'>"+e.link+"</div>\n                </div>\n              </div>":'<div class="as-oil-poi-group-list-element">'+e+"</div>"}).join("")+"</div>"};function _(){var e=(0,s.getGlobalOilObject)("oilCache");e&&(document.documentElement.setAttribute("style",e.documentElementStyle),document.body.setAttribute("style",e.bodyStyle)),(0,s.setGlobalOilObject)("oilCache",void 0)}function v(e,t,n){return function(){if(window.matchMedia&&window.matchMedia("(max-width: 768px)").matches){(0,s.setGlobalOilObject)("oilCache",{documentElementStyle:document.documentElement.getAttribute("style"),bodyStyle:document.body.getAttribute("style"),remove:_});var e="overflow: hidden; position: relative; height: 100%;";document.documentElement.setAttribute("style",e),document.body.setAttribute("style",e),t=window.addEventListener?"addEventListener":"attachEvent",n=window.removeEventListener?"removeEventListener":"detachEvent",o="attachEvent"===t?"onmessage":"message",i=window[t],r=window[n],i(o,function e(t){t&&t.data&&-1!==JSON.stringify(t.data).indexOf("oil_")&&(_(),r(o,e,!1))},!1)}var t,n,o,i,r}(),'<div class="as-oil-fixed">\n    <div class="as-oil-content-overlay as-oil-poi-group-list-wrapper" data-qa="oil-poi-list">\n        <div class="as-oil-l-wrapper-layout-max-width">\n            <div class="as-oil__heading">\n                '+t+'\n            </div>\n            <p class="as-oil__intro-txt">\n                '+n+" \n            </p>\n            "+p(e)+"\n            "+(0,u.BackButton)()+'\n        </div>\n        <div class="as-oil-l-row as-oil-l-buttons-'+(0,i.getTheme)()+'">\n            <div class="as-oil-l-item">\n              '+(0,u.YesButton)("as-oil__btn-optin "+a.JS_CLASS_BUTTON_OPTIN)+"\n            </div>\n        </div>\n    </div>\n</div>"}(0,s.setGlobalOilObject)("_toggleViewElements",function(e){var t=e.children[0],n=e.children[1],o=e.nextElementSibling;"none"===o.style.display?(o.setAttribute("style","display: block; animation: fadein 0.5s"),n.setAttribute("style","display: inline-block; animation: fadein 0.5s"),t.setAttribute("style","display: none")):(o.setAttribute("style","display: none"),n.setAttribute("style","display: none"),t.setAttribute("style","display: inline-block; animation: fadein 0.5s"))})},function(e,t){e.exports={localeId:"enEN_00",version:0,texts:{label_intro_heading:"We use cookies and other technologies",label_intro:'The website uses cookies, web beacons, JavaScript and similar technologies. I agree that <a href="javascript:void(0)" class="as-oil__intro-txt--link as-js-thirdPartyList">trusted partners</a> generate pseudonymous user profiles for adapting the website to the user, for market research and for advertising. The generated data can also be shared with third parties while the user profiles cannot be combined with personal data. Detailed information, also on the right to withdraw consent, can be found in the website\'s privacy policy.',label_button_yes:"Save",label_button_yes_all:"Accept all",label_button_only_essentials:"Only essential",label_button_back:"Back",label_button_advanced_settings:"More information",label_cpc_heading:"Privacy settings:",label_cpc_text:"Please select a privacy setting",label_cpc_activate_all:"Activate all",label_cpc_deactivate_all:"Deactivate all",label_third_party:"IAB 3rd Parties",label_custom_thirdparty_heading:"Publisher 3rd Parties",label_cpc_purpose_desc:"Purpose",label_cpc_purpose_optout_confirm_heading:"Are you really sure?",label_cpc_purpose_optout_confirm_text:"This setting will significantly affect your experience on our website.",label_cpc_purpose_optout_confirm_proceed:"Continue",label_cpc_purpose_optout_confirm_cancel:"Cancel",label_poi_group_list_heading:"Your consent for companies of the group",label_poi_group_list_text:"Here is a list of companies of the group:",label_thirdparty_list_heading:"Your consent for third party software",label_thirdparty_list_text:"Here is a list of third party software.",label_nocookie_head:"In order to be able to provide our services in the best possible way, cookies must be activated in your browser.",label_nocookie_text:'Please activate cookies in the properties of your browsers. So you can do it in <a href="https://support.google.com/chrome/answer/95647?co=GENIE.Platform%3DDesktop&amp;hl=en-GB" class="as-oil__intro-txt--link" target="_blank">Google Chrome</a> or <a href="https://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer" class="as-oil__intro-txt--link" target="_blank">Firefox</a>.".',label_imprint_links:""}}}]),Array.from||(Array.from=function(){function e(e){return"function"==typeof e||"[object Function]"===n.call(e)}function t(e){var t,n=(t=Number(e),isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t);return Math.min(Math.max(n,0),o)}var n=Object.prototype.toString,o=Math.pow(2,53)-1;return function(n,o,i){var r=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var a,s=1<arguments.length?o:void 0;if(void 0!==s){if(!e(s))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(a=i)}for(var c,l=t(r.length),u=e(this)?Object(new this(l)):new Array(l),d=0;d<l;)c=r[d],u[d]=s?void 0===a?s(c,d):s.call(a,c,d):c,d+=1;return u.length=l,u}}());
Array.from||(Array.from=function(){function h(r){return"function"==typeof r||"[object Function]"===t.call(r)}function l(r){var t,n=(t=Number(r),isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t);return Math.min(Math.max(n,0),e)}var t=Object.prototype.toString,e=Math.pow(2,53)-1;return function(r,t,n){var e=Object(r);if(null==r)throw new TypeError("Array.from requires an array-like object - not null or undefined");var o,a=1<arguments.length?t:void 0;if(void 0!==a){if(!h(a))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(o=n)}for(var i,u=l(e.length),f=h(this)?Object(new this(u)):new Array(u),c=0;c<u;)i=e[c],f[c]=a?void 0===o?a(i,c):a.call(o,i,c):i,c+=1;return f.length=u,f}}());

Erweiterung der Options-Templates um Einbindung der Sprachdateien[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/product_options/multi_options_1.html
/templates/tpl_modified/module/product_options/product_options_dropdown.html
/templates/tpl_modified/module/product_options/product_options_selection.html
/templates/tpl_modified_responsive/module/product_options/multi_options_1.html
/templates/tpl_modified_responsive/module/product_options/product_options_dropdown.html
/templates/tpl_modified_responsive/module/product_options/product_options_selection.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/product_options/multi_options_1.html
 /templates/TEMPLATENAME/module/product_options/product_options_dropdown.html
 /templates/TEMPLATENAME/module/product_options/product_options_selection.html
 

Suche:

{if $options != ''}

Füge danach ein:

{config_load file="$language/lang_$language.conf" section="product_info"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="product_info"}

Update jQuery auf Version 3.6.0[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/jquery.min.js
/templates/tpl_modified_responsive/javascript/jquery.min.js
/templates/xtc5/javascript/jquery.min.js

Aktualisierung des Trusted Shops Moduls[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/boxes/box_trustedshops.html
/templates/tpl_modified/source/boxes.php
/templates/tpl_modified/source/boxes/trustedshops.php
/templates/tpl_modified_responsive/boxes/box_trustedshops.html
/templates/tpl_modified_responsive/source/boxes.php
/templates/tpl_modified_responsive/source/boxes/trustedshops.php
/templates/xtc5/boxes/box_trustedshops.html
/templates/xtc5/source/boxes.php
/templates/xtc5/source/boxes/trustedshops.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/boxes/box_trustedshops.html

Suche:

{if isset($STICKER_EXISTS)}
  {$STICKER_CODE}
  <br/>
{/if}
{if isset($IMAGE_EXISTS)}

Ersetze mit:

{if $STICKER_CODE != ''}

Suche:

  <div class="box_image">
    <a rel="nofollow noopener" target="_blank" href="{$LINK}"><img src="{$IMAGE}" style="padding:0; border:0px none;" /></a>
  </div>

Ersetze mit:

  {$STICKER_CODE}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/trustedshops.php

Suche:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $link_array = array(
    'DE' => 'https://www.trustedshops.de/bewertung/info_',
    'AT' => 'https://www.trustedshops.at/bewertung/info_',
    'CH' => 'https://www.trustedshops.ch/bewertung/info_',
    'GB' => 'https://www.trustedshops.co.uk/buyerrating/info_',
    'ES' => 'https://www.trustedshops.es/evaluacion/info_',
    'FR' => 'https://www.trustedshops.fr/evaluation/info_',
    'PL' => 'https://www.trustedshops.pl/opinia/info_',
    'IT' => 'https://www.trustedshops.it/valutazione-del-negozio/info_',
    'NL' => 'https://www.trustedshops.nl/verkopersbeoordeling/info_'
  );
  if (MODULE_TS_WIDGET == '1' && is_file(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif')) {
    $box_smarty->assign('IMAGE_EXISTS', true);
    $box_smarty->assign('IMAGE', DIR_WS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif?t='.filemtime(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif'));
  }
  if (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1') {
    $box_smarty->assign('STICKER_EXISTS', true);
    $box_smarty->assign('STICKER_CODE', sprintf(MODULE_TS_REVIEW_STICKER, MODULE_TS_TRUSTEDSHOPS_ID));
  }
  $box_smarty->assign('LINK', ((isset($link_array[strtoupper($_SESSION['language_code'])])) ? $link_array[strtoupper($_SESSION['language_code'])] : $link_array[strtoupper(DEFAULT_LANGUAGE)]).MODULE_TS_TRUSTEDSHOPS_ID.'.html');
}

Ersetze mit:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $box_smarty->assign('STICKER_CODE', MODULE_TS_REVIEW_STICKER);
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes.php

Suche:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && (MODULE_TS_WIDGET == '1'
          || (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1'))
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Ersetze mit:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && MODULE_TS_REVIEW_STICKER != '' 
      && MODULE_TS_REVIEW_STICKER_STATUS == '1'
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_trustedshops.html

Suche:

{if isset($STICKER_EXISTS)}
  {$STICKER_CODE}
  <br />
{/if}
{if isset($IMAGE_EXISTS)}

Ersetze mit:

{if $STICKER_CODE != ''}

Suche:

    <div class="box_image">
      <a rel="nofollow noopener" target="_blank" href="{$LINK}"><img src="{$IMAGE}" style="padding:0; border:0px none;" /></a>
    </div>

Ersetze mit:

    {$STICKER_CODE}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/trustedshops.php

Suche:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $link_array = array(
    'DE' => 'https://www.trustedshops.de/bewertung/info_',
    'AT' => 'https://www.trustedshops.at/bewertung/info_',
    'CH' => 'https://www.trustedshops.ch/bewertung/info_',
    'GB' => 'https://www.trustedshops.co.uk/buyerrating/info_',
    'ES' => 'https://www.trustedshops.es/evaluacion/info_',
    'FR' => 'https://www.trustedshops.fr/evaluation/info_',
    'PL' => 'https://www.trustedshops.pl/opinia/info_',
    'IT' => 'https://www.trustedshops.it/valutazione-del-negozio/info_',
    'NL' => 'https://www.trustedshops.nl/verkopersbeoordeling/info_'
  );
  if (MODULE_TS_WIDGET == '1' && is_file(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif')) {
    $box_smarty->assign('IMAGE_EXISTS', true);
    $box_smarty->assign('IMAGE', DIR_WS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif?t='.filemtime(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif'));
  }
  if (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1') {
    $box_smarty->assign('STICKER_EXISTS', true);
    $box_smarty->assign('STICKER_CODE', sprintf(MODULE_TS_REVIEW_STICKER, MODULE_TS_TRUSTEDSHOPS_ID));
  }
  $box_smarty->assign('LINK', ((isset($link_array[strtoupper($_SESSION['language_code'])])) ? $link_array[strtoupper($_SESSION['language_code'])] : $link_array[strtoupper(DEFAULT_LANGUAGE)]).MODULE_TS_TRUSTEDSHOPS_ID.'.html');
}

Ersetze mit:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $box_smarty->assign('STICKER_CODE', MODULE_TS_REVIEW_STICKER);
}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes.php

Suche:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && (MODULE_TS_WIDGET == '1'
          || (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1'))
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Ersetze mit:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && MODULE_TS_REVIEW_STICKER != '' 
      && MODULE_TS_REVIEW_STICKER_STATUS == '1'
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/boxes/box_trustedshops.html

Suche:

{if isset($STICKER_EXISTS)}
  {$STICKER_CODE}
  <br/>
{/if}
{if isset($IMAGE_EXISTS)}
<h2 class="boxheader">Trusted Shops</h2>

Ersetze mit:

{if $STICKER_CODE != ''}
<h2 class="boxheader">{#heading_trustedshops#}</h2>

Suche:

  <div style="text-align: center;">
    <a rel="nofollow noopener" target="_blank" href="{$LINK}"><img src="{$IMAGE}" style="padding:0; border:0px none;" /></a>
  </div>

Ersetze mit:

  {$STICKER_CODE}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/trustedshops.php

Suche:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $link_array = array(
    'DE' => 'https://www.trustedshops.de/bewertung/info_',
    'AT' => 'https://www.trustedshops.at/bewertung/info_',
    'CH' => 'https://www.trustedshops.ch/bewertung/info_',
    'GB' => 'https://www.trustedshops.co.uk/buyerrating/info_',
    'ES' => 'https://www.trustedshops.es/evaluacion/info_',
    'FR' => 'https://www.trustedshops.fr/evaluation/info_',
    'PL' => 'https://www.trustedshops.pl/opinia/info_',
    'IT' => 'https://www.trustedshops.it/valutazione-del-negozio/info_',
    'NL' => 'https://www.trustedshops.nl/verkopersbeoordeling/info_'
  );
  if (MODULE_TS_WIDGET == '1' && is_file(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif')) {
    $box_smarty->assign('IMAGE_EXISTS', true);
    $box_smarty->assign('IMAGE', DIR_WS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif?t='.filemtime(DIR_FS_CATALOG.'cache/'.MODULE_TS_TRUSTEDSHOPS_ID.'.gif'));
  }
  if (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1') {
    $box_smarty->assign('STICKER_EXISTS', true);
    $box_smarty->assign('STICKER_CODE', sprintf(MODULE_TS_REVIEW_STICKER, MODULE_TS_TRUSTEDSHOPS_ID));
  }
  $box_smarty->assign('LINK', ((isset($link_array[strtoupper($_SESSION['language_code'])])) ? $link_array[strtoupper($_SESSION['language_code'])] : $link_array[strtoupper(DEFAULT_LANGUAGE)]).MODULE_TS_TRUSTEDSHOPS_ID.'.html');
}

Ersetze mit:

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_trustedshops.html', $cache_id) || !$cache) {
  $box_smarty->assign('STICKER_CODE', MODULE_TS_REVIEW_STICKER);
}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes.php

Suche:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && (MODULE_TS_WIDGET == '1'
          || (MODULE_TS_REVIEW_STICKER != '' && MODULE_TS_REVIEW_STICKER_STATUS == '1'))
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Ersetze mit:

  if (defined('MODULE_TS_TRUSTEDSHOPS_ID') 
      && MODULE_TS_REVIEW_STICKER != '' 
      && MODULE_TS_REVIEW_STICKER_STATUS == '1'
      ) 
  {
    require_once(DIR_FS_BOXES . 'trustedshops.php');
  }

Rechtschreibfehler in englischer Bestellbestätigung & Auftragsbestätigung korrigiert & Code-Formatierung[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail.txt
/templates/tpl_modified_responsive/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.txt
/templates/tpl_modified_responsive/mail/german/order_mail.html
/templates/tpl_modified_responsive/mail/german/order_mail_step.html
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/english/order_mail_step.txt
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail_step.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.html

Suche:

      <br />
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <tr>
          {if $address_label_payment!=$address_label_shipping}
          <td valign="top">
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickupaddress{else}Shippingaddress{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td valign="top" {if $address_label_payment!=$address_label_shipping}width="50%"{else}width="100%"{/if}>
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if $address_label_payment!=$address_label_shipping}Paymentadress{else}Payment-/Shippingaddress{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Ersetze mit:

      <br />
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <tr>
          {if $address_label_payment != $address_label_shipping}
          <td valign="top">
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickup address{else}Shipping address{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td valign="top" {if $address_label_payment != $address_label_shipping}width="50%"{else}width="100%"{/if}>
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if $address_label_payment != $address_label_shipping}Payment address{else}Payment-/Shipping address{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified_responsive/mail/english/order_mail.txt
/templates/tpl_modified_responsive/mail/english/order_mail_step.txt

Suche:

{if $address_label_payment != $address_label_shipping}
{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickupaddress
{else}Shippingaddress
{/if} 
----------------------------------------------------------------------
{$address_label_shipping}{/if}

{if $address_label_payment}
{if $address_label_payment != $address_label_shipping}Paymentadress
{else}Payment-/Shippingaddress
{/if}

Ersetze mit:

{if $address_label_payment != $address_label_shipping}
{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickup address
{else}Shipping address
{/if} 
----------------------------------------------------------------------
{$address_label_shipping}{/if}

{if $address_label_payment}
{if $address_label_payment != $address_label_shipping}Payment address
{else}Payment-/Shipping address
{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified_responsive/mail/german/order_mail.html
/templates/tpl_modified_responsive/mail/german/order_mail_step.html

Suche:

      <br />
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <tr>
          {if $address_label_payment!=$address_label_shipping}
          <td valign="top">
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td valign="top" {if $address_label_payment!=$address_label_shipping}width="50%"{else}width="100%"{/if}>
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if $address_label_payment!=$address_label_shipping}Rechnungsadresse{else}Rechnungs-/Lieferadresse{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Ersetze mit:

      <br />
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <tr>
          {if $address_label_payment != $address_label_shipping}
          <td valign="top">
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td valign="top" {if $address_label_payment != $address_label_shipping}width="50%"{else}width="100%"{/if}>
            <font size="1" face="Tahoma, Verdana, sans-serif"><b>{if $address_label_payment != $address_label_shipping}Rechnungsadresse{else}Rechnungs-/Lieferadresse{/if}</b></font><br />
            <font size="2" face="Tahoma, Verdana, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Für Template xtc5:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail_step.html

Suche:

      <br /> 
      <table style="border-top:1px solid; border-bottom:1px solid;" width="100%" border="0">
        <tr bgcolor="#f1f1f1">
          {if $address_label_payment!=$address_label_shipping}
          <td>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickupaddress{else}Shippingaddress{/if}</strong></font></p>
          </td>
          {/if}
          {if $address_label_payment}
          <td {if $address_label_payment!=$address_label_shipping}width="50%"{else}width="100%"{/if}>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if $address_label_payment!=$address_label_shipping}Paymentadress{else}Payment-/Shippingaddress{/if}</strong></font></p>
          </td>
          {/if}
        </tr>
        <tr>
          {if $address_label_payment!=$address_label_shipping}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Ersetze mit:

      <br /> 
      <table style="border-top:1px solid; border-bottom:1px solid;" width="100%" border="0">
        <tr bgcolor="#f1f1f1">
          {if $address_label_payment != $address_label_shipping}
          <td>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickup address{else}Shipping address{/if}</strong></font></p>
          </td>
          {/if}
          {if $address_label_payment}
          <td {if $address_label_payment != $address_label_shipping}width="50%"{else}width="100%"{/if}>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if $address_label_payment != $address_label_shipping}Payment address{else}Payment-/Shipping address{/if}</strong></font></p>
          </td>
          {/if}
        </tr>
        <tr>
          {if $address_label_payment != $address_label_shipping}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.txt

Suche:

{if $address_label_payment != $address_label_shipping}
{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickupaddress
{else}Shippingaddress
{/if} 
----------------------------------------------------------------------
{$address_label_shipping}{/if}

{if $address_label_payment}
{if $address_label_payment != $address_label_shipping}Paymentadress
{else}Payment-/Shippingaddress
{/if}

Ersetze mit:

{if $address_label_payment != $address_label_shipping}
{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Pickup address
{else}Shipping address
{/if} 
----------------------------------------------------------------------
{$address_label_shipping}{/if}

{if $address_label_payment}
{if $address_label_payment != $address_label_shipping}Payment address
{else}Payment-/Shipping address
{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail_step.html

Suche:

      <br /> 
      <table style="border-top:1px solid; border-bottom:1px solid;" width="100%" border="0">
        <tr bgcolor="#f1f1f1">
          {if $address_label_payment!=$address_label_shipping}
          <td>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}</strong></font></p>
          </td>
          {/if}
          {if $address_label_payment}
          <td {if $address_label_payment!=$address_label_shipping}width="50%"{else}width="100%"{/if}>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if $address_label_payment!=$address_label_shipping}Rechnungsadresse{else}Rechnungs-/Lieferadresse{/if}</strong></font></p>
          </td>
          {/if}
        </tr>
        <tr>
          {if $address_label_payment!=$address_label_shipping}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Ersetze mit:

      <br /> 
      <table style="border-top:1px solid; border-bottom:1px solid;" width="100%" border="0">
        <tr bgcolor="#f1f1f1">
          {if $address_label_payment != $address_label_shipping}
          <td>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}Abholadresse{else}Lieferadresse{/if}</strong></font></p>
          </td>
          {/if}
          {if $address_label_payment}
          <td {if $address_label_payment != $address_label_shipping}width="50%"{else}width="100%"{/if}>
            <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>{if $address_label_payment != $address_label_shipping}Rechnungsadresse{else}Rechnungs-/Lieferadresse{/if}</strong></font></p>
          </td>
          {/if}
        </tr>
        <tr>
          {if $address_label_payment != $address_label_shipping}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_shipping}</font>
          </td>
          {/if}
          {if $address_label_payment}
          <td>
            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">{$address_label_payment}</font>
          </td>
          {/if}
        </tr>
      </table>

Erweiterung des Länder- & Bundesländer-Dropdowns um Suchfeld in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/css/jquery.sumoselect.css
 /templates/tpl_modified_responsive/javascript/extra/get_states.js.php
 /templates/tpl_modified_responsive/javascript/extra/sumoselect.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/css/jquery.sumoselect.css

Füge am Ende der Datei ein:

.SumoSelect.open > .search > label, .SumoSelect.open > .search > span { visibility:hidden; }
.SumoSelect .search-txt { display:none; outline:0; }
.SumoSelect.open .search-txt { padding: 8px 8px 7px 8px; display: inline-block; position: absolute; top: 0; left: 0; width: 100%; margin: 0; border: 1px solid transparent; box-sizing: border-box; border-radius:2px;}
.SumoSelect .no-match { display: none; padding: 8px 8px; font-size: 12px; line-height: 18px; }

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/extra/get_states.js.php

Suche:

      $('select').SumoSelect();

Ersetze mit:

      $('select').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/extra/sumoselect.js.php

Suche:

    $('select').SumoSelect();

Ersetze mit:

    $('select:not([name=country])').SumoSelect();
    $('select[name=country]').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});

Optische Korrektur der Warnmeldungen des Shopsystems (Installer vorhanden, configure.php beschreibbar, etc.)[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css

Suche:

.errormessage.shopsystem {
  margin-top:38px;
  margin-bottom:-32px;
}

Ersetze mit:

.errormessage.shopsystem {
  margin-top:36px;
  margin-bottom:-36px;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* ERROR MESSAGES */
.errormessage {
  border:solid red 2px;
  padding:15px;
  background-color:#FFD6D6;
  margin-bottom:10px;
}

Füge danach ein:

.errormessage.shopsystem {
  max-width: 968px;
  margin: 0px auto 20px;
}

Vereinheitlichung der Variablen für Ausgabe von Fehlermeldungen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/account_delete.html
/templates/tpl_modified/module/account_edit.html
/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified/module/account_password.html
/templates/tpl_modified/module/address_book.html
/templates/tpl_modified/module/address_book_process.html
/templates/tpl_modified/module/advanced_search.html
/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/checkout_payment.html
/templates/tpl_modified/module/checkout_payment_address.html
/templates/tpl_modified/module/checkout_shipping.html
/templates/tpl_modified/module/checkout_shipping_address.html
/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/downloads.html
/templates/tpl_modified/module/gift_cart.html
/templates/tpl_modified/module/gv_send.html
/templates/tpl_modified/module/login.html
/templates/tpl_modified/module/logoff.html
/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified/module/offline/login_shop.html
/templates/tpl_modified/module/password_double_opt_in.html
/templates/tpl_modified/module/product_reviews.html
/templates/tpl_modified/module/product_reviews_write.html
/templates/tpl_modified/module/reviews.html
/templates/tpl_modified/module/shopping_cart.html
/templates/tpl_modified_responsive/module/account_delete.html
/templates/tpl_modified_responsive/module/account_edit.html
/templates/tpl_modified_responsive/module/account_history_info.html
/templates/tpl_modified_responsive/module/account_password.html
/templates/tpl_modified_responsive/module/address_book.html
/templates/tpl_modified_responsive/module/address_book_process.html
/templates/tpl_modified_responsive/module/advanced_search.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/checkout_payment.html
/templates/tpl_modified_responsive/module/checkout_payment_address.html
/templates/tpl_modified_responsive/module/checkout_shipping.html
/templates/tpl_modified_responsive/module/checkout_shipping_address.html
/templates/tpl_modified_responsive/module/contact_us.html
/templates/tpl_modified_responsive/module/create_account.html
/templates/tpl_modified_responsive/module/create_account_guest.html
/templates/tpl_modified_responsive/module/downloads.html
/templates/tpl_modified_responsive/module/gift_cart.html
/templates/tpl_modified_responsive/module/gv_send.html
/templates/tpl_modified_responsive/module/login.html
/templates/tpl_modified_responsive/module/logoff.html
/templates/tpl_modified_responsive/module/newsletter.html
/templates/tpl_modified_responsive/module/offline/login_shop.html
/templates/tpl_modified_responsive/module/password_double_opt_in.html
/templates/tpl_modified_responsive/module/product_reviews.html
/templates/tpl_modified_responsive/module/product_reviews_write.html
/templates/tpl_modified_responsive/module/reviews.html
/templates/tpl_modified_responsive/module/shopping_cart.html
/templates/xtc5/module/account_delete.html
/templates/xtc5/module/account_edit.html
/templates/xtc5/module/account_history_info.html
/templates/xtc5/module/account_password.html
/templates/xtc5/module/address_book.html
/templates/xtc5/module/address_book_process.html
/templates/xtc5/module/advanced_search.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/checkout_payment.html
/templates/xtc5/module/checkout_payment_address.html
/templates/xtc5/module/checkout_shipping.html
/templates/xtc5/module/checkout_shipping_address.html
/templates/xtc5/module/contact_us.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/downloads.html
/templates/xtc5/module/gift_cart.html
/templates/xtc5/module/gv_send.html
/templates/xtc5/module/login.html
/templates/xtc5/module/logoff.html
/templates/xtc5/module/newsletter.html
/templates/xtc5/module/offline/login_shop.html
/templates/xtc5/module/password_double_opt_in.html
/templates/xtc5/module/product_reviews.html
/templates/xtc5/module/product_reviews_write.html
/templates/xtc5/module/reviews.html
/templates/xtc5/module/shopping_cart.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/account_delete.html
/templates/tpl_modified/module/account_edit.html
/templates/tpl_modified/module/account_password.html
/templates/tpl_modified/module/address_book.html
/templates/tpl_modified/module/address_book_process.html
/templates/tpl_modified/module/advanced_search.html
/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/checkout_payment.html
/templates/tpl_modified/module/checkout_payment_address.html
/templates/tpl_modified/module/checkout_shipping.html
/templates/tpl_modified/module/checkout_shipping_address.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/downloads.html
/templates/tpl_modified/module/gv_send.html
/templates/tpl_modified_responsive/module/account_delete.html
/templates/tpl_modified_responsive/module/account_edit.html
/templates/tpl_modified_responsive/module/account_password.html
/templates/tpl_modified_responsive/module/address_book.html
/templates/tpl_modified_responsive/module/address_book_process.html
/templates/tpl_modified_responsive/module/advanced_search.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/checkout_payment.html
/templates/tpl_modified_responsive/module/checkout_payment_address.html
/templates/tpl_modified_responsive/module/checkout_shipping.html
/templates/tpl_modified_responsive/module/checkout_shipping_address.html
/templates/tpl_modified_responsive/module/create_account.html
/templates/tpl_modified_responsive/module/create_account_guest.html
/templates/tpl_modified_responsive/module/downloads.html
/templates/tpl_modified_responsive/module/gv_send.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified_responsive/module/contact_us.html

Suche:

{if $error_message != ''}<div class="errormessage">{$error_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/gift_cart.html
/templates/tpl_modified_responsive/module/gift_cart.html

Suche:

{if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $coupon_message}<div class="errormessage">{$coupon_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified/module/logoff.html
/templates/tpl_modified_responsive/module/account_history_info.html
/templates/tpl_modified_responsive/module/logoff.html

Suche:

{if $info_message}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified_responsive/module/newsletter.html

Suche:

{if $info_message != ''}<div class="{if $message_class}{$message_class}{else}info{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="{if $message_class}{$message_class}{else}info{/if}message">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/login.html
/templates/tpl_modified/module/offline/login_shop.html
/templates/tpl_modified/module/password_double_opt_in.html
/templates/tpl_modified_responsive/module/login.html
/templates/tpl_modified_responsive/module/offline/login_shop.html
/templates/tpl_modified_responsive/module/password_double_opt_in.html

Suche:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/shopping_cart.html
/templates/tpl_modified_responsive/module/shopping_cart.html

Suche:

  {if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
  {if $paypal_error != ''}<div class="errormessage">{$paypal_error}</div>{/if}

Ersetze mit:

  {if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Suche:

    {if $info_message_3 != ''}<div class="errormessage">{$info_message_3}</div>{/if}

Ersetze mit:

    {if $info_message_3}<div class="errormessage">{$info_message_3}</div>{/if}

Suche:

    {if $info_message_1 != ''}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}</div>{/if}

Ersetze mit:

    {if $info_message_1}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews.html
/templates/tpl_modified/module/reviews.html
/templates/tpl_modified_responsive/module/product_reviews.html
/templates/tpl_modified_responsive/module/reviews.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews_write.html
/templates/tpl_modified_responsive/module/product_reviews_write.html

Suche:

{if $error}<div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Für Template xtc5:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/account_delete.html
/templates/xtc5/module/account_edit.html
/templates/xtc5/module/account_password.html
/templates/xtc5/module/address_book.html
/templates/xtc5/module/address_book_process.html
/templates/xtc5/module/advanced_search.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/checkout_payment_address.html
/templates/xtc5/module/checkout_shipping.html
/templates/xtc5/module/checkout_shipping_address.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/gv_send.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/contact_us.html

Suche:

{if $error_message != ''}<div class="errormessage">{$error_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/gift_cart.html

Suche:

    {if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
    {if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

    {if $coupon_message}<div class="errormessage">{$coupon_message}</div>{/if}
    {if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/account_history_info.html
/templates/xtc5/module/logoff.html

Suche:

{if $info_message}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

{if $info_message != ''}<div class="{if $message_class}{$message_class}{else}info{/if}message">{$info_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="{if $message_class}{$message_class}{else}info{/if}message">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/login.html
/templates/xtc5/module/offline/login_shop.html
/templates/xtc5/module/password_double_opt_in.html

Suche:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/shopping_cart.html

Suche:

{if $info_message != ''}<div class="errormessage">{$info_message}</div>{/if}
{if $coupon_message != ''}<div class="errormessage">{$coupon_message}</div>{/if}
{if $coupon_message_success != ''}<div class="infomessage">{$coupon_message_success}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $coupon_message}<div class="errormessage">{$coupon_message}</div>{/if}
{if $coupon_message_success}<div class="infomessage">{$coupon_message_success}</div>{/if}

Suche:

  {if $info_message_3 != ''}<div class="errormessage">{$info_message_3}</div>{/if}

Ersetze mit:

  {if $info_message_3}<div class="errormessage">{$info_message_3}</div>{/if}

Suche:

  {if $info_message_1 != ''}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}</div>{/if}

Ersetze mit:

  {if $info_message_1}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/checkout_payment.html

Suche:

{if $error != ''}<br /><div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error_message}<br /><div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/downloads.html

Suche:

    {if $error != ''}
      <div class="errormessage">{$error}</div>

Ersetze mit:

    {if $error_message}
      <div class="errormessage">{$error_message}</div>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_reviews.html
/templates/xtc5/module/reviews.html

Suche:

{if $error != ''}<div class="errormessage">{$error}</div>{/if}
{if $success_message != ''}<div class="infomessage">{$success_message}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}
{if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_reviews_write.html

Suche:

{if $error}<div class="errormessage">{$error}</div>{/if}

Ersetze mit:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Weiterleitung nach Login auf zuletzt besuchte Seite mit Meldung, dass ggf. noch Artikel aus vorherigem Besuch im Warenkorb sind[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/categorie_listing/categorie_listing.html
/templates/tpl_modified/module/content.html
/templates/tpl_modified/module/main_content.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/module/product_listing/product_listing_v1.html
/templates/tpl_modified/module/product_reviews_info.html
/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html
/templates/tpl_modified_responsive/module/content.html
/templates/tpl_modified_responsive/module/main_content.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_listing/product_listing_v1.html
/templates/tpl_modified_responsive/module/product_reviews_info.html
/templates/xtc5/module/categorie_listing/categorie_listing.html
/templates/xtc5/module/content.html
/templates/xtc5/module/main_content.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/product_listing/product_listing_v1.html
/templates/xtc5/module/product_reviews_info.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/categorie_listing/categorie_listing.html
/templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html

Suche:

{if isset($CATEGORIES_HEADING_TITLE) && $CATEGORIES_HEADING_TITLE != ''}
  <h1>{$CATEGORIES_HEADING_TITLE}</h1>
{else}
  <h1>{$CATEGORIES_NAME}</h1>
{/if}

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/content.html
/templates/tpl_modified_responsive/module/content.html

Suche:

{if isset($CONTENT_HEADING)}<h1>{$CONTENT_HEADING}</h1>{/if}

Ersetze mit:

{if isset($CONTENT_HEADING)}
  <h1>{$CONTENT_HEADING}</h1>
  {if $error_message && !isset($file)}<div class="errormessage">{$error_message}</div>{/if}
{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/main_content.html
/templates/tpl_modified_responsive/module/main_content.html

Suche:

{if isset($title) && $title != ''}<h1>{$title}</h1>{/if}

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

  <div id="product_details">

Füge davor ein:

  {if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_listing/product_listing_v1.html
/templates/tpl_modified_responsive/module/product_listing/product_listing_v1.html

Suche:

<h1>{$LIST_TITLE}</h1>

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews_info.html
/templates/tpl_modified_responsive/module/product_reviews_info.html

Suche:

<h1>{#heading_product_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/categorie_listing/categorie_listing.html

Suche:

{if $CATEGORIES_HEADING_TITLE}
  <h1>{$CATEGORIES_HEADING_TITLE}</h1>
{else}
  <h1>{$CATEGORIES_NAME}</h1>
{/if}

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/content.html

Suche:

{if isset($CONTENT_HEADING)}<h1>{$CONTENT_HEADING}</h1>{/if}

Ersetze mit:

{if isset($CONTENT_HEADING)}
  <h1>{$CONTENT_HEADING}</h1>
  {if $error_message && !isset($file)}<div class="errormessage">{$error_message}</div>{/if}
{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/main_content.html

Suche:

{if isset($title) && $title != ''}<h1>{$title}</h1>{/if}

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Suche:

  <div id="productinfowrap">

Füge davor ein:

  {if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_listing/product_listing_v1.html

Suche:

<h1>{$LIST_TITLE}</h1>

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_reviews_info.html

Suche:

<h1>{#heading_product_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Entfernen nicht benötigter Fehlerausgabe {$paypal_error}[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/shopping_cart.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Entferne den folgenden Code:

  {if $paypal_error != ''}<div class="errormessage">{$paypal_error}</div>{/if}

Entfernen nicht benötigter Fehlerausgabe {$error_max_prod}, da Ausgabe über {$error_message} geändert[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/shopping_cart.html

Für alle Templates gilt:

Entferne den folgenden Code:

  {if $error_max_prod}
  <div class="errormessage">
    <ul>
      {foreach item=err_max_data from=$error_max_prod}
      <li>{$err_max_data.E_MSG}</li>
      {/foreach}
    </ul>
  </div>
  {/if}

Erweiterung der Hersteller um Hersteller-Überschrift[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/product_listing/product_listing_v1.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive_1 & tpl_modified_responsive_2

Suche:

{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
    || (isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != '')
    || (isset($MANUFACTURER_NAME) && $MANUFACTURER_NAME != '')}
<h4>{$MANUFACTURER_NAME}</h4>

Ersetze mit:

{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
    || (isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != '')
    || (isset($MANUFACTURER_NAME) && $MANUFACTURER_NAME != '')
    || (isset($MANUFACTURER_TITLE) && $MANUFACTURER_TITLE != '')}
{if isset($MANUFACTURER_TITLE) && $MANUFACTURER_TITLE != ''}
  <h4>{$MANUFACTURER_TITLE}</h4>
{else}
  <h4>{$MANUFACTURER_NAME}</h4>
{/if}

Vermeidung von Warnungen im Zusammenhang mit neuem PayPal Express (PPCP) Modul[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified bzw. xtc5 Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren und/oder anzupassen:

/templates/tpl_modified/config/config.php
/templates/tpl_modified_responsive/config/config.php
/templates/xtc5/config/config.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/config/config.php

Suche:

  define('DIR_WS_BASE', xtc_href_link('', '', $request_type, false, false));

Ersetze mit:

  defined('DIR_WS_BASE') OR define('DIR_WS_BASE', xtc_href_link('', '', $request_type, false, false));

Weiterer Schönheitsfehler in Template tpl_modified_responsive korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_responsive/stylesheet.css

Betrifft nur das Template tpl_modified_responsive

Suche:

ul.contentnavigation li {
  float:left;
  padding: 0px 10px 0px 10px;
  line-height:45px;
  color:#666;
  font-size:13px;
  height:43px;
}

Ersetze mit:

ul.contentnavigation > li {
  float:left;
  padding: 0px 10px 0px 10px;
  line-height:45px;
  color:#666;
  font-size:13px;
  height:43px;
}

Caching im Bundeslanddropdown[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/get_states.js.php
/templates/tpl_modified_responsive/javascript/extra/get_states.js.php
/templates/xtc5/javascript/extra/get_states.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/get_states.js.php

Suche:

  //Länder mit required_zones = 1 -> Dropdown anzeigen
  $query = xtc_db_query(
    "SELECT GROUP_CONCAT(countries_id) AS ids
        FROM ".TABLE_COUNTRIES."
       WHERE required_zones = 1
    ");
  $countries = xtc_db_fetch_array($query);
  
  //Länder ohne Zonen -> Inputfeld anzeigen
  $query = xtc_db_query(
      "SELECT GROUP_CONCAT(c.countries_id) AS ids
         FROM countries c 
    LEFT JOIN zones z ON c.countries_id = z.zone_country_id
        WHERE z.zone_country_id IS NULL;
      ");

  $countries_without_zones = xtc_db_fetch_array($query);

Ersetze mit:

  //countries with zones
  $query = xtDBquery(
    "SELECT GROUP_CONCAT(countries_id) AS ids
        FROM ".TABLE_COUNTRIES."
       WHERE required_zones = 1
    ");
  $countries = xtc_db_fetch_array($query, true);
  
  //countries without zones
  $query = xtDBquery(
    "SELECT GROUP_CONCAT(c.countries_id) AS ids
       FROM countries c 
  LEFT JOIN zones z ON c.countries_id = z.zone_country_id
      WHERE z.zone_country_id IS NULL;
    ");
  $countries_without_zones = xtc_db_fetch_array($query, true);

Verwendung von Smarty 4[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/config/config.php
/templates/tpl_modified_responsive/config/config.php
/templates/xtc5/config/config.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/config/config.php
/templates/tpl_modified_responsive/config/config.php

Suche:

  define('TEMPLATE_ENGINE', 'smarty_3'); // 'smarty_3' oder 'smarty_2' -> Nicht ändern! (Nur "smarty_3" unterstützt die custom Sprachdateien (lang_english.custom & lang_german.custom) aus dem Ordner "../lang/" des Templates!)

Ersetze mit:

  define('TEMPLATE_ENGINE', 'smarty_4'); // 'smarty_4' oder 'smarty_3' oder 'smarty_2' -> Nicht ändern! (Nur "smarty_4" oder "smarty_3" unterstützt die custom Sprachdateien (lang_english.custom & lang_german.custom) aus dem Ordner "../lang/" des Templates!)

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/config/config.php

Suche:

  define('TEMPLATE_ENGINE', 'smarty_2'); // smarty_3 or smarty_2

Ersetze mit:

  define('TEMPLATE_ENGINE', 'smarty_4'); // smarty_4 or smarty_3 or smarty_2

Korrektur der Checkout-Buttons in Mobilansicht in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/module/checkout_payment.html
 /templates/tpl_modified_responsive/module/checkout_shipping.html
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_payment.html

Suche:

{if isset($BUTTON_BACK)}<div class="button_left"><div class="cssButtonPos12">{$BUTTON_BACK}</div></div>{/if}
<div class="button_right_checkout"><div class="cssButtonPos12">{$BUTTON_CHECKOUT_STEP3}</div></div>

Ersetze mit:

<div class="button_row_checkout">
  {if isset($BUTTON_BACK)}<div class="button_row_checkout_left"><div class="cssButtonPos14">{$BUTTON_BACK}</div></div>{/if}
  <div class="button_row_checkout_right"><div class="cssButtonPos15">{$BUTTON_CHECKOUT_STEP3}</div></div>
</div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_shipping.html

Suche:

{if isset($BUTTON_BACK)}<div class="button_left"><div class="cssButtonPos12">{$BUTTON_BACK}</div></div>{/if}
<div class="button_right_checkout"><div class="cssButtonPos12">{$BUTTON_CHECKOUT_STEP2}</div></div>

Ersetze mit:

<div class="button_row_checkout">
  {if isset($BUTTON_BACK)}<div class="button_row_checkout_left"><div class="cssButtonPos14">{$BUTTON_BACK}</div></div>{/if}
  <div class="button_row_checkout_right"><div class="cssButtonPos15">{$BUTTON_CHECKOUT_STEP2}</div></div>
</div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.button_right_checkout {
  float:right;
  text-align:right;
  display:inline-block;
  margin: 10px 0px 0px 0px;
  min-width:200px;
}

Ersetze mit:

.button_right_checkout {
  float:right;
  text-align:right;
  display:inline-block;
  margin: 10px 0px 0px 0px;
  min-width:200px;
  width:100%;
}
@media only screen and (min-width: 500px) {
  .button_right_checkout { width:auto; }
}

Suche:

.paypal_button img {
  height:32px;
}

Füge danach ein:

.button_row_checkout {
  box-sizing: border-box;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column-reverse; 
  flex-direction: column-reverse;
}
@media only screen and (min-width: 500px) {
  .button_row_checkout { -webkit-flex-direction: row; flex-direction: row; }
}
.button_row_checkout_left {
  margin: 10px 0px 0px 0px;
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  box-sizing:border-box;
}
.button_row_checkout_right {
  margin: 10px 0px 0px 0px;
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  box-sizing:border-box;
  text-align:right;
}

Suche:

.cssButtonPos12 {
  min-width:200px;
  display:inline-block;
}

Ersetze mit:

.cssButtonPos12 {
  min-width:200px;
  display:inline-block;
  width:100%;
}
@media only screen and (min-width: 500px) {
  .cssButtonPos12 { width:auto;}
}

Suche:

/* END CSS Buttons */

Füge davor ein:

/* Checkout Buttons Shipping & Payment */
.cssButtonPos14,
.cssButtonPos15 {
  max-width:initial;
  display:inline-block;
  width:100%;
}
@media only screen and (min-width: 500px) {
  .cssButtonPos14 { max-width:220px; }
  .cssButtonPos15 { max-width:220px; }
}
.cssButtonPos14 .cssButton,
.cssButtonPos15 .cssButton {
  font-size: 16px;
  line-height: 20px;
  padding: 10px 5px;
}

Ausgabe der Zahlungsinformationen in den getätigten Bestellungen im Kundenkonto und Entfernen von altem Code[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified_responsive/module/account_history_info.html
/templates/xtc5/module/account_history_info.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified_responsive/module/account_history_info.html

Suche:

    {if $PAYMENT_INFORMATION != ''}
    <div class="highlightbox plainleft">
      <h4>{#text_payment_info#}</h4>
      <p>{$PAYMENT_INFORMATION}</p>
    </div>
    {/if}

Ersetze mit:

    {if is_array($PAYMENT_INFO) && count($PAYMENT_INFO) > 0}
    <div class="highlightbox plainleft">
      <h4>{#text_payment_info#}</h4>
      {foreach name=aussen item=data from=$PAYMENT_INFO}
        <p>{$data.title|stripslashes}</p>
        <table class="paymentinfotable {$data.class}">
          {foreach name=aussen item=info from=$data.fields}
            <tr>
              {if $info.title != ''}<td>{$info.title|stripslashes}</td>{/if}
              {if $info.field != ''}<td>{$info.field|stripslashes}</td>{/if}
            </tr>      
          {/foreach}
        </table>
      {/foreach}
    </div>
    {/if}

Entferne den folgenden Code:

  {if $PAYPAL_LINK}
    <div class="hr_10"></div>
    <div style="padding:5px;">{$PAYPAL_LINK}</div>
  {/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/account_history_info.html

Suche:

  {if $PAYMENT_INFORMATION != ''}
  <h2>{#text_payment_info#}</h2>
  <p>{$PAYMENT_INFORMATION}</p>
  {/if}

Ersetze mit:

  {if is_array($PAYMENT_INFO) && count($PAYMENT_INFO) > 0}
    <h2>{#text_payment_info#}</h2>
    {foreach name=aussen item=data from=$PAYMENT_INFO}
      <p>{$data.title|stripslashes}</p>
      <table class="paymentinfotable {$data.class}">
        {foreach name=aussen item=info from=$data.fields}
          <tr>
            {if $info.title != ''}<td>{$info.title|stripslashes}</td>{/if}
            {if $info.field != ''}<td>{$info.field|stripslashes}</td>{/if}
          </tr>      
        {/foreach}
      </table>
    {/foreach}
  {/if}

Entferne den folgenden Code:

  {if $PAYPAL_LINK}
    <p><div style="padding:5px;">{$PAYPAL_LINK}</div></p>
  {/if}

Kleine Schönheitskorrektur in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_responsive

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/module/account_history_info.html
/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/account_history_info.html

Suche:

  <ul class="orderlist">

Ersetze mit:

  <ul class="orderlist account_history">

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.highlightbox.checkoutborder ul.orderlist li .orderlist_header { 
  border-top: 0px !important;
  padding-top: 0px !important;
  margin-top: -4px;
}

Füge danach ein:

ul.orderlist.account_history li .orderlist_header { 
  border-top: 0px !important;
  padding-top: 0px !important;
  margin-top: -4px;
}

Optische Korrektur der Warnmeldungen des Shopsystems für PayPal Link Zahlungsmodule[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

/* 15. START error, info & success messages */
.errormessage {
  border:solid #DCA7A7 1px;
  padding:10px;
  font-size:13px !important;
  line-height:17px;
  color:#A94442;
  background-color:#F2DEDE ;
  margin-bottom:10px;
}

Füge danach ein:

.errormessage a {
  color:#A94442;
  font-weight:700;
  text-decoration:underline;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* 15. START error, info & success messages */
.errormessage {
  border:solid #fbe5e2 1px;
  padding:10px;
  font-size:12px !important;
  line-height:16px;
  font-weight:400;
  color:#e74c3c;
  background-color:#fbe5e2 ;
  margin-bottom:10px;
}

Füge danach ein:

.errormessage a {
  color:#e74c3c;
  font-weight:600;
  text-decoration:underline;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* ERROR MESSAGES */
.errormessage {
  border:solid red 2px;
  padding:15px;
  background-color:#FFD6D6;
  margin-bottom:10px;
}

Füge danach ein:

.errormessage a {
  color:#555;
  text-decoration:underline;
  font-weight:bold;
}

CSS-Formatierung von Fehlermeldungen für Admin-Login im Wartungsmodus[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/offline/login_shop.html
/templates/tpl_modified_responsive/module/offline/login_shop.html
/templates/xtc5/module/offline/login_shop.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/offline/login_shop.html
/templates/tpl_modified_responsive/module/offline/login_shop.html

Suche:

#layout_login .login:hover {
  text-decoration: none;
  background: #3a3a3a;
  background: -webkit-gradient(linear, left top, left bottom, from(#242424), to(#494949));
  background: -moz-linear-gradient(top,  #242424,  #494949);
  filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#242424', endColorstr='#494949');
}

Füge danach ein:

.errormessage {
  border:solid #fbe5e2 1px;
  padding:10px;
  font-size:12px !important;
  line-height:16px;
  font-weight:400;
  color:#e74c3c;
  background-color:#fbe5e2 ;
  margin-bottom:10px;
}
.errormessage p { 
  margin: 4px 0px;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/offline/login_shop.html

Suche:

#layout_login .login:hover {
  text-decoration: none;
  background: #3a3a3a;
  background: -webkit-gradient(linear, left top, left bottom, from(#242424), to(#494949));
  background: -moz-linear-gradient(top,  #242424,  #494949);
  filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#242424', endColorstr='#494949');
}

Füge danach ein:

.errormessage {
  border:solid red 2px;
  padding:15px;
  background-color:#FFD6D6;
  margin-bottom:10px;
}

Notwendige Informationen zur Echtheit der Kundenbewertungen ergänzt[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_reviews.html
/templates/tpl_modified/module/product_reviews.html
/templates/tpl_modified/module/product_reviews_info.html
/templates/tpl_modified/module/products_reviews.html
/templates/tpl_modified/module/reviews.html
/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/boxes/box_reviews.html
/templates/tpl_modified_responsive/module/product_reviews.html
/templates/tpl_modified_responsive/module/product_reviews_info.html
/templates/tpl_modified_responsive/module/products_reviews.html
/templates/tpl_modified_responsive/module/reviews.html
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/boxes/box_reviews.html
/templates/xtc5/module/product_reviews.html
/templates/xtc5/module/product_reviews_info.html
/templates/xtc5/module/products_reviews.html
/templates/xtc5/module/reviews.html
/templates/xtc5/source/boxes/reviews.php
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/boxes/box_reviews.html

Suche:

      <div class="box_line abstand"></div>

Füge danach ein:

      {if isset($REVIEWS_NOTE)}
        <div class="box_reviews_note">{$REVIEWS_NOTE}</div>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews.html

Suche:

<h1>{#heading_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note_full">{$REVIEWS_NOTE}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews_info.html

Suche:

<h1>{#heading_product_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note_full">{$REVIEWS_NOTE}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/products_reviews.html

Suche:

  <h4 class="detailbox">{#heading_reviews#}</h4>

Füge danach ein:

  {if isset($reviews_note)}<div class="reviews_note_detail">{$reviews_note}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/reviews.html

Suche:

<h1>{#heading_reviews#}</h1>

Ersetze mit:

<h1 class="cf">{#heading_reviews#}
  {if isset($REVIEWS_NOTE)}<span class="headline_reviews_note">{$REVIEWS_NOTE}</span>{/if}
</h1>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/reviews.php

Suche:

      $box_smarty->assign('RANDOM', 1);

Füge danach ein:

      if (defined('REVIEWS_PURCHASED_INFOS') && REVIEWS_PURCHASED_INFOS != '') {
        $shop_content_data = $main->getContentData(REVIEWS_PURCHASED_INFOS);
        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], 'NONSSL', false));
      }

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

/* END CSS Write reviews */

Füge danach ein:

/* START reviews_note */
.box_reviews_note {
  font-size:10px;
  line-height:14px;
  font-weight:400;
  margin: 0 0 10px 0;
}
.headline_reviews_note {
  font-family: 'arimoregular', sans-serif;
  float:right;
  display:inline-block;
  font-size:10px;
  line-height:12px;
  margin: 6px 0 0 0;
  font-weight:400;
}
.reviews_note_full {
  display:block;
  font-size:10px;
  line-height:12px;
  margin: -5px 0 20px 0;
  font-weight:400;
}
.reviews_note_detail {
  display:block;
  font-size:10px;
  line-height:12px;
  margin: 0px 0 10px 0;
  font-weight:400;
}
/* END reviews_note */

Für Template tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_reviews.html

Suche:

      <div class="box_line abstand"></div>

Füge danach ein:

      {if isset($REVIEWS_NOTE)}
        <div class="box_reviews_note">{$REVIEWS_NOTE}</div>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_reviews.html

Suche:

<h1>{#heading_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note_full">{$REVIEWS_NOTE}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_reviews_info.html

Suche:

<h1>{#heading_product_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note_full">{$REVIEWS_NOTE}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/products_reviews.html

Suche:

  <h4 class="detailbox">{#heading_reviews#}</h4>

Füge danach ein:

  {if isset($reviews_note)}<div class="reviews_note_detail">{$reviews_note}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/reviews.html

Suche:

<h1>{#heading_reviews#}</h1>

Ersetze mit:

<h1 class="cf">{#heading_reviews#}
  {if isset($REVIEWS_NOTE)}<span class="headline_reviews_note">{$REVIEWS_NOTE}</span>{/if}
</h1>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/reviews.php

Suche:

      $box_smarty->assign('RANDOM', 1);

Füge danach ein:

      if (defined('REVIEWS_PURCHASED_INFOS') && REVIEWS_PURCHASED_INFOS != '') {
        $shop_content_data = $main->getContentData(REVIEWS_PURCHASED_INFOS);
        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], 'NONSSL', false));
      }

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* END Custom checkbox & radio */

Füge danach ein:

/* START reviews_note */
.box_reviews_note {
  font-size:9px;
  line-height:13px;
  font-weight:400;
  margin: 0 0 10px 0;
}
.headline_reviews_note {
  float:none;
  display:block;
  font-size:10px;
  line-height:12px;
  margin: 12px 0 0 0;
  font-weight:400;
}
@media only screen and (min-width: 850px) {
  .headline_reviews_note { float:right; display:inline-block; }
}
.reviews_note_full {
  display:block;
  font-size:10px;
  line-height:12px;
  margin: -10px 0 20px 0;
  font-weight:400;
}
.reviews_note_detail {
  display:block;
  font-size:10px;
  line-height:12px;
  margin: 0px 0 10px 0;
  font-weight:400;
}
/* END reviews_note */

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/boxes/box_reviews.html

Suche:

    <p class="center">
      <a href="{$PRODUCTS_LINK}">
        <strong>{$PRODUCTS_NAME}</strong><br />
        {$REVIEWS}
      </a><br />
      {$REVIEWS_IMAGE}
    </p>

Füge danach ein:

    {if isset($REVIEWS_NOTE)}
      <p class="box_reviews_note">{$REVIEWS_NOTE}</p>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_reviews.html

Suche:

<h1>{#heading_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note">{$REVIEWS_NOTE}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_reviews_info.html

Suche:

<h1>{#heading_product_reviews#} {$PRODUCTS_NAME}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note">{$REVIEWS_NOTE}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/products_reviews.html

Suche:

  <h1>{#heading_reviews#}</h1>

Füge danach ein:

  {if isset($reviews_note)}<div class="reviews_note">{$reviews_note}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/reviews.html

Suche:

<h1>{#heading_reviews#}</h1>

Füge danach ein:

{if isset($REVIEWS_NOTE)}<div class="reviews_note">{$REVIEWS_NOTE}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/reviews.php

Suche:

      $box_smarty->assign('RANDOM', 1);

Füge danach ein:

      if (defined('REVIEWS_PURCHASED_INFOS') && REVIEWS_PURCHASED_INFOS != '') {
        $shop_content_data = $main->getContentData(REVIEWS_PURCHASED_INFOS);
        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], 'NONSSL', false));
      }

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* END CSS Write reviews */

Füge danach ein:

/* START reviews_note */
.box_reviews_note {
  font-weight:400;
  margin: 14px 0 0 0 !important;
  text-align:center;
}
.box_reviews_note a {
  font-size:9px;
  line-height:11px;
}
.reviews_note {
  display:block;
  font-size:10px;
  line-height:12px;
  margin: 10px 0 20px 0;
  font-weight:400;
}
/* END reviews_note */

Änderungen ab Version 2.0.7.1[Bearbeiten]

Korrektur des Popup Links für Informationen zur Echtheit der Kundenbewertungen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/xtc5/source/boxes/reviews.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], 'NONSSL', false));

Ersetze mit:

        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], $request_type, false));

Kleine Korrektur an Kommentar in Sprachdateien[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/lang/lang_english.section
/templates/tpl_modified/lang/lang_german.section
/templates/tpl_modified_responsive/lang/lang_english.section
/templates/tpl_modified_responsive/lang/lang_german.section

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/lang/lang_english.section
/templates/TEMPLATENAME/lang/lang_german.section

Suche:

# Die lang_german.section wird nur eingebunden, wenn in der "../config/config.php" die "TEMPLATE_ENGINE" auf "smarty_3" gesetzt ist!

Ersetze mit:

# Die lang_german.section wird nur eingebunden, wenn in der "../config/config.php" die "TEMPLATE_ENGINE" auf "smarty_3" oder "smarty_4" gesetzt ist!

Schönheitskorrektur bei <ul> Listen in Popups[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

body.popupcontent img {
  max-width:100%;
  width:auto;
  height:auto;
}

Füge danach ein:

body.popupcontent ul {
  margin: 0 0 0 15px;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

body.popupcontent img {
  max-width:100%;
  width:auto;
  height:auto;
}

Füge danach ein:

body.popupcontent ul {
  margin: 0 0 0 16px;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

.popup-cont {
font-family:Arial, Helvetica, sans-serif;
background:#fff;
margin:0px;
}

Füge danach ein:

.popup-cont ul {
  margin: 10px 0px 10px 14px
}

Sprachdateien in Template nur laden, wenn notwendig[Bearbeiten]

  • zwingend notwendig

Änderungen siehe https://trac.modified-shop.org/changeset?&new=14504%40trunk%2Ftemplates&old=14493%40trunk%2Ftemplates

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_best_sellers.html
/templates/tpl_modified/boxes/box_categories.html
/templates/tpl_modified/boxes/box_content.html
/templates/tpl_modified/boxes/box_currencies.html
/templates/tpl_modified/boxes/box_infobox.html
/templates/tpl_modified/boxes/box_information.html
/templates/tpl_modified/boxes/box_languages.html
/templates/tpl_modified/boxes/box_last_viewed.html
/templates/tpl_modified/boxes/box_login.html
/templates/tpl_modified/boxes/box_manufacturers.html
/templates/tpl_modified/boxes/box_manufacturers_info.html
/templates/tpl_modified/boxes/box_order_history.html
/templates/tpl_modified/boxes/box_reviews.html
/templates/tpl_modified/boxes/box_shipping_country.html
/templates/tpl_modified/boxes/box_specials.html
/templates/tpl_modified/boxes/box_trustedshops.html
/templates/tpl_modified/boxes/box_whatsnew.html
/templates/tpl_modified/index.html
/templates/tpl_modified/module/also_purchased.html
/templates/tpl_modified/module/content.html
/templates/tpl_modified/module/cross_selling.html
/templates/tpl_modified/module/graduated_price.html
/templates/tpl_modified/module/main_content.html
/templates/tpl_modified/module/new_products.html
/templates/tpl_modified/module/new_products_default.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified/module/product_navigator.html
/templates/tpl_modified/module/product_tags.html
/templates/tpl_modified/module/products_category.html
/templates/tpl_modified/module/products_media.html
/templates/tpl_modified/module/products_reviews.html
/templates/tpl_modified/module/reverse_cross_selling.html
/templates/tpl_modified/module/sub_categories_listing.html
/templates/tpl_modified/module/upcoming_products.html
/templates/tpl_modified_responsive/boxes/box_best_sellers.html
/templates/tpl_modified_responsive/boxes/box_categories.html
/templates/tpl_modified_responsive/boxes/box_content.html
/templates/tpl_modified_responsive/boxes/box_currencies.html
/templates/tpl_modified_responsive/boxes/box_infobox.html
/templates/tpl_modified_responsive/boxes/box_information.html
/templates/tpl_modified_responsive/boxes/box_languages.html
/templates/tpl_modified_responsive/boxes/box_last_viewed.html
/templates/tpl_modified_responsive/boxes/box_login.html
/templates/tpl_modified_responsive/boxes/box_manufacturers.html
/templates/tpl_modified_responsive/boxes/box_manufacturers_info.html
/templates/tpl_modified_responsive/boxes/box_order_history.html
/templates/tpl_modified_responsive/boxes/box_reviews.html
/templates/tpl_modified_responsive/boxes/box_shipping_country.html
/templates/tpl_modified_responsive/boxes/box_specials.html
/templates/tpl_modified_responsive/boxes/box_trustedshops.html
/templates/tpl_modified_responsive/boxes/box_whatsnew.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/module/also_purchased.html
/templates/tpl_modified_responsive/module/content.html
/templates/tpl_modified_responsive/module/cross_selling.html
/templates/tpl_modified_responsive/module/graduated_price.html
/templates/tpl_modified_responsive/module/main_content.html
/templates/tpl_modified_responsive/module/new_products.html
/templates/tpl_modified_responsive/module/new_products_default.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_navigator.html
/templates/tpl_modified_responsive/module/product_tags.html
/templates/tpl_modified_responsive/module/products_category.html
/templates/tpl_modified_responsive/module/products_media.html
/templates/tpl_modified_responsive/module/products_reviews.html
/templates/tpl_modified_responsive/module/reverse_cross_selling.html
/templates/tpl_modified_responsive/module/sub_categories_listing.html
/templates/tpl_modified_responsive/module/upcoming_products.html
/templates/xtc5/boxes/box_best_sellers.html
/templates/xtc5/boxes/box_cart.html
/templates/xtc5/boxes/box_categories.html
/templates/xtc5/boxes/box_content.html
/templates/xtc5/boxes/box_currencies.html
/templates/xtc5/boxes/box_infobox.html
/templates/xtc5/boxes/box_information.html
/templates/xtc5/boxes/box_languages.html
/templates/xtc5/boxes/box_last_viewed.html
/templates/xtc5/boxes/box_login.html
/templates/xtc5/boxes/box_manufacturers.html
/templates/xtc5/boxes/box_manufacturers_info.html
/templates/xtc5/boxes/box_order_history.html
/templates/xtc5/boxes/box_reviews.html
/templates/xtc5/boxes/box_shipping_country.html
/templates/xtc5/boxes/box_specials.html
/templates/xtc5/boxes/box_trustedshops.html
/templates/xtc5/boxes/box_whatsnew.html
/templates/xtc5/boxes/box_wishlist.html
/templates/xtc5/index.html
/templates/xtc5/module/also_purchased.html
/templates/xtc5/module/content.html
/templates/xtc5/module/cross_selling.html
/templates/xtc5/module/graduated_price.html
/templates/xtc5/module/main_content.html
/templates/xtc5/module/new_products.html
/templates/xtc5/module/new_products_default.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/product_navigator.html
/templates/xtc5/module/product_tags.html
/templates/xtc5/module/products_category.html
/templates/xtc5/module/products_media.html
/templates/xtc5/module/products_reviews.html
/templates/xtc5/module/reverse_cross_selling.html
/templates/xtc5/module/sub_categories_listing.html
/templates/xtc5/module/upcoming_products.html 

Die Einbindung der Sprachdateien ist in allen Dateien innerhalb der IF-Bedingung unterzubringen.


Zeige "Ab"-Preis für Sonderangebote mit Attributen[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/includes/price_box.html
/templates/tpl_modified/module/includes/price_info.html
/templates/tpl_modified/module/includes/price_listing.html
/templates/tpl_modified_responsive/module/includes/price_box.html
/templates/tpl_modified_responsive/module/includes/price_info.html
/templates/tpl_modified_responsive/module/includes/price_listing.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/includes/price_box.html

Suche:

                <span class="small_price">{#special_price#}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}

Ersetze mit:

                <span class="small_price">{#special_price#}{$price_data.PRODUCTS_PRICE_FROM}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/includes/price_info.html
/templates/tpl_modified/module/includes/price_listing.html

Suche:

              <span class="old_price">
                <span class="small_price">{$smarty.const.INSTEAD}</span>
                {$price_data.PRODUCTS_PRICE_OLD_PRICE}
              </span>
              <span class="new_price">
                <span class="small_price">{$smarty.const.ONLY}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}
              </span>

Ersetze mit:

              <span class="old_price">
                <span class="small_price">{$smarty.const.INSTEAD}{$price_data.PRODUCTS_PRICE_FROM}</span>
                {$price_data.PRODUCTS_PRICE_OLD_PRICE}
              </span>
              <span class="new_price">
                <span class="small_price">{$smarty.const.ONLY}{$price_data.PRODUCTS_PRICE_FROM}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}
              </span>

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/includes/price_box.html

Suche:

                <span class="small_price">{#special_price#}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>

Ersetze mit:

                <span class="small_price">{#special_price#}{$price_data.PRODUCTS_PRICE_FROM}</span> <span class="value_price">{$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/includes/price_info.html
/templates/tpl_modified_responsive/module/includes/price_listing.html

Suche:

              <span class="old_price">
                <span class="small_price">{$smarty.const.INSTEAD}</span>
                {$price_data.PRODUCTS_PRICE_OLD_PRICE}
              </span>
              <span class="new_price">
                <span class="small_price">{$smarty.const.ONLY}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}
              </span>

Ersetze mit:

              <span class="old_price">
                <span class="small_price">{$smarty.const.INSTEAD}{$price_data.PRODUCTS_PRICE_FROM}</span>
                {$price_data.PRODUCTS_PRICE_OLD_PRICE}
              </span>
              <span class="new_price">
                <span class="small_price">{$smarty.const.ONLY}{$price_data.PRODUCTS_PRICE_FROM}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}
              </span>

Erweiterung der Admin-Box um Anzeige von Modul-Updates[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/admin.php
 /templates/tpl_modified_responsive/source/boxes/admin.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/admin.php

Suche:

  $box_smarty->assign('UPDATE_COUNT', $update_array['update']);

Ersetze mit:

  $box_smarty->assign('UPDATE_COUNT', ($update_array['total'] > 0 ? $update_array['total'] : ''));

Schönheitskorrektur im Slick Slider[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/javascript/jquery.slick.min.js

Änderungen ab Version 3.0.0[Bearbeiten]

Korrektur für Wegfall der PHP-Funktion strftime()[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_specials.html
/templates/tpl_modified/index.html
/templates/tpl_modified/source/boxes/specials.php
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/boxes/box_specials.html
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/source/boxes/specials.php
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/boxes/box_specials.html
/templates/xtc5/index.html
/templates/xtc5/source/boxes/specials.php
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/boxes/box_specials.html

Suche:

      {if $box_content.PRODUCTS_EXPIRES != 0}{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES|date_format:"%x"}{/if}

Ersetze mit:

      {if $box_content.PRODUCTS_EXPIRES != 0}<div class="box_expires_date">{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/index.html

Suche:

  <div class="mod_copyright">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"%Y"} | Template &copy; 2009-{$smarty.now|date_format:"%Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></div>

Ersetze mit:

  <div class="mod_copyright">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"Y"} | Template &copy; 2009-{$smarty.now|date_format:"Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></div>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/specials.php

Suche:

    $box_smarty->assign('box_content', $product->buildDataArray($specials));

Ersetze mit:

    $box_content = $product->buildDataArray($specials);
    $box_content['EXPIRES_DATE'] = $box_content['PRODUCTS_EXPIRES'] = ($specials['expires_date'] != '0000-00-00 00:00:00') ? xtc_date_short($specials['expires_date']) : '0';    
    $box_smarty->assign('box_content', $box_content);

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

.box_text {
  font-size:12px;
  line-height:16px;
  word-wrap: break-word;
}

Füge danach ein:

.box_expires_date {
  text-align: right;
  padding: 2px 10px 0 0;
  font-size: 10px;
  line-height: 14px;
  color: #bc0000;
}

Für Template tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/boxes/box_specials.html

Suche:

      {if $box_content.PRODUCTS_EXPIRES != 0}{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES|date_format:"%x"}{/if}

Ersetze mit:

      {if $box_content.PRODUCTS_EXPIRES != 0}<div class="box_expires_date">{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES}</div>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/index.html

Suche:

  <div class="mod_copyright">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"%Y"} | Template &copy; 2009-{$smarty.now|date_format:"%Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></div>

Ersetze mit:

  <div class="mod_copyright">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"Y"} | Template &copy; 2009-{$smarty.now|date_format:"Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></div>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/specials.php

Suche:

    $box_smarty->assign('box_content', $product->buildDataArray($specials));

Ersetze mit:

    $box_content = $product->buildDataArray($specials);
    $box_content['EXPIRES_DATE'] = $box_content['PRODUCTS_EXPIRES'] = ($specials['expires_date'] != '0000-00-00 00:00:00') ? xtc_date_short($specials['expires_date']) : '0';    
    $box_smarty->assign('box_content', $box_content);

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.box_text {
  font-size:12px;
  line-height:16px;
  word-wrap: break-word;
}

Füge danach ein:

.box_expires_date {
  text-align: right;
  padding: 4px 10px 0 0;
  font-size: 9px;
  line-height: 11px;
  color: #e74c3c;
}

Für Template xtc5:

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/boxes/box_specials.html

Suche:

      {if $box_content.PRODUCTS_EXPIRES != 0}{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES|date_format:"%x"}{/if}

Ersetze mit:

      {if $box_content.PRODUCTS_EXPIRES != 0}<span class="expires_date">{#text_expires_date#} {$box_content.PRODUCTS_EXPIRES}</span>{/if}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/index.html

Suche:

  <p class="footer">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"%Y"} | Template &copy; 2009-{$smarty.now|date_format:"%Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></p>

Ersetze mit:

  <p class="footer">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"Y"} | Template &copy; 2009-{$smarty.now|date_format:"Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></p>

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/source/boxes/specials.php

Suche:

    $box_smarty->assign('box_content', $product->buildDataArray($specials));

Ersetze mit:

    $box_content = $product->buildDataArray($specials);
    $box_content['EXPIRES_DATE'] = $box_content['PRODUCTS_EXPIRES'] = ($specials['expires_date'] != '0000-00-00 00:00:00') ? xtc_date_short($specials['expires_date']) : '0';    
    $box_smarty->assign('box_content', $box_content);

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

.boxbody .productOldPrice {
  font-size:11px;
  color:red;
}

Füge danach ein:

.boxbody .expires_date {
  display:block;
  text-align:center;
  color:red;
}

Entfernen von unnötigen Resets bei Verwendung in foreach-Schleifen[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified/source/boxes/admin.php
/templates/tpl_modified/source/boxes/categories.php
/templates/tpl_modified/source/boxes/content.php
/templates/tpl_modified/source/boxes/currencies.php
/templates/tpl_modified/source/boxes/information.php
/templates/tpl_modified/source/boxes/languages.php
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/source/boxes/admin.php
/templates/tpl_modified_responsive/source/boxes/categories.php
/templates/tpl_modified_responsive/source/boxes/content.php
/templates/tpl_modified_responsive/source/boxes/currencies.php
/templates/tpl_modified_responsive/source/boxes/information.php
/templates/tpl_modified_responsive/source/boxes/languages.php
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/source/boxes/categories.php
/templates/xtc5/source/boxes/content.php
/templates/xtc5/source/boxes/currencies.php
/templates/xtc5/source/boxes/information.php
/templates/xtc5/source/boxes/languages.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/cookieconsent.js.php
/templates/TEMPLATENAME/source/boxes/admin.php (nur Template tpl_modified & tpl_modified_responsive)
/templates/TEMPLATENAME/source/boxes/languages.php

Entferne den folgenden Code:

    reset($lng->catalog_languages);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/categories.php

Entferne den folgenden Code:

      reset($id);

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/content.php
/templates/TEMPLATENAME/source/boxes/information.php

Entferne den folgenden Code:

      reset($coid);

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/currencies.php

Entferne den folgenden Code:

    reset($xtPrice->currencies);

Hersteller-Box um aktiv/inaktiv Status & Sortierreihenfolge erweitern[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/manufacturers.php
/templates/tpl_modified_responsive/source/boxes/manufacturers.php
/templates/xtc5/source/boxes/manufacturers.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/manufacturers.php

Suche:

                        GROUP BY m.manufacturers_id 
                        ORDER BY m.manufacturers_name ASC";

Ersetze mit:

                           WHERE m.manufacturers_status = 1
                        GROUP BY m.manufacturers_id 
                        ORDER BY m.sort_order, m.manufacturers_name ASC";

Image Source in Template xtc5 korrigieren[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/xtc5/module/product_info/product_info_tabs_v1.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_tabs_v1.html

Suche:

        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE|onlytext}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}

Ersetze mit:

        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}

Zusätzliche Artikelbilder um ALT & TITLE tags erweitern[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/print_product_info.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/print_product_info.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/print_product_info.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/print_product_info.html

Suche:

  {foreach item=more_images_data from=$more_images}
  <div class="moimages cf">
    <img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" border="0" />
  </div>
  {/foreach}

Ersetze mit:

  {foreach item=more_images_data from=$more_images}
  <div class="moimages cf">
    <img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" border="0" />
  </div>
  {/foreach}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

Suche:

        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
            <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
          </div>                          
        {/foreach}

Ersetze mit:

        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image_tab">
            <a class="cbimages" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}"{rdelim}'><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a>
            <noscript><a title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a></noscript>
          </div>                          
        {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_v1.html

Suche:

        {foreach item=more_images_data from=$more_images} 
        <div class="pd_small_image">
          <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
          <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
        </div>                          
        {/foreach}

Ersetze mit:

        {foreach item=more_images_data from=$more_images} 
        <div class="pd_small_image">
          <a class="cbimages" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}" data-cbox-img-attrs='{ldelim}"alt":"{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}"{rdelim}'><img class="lazyload" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a>
          <noscript><a title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a></noscript>
        </div>                          
        {/foreach}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/print_product_info.html

Suche:

  {foreach item=more_images_data from=$more_images}
  <div class="moimages cf">
    <img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" border="0" />
  </div>
  {/foreach}

Ersetze mit:

  {foreach item=more_images_data from=$more_images}
  <div class="moimages cf">
    <img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" border="0" />
  </div>
  {/foreach}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'>
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div></div>
          {/foreach}

Ersetze mit:

          {foreach item=more_images_data from=$more_images}
            <div class="pd_small_image_tab"><div class="pd_small_image_tab_inner cf">
              <a class="cbimages" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}" data-cbox-img-attrs='{ldelim}"alt":"{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}"{rdelim}'>
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"midi_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></noscript>
              </a>
            </div></div>
          {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_v1.html

Suche:

        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image">
            <div class="pd_small_image_inner cf">
              <a class="cbimages" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}" data-cbox-img-attrs='{ldelim}"alt":"{$PRODUCTS_NAME|onlytext}"{rdelim}'>
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"mini_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></noscript>
              </a>
            </div>
          </div>
        {/foreach}

Ersetze mit:

        {foreach item=more_images_data from=$more_images} 
          <div class="pd_small_image">
            <div class="pd_small_image_inner cf">
              <a class="cbimages" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"popup_"}" data-cbox-img-attrs='{ldelim}"alt":"{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}"{rdelim}'>
                {if $smarty.const.PICTURESET_ACTIVE === true}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"mini_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" />
                {else}
                  <img class="lazyload" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" />
                {/if}
                <noscript><img src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_":"thumbnail_"}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></noscript>
              </a>
            </div>
          </div>
        {/foreach}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/print_product_info.html

Suche:

      {foreach item=more_images_data from=$more_images}
        <div class="hrlightgrey"></div><img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" border="0" class="productimage" />
      {/foreach}

Ersetze mit:

      {foreach item=more_images_data from=$more_images}
        <div class="hrlightgrey"></div><img src="{$more_images_data.PRODUCTS_IMAGE}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" border="0" class="productimage" />
      {/foreach}

Die folgenden Dateien wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Suche:

        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
        {/foreach}

Ersetze mit:

        {foreach item=more_images_data from=$more_images}
          <a class="thickbox" rel="{$PRODUCTS_ID}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a>
        {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_info/product_info_v1.html

Suche:

      {foreach item=more_images_data from=$more_images}
        <a class="thickbox" rel="{$PRODUCTS_ID}" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" title="{$PRODUCTS_NAME|onlytext}" /></a>
      {/foreach}

Ersetze mit:

      {foreach item=more_images_data from=$more_images}
        <a class="thickbox" rel="{$PRODUCTS_ID}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}"><img align="left" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{if $more_images_data.IMAGE_ALT != ''}{$more_images_data.IMAGE_ALT|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" title="{if $more_images_data.IMAGE_TITLE != ''}{$more_images_data.IMAGE_TITLE|onlytext}{else}{$PRODUCTS_NAME|onlytext}{/if}" /></a>
      {/foreach}

Neue Methode für Popup Parameter verwenden[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/shopping_cart.php
/templates/tpl_modified_responsive/source/boxes/shopping_cart.php
/templates/xtc5/javascript/extra/cookieconsent.js.php
/templates/xtc5/source/boxes/shopping_cart.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/shopping_cart.php

Suche:

    if (isset($_SESSION['cc_id'])) {
      $clink_parameters = defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS;
      $clink_class = defined('TPL_POPUP_CONTENT_LINK_CLASS') ? TPL_POPUP_CONTENT_LINK_CLASS : POPUP_CONTENT_LINK_CLASS;
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$clink_class.'" title="'.TEXT_LINK_TITLE_INFORMATION.'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $clink_parameters, $request_type).'">Information</a>');
    }

Ersetze mit:

    if (isset($_SESSION['cc_id'])) {
      $popup_params = $main->getPopupParams();      
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$popup_params['link_class'].'" title="'.$popup_params['link_title'].'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $popup_params['link_parameters'], $request_type).'">Information</a>');
    }

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/shopping_cart.php

Suche:

    if (isset($_SESSION['cc_id'])) {
      $clink_parameters = defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS;
      $clink_class = defined('TPL_POPUP_CONTENT_LINK_CLASS') ? TPL_POPUP_CONTENT_LINK_CLASS : POPUP_CONTENT_LINK_CLASS;
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$clink_class.'" title="'.(defined('TEXT_LINK_TITLE_INFORMATION') ? TEXT_LINK_TITLE_INFORMATION : 'Information').'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $clink_parameters, $request_type).'">Information</a>');
    }

Ersetze mit:

    if (isset($_SESSION['cc_id'])) {
      $popup_params = $main->getPopupParams();      
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$popup_params['link_class'].'" title="'.$popup_params['link_title'].'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $popup_params['link_parameters'], $request_type).'">Information</a>');
    }

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/extra/cookieconsent.js.php

Suche:

  $link_parameters = defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS;

Ersetze mit:

  $popup_params = $main->getPopupParams();

Suche:

      "label_imprint_links": "<?php echo $lang_links; ?><a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=2".$link_parameters); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_PRIVACY; ?></a> <a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=4".$link_parameters); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_IMPRINT; ?></a>"

Ersetze mit:

      "label_imprint_links": "<?php echo $lang_links; ?><a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=2".$popup_params['link_parameters']); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_PRIVACY; ?></a> <a href='<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, "coID=4".$popup_params['link_parameters']); ?>' onclick='return cc_popup_content(this)'><?php echo TEXT_COOKIE_CONSENT_LABEL_INTRO_TEXT_IMPRINT; ?></a>"

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/shopping_cart.php

Suche:

    if (isset($_SESSION['cc_id'])) {
      $clink_parameters = defined('TPL_POPUP_CONTENT_LINK_PARAMETERS') ? TPL_POPUP_CONTENT_LINK_PARAMETERS : POPUP_CONTENT_LINK_PARAMETERS;
      $clink_class = defined('TPL_POPUP_CONTENT_LINK_CLASS') ? TPL_POPUP_CONTENT_LINK_CLASS : POPUP_CONTENT_LINK_CLASS;
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$clink_class.'" title="'.TEXT_LINK_TITLE_INFORMATION.'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $clink_parameters, $request_type).'">Information</a>');
    }

Ersetze mit:

    if (isset($_SESSION['cc_id'])) {
      $popup_params = $main->getPopupParams();      
      $box_smarty->assign('COUPON_HELP_LINK', '<a target="_blank" class="'.$popup_params['link_class'].'" title="'.$popup_params['link_title'].'" href="'.xtc_href_link(FILENAME_POPUP_COUPON_HELP, 'cID='.$_SESSION['cc_id']. $popup_params['link_parameters'], $request_type).'">Information</a>');
    }

CSS Fehler in Bestellbestätigungs E-Mails korrigieren[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/german/order_mail.html
/templates/tpl_modified_responsive/mail/german/order_mail_step.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/german/order_mail.html
/templates/tpl_modified_responsive/mail/german/order_mail_step.html

Suche:

            {if $order_values.PRODUCTS_ORDER_DESCRIPTION neq ''}<div style="padding: 0px 0px 4px 0px;" style="font-size: 10px !important;line-height:14px;">{$order_values.PRODUCTS_ORDER_DESCRIPTION}</div>{/if}

Ersetze mit:

            {if $order_values.PRODUCTS_ORDER_DESCRIPTION neq ''}<div style="padding: 0px 0px 4px 0px;font-size: 10px !important;line-height:14px;">{$order_values.PRODUCTS_ORDER_DESCRIPTION}</div>{/if}

"Pinch to Zoom" im Slick Carousel aktivieren[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/css/jquery.slick.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/css/jquery.slick.css

Suche:

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
      touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

Ersetze mit:

/* Slider */

/* change touch-action from pan-y to auto to enable pinch to zoom */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: auto;
      touch-action: auto;
  -webkit-tap-highlight-color: transparent;
}

Korrektur fehlender Bewertungssterne bei Neuladen der Seite[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/default.js.php
/templates/tpl_modified_responsive/javascript/extra/default.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/default.js.php

Suche:

  $(window).on('load',function() {
    $('.show_rating input').change(function () {
      var $radio = $(this);
      $('.show_rating .selected').removeClass('selected');
      $radio.closest('label').addClass('selected');
    });
  });

Ersetze mit:

  $(window).on('load',function () {
    $('.show_rating input').change(function () {
      var $radio = $(this);
      $('.show_rating .selected').removeClass('selected');
      $radio.closest('label').addClass('selected');
    });
    $('.show_rating :radio').each(function() {
      if($(this).attr("checked")){
        $(this).closest('label').addClass('selected');
      }
    });
  });

Schönheitskorrektur der Mobilansicht der Versand- & Zahlungsarten in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_responsive

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/module/checkout_payment_block.html
/templates/tpl_modified_responsive/module/checkout_shipping_block.html
/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_payment_block.html

Suche:

          <label>{$module_data.module|onlytext}<span class="payment_costs">{$module_data.module_cost}</span></label>

Ersetze mit:

          <label><span class="payment_name">{$module_data.module|onlytext}</span><span class="payment_costs">{$module_data.module_cost}</span></label>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_shipping_block.html

Suche:

                <label>{$module_data.module|onlytext}<span class="shipping_costs">{$method_data.price}</span></label>

Ersetze mit:

                <label><span class="shipping_name">{$module_data.module|onlytext}</span><span class="shipping_costs">{$method_data.price}</span></label>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.shipping_costs, .payment_costs {
  float:right; 
  margin-right:10px;
}

Ersetze mit:

.checkout_accordion .cus_radio input[type="radio"] ~ label {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  padding: 0px 15px 0px 25px;
}
.checkout_accordion .shipping_name,
.checkout_accordion .payment_name {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 0px 10px 0 0;
}
.checkout_accordion .shipping_costs,
.checkout_accordion .payment_costs {
  white-space:nowrap;
  padding: 0 0 0 0;
}
.checkout_accordion img {
  max-width:100%;
  height:auto;
  vertical-align:top;
}

Nicht mehr benötigten Code aus login.html entfernen[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/login.html
/templates/tpl_modified_responsive/module/login.html
/templates/xtc5/module/login.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/login.html

Suche:

    {if $smarty.get.order_id}
      {#text_after_login1#}
    {elseif $smarty.get.review_prod_id}
      {#text_after_login2#}
    {else}
      {#text_after_login#}
    {/if}

Ersetze mit:

    {#text_after_login#}

Fehlerkorrektur in Box reviews.php[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/xtc5/source/boxes/reviews.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

        $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], $request_type, false));

Ersetze mit:

        if (count($shop_content_data) > 0) {
          $box_smarty->assign('REVIEWS_NOTE', $main->getContentLink(REVIEWS_PURCHASED_INFOS, $shop_content_data['content_title'], $request_type, false));
        }

Zeige Kontakt- & Impressum-Link nur an, wenn Content aktiv[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/index.html
/templates/tpl_modified/source/boxes.php
/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/source/boxes.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/index.html

Suche (2x):

          <li class="first"><a href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=7'}">{#link_contact#}</a></li>
          <li><a href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=4'}">{#link_imprint#}</a></li>
          <li class="last"><a href="{$checkout}"><strong>{#link_checkout#}</strong></a></li>

Ersetze mit:

          {if isset($contact)}<li class="first"><a href="{$contact}">{#link_contact#}</a></li>{/if}
          {if isset($imprint)}<li{if !isset($contact)} class="first"{/if}><a href="{$imprint}">{#link_imprint#}</a></li>{/if}
          <li class="last{if (!isset($contact) && !isset($imprint))} first{/if}"><a href="{$checkout}"><strong>{#link_checkout#}</strong></a></li>

Suche:

          <li><a href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=7'}">{#link_contact#}</a></li>
          <li><a href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=4'}">{#link_imprint#}</a></li>

Ersetze mit:

          {if isset($contact)}<li><a href="{$contact}">{#link_contact#}</a></li>{/if}
          {if isset($imprint)}<li><a href="{$imprint}">{#link_imprint#}</a></li>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes.php

Suche:

$smarty->assign('tpl_path', DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE.'/');

Füge danach ein:

$content_data_query = xtDBquery("SELECT *
                                   FROM ".TABLE_CONTENT_MANAGER."
                                  WHERE content_group IN (4,7)
                                    AND content_active = '1'
                                    AND trim(content_title) != ''
                                    AND languages_id = '".(int)$_SESSION['languages_id']."'
                                        ".CONTENT_CONDITIONS);
if (xtc_db_num_rows($content_data_query, true) > 0) {
  while ($content_data = xtc_db_fetch_array($content_data_query, true)) {
    if ($content_data['content_group'] == '7') $smarty->assign('contact', xtc_href_link(FILENAME_CONTENT, 'coID=7', 'SSL'));
    if ($content_data['content_group'] == '4') $smarty->assign('imprint', xtc_href_link(FILENAME_CONTENT, 'coID=4', 'SSL'));
  }
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/index.html

Suche (3x):

              <li class="cn_nomobile"><a title="{#link_contact#}" href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=7'}"><i class="far fa-envelope"></i>{#link_contact#}</a></li>
              <li class="cn_nomobile"><a title="{#link_imprint#}" href="{$smarty.const.FILENAME_CONTENT|xtc_href_link:'coID=4'}"><i class="fas fa-info-circle"></i>{#link_imprint#}</a></li>

Ersetze mit:

              {if isset($contact)}<li class="cn_nomobile"><a title="{#link_contact#}" href="{$contact}"><i class="far fa-envelope"></i>{#link_contact#}</a></li>{/if}
              {if isset($imprint)}<li class="cn_nomobile"><a title="{#link_imprint#}" href="{$imprint}"><i class="fas fa-info-circle"></i>{#link_imprint#}</a></li>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes.php

Suche:

$smarty->assign('tpl_path', DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE.'/');

Füge danach ein:

$content_data_query = xtDBquery("SELECT *
                                   FROM ".TABLE_CONTENT_MANAGER."
                                  WHERE content_group IN (4,7)
                                    AND content_active = '1'
                                    AND trim(content_title) != ''
                                    AND languages_id = '".(int)$_SESSION['languages_id']."'
                                        ".CONTENT_CONDITIONS);
if (xtc_db_num_rows($content_data_query, true) > 0) {
  while ($content_data = xtc_db_fetch_array($content_data_query, true)) {
    if ($content_data['content_group'] == '7') $smarty->assign('contact', xtc_href_link(FILENAME_CONTENT, 'coID=7', 'SSL'));
    if ($content_data['content_group'] == '4') $smarty->assign('imprint', xtc_href_link(FILENAME_CONTENT, 'coID=4', 'SSL'));
  }
}

Überarbeitung der Autocomplete Suche[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/buttons/english/button_results.gif
/templates/tpl_modified/buttons/german/button_results.gif
/templates/tpl_modified/javascript/extra/autocomplete.js.php
/templates/tpl_modified/module/autocomplete.html
/templates/tpl_modified/source/boxes/search.php
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/buttons/english/button_results.gif
/templates/tpl_modified_responsive/buttons/german/button_results.gif
/templates/tpl_modified_responsive/javascript/extra/autocomplete.js.php
/templates/tpl_modified_responsive/lang/buttons_english.php
/templates/tpl_modified_responsive/lang/buttons_german.php
/templates/tpl_modified_responsive/module/autocomplete.html
/templates/tpl_modified_responsive/source/boxes/search.php
/templates/tpl_modified_responsive/source/inc/css_button.inc.php
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/buttons/english/button_results.gif
/templates/xtc5/buttons/german/button_results.gif
/templates/xtc5/javascript/extra/autocomplete.js.php
/templates/xtc5/module/autocomplete.html
/templates/xtc5/source/boxes/search.php
/templates/xtc5/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/autocomplete.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: autocomplete.js.php 14867 2022-12-20 16:20:51Z Markus $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/
?>
<script>
  <?php if (SEARCH_AC_STATUS == 'true') { ?>
  var session_id = '<?php echo xtc_session_id(); ?>';
  $('body').on('keydown paste cut input focus', '#inputString', delay(function() {
    if ($(this).length == 0) {
      $('#suggestions').hide();
    } else {
      var post_params = $('#quick_find').serialize();
      
      $.ajax({
        dataType: "json",
        type: 'post',
        url: '<?php echo DIR_WS_BASE; ?>ajax.php?ext=get_autocomplete&MODsid='+session_id,
        data: post_params,
        cache: false,
        async: true,
        success: function(data) {
          if (data !== null && typeof data === 'object') {
            if (data.result !== null && data.result != undefined && data.result != '') {
              $('#autoSuggestionsList').html(decode_ajax(data.result));
              $('#suggestions').slideDown();
            } else {
              $('#suggestions').slideUp();
            }
          }
        }
      });    
    }
  }, 500));
  
  function delay(fn, ms) {
    let timer = 0;
    return function(args) {
      clearTimeout(timer);
      timer = setTimeout(fn.bind(this, args), ms || 0);
    }
  }

  function decode_ajax(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
  
    return textArea.value;
  }

  $('body').on('click', function (e) {
    if ($(e.target).closest("#suggestions").length === 0) {
      ac_closing();
    }
  });
  <?php } ?>
	<?php if (SEARCH_AC_STATUS == 'true' || (basename($PHP_SELF) != FILENAME_SHOPPING_CART && !strpos($PHP_SELF, 'checkout'))) { ?>	
	function ac_closing() {
		setTimeout("$('#suggestions').slideUp();", 100);
	}
  <?php } ?>
</script>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/autocomplete.html

Suche:

  <ul id="autocomplete_pagination" class="cf">
    <li id="autocomplete_prev">&laquo;</li>
    <li id="autocomplete_count"></li>
    <li id="autocomplete_next">&raquo;</li>
  </ul>

Ersetze mit:

  {if isset($BUTTON_VIEW_RESULTS)}
    <div class="autocomplete_button">{$BUTTON_VIEW_RESULTS}</div>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/search.php

Suche:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Ersetze mit:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off"'));

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

/* START autocomplete */
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width:400px;
  background-color:#f1f1f1;
  border:1px solid #ccc;
  color:#333;
  z-index:1100;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 3px 10px;
}

Ersetze mit:

/* START autocomplete */
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width:400px;
  background-color:#f1f1f1;
  border:1px solid #ccc;
  color:#333;
  z-index:1100;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 10px 10px;
}

Entferne den folgenden Code:

#autocomplete_pagination {
  position:relative;
}
#autocomplete_pagination li {
  float:left;
  border: 0;
}
#autocomplete_pagination li:hover {
  background-color:#f1f1f1;
}
#autocomplete_prev {
  cursor:pointer;
  padding:5px;
  width:5%;
  text-align:left;
  font-size:15px;
}
#autocomplete_next {
  cursor: pointer;
  padding: 5px;
  width: 5%;
  float: right !important;
  text-align: right;
  font-size:15px;
}
#autocomplete_count {
  padding: 5px;
  width: 75%;
  text-align: center;
  position: absolute;
  margin-left: 7%;
  font-size:11px;
  font-weight:bold;
}

Suche:

/* END autocomplete */

Füge davor ein:

.autocomplete_button {
  text-align:center;
  margin: 10px 0 0 0;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/javascript/extra/autocomplete.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: autocomplete.js.php 14867 2022-12-20 16:20:51Z Markus $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/
?>
<script>
  <?php if (SEARCH_AC_STATUS == 'true') { ?>
  var session_id = '<?php echo xtc_session_id(); ?>';
  $('body').on('keydown paste cut input focus', '#inputString', delay(function() {
    if ($(this).length == 0) {
      $('#suggestions').hide();
    } else {
      var post_params = $('#quick_find').serialize();
      
      $.ajax({
        dataType: "json",
        type: 'post',
        url: '<?php echo DIR_WS_BASE; ?>ajax.php?ext=get_autocomplete&MODsid='+session_id,
        data: post_params,
        cache: false,
        async: true,
        success: function(data) {
          if (data !== null && typeof data === 'object') {
            if (data.result !== null && data.result != undefined && data.result != '') {
              $('#autoSuggestionsList').html(decode_ajax(data.result));
              $('#suggestions').slideDown();
            } else {
              $('#suggestions').slideUp();
            }
          }
        }
      });    
    }
  }, 500));
  
  function delay(fn, ms) {
    let timer = 0;
    return function(args) {
      clearTimeout(timer);
      timer = setTimeout(fn.bind(this, args), ms || 0);
    }
  }

  function decode_ajax(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
  
    return textArea.value;
  }

  $('body').on('click', function (e) {
    if ($(e.target).closest("#suggestions").length === 0) {
      ac_closing();
    }
  });
  <?php } ?>
	<?php if (SEARCH_AC_STATUS == 'true' || (basename($PHP_SELF) != FILENAME_SHOPPING_CART && !strpos($PHP_SELF, 'checkout'))) { ?>	
	function ac_closing() {
		setTimeout("$('#suggestions').slideUp();", 100);
	}
  <?php } ?>
</script>

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/lang/buttons_english.php
/templates/tpl_modified_responsive/lang/buttons_german.php

Füge am Ende der Datei ein:

// define('CSS_IMAGE_BUTTON_RESULTS_TEXT', '';
// define('CSS_IMAGE_BUTTON_RESULTS_TITLE', '');
define('CSS_IMAGE_BUTTON_RESULTS_ICON_RIGHT', '<i class="fas fa-chevron-circle-right"></i>');
define('CSS_IMAGE_BUTTON_RESULTS_ICON_LEFT', '');

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/autocomplete.html

Suche:

  <ul id="autocomplete_pagination" class="cf">
    <li id="autocomplete_prev">&laquo;</li>
    <li id="autocomplete_count"></li>
    <li id="autocomplete_next">&raquo;</li>
  </ul>

Ersetze mit:

  {if isset($BUTTON_VIEW_RESULTS)}
    <div class="autocomplete_button">{$BUTTON_VIEW_RESULTS}</div>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/boxes/search.php

Suche:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Ersetze mit:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off"'));

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/inc/css_button.inc.php

Suche:

    'wishlist_del' => array(),

Füge danach ein:

    'button_results' => array(),

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

/* START autocomplete */
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width: 100%;
  background:#e2e2e2;
  color:#333;
  z-index:1100;
  box-sizing: border-box;
  padding: 10px 10px 3px 10px;
}

Ersetze mit:

/* START autocomplete */
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width: 100%;
  background:#e2e2e2;
  color:#333;
  z-index:1100;
  box-sizing: border-box;
  padding: 10px 10px 10px 10px;
}

Entferne den folgenden Code:

#autocomplete_pagination {
  margin: 5px 0 0 0;
  position:relative;
}
#autocomplete_pagination li {
  float:left;
  border: 0;
}
#autocomplete_prev {
  cursor:pointer;
  padding:5px;
  box-sizing: border-box;
  width:15%;
  text-align:left;
  font-size:15px;
}
#autocomplete_next {
  cursor: pointer;
  padding: 5px;
  box-sizing: border-box;
  width: 15%;
  float: right !important;
  text-align: right;
  font-size:15px;
}
#autocomplete_count {
  padding: 5px;
  width: 70%;
  box-sizing: border-box;
  text-align: center;
  font-size:11px;
  font-weight:bold;
}

Suche:

/* END autocomplete */

Füge davor ein:

.autocomplete_button {
  text-align:center;
  margin: 10px 0 0 0;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/extra/autocomplete.js.php

Inhalt der Datei ersetzen mit:

<?php
  /* --------------------------------------------------------------
   $Id: autocomplete.js.php 14867 2022-12-20 16:20:51Z Markus $

   modified eCommerce Shopsoftware
   http://www.modified-shop.org

   Copyright (c) 2009 - 2019 [www.modified-shop.org]
   --------------------------------------------------------------
   Released under the GNU General Public License
   --------------------------------------------------------------*/
?>
<script>
  <?php if (SEARCH_AC_STATUS == 'true') { ?>
  var session_id = '<?php echo xtc_session_id(); ?>';
  $('body').on('keydown paste cut input focus', '#inputString', delay(function() {
    if ($(this).length == 0) {
      $('#suggestions').hide();
    } else {
      var post_params = $('#quick_find').serialize();
      
      $.ajax({
        dataType: "json",
        type: 'post',
        url: '<?php echo DIR_WS_BASE; ?>ajax.php?ext=get_autocomplete&MODsid='+session_id,
        data: post_params,
        cache: false,
        async: true,
        success: function(data) {
          if (data !== null && typeof data === 'object') {
            if (data.result !== null && data.result != undefined && data.result != '') {
              $('#autoSuggestionsList').html(decode_ajax(data.result));
              $('#suggestions').slideDown();
            } else {
              $('#suggestions').slideUp();
            }
          }
        }
      });    
    }
  }, 500));
  
  function delay(fn, ms) {
    let timer = 0;
    return function(args) {
      clearTimeout(timer);
      timer = setTimeout(fn.bind(this, args), ms || 0);
    }
  }

  function decode_ajax(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
  
    return textArea.value;
  }

  $('body').on('click', function (e) {
    if ($(e.target).closest("#suggestions").length === 0) {
      ac_closing();
    }
  });
  <?php } ?>
	<?php if (SEARCH_AC_STATUS == 'true' || (basename($PHP_SELF) != FILENAME_SHOPPING_CART && !strpos($PHP_SELF, 'checkout'))) { ?>	
	function ac_closing() {
		setTimeout("$('#suggestions').slideUp();", 100);
	}
  <?php } ?>
</script>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/autocomplete.html

Suche:

  <ul id="autocomplete_pagination">
    <li id="autocomplete_prev">&laquo;</li>
    <li id="autocomplete_count"></li>
    <li id="autocomplete_next">&raquo;</li>
  </ul>

Ersetze mit:

  {if isset($BUTTON_VIEW_RESULTS)}
    <div class="autocomplete_button">{$BUTTON_VIEW_RESULTS}</div>
  {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/search.php

Suche:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off" '.((SEARCH_AC_STATUS == 'true') ? 'onkeyup="ac_lookup(this.value);" ' : '')));

Ersetze mit:

$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'placeholder="'.IMAGE_BUTTON_SEARCH.'" id="inputString" maxlength="30" autocomplete="off"'));

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

/* START autocomplete */
#header #search {
  position:relative;
}
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width:400px;
  background-color:#f1f1f1;
  border:1px solid #ccc;
  color:#333;
  z-index:99999;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 3px 10px;
}
.suggestionList {
  margin:0px;
  padding:0px;
  max-height:600px;
  overflow:auto;
  padding-right:5px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

Ersetze mit:

/* START autocomplete */
#header #search {
  position:relative;
}
.suggestionsBox {
  position:absolute;
  right:0;
  margin:0px;
  width:400px;
  background-color:#f1f1f1;
  border:1px solid #ccc;
  color:#333;
  z-index:99999;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 10px 10px;
}
#autocomplete_main {
  max-height:600px;
  overflow:auto;
}
.suggestionList {
  margin:0px;
  padding:0px;
  padding-right:5px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

Entferne den folgenden Code:

#autocomplete_pagination {
  position:relative;
}
#autocomplete_pagination li {
  float:left;
  border: 0;
}
#autocomplete_pagination li:hover {
  background-color:#f1f1f1;
}
#autocomplete_prev {
  cursor:pointer;
  padding:5px;
  width:5%;
  text-align:left;
  font-size:15px;
}
#autocomplete_next {
  cursor: pointer;
  padding: 5px;
  width: 5%;
  float: right !important;
  text-align: right;
  font-size:15px;
}
#autocomplete_count {
  padding: 5px;
  width: 75%;
  text-align: center;
  position: absolute;
  margin-left: 7%;
  font-size:11px;
  font-weight:bold;
}

Suche:

/* END autocomplete */

Füge davor ein:

.autocomplete_button {
  text-align:center;
  margin: 10px 0 0 0;
}

Korrektur der Box-Anzeige für Contents[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/sub_content_listing.html
/templates/tpl_modified_responsive/module/sub_content_listing.html
/templates/xtc5/module/sub_content_listing.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/module/sub_content_listing.html

Suche:

{if isset($parent_content)}

Ersetze mit:

{if isset($parent_content) && count($parent_content) > 0}

Suche:

  <ul>
    {foreach name=aussen item=content_data from=$sub_content}

Füge davor ein:

{/if}
{if isset($sub_content) && count($sub_content) > 0}

Korrektur des Löschen-Buttons im Merkzettel in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.cssButtonPos11 .fas {
  font-size:16px;
  vertical-align:-2px;
}

Ersetze mit:

.cssButtonPos11 .fas,
.cssButtonPos11 .far {
  font-size:16px;
  vertical-align:-2px;
}

Korrektur der Bildgrößen-Berechnung in Safari Browser[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/stylesheet.css

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Für Template tpl_modified:

Suche:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 25%;
  max-height: 25%;
  font-size: 0;
  -webkit-transform: scale(4.0);
  -moz-transform: scale(4.0);
  -ms-transform: scale(4.0);
  -o-transform: scale(4.0);
  transform: scale(4.0);
}

Ersetze mit:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Für Template tpl_modified_responsive:

Suche:

.box_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(4.4);
  -moz-transform: scale(4.4);
  -ms-transform: scale(4.4);
  -o-transform: scale(4.4);
  transform: scale(4.4);
}

Ersetze mit:

.box_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Suche:

.lb_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(5.0);
  -moz-transform: scale(5.0);
  -ms-transform: scale(5.0);
  -o-transform: scale(5.0);
  transform: scale(5.0);
}

Ersetze mit:

.lb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Suche:

.subcat_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(4.4);
  -moz-transform: scale(4.4);
  -ms-transform: scale(4.4);
  -o-transform: scale(4.4);
  transform: scale(4.4);
}

Ersetze mit:

.subcat_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Suche:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 25%;
  max-height: 25%;
  font-size: 0;
  -webkit-transform: scale(4.0);
  -moz-transform: scale(4.0);
  -ms-transform: scale(4.0);
  -o-transform: scale(4.0);
  transform: scale(4.0);
}

Ersetze mit:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Suche:

.pd_small_image_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(4.4);
  -moz-transform: scale(4.4);
  -ms-transform: scale(4.4);
  -o-transform: scale(4.4);
  transform: scale(4.4);
}

Ersetze mit:

.pd_small_image_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Suche:

.pd_small_image_tab img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(4.8);
  -moz-transform: scale(4.8);
  -ms-transform: scale(4.8);
  -o-transform: scale(4.8);
  transform: scale(4.8);
}

Ersetze mit:

.pd_small_image_tab img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 96%;
  height: 96%;
  object-fit:contain;
}

Suche:

.slider_bestseller .carousel_box .cb_image img {
  margin: auto;
  position: absolute;
  font-size:0px;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 20%;
  max-height: 20%;
  -webkit-transform: scale(5.0);
  -moz-transform: scale(5.0);
  -ms-transform: scale(5.0);
  -o-transform: scale(5.0);
  transform: scale(5.0);
}

Ersetze mit:

.slider_bestseller .carousel_box .cb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Korrektur der META-Codes itemprop="price" bei Staffelpreisen nach Google Update[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/includes/price_info.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/includes/price_info.html

Suche:

                <span class="item_price"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>
                {*<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />*}
                {* ENDE Produkt Staffelpreis mit Ausgabe ab Preis, Stückpreis *}

Ersetze mit:

                <span class="item_price"><span class="small_price">{$smarty.const.UNIT_PRICE}</span> {$price_data.PRODUCTS_PRICE_SPECIAL_PRICE}</span>
                <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
                {* ENDE Produkt Staffelpreis mit Ausgabe ab Preis, Stückpreis *}

Suche:

              {if !isset($MODULE_graduated_price) || $MODULE_graduated_price == ''}
                <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
              {/if}
              {* ENDE Produkt Standardpreis mit Ausgabe ab Preis *}

Ersetze mit:

              <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
              {* ENDE Produkt Standardpreis mit Ausgabe ab Preis *}

SumoSelect Dropdowns um Suchfeld erweitern[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/config/config.php
 /templates/tpl_modified_responsive/css/jquery.sumoselect.css
 /templates/tpl_modified_responsive/javascript/extra/sumoselect.js.php
 /templates/tpl_modified_responsive/javascript/jquery.sumoselect.min.js
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/config/config.php

Füge am Ende der Datei ein:

  // Sumo select  
  defined('ADVANCED_SUMOSELECT_SEARCHFIELD') or define('ADVANCED_SUMOSELECT_SEARCHFIELD', true); // 'true' zeigt in allen Select-Felder das Suchfeld an  / 'false' zeigt das Suchfeld nur bei der Länderauswahl an

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/css/jquery.sumoselect.css

Inhalt der Datei ersetzen mit:

.SumoSelect * { box-sizing: border-box; }
.SumoSelect { width: 100%; display: inline-block;  position: relative; outline:none; }

.stern .SumoSelect { width:95%;}
.stern .SumoSelect select { width:100% !important; height:35px; padding: 8px 8px 7px 8px;}

.SumoSelect p { margin: 0; }
.SelectBox { padding: 8px 8px 7px 8px; height:35px; }
.sumoStopScroll { overflow:hidden; }

.SumoSelect .hidden { display:none; }
.SumoSelect .search-txt{ display:none; outline:none; }
.SumoSelect .no-match{ display: none; padding: 8px 8px; font-size: 12px; line-height: 18px; }
.SumoSelect.open .search-txt{ display: inline-block; position: absolute; top: 0; bottom: 1px; left: 0; width: 100%; margin: 0; padding: 8px 8px 7px 8px; border: none; border-radius: 2px; border: 1px solid transparent;}
.SumoSelect.open > .search > span, 
.SumoSelect.open > .search > label{ visibility:hidden; }

.SelectClass, .SumoUnder { position: absolute; top: 0; left: 0; right: 0; height: 100%; width: 100%; border: none; opacity: 0; }
.SelectClass { z-index: 1; }

.SumoSelect > .optWrapper > .options  li.opt label, 
.SumoSelect > .CaptionCont { user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; }

.SumoSelect:hover > .CaptionCont { background-color:#ffffff; border-color: #dddddd; color: #666666; }
.SumoSelect:focus > .CaptionCont { background-color:#ffffff; border-color: #659ec9; color: #333333; outline: 0 none !important; }
.SumoSelect.open  > .CaptionCont { background-color:#ffffff; border-color: #659ec9; color: #333333;}
.SumoSelect > .CaptionCont { background-color: #fafafa; border: 1px solid; border-color: #dddddd; color:#666666; font-size: 13px; line-height: 19px; min-height: 13px; border-radius: 2px; margin:0; position: relative; }

.SumoSelect > .CaptionCont > span { display: block; padding-right: 20px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; cursor:default; }
.SumoSelect > .CaptionCont > span.placeholder { color: #ccc; font-style: italic; }
 
.SumoSelect > .CaptionCont > label { position: absolute; top: 0; right: 0; bottom: 0; width: 30px;}
.SumoSelect > .CaptionCont > label > i { width: 16px; height: 16px; opacity: 0.8; display: block; position: absolute; top: 1px; left: 0; right: 0; bottom: 0; margin: auto; }
.SumoSelect > .CaptionCont > label > i:after { font-size: 14px; line-height:18px; font-family: 'Font Awesome 5 Free'; content: "\f078"; font-weight:900; text-align:center; position: absolute; margin: auto; right: 0; left: 0; top: 0; bottom: 0; width: 16px; height:16px; font-style:normal; }

.SumoSelect > .optWrapper { display:none; z-index: 1000; top:calc(100% + 1px); width: 100%; position: absolute; left: 0; background: #fff; border: 1px solid #ddd; box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.11); border-radius: 3px; overflow: hidden; }
.SumoSelect.open > .optWrapper { top:calc(100% + 1px); display:block; }
.SumoSelect.open > .optWrapper.up { top: auto; bottom: 100%; margin-bottom: 5px;}

.SumoSelect > .optWrapper ul { list-style: none; display: block; padding: 0; margin: 0; overflow: auto;}
.SumoSelect > .optWrapper > .options { border-radius: 2px; position:relative; max-height: 250px; }

.SumoSelect > .optWrapper > .options li label { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; display: block; cursor: pointer;}
.SumoSelect > .optWrapper > .options li span { display: none; }

.SumoSelect > .optWrapper > .options  li.opt { padding: 6px 6px; position: relative; border-bottom: 1px solid #f5f5f5;}
.SumoSelect > .optWrapper > .options > li.opt:first-child { border-radius: 2px 2px 0 0; }
.SumoSelect > .optWrapper > .options > li.opt:last-child { border-radius: 0 0 2px 2px; border-bottom: none;}
.SumoSelect > .optWrapper > .options li.opt:hover { background-color: #e4e4e4; }
.SumoSelect > .optWrapper > .options li.opt.selected {color: #7c2759; background: #f5f5f5; }

.SumoSelect > .optWrapper > .options li.opt.disabled { background-color: inherit; pointer-events: none; }
.SumoSelect > .optWrapper > .options li.opt.disabled * { opacity: 0.5; }

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/extra/sumoselect.js.php

Suche:

    $('select:not([name=country])').SumoSelect();
    $('select[name=country]').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});

Ersetze mit:

    <?php if (defined('ADVANCED_SUMOSELECT_SEARCHFIELD') && ADVANCED_SUMOSELECT_SEARCHFIELD == true) { ?>
      $('select:not([name=filter_sort]):not([name=filter_set]):not([name=currency]):not([name=categories_id]):not([name=gender]):not([id^=sel_]):not([id=ec_term])').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});
      $('select[name=filter_sort]').SumoSelect();
      $('select[name=filter_set]').SumoSelect();
      $('select[name=currency]').SumoSelect();
      $('select[name=categories_id]').SumoSelect();
      $('select[name=gender]').SumoSelect();
      $('select[id^=sel_]').SumoSelect();
      $('select[id=ec_term]').SumoSelect();
    <?php } else { ?>
      $('select:not([name=country])').SumoSelect();
      $('select[name=country]').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});
    <?php } ?>

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/javascript/jquery.sumoselect.min.js

Inhalt der Datei ersetzen mit:

/*!
 * jquery.sumoselect
 * http://hemantnegi.github.io/jquery.sumoselect
 * 2016-12-12
 *
 * Copyright 2015 Hemant Negi
 * Email : hemant.frnz@gmail.com
 * Compressor http://refresh-sf.com/
 * v3.4.9 - 25.01.2023
 */
function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e} 
(e)||function(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var n,i,a=[],o=!0,s=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){s=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(s)throw i}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,n=Array(t);l<t;l++)n[l]=e[l];return n}var n;n=function(l){l.fn.SumoSelect=function(n){var i=function(e,t){var l=null;"function"==typeof Event?l=new Event(t,{bubbles:!0}):(l=document.createEvent("Event")).initEvent(t,!0,!0),e.dispatchEvent(l)};window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach);var a={placeholder:"Select Here",csvDispCount:3,captionFormat:"{0} Selected",captionFormatAllSelected:"{0} all selected!",floatWidth:400,forceCustomRendering:!1,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],outputAsCSV:!1,csvSepChar:",",okCancelInMulti:!1,isClickAwayOk:!1,triggerChangeCombined:!0,selectAll:!1,selectAllPartialCheck:!0,search:!1,searchText:"Search...",searchFn:function(e,t){return 0>e.toLowerCase().indexOf(t.toLowerCase())},noMatch:'No matches for "{0}"',prefix:"",locale:["OK","Cancel","Select All","Clear all"],up:!1,showTitle:!0,clearAll:!1,closeAfterClearAll:!1,max:null,renderLi:function(e){return e}},o=this.each((function(){var o=this;if(!this.sumo&&l(this).is("select")){var s=l.extend({},a,n,l(this).data());this.sumo={E:l(o),is_multi:l(o).attr("multiple"),select:"",caption:"",placeholder:"",optDiv:"",CaptionCont:"",ul:"",is_floating:!1,is_opened:!1,mob:!1,Pstate:[],lastUnselected:null,selectedCount:0,createElems:function(){var e=this,t=e.E.find("option:checked");return e.E.wrap('<div class="SumoSelect" tabindex="0" role="button" aria-expanded="false">'),t.each((function(e,t){t.selected=!0})),e.select=e.E.parent(),e.caption=l("<span>"),e.CaptionCont=l('<p class="CaptionCont SelectBox '.concat(e.E.attr("class"),'" ><label><i></i></label></p>')).attr("style",e.E.attr("style")).prepend(e.caption),e.select.append(e.CaptionCont),e.is_multi||(s.okCancelInMulti=!1),e.E.attr("disabled")&&e.select.addClass("disabled").removeAttr("tabindex"),s.outputAsCSV&&e.is_multi&&e.E.attr("name")&&(e.select.append(l('<input class="HEMANT123" type="hidden" />').attr("name",e.E.attr("name")).val(e.getSelStr())),e.E.removeAttr("name")),e.isMobile()&&!s.forceCustomRendering?void e.setNativeMobile():(e.E.attr("name")&&e.select.addClass("sumo_".concat(e.E.attr("name").replace(/\[\]/,""))),e.E.addClass("SumoUnder").attr("tabindex","-1"),e.optDiv=l('<div class="optWrapper '.concat(s.up?"up":"",'">')),e.floatingList(),e.ul=l('<ul class="options">'),e.optDiv.append(e.ul),s.clearAll&&e.is_multi&&e.ClearAll(),s.selectAll&&e.is_multi&&!s.max&&e.SelAll(),s.search&&e.Search(),e.ul.append(e.prepItems(e.E.children())),e.is_multi&&e.multiSelelect(),e.select.append(e.optDiv),e._handleMax(),e.basicEvents(),void e.selAllState())},prepItems:function(e,t){var n=[],i=this;return l(e).each((function(e,a){var o=l(a);n.push(o.is("optgroup")?l('<li class="group '.concat(a.disabled?"disabled":"",'"><label></label><ul></ul></li>')).find("label").text(o.attr("label")).end().find("ul").append(i.prepItems(o.children(),a.disabled)).end():i.createLi(o,t))})),n},createLi:function(e,t){var n=this;e.attr("value")||e.attr("value",e.val());var i=l('<li class="opt"><label>'.concat(e.html(),"</label></li>"));return i.data("opt",e),e.data("li",i),n.is_multi&&i.prepend("<span><i></i></span>"),(e[0].disabled||t)&&i.addClass("disabled"),n.onOptClick(i),e[0].selected&&(i.addClass("selected"),n.selectedCount++),e.attr("class")&&i.addClass(e.attr("class")),e.attr("title")&&i.attr("title",e.attr("title")),s.renderLi(i,e)},getSelStr:function(){var e=[];return this.E.find("option:checked").each((function(){e.push(l(this).val())})),e.join(s.csvSepChar)},multiSelelect:function(){var e=this;e.optDiv.addClass("multiple"),e.okbtn=l('<p tabindex="0" class="btnOk"></p>').on("click",(function(){e._okbtn(),e.hideOpts()}));var n=t(s.locale,1);e.okbtn[0].innerText=n[0],e.cancelBtn=l('<p tabindex="0" class="btnCancel"></p>').on("click",(function(){e._cnbtn(),e.hideOpts()}));var i=t(s.locale,2);e.cancelBtn[0].innerText=i[1];var a=e.okbtn.add(e.cancelBtn);e.optDiv.append(l('<div class="MultiControls">').append(a)),a.on("keydown.sumo",(function(t){var n=l(this);switch(t.which){case 32:case 13:n.trigger("click");break;case 9:if(n.hasClass("btnOk"))return;break;case 27:return e._cnbtn(),void e.hideOpts()}t.stopPropagation(),t.preventDefault()}))},_okbtn:function(){var e=this,t=0;s.triggerChangeCombined&&(e.E.find("option:checked").length===e.Pstate.length?e.E.find("option").each((function(l,n){n.selected&&0>e.Pstate.indexOf(l)&&(t=1)})):t=1,t&&(e.callChange(),e.setText()))},_cnbtn:function(){var e=this;e.E.find("option:checked").each((function(){this.selected=!1})),e.optDiv.find("li.selected").removeClass("selected");for(var t=0;t<e.Pstate.length;t++)e.E.find("option")[e.Pstate[t]].selected=!0,e.ul.find("li.opt").eq(e.Pstate[t]).addClass("selected");e.setText(),e.selAllState()},_handleMax:function(){s.max&&(this.selectedCount>=+s.max?this.optDiv.find("li.opt").not(".hidden").each((function(e,t){l(t).hasClass("selected")||l(t).addClass("temporary-disabled disabled")})):this.optDiv.find("li.opt").not(".hidden").each((function(e,t){l(t).hasClass("temporary-disabled")&&l(t).removeClass("temporary-disabled disabled")})))},ClearAll:function(){var e=this;if(e.is_multi){e.selAll=l('<p class="reset-all"><span><i></i></span><label></label></p>');var n=t(s.locale,4);e.selAll.find("label")[0].innerText=n[3],e.optDiv.addClass("resetAll"),e.selAll.on("click",(function(){e.selAll.removeClass("selected"),e.toggSelAll(!1,1),s.closeAfterClearAll&&e.hideOpts()})),e.optDiv.prepend(e.selAll)}},SelAll:function(){var e=this;if(e.is_multi){e.selAll=l('<p class="select-all"><span><i></i></span><label></label></p>');var n=t(s.locale,3);e.selAll.find("label")[0].innerText=n[2],e.optDiv.addClass("selall"),e.selAll.on("click",(function(){e.selAll.toggleClass("selected"),e.toggSelAll(e.selAll.hasClass("selected"),1),e.selAllState()})),e.optDiv.prepend(e.selAll)}},Search:function(){var e=this,t=e.CaptionCont.addClass("search"),i=l('<p class="no-match">'),a=n.searchFn&&"function"==typeof n.searchFn?n.searchFn:s.searchFn;e.ftxt=l('<input type="search" class="search-txt" value="" autocomplete="off">').on("click",(function(e){e.stopPropagation()})),e.ftxt[0].placeholder=s.searchText,t.append(e.ftxt),e.optDiv.children("ul").after(i),e.ftxt.on("input.sumo",(function(){var t=e.optDiv.find("ul.options li.opt").each((function(t,n){var i=l(n),o=i.data("opt")[0];o.hidden=a(i.text(),e.ftxt.val(),i),i.toggleClass("hidden",o.hidden)})).not(".hidden");e.optDiv[0].querySelectorAll("li.group").forEach((function(e){e.querySelector("li:not(.hidden)")?e.classList.remove("hidden"):e.classList.add("hidden")})),i.html(s.noMatch.replace(/\{0\}/g,"<em></em>")).toggle(!t.length),i.find("em").text(e.ftxt.val()),e.selAllState()}))},selAllState:function(){var e=this;if(s.selectAll&&e.is_multi){var t=0,n=0;e.optDiv.find("li.opt:not(.disabled):not(.hidden)").each((function(e,i){l(i).hasClass("selected")&&t++,n++})),t==n?e.selAll.removeClass("partial").addClass("selected"):0===t?e.selAll.removeClass("selected partial"):(s.selectAllPartialCheck&&e.selAll.addClass("partial"),e.selAll.removeClass("selected"))}},showOpts:function(){var e=this;if(!e.E.attr("disabled")){e.E.trigger("sumo:opening",e),e.is_opened=!0,e.select.addClass("open").attr("aria-expanded","true");var t=e.optDiv.find("li.opt.selected").first();if(t.length?e.optDiv.find(".options").scrollTop(t.position().top):e.optDiv.find(".options").scrollTop(0),e.E.trigger("sumo:opened",e),e.ftxt?e.ftxt.focus():e.select.focus(),l(document).on("click.sumo",(function(t){if(!e.select.is(t.target)&&0===e.select.has(t.target).length){if(!e.is_opened)return;e.hideOpts(),s.okCancelInMulti&&(s.isClickAwayOk?e._okbtn():e._cnbtn())}})),e.is_floating){var n=e.optDiv.children("ul").outerHeight()+2;e.is_multi&&(n+=+e.optDiv.css("padding-bottom")),e.optDiv.css("height",n),l("body").addClass("sumoStopScroll")}e.setPstate()}},setPstate:function(){var e=this;e.is_multi&&(e.is_floating||s.okCancelInMulti)&&(e.Pstate=[],e.E.find("option").each((function(t,l){l.selected&&e.Pstate.push(t)})))},callChange:function(){this.E.get().forEach((function(e){i(e,"change"),i(e,"click")}))},hideOpts:function(){var e=this;e.is_opened&&(e.E.trigger("sumo:closing",e),e.is_opened=!1,e.select.removeClass("open").attr("aria-expanded","false").find("ul li.sel").removeClass("sel"),e.E.trigger("sumo:closed",e),l(document).off("click.sumo"),l("body").removeClass("sumoStopScroll"),s.search&&(e.ftxt.val(""),e.ftxt.trigger("input.sumo")))},setOnOpen:function(){var e=this,t=e.optDiv.find("li.opt:not(.hidden)").eq(s.search?0:e.E[0].selectedIndex);t.hasClass("disabled")&&!(t=t.next(":not(disabled)")).length||(e.optDiv.find("li.sel").removeClass("sel"),t.addClass("sel"),e.showOpts())},nav:function(e){var t=this,l=null,n=t.ul.find("li.opt.sel:not(.hidden)"),i=t.ul.find("li.opt:not(.disabled):not(.hidden)"),a=i.index(n);if(t.is_opened&&n.length){if(e&&0<a)l=i.eq(a-1);else{if(!(!e&&a<i.length-1&&-1<a))return;l=i.eq(a+1)}n.removeClass("sel"),n=l.addClass("sel");var o=t.ul,s=o.scrollTop(),r=n.position().top+s;r>=s+o.height()-n.outerHeight()&&o.scrollTop(r-o.height()+n.outerHeight()),r<s&&o.scrollTop(r)}else t.setOnOpen()},basicEvents:function(){var e=this;e.CaptionCont.on("click",(function(t){e.E.trigger("click"),e.is_opened?e.hideOpts():e.showOpts(),t.stopPropagation()})),e.select.on("keydown.sumo",(function(t){switch(t.which){case 38:e.nav(!0);break;case 40:e.nav(!1);break;case 65:if(e.is_multi&&!s.max&&t.ctrlKey){e.toggSelAll(!t.shiftKey,1);break}return;case 32:if(s.search&&e.ftxt.is(t.target))return;break;case 13:e.is_opened&&e.optDiv.find("ul li.sel").trigger("click"),s.search?e.select.focus():e.setOnOpen();break;case 9:return void(s.okCancelInMulti||e.hideOpts());case 27:return s.okCancelInMulti&&e._cnbtn(),e.hideOpts(),void(s.search&&e.select.focus());default:return}t.preventDefault()})),l(window).on("resize.sumo",(function(){e.floatingList()}))},onOptClick:function(e){var t=this;e.on("click",(function(){var e=l(this);e.hasClass("disabled")||(t.is_multi?(e.toggleClass("selected"),e.data("opt")[0].selected=e.hasClass("selected"),!1===e.data("opt")[0].selected?(t.lastUnselected=e.data("opt")[0].textContent,t.selectedCount--):t.selectedCount++,s.max&&t._handleMax(),t.selAllState()):(e.parent().find("li.selected").removeClass("selected"),e.toggleClass("selected"),e.data("opt")[0].selected=!0,t.selectedCount=1),!(t.is_multi&&s.triggerChangeCombined&&(t.is_floating||s.okCancelInMulti))&&(t.setText(),t.callChange()),!t.is_multi&&t.hideOpts())}))},setText:function(){var e=this,t=0;if(e.placeholder="",e.is_multi){var l=e.E.find(":checked").not(":disabled");t=l.length,e.placeholder=s.csvDispCount&&l.length>s.csvDispCount?l.length===e.E.find("option").length&&s.captionFormatAllSelected?s.captionFormatAllSelected.replace(/\{0\}/g,l.length):s.captionFormat.replace(/\{0\}/g,l.length):l.toArray().map((function(e){return e.innerText})).join(", ")}else{var n=e.E.find(":checked").not(":disabled");e.placeholder=n.text(),t=n.length}var i=!1;e.placeholder||(i=!0,e.placeholder=e.E.attr("placeholder"),!e.placeholder&&(e.placeholder=e.E.find("option:disabled:checked").text())),e.select.attr("selected-count",t),e.select.attr("is-selected",t?"true":"false"),e.placeholder=e.placeholder?"".concat(s.prefix," ").concat(e.placeholder):s.placeholder,e.caption.text(e.placeholder),s.showTitle&&e.CaptionCont.attr("title",e.placeholder);var a=e.select.find("input.HEMANT123");return a.length&&a.val(e.getSelStr()),i?e.caption.addClass("placeholder"):e.caption.removeClass("placeholder"),e.placeholder},isMobile:function(){for(var e=navigator.userAgent||navigator.vendor||window.opera,t=0;t<s.nativeOnDevice.length;t++)if(0<e.toString().toLowerCase().indexOf(s.nativeOnDevice[t].toLowerCase()))return s.nativeOnDevice[t];return!1},setNativeMobile:function(){var e=this;e.E.addClass("SelectClass"),e.mob=!0,e.E.change((function(){e.setText()}))},floatingList:function(){var e=this;e.is_floating=l(window).width()<=s.floatWidth,e.optDiv.toggleClass("isFloating",e.is_floating),e.is_floating||e.optDiv.css("height",""),e.optDiv.toggleClass("okCancelInMulti",s.okCancelInMulti&&!e.is_floating)},vRange:function(e){if(this.E.find("option").length<=e||0>e)throw new Error("index out of bounds");return this},toggSel:function(e,t){var n=this,i=null;"number"==typeof t?(n.vRange(t),i=n.E.find("option")[t]):i=n.E.find('option[value="'.concat(t,'"]'))[0]||0,!i||i.disabled||i.selected!==e&&(s.max&&!i.selected&&n.selectedCount<s.max||i.selected||!s.max&&!i.selected)&&(i.selected=e,!n.mob&&l(i).data("li").toggleClass("selected",e),n.callChange(),n.setPstate(),n.setText(),n.selAllState())},toggDis:function(e,t){var l=this.vRange(t);l.E.find("option")[t].disabled=e,e&&(l.E.find("option")[t].selected=!1),l.mob||l.optDiv.find("ul.options li.opt").eq(t).toggleClass("disabled",e).removeClass("selected"),l.setText()},toggSumo:function(e){var t=this;return t.enabled=e,t.select.toggleClass("disabled",e),e?(t.E.attr("disabled","disabled"),t.select.removeAttr("tabindex")):(t.E.removeAttr("disabled"),t.select.attr("tabindex","0")),t},toggSelAll:function(e,t){var n=this,i=l.extend(!0,{},l._data(n.E.get(0),"events"));n.E.off(),n.is_multi?e?n.E.find("option").toArray().filter((function(e){return!e.selected&&!e.disabled&&"none"!==e.style.display})).forEach((function(e){l(e).data("li").hasClass("hidden")||(e.selected=!0,l(e).data("li").toggleClass("selected",!0))})):n.E.find("option").toArray().filter((function(e){return e.selected&&!e.disabled&&"none"!==e.style.display})).forEach((function(e){l(e).data("li").hasClass("hidden")||(e.selected=!1,l(e).data("li").toggleClass("selected",!1))})):e?console.warn("You called `SelectAll` on a non-multiple select"):n.E[0].selectedIndex=-1,l.each(i,(function(e,t){l.each(t,(function(e,t){n.E.on(t.type,t.handler)}))})),(!n.is_multi||s.okCancelInMulti)&&n.is_multi||(n.callChange(),n.setText()),t||(!n.mob&&n.selAll&&n.selAll.removeClass("partial").toggleClass("selected",!!e),n.setText(),n.setPstate())},reload:function(){var e=this.unload();return l(e).SumoSelect(s)},unload:function(){var e=this;return e.select.before(e.E),e.E.show(),e.E[0].classList.remove("SumoUnder","SelectClass"),s.outputAsCSV&&e.is_multi&&e.select.find("input.HEMANT123").length&&e.E.attr("name",e.select.find("input.HEMANT123").attr("name")),e.select.remove(),delete o.sumo,e.E.trigger("sumo:unloaded",e),o},add:function(t,n,i,a){if(void 0===t)throw new Error("No value to add");var s=this,r=s.E.find("option"),c=n,d=i;"number"==typeof n?(d=n,c=t):void 0===n&&(c=t);var u=l("<option></option>").val(t).html(c);if(a&&"object"===e(a)&&l.each(a,(function(e,t){u.attr(e,t)})),r.length<d)throw new Error("index out of bounds");return void 0===d||r.length===d?(s.E.append(u),!s.mob&&s.ul.append(s.createLi(u))):(r.eq(d).before(u),!s.mob&&s.ul.find("li.opt").eq(d).before(s.createLi(u))),o},remove:function(e){var t=this.vRange(e);t.E.find("option").eq(e).remove(),t.mob||t.optDiv.find("ul.options li.opt").eq(e).remove(),t.setText()},removeAll:function(){for(var e=this.E.find("option"),t=e.length-1;0<=t;t--)!0!==e[t].selected&&this.remove(t)},find:function(e){var t=this.E.find("option");for(var l in t)if(t[l].value===e)return+l;return-1},selectItem:function(e){this.toggSel(!0,e)},unSelectItem:function(e){this.toggSel(!1,e)},selectAll:function(){this.toggSelAll(!0)},unSelectAll:function(){this.toggSelAll(!1)},disableItem:function(e){this.toggDis(!0,e)},enableItem:function(e){this.toggDis(!1,e)},enabled:!0,enable:function(){return this.toggSumo(!1)},disable:function(){return this.toggSumo(!0)},init:function(){var e=this;return e.createElems(),e.setText(),e.E.trigger("sumo:initialized",e),e}},o.sumo.init()}}));return 1===o.length?o[0]:o}},"function"==typeof define&&define.amd?define(["jquery"],n):"undefined"==typeof exports?n(jQuery):module.exports=n(require("jquery"));

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/stylesheet.css

Suche:

select {
  font-family: 'Poppins', sans-serif;
  font-size:13px;
  background-color:#fafafa;
  border-color: #dddddd;
  color: #666;
  border-style: solid;
  border-width: 1px;
  vertical-align: middle;
	padding: 7px 5px 7px 2px;
	border-radius: 2px;
  box-sizing: border-box;
  width:100%;
  height:35px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;  
}

Ersetze mit:

select {
  font-family: 'Poppins', sans-serif;
  font-size:13px;
  background-color:#fafafa;
  border-color: #dddddd;
  color: #666;
  border-style: solid;
  border-width: 1px;
  vertical-align: middle;
	padding: 7px 5px 7px 7px;
	border-radius: 2px;
  box-sizing: border-box;
  width:100%;
  height:35px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;  
}

Korrektur eines HTML-Fehlers in Template tpl_modified_responsive[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified_responsive/module/account_history_info.html
 /templates/tpl_modified_responsive/module/checkout_confirmation.html
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/account_history_info.html

Suche:

          <p class="ol_model">{$smarty.const.HEADER_MODEL}: {$order_values.PRODUCTS_MODEL}{$order_values.PRODUCTS_ATTRIBUTES_MODEL}</p>
          {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<p class="ol_model">{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}</p>{/if}

Ersetze mit:

          <div class="ol_model">{$smarty.const.HEADER_MODEL}: {$order_values.PRODUCTS_MODEL}{$order_values.PRODUCTS_ATTRIBUTES_MODEL}</div>
          {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<div class="ol_shipping">{#text_shippingtime#} {$order_values.PRODUCTS_SHIPPING_TIME}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_confirmation.html

Suche:

          <p class="ol_short_desc">{$data.order_description}</p>

Ersetze mit:

          <div class="ol_short_desc">{$data.order_description}</div>

Suche:

          <p class="ol_model">{$smarty.const.HEADER_MODEL}: {$data.model}</p>
          {if $data.shipping_time}<p class="ol_model">{$smarty.const.SHIPPING_TIME} {$data.shipping_time}</p>{/if}

Ersetze mit:

          <div class="ol_model">{$smarty.const.HEADER_MODEL}: {$data.model}</div>
          {if $data.shipping_time}<div class="ol_shipping">{$smarty.const.SHIPPING_TIME} {$data.shipping_time}</div>{/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.ol_shipping {
  font-size:12px;
  line-height:18px;
  font-weight:normal;
}
.ol_short_desc {
  font-size:12px;
  line-height:18px;
}

Ersetze mit:

.ol_shipping {
  font-size:12px;
  line-height:18px;
  font-weight:normal;
  margin: 2px 0 0 0;
}
.ol_short_desc {
  margin: 8px 0px;
  font-size:12px;
  line-height:18px;
}

Korrektur eines JavaScript Fallbacks auf checkout_payment- & checkout_shipping-Seite[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/checkout_payment.html
 /templates/tpl_modified/module/checkout_shipping.html
 /templates/tpl_modified_responsive/module/checkout_payment.html
 /templates/tpl_modified_responsive/module/checkout_shipping.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/checkout_payment.html

Suche:

{literal}
<noscript>
<style type="text/css">
  .nonjs-fallback {display:none !important;}
  .nonjs-heading {margin:10px 0px 5px 0px; font-weight:bold;}
  .nonjs-h4 {margin:10px 0px 10px 0px;}
</style>
</noscript>
{/literal}

Ersetze mit:

{literal}
<noscript>
<style type="text/css">
  #horizontalAccordion { display:block;}
  .nonjs-fallback {display:none !important;}
  .nonjs-heading {margin:10px 0px 5px 0px; font-weight:bold;}
  .nonjs-h4 {margin:10px 0px 10px 0px;}
</style>
</noscript>
{/literal}

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/checkout_shipping.html

Suche:

{literal}
<noscript>
<style type="text/css">
  .nonjs-fallback {display:none !important;}
  .nonjs-heading {margin:10px 0px 5px 0px; font-weight:bold;}
</style>
</noscript>
{/literal}

Ersetze mit:

{literal}
<noscript>
<style type="text/css">
  #horizontalAccordion { display:block;}
  .nonjs-fallback {display:none !important;}
  .nonjs-heading {margin:10px 0px 5px 0px; font-weight:bold;}
</style>
</noscript>
{/literal}

Fehlerkorrektur in Box admin.php[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/admin.php
/templates/tpl_modified_responsive/source/boxes/admin.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes/admin.php

Suche:

  $box_smarty->assign('UPDATE_COUNT', ($update_array['total'] > 0 ? $update_array['total'] : ''));

Ersetze mit:

  $box_smarty->assign('UPDATE_COUNT', ((isset($update_array['total']) && $update_array['total'] > 0) ? $update_array['total'] : ''));

Korrektur eines HTML Fehlers in autocomplete.html[Bearbeiten]

  • optional in
/templates/TEMPLATENAME/module/checkout_confirmation.html

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Für Template tpl_modified:

Suche:

              {if $products_data.PRODUCTS_VPE}<div class="lb_vpe" style="position:inherit;font-weight: normal;">{$products_data.PRODUCTS_VPE}</div>{/if}

Ersetze mit:

              {if $products_data.PRODUCTS_VPE}<span class="lb_vpe" style="position:inherit;font-weight: normal;">{$products_data.PRODUCTS_VPE}</span>{/if}

Für Template tpl_modified_responsive:

Suche:

              {if $products_data.PRODUCTS_VPE}<span class="ac_vpe">{$products_data.PRODUCTS_VPE}</div>{/if}

Ersetze mit:

              {if $products_data.PRODUCTS_VPE}<span class="ac_vpe">{$products_data.PRODUCTS_VPE}</span>{/if}

CSS-Klasse für Captcha in Vorbereitung auf eventuellen Austausch des Captchas gegen reCAPTCHA v3[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/login.html
/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified/module/offline/login_shop.html
/templates/tpl_modified/module/password_double_opt_in.html
/templates/tpl_modified/module/product_reviews_write.html
/templates/tpl_modified_responsive/module/contact_us.html
/templates/tpl_modified_responsive/module/create_account.html
/templates/tpl_modified_responsive/module/create_account_guest.html
/templates/tpl_modified_responsive/module/login.html
/templates/tpl_modified_responsive/module/newsletter.html
/templates/tpl_modified_responsive/module/offline/login_shop.html
/templates/tpl_modified_responsive/module/password_double_opt_in.html
/templates/tpl_modified_responsive/module/product_reviews_write.html
/templates/xtc5/module/contact_us.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/login.html
/templates/xtc5/module/newsletter.html
/templates/xtc5/module/offline/login_shop.html
/templates/xtc5/module/password_double_opt_in.html
/templates/xtc5/module/product_reviews_write.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/contact_us.html
 /templates/tpl_modified_responsive/module/contact_us.html

Suche:

        {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Ersetze mit:

        {if $VVIMG}
        <tr class="vvcode_img">
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr class="vvcode_sec">
          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/create_account.html
 /templates/tpl_modified_responsive/module/create_account.html

Suche:

      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr class="vvcode_img">
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr class="vvcode_sec">
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/create_account_guest.html
 /templates/tpl_modified_responsive/module/create_account_guest.html

Suche:

      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr class="vvcode_img">
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_VVCODE}
        <tr class="vvcode_sec">
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_VVCODE}</span></td>
        </tr>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/login.html
 /templates/tpl_modified_responsive/module/login.html

Suche:

      {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr class="vvcode_img">
          <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr class="vvcode_sec">
          <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
        </tr>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/newsletter.html
 /templates/tpl_modified_responsive/module/newsletter.html

Suche:

        {if $VVIMG}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr>
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Ersetze mit:

        {if $VVIMG}
        <tr class="vvcode_img">
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$VVIMG}</span></td>
        </tr>
        {/if}
        {if $INPUT_CODE}
        <tr class="vvcode_sec">
          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
        </tr>
        {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/offline/login_shop.html
 /templates/tpl_modified_responsive/module/offline/login_shop.html

Suche:

              {if $INPUT_CODE}
                <tr>
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
                </tr>
                <tr>
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
                </tr>
              {/if}

Ersetze mit:

              {if $VVIMG}
                <tr class="vvcode_img">
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
                </tr>
              {/if}
              {if $INPUT_CODE}
                <tr class="vvcode_sec">
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
                </tr>
              {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/password_double_opt_in.html
 /templates/tpl_modified_responsive/module/password_double_opt_in.html

Suche:

      {if $VVIMG}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$VVIMG}</td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$INPUT_CODE}</td>
      </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
      <tr class="vvcode_img">
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$VVIMG}</td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr class="vvcode_sec">
        <td><span class="fieldtext">{#text_sec_code#}:</span>{$INPUT_CODE}</td>
      </tr>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/product_reviews_write.html
 /templates/tpl_modified_responsive/module/product_reviews_write.html

Suche:

      {if $VVIMG}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$VVIMG}</span></td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr>
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
      </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
      <tr class="vvcode_img">
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$VVIMG}</span></td>
      </tr>
      {/if}
      {if $INPUT_CODE}
      <tr class="vvcode_sec">
        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>
      </tr>
      {/if}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/contact_us.html

Suche:

    {if $VVIMG}
      <tr>
        <td>{#text_sec_code#}</td>
        <td>{$VVIMG}</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr>
        <td>{#text_inp_code#}*</td>
        <td width="59%">{$INPUT_CODE}</td>
      </tr>
    {/if}

Ersetze mit:

    {if $VVIMG}
      <tr class="vvcode_img">
        <td>{#text_sec_code#}</td>
        <td>{$VVIMG}</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr class="vvcode_sec">
        <td>{#text_inp_code#}*</td>
        <td width="59%">{$INPUT_CODE}</td>
      </tr>
    {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/create_account.html

Suche:

  {if $VVIMG}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Ersetze mit:

  {if $VVIMG}
    <tr class="vvcode_img">
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr class="vvcode_sec">
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/create_account_guest.html

Suche:

  {if $VVIMG}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr>
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Ersetze mit:

  {if $VVIMG}
    <tr class="vvcode_img">
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$VVIMG}</td>
    </tr>
  {/if}
  {if $INPUT_VVCODE}
    <tr class="vvcode_sec">
      <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_VVCODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/login.html

Suche:

    {if $VVIMG}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$VVIMG}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr>
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$INPUT_CODE}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}

Ersetze mit:

    {if $VVIMG}
      <tr class="vvcode_img">
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$VVIMG}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}
    {if $INPUT_CODE}
      <tr class="vvcode_sec">
        <td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
        <td>{$INPUT_CODE}</td>
        <td>&nbsp;</td>
      </tr>
    {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/newsletter.html

Suche:

      {if $VVIMG}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr class="vvcode_img">
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr class="vvcode_sec">
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/offline/login_shop.html

Suche:

              {if $INPUT_CODE}
                <tr>
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
                </tr>
                <tr>
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
                </tr>
              {/if}

Ersetze mit:

              {if $VVIMG}
                <tr class="vvcode_img">
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$VVIMG}</td>
                </tr>
              {/if}
              {if $INPUT_CODE}
                <tr class="vvcode_sec">
                  <td><span class="fieldtext">{#text_sec_code#}</span>{$INPUT_CODE}</td>
                </tr>
              {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/password_double_opt_in.html

Suche:

  {if $VVIMG}
    <tr>
      <td width="130"><strong>{#text_sec_code#}:</strong></td>
      <td><strong>{$VVIMG}</strong></td>
    </tr>
  {/if}
  {if $INPUT_CODE}
    <tr>
      <td><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_CODE}</td>
    </tr>
  {/if}

Ersetze mit:

  {if $VVIMG}
    <tr class="vvcode_img">
      <td width="130"><strong>{#text_sec_code#}:</strong></td>
      <td><strong>{$VVIMG}</strong></td>
    </tr>
  {/if}
  {if $INPUT_CODE}
    <tr class="vvcode_sec">
      <td><strong>{#text_sec_code#}:</strong></td>
      <td>{$INPUT_CODE}</td>
    </tr>
  {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/xtc5/module/product_reviews_write.html

Suche:

      {if $VVIMG}
        <tr>
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr>
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Ersetze mit:

      {if $VVIMG}
        <tr class="vvcode_img">
          <td width="140"><strong>{#text_sec_code#}:</strong></td>
          <td>{$VVIMG}</td>
        </tr>
      {/if}
      {if $INPUT_CODE}
        <tr class="vvcode_sec">
          <td><strong>{#text_sec_code#}:</strong></td>
          <td>{$INPUT_CODE}</td>
        </tr>
      {/if}

Update wegen Einführung neuer Sprachkonstanten[Bearbeiten]

  • zwingend notwendig

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/account_edit.html
/templates/tpl_modified/module/contact_us.html
/templates/tpl_modified/module/create_account.html
/templates/tpl_modified/module/create_account_guest.html
/templates/tpl_modified/module/newsletter.html
/templates/tpl_modified/module/product_reviews_write.html
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/module/account_edit.html
/templates/tpl_modified_responsive/module/contact_us.html
/templates/tpl_modified_responsive/module/create_account.html
/templates/tpl_modified_responsive/module/create_account_guest.html
/templates/tpl_modified_responsive/module/newsletter.html
/templates/tpl_modified_responsive/module/product_reviews_write.html
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/module/account_edit.html
/templates/xtc5/module/account_password.html
/templates/xtc5/module/address_book_details.html
/templates/xtc5/module/contact_us.html
/templates/xtc5/module/create_account.html
/templates/xtc5/module/create_account_guest.html
/templates/xtc5/module/newsletter.html
/templates/xtc5/module/product_reviews_write.html
/templates/xtc5/stylesheet.css 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/account_edit.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/contact_us.html

Suche:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""} <span class="inputRequirement">*</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_message#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_message#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/create_account.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/create_account_guest.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/newsletter.html

Suche:

          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""} <span class="inputRequirement">*</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""}<span class="inputRequirement">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/product_reviews_write.html

Suche:

        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

        <td><span class="fieldtext">{#text_input#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea"> *</span></span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_input#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

.inputRequirement {
  font-size:10px;
  line-height:20px;
}
.inputRequirement_textarea {
  font-size:10px;
  vertical-align:top; 
  line-height:30px;
}

Ersetze mit:

.inputRequirement {
  font-size:10px;
  line-height:20px;
  margin: 0 0 0 5px;
}
.inputRequirement_textarea {
  font-size:10px;
  vertical-align:top; 
  line-height:30px;
  margin: 0 0 0 5px;
}
.inputNote {
  display: block;
  font-size: 10px;
  line-height: 12px;
  padding: 4px 0 0 0;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/account_edit.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/contact_us.html

Suche:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""} <span class="inputRequirement">*</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_inp_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_message#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_message#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/create_account.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Suche:

      {$CHECKBOX_NEWSLETTER|replace:"&nbsp;":""}

Ersetze mit:

      {$CHECKBOX_NEWSLETTER}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/create_account_guest.html

Suche:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_birthdate#}</span><span class="stern">{$INPUT_DOB}</span><span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT|replace:"Nur":"<br />Nur"}</span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_ustid#}</span><span class="stern">{$INPUT_VAT}</span><span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Suche:

      {$CHECKBOX_NEWSLETTER|replace:"&nbsp;":""}

Ersetze mit:

      {$CHECKBOX_NEWSLETTER}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/newsletter.html

Suche:

          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_sec_code#}</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""} <span class="inputRequirement">*</span></span></td>

Ersetze mit:

          <td><span class="fieldtext">{#text_email#}</span><span class="stern">{$INPUT_EMAIL|replace:"type=\"text\"":"type=\"email\""}<span class="inputRequirement">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_reviews_write.html

Suche:

        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement"> *</span></span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_sec_code#}:</span><span class="stern">{$INPUT_CODE}<span class="inputRequirement">*</span></span></td>

Suche:

        <td><span class="fieldtext">{#text_input#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea"> *</span></span></td>

Ersetze mit:

        <td><span class="fieldtext">{#text_input#}</span><span class="stern">{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

.inputRequirement {
  font-size:10px;
  line-height:20px;
  vertical-align:top;
}
.inputRequirement_textarea {
  font-size:10px;
  vertical-align:top; 
  line-height:30px;
}

Ersetze mit:

.inputRequirement {
  font-size:10px;
  line-height:20px;
  vertical-align:top;
  margin: 0 0 0 5px;
}
.inputRequirement_textarea {
  font-size:10px;
  vertical-align:top; 
  line-height:30px;
  margin: 0 0 0 5px;
}
.inputNote {
  display: block;
  font-size: 10px;
  line-height: 12px;
  padding: 4px 0 0 0;
}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/account_edit.html

Suche:

    <td>{$INPUT_DOB}</td>

Ersetze mit:

    <td>{$INPUT_DOB}<span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

    <td>{$INPUT_VAT}</td>

Ersetze mit:

    <td>{$INPUT_VAT}<span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/account_password.html.html

Suche:

    <td width="69%" class="inputRequirement" >{$INPUT_ACTUAL}</td>

Ersetze mit:

    <td width="69%">{$INPUT_ACTUAL}</td>

Suche:

    <td width="69%" class="inputRequirement" >{$INPUT_NEW}</td>

Ersetze mit:

    <td width="69%">{$INPUT_NEW}</td>

Suche:

    <td class="inputRequirement">{$INPUT_CONFIRM}</td>

Ersetze mit:

    <td>{$INPUT_CONFIRM}</td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/address_book_details.html.html

Suche:

    <td class="inputRequirement" >{$INPUT_FIRSTNAME}</td>

Ersetze mit:

    <td>{$INPUT_FIRSTNAME}</td>

Suche:

    <td class="inputRequirement">{$INPUT_LASTNAME}</td>

Ersetze mit:

    <td>{$INPUT_LASTNAME}</td>

Suche:

    <td class="inputRequirement">{$INPUT_COMPANY}</td>

Ersetze mit:

    <td>{$INPUT_COMPANY}</td>

Suche:

    <td class="inputRequirement" >{$INPUT_STREET}</td>

Ersetze mit:

    <td>{$INPUT_STREET}</td>

Suche:

    <td class="inputRequirement">{$INPUT_SUBURB}</td>

Ersetze mit:

    <td>{$INPUT_SUBURB}</td>

Suche:

    <td class="inputRequirement">{$INPUT_CODE}</td>

Ersetze mit:

    <td>{$INPUT_CODE}</td>

Suche:

    <td class="inputRequirement">{$INPUT_CITY}</td>

Ersetze mit:

    <td>{$INPUT_CITY}</td>

Suche:

    <td class="inputRequirement">{$SELECT_COUNTRY}</td>

Ersetze mit:

    <td>{$SELECT_COUNTRY}</td>

Suche:

    <td class="inputRequirement">{$INPUT_STATE}</td>

Ersetze mit:

    <td>{$INPUT_STATE}</td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/contact_us.html

Suche:

        <td>{#text_inp_code#}*</td>
        <td width="59%">{$INPUT_CODE}</td>

Ersetze mit:

        <td>{#text_inp_code#}</td>
        <td width="59%">{$INPUT_CODE}<span class="inputRequirement">*</span></td>

Suche:

      <td valign="top">{#text_message#}*</td>
      <td width="59%">{$INPUT_TEXT}</td>

Ersetze mit:

      <td valign="top">{#text_message#}</td>
      <td width="59%">{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/create_account.html

Suche:

    <td>{$INPUT_DOB}</td>

Ersetze mit:

    <td>{$INPUT_DOB}<span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

     <td>{$INPUT_VAT}</td>

Ersetze mit:

     <td>{$INPUT_VAT}<span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/create_account_guest.html

Suche:

    <td>{$INPUT_DOB}</td>

Ersetze mit:

    <td>{$INPUT_DOB}<span class="inputNote">{$TEXT_DOB_NOTE}</span></td>

Suche:

     <td>{$INPUT_VAT}</td>

Ersetze mit:

     <td>{$INPUT_VAT}<span class="inputNote">{$TEXT_VAT_NOTE}</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/newsletter.html

Suche:

          <td>{$INPUT_CODE}</td>

Ersetze mit:

          <td>{$INPUT_CODE}<span class="inputRequirement">*</span></td>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/product_reviews_write.html

Suche:

          <td>{$INPUT_CODE}</td>

Ersetze mit:

          <td>{$INPUT_CODE}<span class="inputRequirement">*</span></td>

Suche:

          <p>{$INPUT_TEXT}</p>

Ersetze mit:

          <p>{$INPUT_TEXT}<span class="inputRequirement_textarea">*</span></p>

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/stylesheet.css

Suche:

textarea {
  font-family:Arial, Sans-serif;
  font-size:12px;
  border:1px solid #666;
  padding:10px;
  background:url(img/input_bg.gif) no-repeat;
}

Füge danach ein:

textarea#message_body {
  width:250px;
}

Suche:

input[type=radio], input[type=checkbox] {
  margin: 0 3px;
}

Füge danach ein:

.inputRequirement {
  margin: 0 0 0 3px;
}
.inputRequirement_textarea {
  font-size:12px;
  vertical-align:top; 
  line-height:20px;
  margin: 0 0 0 3px;
}
.inputNote {
  font-size: 12px;
  line-height: 18px;
  padding: 0 0 0 4px;
}

Erweiterung der product_info Seite um Erfolgsmeldung[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/module/product_info/product_info_tabs_v1.html
/templates/xtc5/module/product_info/product_info_v1.html
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_info/product_info_tabs_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_v1.html
/templates/TEMPLATENAME/module/product_info/product_info_x_accordion_v1.html

Suche:

  {if $error_message}<div class="errormessage">{$error_message}</div>{/if}

Füge danach ein:

  {if $success_message}<div class="infomessage">{$success_message}</div>{/if}

Entfernung eines nicht verwendeten Smarties[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/main_content.html
/templates/tpl_modified_responsive/module/main_content.html
/templates/xtc5/module/main_content.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/main_content.html

Entferne den folgenden Code:

{if isset($MODULE_error)}{$MODULE_error}{/if}

Registrieren von PHP-Funktionen über Smarty[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/smarty/register_php_plugins.php
/templates/tpl_modified_responsive/smarty/register_php_plugins.php
/templates/xtc5/smarty/register_php_plugins.php

Korrektur der Smarty Instanziierung für zukünftige PHP-Versionen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/shopping_cart.php
/templates/tpl_modified/source/boxes/wishlist.php
/templates/tpl_modified/source/inc/smarty_default.php
/templates/tpl_modified_responsive/source/boxes/shopping_cart.php
/templates/tpl_modified_responsive/source/boxes/wishlist.php
/templates/tpl_modified_responsive/source/inc/smarty_default.php
/templates/xtc5/source/boxes/shopping_cart.php
/templates/xtc5/source/boxes/wishlist.php
/templates/xtc5/source/inc/smarty_default.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/shopping_cart.php
/templates/TEMPLATENAME/source/boxes/wishlist.php
/templates/TEMPLATENAME/source/inc/smarty_default.php

Suche:

$box_smarty = new Smarty;

Ersetze mit:

$box_smarty = new Smarty();

Aktualisierung des Error Handlers (Auslagerung von Template-Dateien aus Core-Dateien)[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes.php
/templates/tpl_modified_responsive/source/boxes.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

 /templates/TEMPLATENAME/source/boxes.php

Suche:

  if (!in_array(basename($PHP_SELF), $fullcontent)) {

Ersetze mit:

  if (!in_array(basename($PHP_SELF), $fullcontent) || (isset($display_mode) && $display_mode == 'error')) {

Suche:

if (in_array(basename($PHP_SELF), $bestsellers) && !isset($_GET['cPath']) && !isset($_GET['manufacturers_id'])) {

Ersetze mit:

if ((isset($display_mode) && $display_mode == 'error') || (in_array(basename($PHP_SELF), $bestsellers) && !isset($_GET['cPath']) && !isset($_GET['manufacturers_id']))) {

Fehlerkorrektur in Bundeslanddropdown auf checkout_shipping_address.php & checkout_payment_address.php Seite[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/get_states.js.php
/templates/tpl_modified_responsive/javascript/extra/get_states.js.php
/templates/xtc5/javascript/extra/get_states.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/get_states.js.php

Suche:

<script type="text/javascript">
/* <![CDATA[ */
var req_zones = [<?php echo $countries['ids']; ?>];
var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
var state = '';
var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

function show_state() {
  $("[name='state']").parent().parent().parent().show();
  $("[name='state']").prop('type', 'text'); //fix for check_form in form_check.js.php
}
function hide_state() {
  $("[name='state']").parent().parent().parent().hide();
  $("[name='state']").prop('type', 'hidden'); //fix for check_form in form_check.js.php
}

function load_state() {
  var selection = $("select[name='country']").val();
  //console.log('SE:'+ selection);
  
  //change select to input
  $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  
  //countries without zones
  if ($.inArray(parseInt(selection), no_zones) != -1) {
    //console.log('no_zones:'+ min_length);
    if (min_length) {
        show_state();
    } else {
        hide_state();
    } 
    return;
  }
  
  //countries without required_zones
  if ($.inArray(parseInt(selection), req_zones) == -1) {
    //console.log('req_zones');
    hide_state();
    return;
  }
  
  //countries with required_zones
  $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
    if (data != '' && data != undefined) { 
      $("[name='state']").replaceWith('<select name="state"></select>');
      var stateSelect = $("[name='state']");
      $.each(data, function(id, arr) {
        //console.log('id:' + id + '|text:' + arr.name);
        $("<option />", {
          "value"   : arr.id,
          "text"    : arr.name
        }).appendTo(stateSelect);
      });
      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      stateSelect.parent().parent().parent().show();
    } else {
      $("[name='state']").replaceWith('<input type="text" name="state"></input>');
      if (min_length) {
         show_state();
      } else {
         hide_state();
      }
    }
  });
}

Ersetze mit:

<script type="text/javascript">
  var req_zones = [<?php echo $countries['ids']; ?>];
  var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
  var state = '';
  var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

  function show_state() {
    $("[name='state']").closest("tr").show();
  }

  function hide_state() {
    $("[name='state']").closest("tr").hide();
    $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  }

  function load_state() {
    var selection = $("#addressbook select[name='country'], #checkout_address select[name='country'], #create_account select[name='country']").val();
  
    //change select to input
    var tmpParent = $("[name='state']").parent();
  
    if (tmpParent.attr("class") !== undefined && tmpParent.attr("class").indexOf("SumoSelect") > -1) {
      tmpParent.replaceWith('<input type="text" name="state"></input>');
    } else {
      $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
    }
    
    //countries without zones
    if ($.inArray(parseInt(selection), no_zones) != -1) {
      if (min_length) {
        show_state();
      } else {
        hide_state();
      } 
      return;
    }
  
    //countries without required_zones
    if ($.inArray(parseInt(selection), req_zones) == -1) {
      hide_state();
      return;
    }
  
    //countries with required_zones
    $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
      if (data != '' && data != undefined) {
        $("[name='state']").replaceWith('<select name="state"></select>');
        var stateSelect = $("[name='state']");
        var isavail = false;
        $.each(data, function(id, arr) {
          if (state != 0 && state == arr.id) { 
            isavail = true;
          }
          $("<option />", {
            "value"   : arr.id,
            "text"    : arr.name
          }).appendTo(stateSelect);
        });
        if (state != 0 && isavail) {
          $("[name='state']").val(state);
        } else {
          $("[name='state']").prop('selectedIndex',0);
        }
        stateSelect.closest("tr").show();      
      } else {
        if (min_length) {
          show_state();
        } else {
          hide_state();
        }
      }
    });
  }

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/javascript/extra/get_states.js.php

Suche:

<script type="text/javascript">
/* <![CDATA[ */
var req_zones = [<?php echo $countries['ids']; ?>];
var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
var state = '';
var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

function show_state() {
  $("[name='state']").parent().parent().parent().show();
  $("[name='state']").prop('type', 'text'); //fix for check_form in form_check.js.php
}

function hide_state() {
  $("[name='state']").parent().parent().parent().hide();
  $("[name='state']").prop('type', 'hidden'); //fix for check_form in form_check.js.php
}

function load_state() {
  var selection = $("select[name='country']").val();
  //console.log('SE:'+ selection);
  
  //change select to input
  var tmpParent = $("[name='state']").parent();
  if (tmpParent.attr("class").indexOf("SumoSelect") > -1) {
    tmpParent.replaceWith('<input type="text" name="state"></input>');
  } else {
    $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  }
  
  //countries without zones
  if ($.inArray(parseInt(selection), no_zones) != -1) {
    //console.log('no_zones:'+ min_length);
    if (min_length) {
        show_state();
    } else {
        hide_state();
    } 
    return;
  }
  
  //countries without required_zones
  if ($.inArray(parseInt(selection), req_zones) == -1) {
    //console.log('req_zones');
    hide_state();
    return;
  }
  
  //countries with required_zones
  $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
    if (data != '' && data != undefined) {
      $("[name='state']").replaceWith('<select name="state"></select>');
      var stateSelect = $("[name='state']");
      $.each(data, function(id, arr) {
        //console.log('id:' + id + '|text:' + arr.name);
        $("<option />", {
          "value"   : arr.id,
          "text"    : arr.name
        }).appendTo(stateSelect);
      });
      tmpParent = $("[name='state']").parent();
      if (tmpParent.attr("class").indexOf("SumoSelect") > -1) {
        tmpParent.replaceWith($("[name='state']"));
      }
      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      $('select').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});
      stateSelect.parent().parent().parent().parent().show();
    } else {
      if (tmpParent.attr("class").indexOf("SumoSelect") > -1) {
        tmpParent.replaceWith('<input type="text" name="state"></input>');
      } else {
        $("[name='state']").replaceWith('<input type="text" name="state"></input>');
      }
      if (min_length) {
         show_state();
      } else {
         hide_state();
      }
    }
  });
}

Ersetze mit:

<script type="text/javascript">
  var req_zones = [<?php echo $countries['ids']; ?>];
  var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
  var state = '';
  var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

  function show_state() {
    $("[name='state']").closest("tr").show();
  }

  function hide_state() {
    $("[name='state']").closest("tr").hide();
    $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  }

  function load_state() {
    var selection = $("#addressbook select[name='country'], #checkout_address select[name='country'], #create_account select[name='country']").val();
  
    //change select to input
    var tmpParent = $("[name='state']").parent();
  
    if (tmpParent.attr("class") !== undefined && tmpParent.attr("class").indexOf("SumoSelect") > -1) {
      tmpParent.replaceWith('<input type="text" name="state"></input>');
    } else {
      $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
    }
    
    //countries without zones
    if ($.inArray(parseInt(selection), no_zones) != -1) {
      if (min_length) {
        show_state();
      } else {
        hide_state();
      } 
      return;
    }
  
    //countries without required_zones
    if ($.inArray(parseInt(selection), req_zones) == -1) {
      hide_state();
      return;
    }
  
    //countries with required_zones
    $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
      if (data != '' && data != undefined) {
        $("[name='state']").replaceWith('<select name="state"></select>');
        var stateSelect = $("[name='state']");
        var isavail = false;
        $.each(data, function(id, arr) {
          if (state != 0 && state == arr.id) { 
            isavail = true;
          }
          $("<option />", {
            "value"   : arr.id,
            "text"    : arr.name
          }).appendTo(stateSelect);
        });
        if (state != 0 && isavail) {
          $("[name='state']").val(state);
        } else {
          $("[name='state']").prop('selectedIndex',0);
        }
        $('select[name=state]').SumoSelect({search: true, searchText: "<?php echo TEXT_SUMOSELECT_SEARCH; ?>", noMatch: "<?php echo TEXT_SUMOSELECT_NO_RESULT; ?>"});
        stateSelect.closest("tr").show();      
      } else {
        if (min_length) {
          show_state();
        } else {
          hide_state();
        }
      }
    });
  }

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/javascript/extra/get_states.js.php

Suche:

<script type="text/javascript">
/* <![CDATA[ */
var req_zones = [<?php echo $countries['ids']; ?>];
var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
var state = '';
var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

function show_state() {
  $("[name='state']").parent().parent().show();
  $("[name='state']").prop('type', 'text'); //fix for check_form in form_check.js.php
}
function hide_state() {
  $("[name='state']").parent().parent().hide();
  $("[name='state']").prop('type', 'hidden'); //fix for check_form in form_check.js.php
}

function load_state() {
  var selection = $("select[name='country']").val();
  //console.log('SE:'+ selection);
  
  //change select to input
  $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  
  //countries without zones
  if ($.inArray(parseInt(selection), no_zones) != -1) {
    //console.log('no_zones:'+ min_length);
    if (min_length) {
        show_state();
    } else {
        hide_state();
    } 
    return;
  }
  
  //countries without required_zones
  if ($.inArray(parseInt(selection), req_zones) == -1) {
    //console.log('req_zones');
    hide_state();
    return;
  }
  
  //countries with required_zones
  $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
    if (data != '' && data != undefined) { 
      $("[name='state']").replaceWith('<select name="state"></select>');
      var stateSelect = $("[name='state']");
      $.each(data, function(id, arr) {
        //console.log('id:' + id + '|text:' + arr.name);
        $("<option />", {
          "value"   : arr.id,
          "text"    : arr.name
        }).appendTo(stateSelect);
      });
      if (state != 0) {
        $("[name='state']").val(state);
      } else {
        $("[name='state']").prop('selectedIndex',0);
      }
      stateSelect.parent().parent().show();
    } else {
      $("[name='state']").replaceWith('<input type="text" name="state"></input>');
      if (min_length) {
         show_state();
      } else {
         hide_state();
      }
    }
  });
}

Ersetze mit:

<script type="text/javascript">
  var req_zones = [<?php echo $countries['ids']; ?>];
  var no_zones = [<?php echo $countries_without_zones['ids']; ?>];
  var state = '';
  var min_length = <?php echo (ENTRY_STATE_MIN_LENGTH > 0 ? 1 : 0)?>;

  function show_state() {
    $("[name='state']").closest("tr").show();
  }

  function hide_state() {
    $("[name='state']").closest("tr").hide();
    $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
  }

  function load_state() {
    var selection = $("#addressbook select[name='country'], #checkout_address select[name='country'], #create_account select[name='country']").val();
  
    //change select to input
    var tmpParent = $("[name='state']").parent();
  
    if (tmpParent.attr("class") !== undefined && tmpParent.attr("class").indexOf("SumoSelect") > -1) {
      tmpParent.replaceWith('<input type="text" name="state"></input>');
    } else {
      $("select[name='state']").replaceWith('<input type="text" name="state"></input>');
    }
    
    //countries without zones
    if ($.inArray(parseInt(selection), no_zones) != -1) {
      if (min_length) {
        show_state();
      } else {
        hide_state();
      } 
      return;
    }
  
    //countries without required_zones
    if ($.inArray(parseInt(selection), req_zones) == -1) {
      hide_state();
      return;
    }
  
    //countries with required_zones
    $.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
      if (data != '' && data != undefined) {
        $("[name='state']").replaceWith('<select name="state"></select>');
        var stateSelect = $("[name='state']");
        var isavail = false;
        $.each(data, function(id, arr) {
          if (state != 0 && state == arr.id) { 
            isavail = true;
          }
          $("<option />", {
            "value"   : arr.id,
            "text"    : arr.name
          }).appendTo(stateSelect);
        });
        if (state != 0 && isavail) {
          $("[name='state']").val(state);
        } else {
          $("[name='state']").prop('selectedIndex',0);
        }
        stateSelect.closest("tr").show();      
      } else {
        if (min_length) {
          show_state();
        } else {
          hide_state();
        }
      }
    });
  }

Dynamischer Hilfetext für Erweiterte Suchfunktion[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/popup_search_help.html
/templates/tpl_modified_responsive/module/popup_search_help.html
/templates/xtc5/module/popup_search_help.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/popup_search_help.html

Suche:

{#text_help#}

Ersetze mit:

{$TEXT_HELP}

Benutze Popup Parameter anstelle von Smarty-Konstante für Link in advanced_search.html[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/advanced_search.html
/templates/tpl_modified_responsive/module/advanced_search.html
/templates/xtc5/module/advanced_search.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/advanced_search.html

Suche:

      <td colspan="3"><span class="fieldtext">{#title_keywords#}</span>{$INPUT_KEYWORDS}<br /><span class="mini"><a href="{$HELP_LINK}" title="{$smarty.const.TEXT_LINK_TITLE_INFORMATION}" class="{if $smarty.const.TPL_POPUP_CONTENT_LINK_CLASS}{$smarty.const.TPL_POPUP_CONTENT_LINK_CLASS}{else}{$smarty.const.POPUP_CONTENT_LINK_CLASS}{/if}">{#text_help#}</a></span></td>

Ersetze mit:

      <td colspan="3"><span class="fieldtext">{#title_keywords#}</span>{$INPUT_KEYWORDS}<br /><span class="mini"><a href="{$HELP_LINK}" title="{$popup_params.link_title}" class="{$popup_params.link_class}">{#text_help#}</a></span></td>

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/advanced_search.html

Suche:

      <td><span class="fieldtext">{#title_keywords#}</span>{$INPUT_KEYWORDS}<br /><span class="mini"><a href="{$HELP_LINK}" title="{if $smarty.const.TEXT_LINK_TITLE_INFORMATION}{$smarty.const.TEXT_LINK_TITLE_INFORMATION}{else}Information{/if}" class="{if $smarty.const.TPL_POPUP_CONTENT_LINK_CLASS}{$smarty.const.TPL_POPUP_CONTENT_LINK_CLASS}{else}{$smarty.const.POPUP_CONTENT_LINK_CLASS}{/if}">{#text_help#}</a></span></td>

Ersetze mit:

      <td><span class="fieldtext">{#title_keywords#}</span>{$INPUT_KEYWORDS}<br /><span class="mini"><a href="{$HELP_LINK}" title="{$popup_params.link_title}" class="{$popup_params.link_class}">{#text_help#}</a></span></td>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/advanced_search.html

Suche:

    <td><a href="{$HELP_LINK}" title="{$smarty.const.TEXT_LINK_TITLE_INFORMATION}" class="thickbox">{#text_help#}</a></td>

Ersetze mit:

    <td><a href="{$HELP_LINK}" title="{$popup_params.link_title}" class="{$popup_params.link_class}">{#text_help#}</a></td>

Hinweistext bei Adressänderung im Checkout[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/buttons/english/small_continue.gif
/templates/tpl_modified/buttons/english/small_delete.gif
/templates/tpl_modified/buttons/english/small_edit.gif
/templates/tpl_modified/buttons/german/small_continue.gif
/templates/tpl_modified/buttons/german/small_delete.gif
/templates/tpl_modified/buttons/german/small_edit.gif
/templates/tpl_modified/module/checkout_new_address.html
/templates/tpl_modified/stylesheet.css
/templates/tpl_modified_responsive/lang/buttons_english.php
/templates/tpl_modified_responsive/lang/buttons_german.php
/templates/tpl_modified_responsive/module/address_book.html
/templates/tpl_modified_responsive/module/checkout_new_address.html
/templates/tpl_modified_responsive/module/checkout_payment_address.html
/templates/tpl_modified_responsive/module/checkout_shipping_address.html
/templates/tpl_modified_responsive/source/inc/css_button.inc.php
/templates/tpl_modified_responsive/stylesheet.css
/templates/xtc5/module/checkout_new_address.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/module/checkout_new_address.html

Suche:

      {if $new == '1'}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$CHECKBOX_PRIMARY}</td>
          <td class="midi td_full"><label for="primary">{#text_standard#}</label></td>
        </tr>
      </table>
      {/if}

Füge danach ein:

      {if isset($CHECKBOX_EDIT_ADDRESS)}
      <br />
      <table>
        <tr>
          <td class="checkbox">{$CHECKBOX_EDIT_ADDRESS}</td>
          <td class="midi td_full"><label for="edit_address_book_id">{#text_edit_address_note#}</label></td>
        </tr>
      </table>
      {/if}
      {if isset($MAX_ADDRESS_NOTE)}
      <br />
      <table>
        <tr>
          <td colspan="2" class="midi td_full">{$MAX_ADDRESS_NOTE}</td>
        </tr>
      </table>
      {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified/stylesheet.css

Suche:

#address_block_new form {
  position:relative;
  padding: 0px 150px 0px 0px; 
}
#address_block_new .address_actions {
  overflow:hidden;
  position:absolute;
  top:0px;
  right:0px;
  width:140px;
  text-align:right;
}

Ersetze mit:

#address_block_new form {
  position:relative;
  padding: 0px 120px 0px 0px; 
}
#address_block_new .address_actions {
  overflow:hidden;
  position:absolute;
  top:0px;
  right:0px;
  width:120px;
  text-align:right;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/lang/buttons_english.php

Suche:

define('CSS_IMAGE_SMALL_EDIT_TEXT', '');
//define('CSS_IMAGE_SMALL_EDIT_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_EDIT_TEXT', 'Edit');
define('CSS_IMAGE_SMALL_EDIT_TITLE', 'Edit');

Suche:

define('CSS_IMAGE_SMALL_DELETE_TEXT', '');
//define('CSS_IMAGE_SMALL_DELETE_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_DELETE_TEXT', 'Delete');
define('CSS_IMAGE_SMALL_DELETE_TITLE', 'Delete');

Suche:

define('CSS_IMAGE_SMALL_CONTINUE_TEXT', '');
//define('CSS_IMAGE_SMALL_CONTINUE_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_CONTINUE_TEXT', 'Select');
define('CSS_IMAGE_SMALL_CONTINUE_TITLE', 'Select');

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/lang/buttons_german.php

Suche:

define('CSS_IMAGE_SMALL_EDIT_TEXT', '');
//define('CSS_IMAGE_SMALL_EDIT_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_EDIT_TEXT', 'Bearbeiten');
define('CSS_IMAGE_SMALL_EDIT_TITLE', 'Bearbeiten');

Suche:

define('CSS_IMAGE_SMALL_DELETE_TEXT', '');
//define('CSS_IMAGE_SMALL_DELETE_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_DELETE_TEXT', 'L&ouml;schen');
define('CSS_IMAGE_SMALL_DELETE_TITLE', 'L&ouml;schen');

Suche:

define('CSS_IMAGE_SMALL_CONTINUE_TEXT', '');
//define('CSS_IMAGE_SMALL_CONTINUE_TITLE', '');

Ersetze mit:

define('CSS_IMAGE_SMALL_CONTINUE_TEXT', 'Ausw&auml;hlen');
define('CSS_IMAGE_SMALL_CONTINUE_TITLE', 'Ausw&auml;hlen');

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/address_book.html

Suche:

    {foreach name=aussen item=addresses from=$addresses_data}
      <li{if $addresses.PRIMARY == '1'} class="selected"{/if}>
        <div class="address_inner">
          <div class="address_inner_block">
            <label>
              {$addresses.NAME} {if $addresses.PRIMARY == '1'} ({#title_standard#}) {/if}
              <span class="address">{$addresses.ADDRESS|replace:"<br />":", "}</span>
            </label> 
            <span class="address_actions">
              <span class="cssButtonPos5">{$addresses.BUTTON_DELETE}</span><span class="cssButtonPos5">{$addresses.BUTTON_EDIT}</span>
            </span>
          </div>
        </div>
      </li>
    {/foreach}

Ersetze mit:

    {foreach name=aussen item=addresses from=$addresses_data}
      <li{if $addresses.PRIMARY == '1'} class="selected"{/if}>
        <div class="address_inner">
          <label>
            <span class="header">
              <span class="title">{$addresses.NAME} {if $addresses.PRIMARY == '1'} ({#title_standard#}){/if}</span>
              <span class="actions">
                <span class="icon">{$addresses.BUTTON_DELETE}</span>
                <span class="icon">{$addresses.BUTTON_EDIT}</span>
              </span>
            </span>
            <span class="content">{$addresses.ADDRESS|replace:"<br />":", "}</span>
          </label>
        </div>
      </li>
    {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_new_address.html

Suche:

    {if $new == '1'}
    <br />
    <div class="cus_check cus_check_small">
      {$CHECKBOX_PRIMARY}
      <label for="primary">{#text_standard#}</label>
    </div>
    {/if}

Füge danach ein:

    {if isset($CHECKBOX_EDIT_ADDRESS)}
    <br />
    <div class="cus_check cus_check_small">
      {$CHECKBOX_EDIT_ADDRESS}
      <label for="edit_address_book_id">{#text_edit_address_note#}</label>
    </div>
    {/if}

    {if isset($MAX_ADDRESS_NOTE)}
    <br />
    <div class="errormessage">
      {$MAX_ADDRESS_NOTE}
    </div>
    {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_payment_address.html

Suche:

      {foreach item=module_data from=$BLOCK_ADDRESS_ARRAY}
        <li{if $module_data.SELECTED == 1} class="selected"{/if}>
          <div class="address_inner">
            {$module_data.FORM_ACTION}
            <label for="field_addresses_{$module_data.ADDRESS_BOOK_ID}">
              {$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY}
              <span class="address">{$module_data.ADDRESS_LABEL|replace:"<br />":", "}</span>
            </label> 
            <span class="address_actions">
              {if isset($module_data.BUTTON_EDIT)}<span class="cssButtonPos5">{$module_data.BUTTON_EDIT}</span>{/if}{if isset($module_data.BUTTON_CONTINUE)}<span class="cssButtonPos5">{$module_data.BUTTON_CONTINUE}</span>{/if}
            </span>
            {$module_data.FORM_END}         
          </div>
        </li>
      {/foreach}

Ersetze mit:

      {foreach item=module_data from=$BLOCK_ADDRESS_ARRAY}
        <li{if $module_data.SELECTED == 1} class="selected"{/if}>
          <div class="address_inner">
            {$module_data.FORM_ACTION}
              <span class="header">
                <span class="title">{$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY}</span>
                <span class="actions">
                  {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
                  {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}                
                </span>                  
              </span>
              <span class="content">{$module_data.ADDRESS_LABEL|replace:"<br />":", "}</span>
            {$module_data.FORM_END}         
          </div>
        </li>
      {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/checkout_shipping_address.html

Suche:

      {foreach item=module_data from=$BLOCK_ADDRESS_ARRAY}
        <li{if $module_data.SELECTED == 1} class="selected"{/if}>
          <div class="address_inner">
            {$module_data.FORM_ACTION}
            <label for="field_addresses_{$module_data.ADDRESS_BOOK_ID}">
              {$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY}
              <span class="address">{$module_data.ADDRESS_LABEL|replace:"<br />":", "}</span>
            </label> 
            <span class="address_actions cf">
              {if isset($module_data.BUTTON_EDIT)}<span class="cssButtonPos5">{$module_data.BUTTON_EDIT}</span>{/if}{if isset($module_data.BUTTON_CONTINUE)}<span class="cssButtonPos5">{$module_data.BUTTON_CONTINUE}</span>{/if}
            </span>
            {$module_data.FORM_END}         
          </div>
        </li>
      {/foreach}

Ersetze mit:

      {foreach item=module_data from=$BLOCK_ADDRESS_ARRAY}
        <li{if $module_data.SELECTED == 1} class="selected"{/if}>
          <div class="address_inner">
            {$module_data.FORM_ACTION}
              <span class="header">
                <span class="title">{$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY}</span>
                <span class="actions">
                  {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
                  {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}                
                </span>                  
              </span>
              <span class="content">{$module_data.ADDRESS_LABEL|replace:"<br />":", "}</span>
            {$module_data.FORM_END}         
          </div>
        </li>
      {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/source/inc/css_button.inc.php

Suche:

    // color 3
    'button_login_newsletter' => array(
      'class' => 'cssButtonColor3',
    ),
    'small_continue' => array(
      'class' => 'cssButtonColor3',
    ),
    'small_edit' => array(
      'class' => 'cssButtonColor3',
    ),
    'small_delete' => array(
      'class' => 'cssButtonColor3',
    ),

Ersetze mit:

    // color 3
    'button_login_newsletter' => array(
      'class' => 'cssButtonColor3',
    ),

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

    // color 6
    'epaypal_de' => array(
      'class' => 'cssButtonColor6',
    ),
    'epaypal_en' => array(
      'class' => 'cssButtonColor6',
    ),

Füge danach ein:

    // color 7
    'small_continue' => array(
      'class' => 'cssButtonColor7',
    ),
    'small_edit' => array(
      'class' => 'cssButtonColor7',
    ),
    'small_delete' => array(
      'class' => 'cssButtonColor7',
    ),

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/checkout_new_address.html 

Suche:

  {if $new == '1'}
  <tr>
    <td>&nbsp;</td>
    <td align="left">{$CHECKBOX_PRIMARY} {#text_standard#}</td>
  </tr>
  {/if}
</table>

Ersetze mit:

  {if $new == '1'}
  <tr>
    <td>&nbsp;</td>
    <td align="left">{$CHECKBOX_PRIMARY} {#text_standard#}</td>
  </tr>
  {/if}

  {if isset($CHECKBOX_EDIT_ADDRESS)}
  <tr>
    <td>&nbsp;</td>
    <td align="left">{$CHECKBOX_EDIT_ADDRESS} {#text_edit_address_note#}</td>
  </tr>
  {/if}
</table>

{if isset($MAX_ADDRESS_NOTE)}
  <br />
  <div class="errormessage">{$MAX_ADDRESS_NOTE}</div>
{/if}

[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/index.html
/templates/tpl_modified_responsive/module/banners.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/index.html

Suche:

          {if isset($SLIDER)}
            <div class="content_slider cf">
              <div class="slider_home">
                {foreach name=outer item=slider from=$SLIDER}
                  <div class="slider_item">          
                    {if $slider.LINK != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <a title="{$slider.TITLE}" href="{$slider.LINK}" {$slider.TARGET}>
                          <picture>
                            <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                            <source data-srcset="{$slider.IMAGE_SRC}">
                            <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.TITLE|onlytext}" title="{$slider.TITLE|onlytext}">
                          </picture>
                        </a>
                      {else}
                        <a title="{$slider.TITLE}" href="{$slider.LINK}" {$slider.TARGET}>{$slider.IMAGE_IMG}</a>
                      {/if}
                    {elseif $slider.IMAGE_IMG != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <picture>
                          <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                          <source data-srcset="{$slider.IMAGE_SRC}">
                          <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.TITLE|onlytext}" title="{$slider.TITLE|onlytext}">
                        </picture>
                      {else}
                        {$slider.IMAGE_IMG}
                      {/if}
                    {/if}
                  </div>
                {/foreach}
              </div>
            </div>            
          {/if}

Ersetze mit:

          {if isset($SLIDER)}
            <div class="content_slider cf">
              <div class="slider_home">
                {foreach name=outer item=slider from=$SLIDER}
                  <div class="slider_item">          
                    {if $slider.LINK != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <a title="{$slider.IMAGE_TITLE|onlytext}" href="{$slider.LINK}" {$slider.TARGET}>
                          <picture>
                            <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                            <source data-srcset="{$slider.IMAGE_SRC}">
                            <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.IMAGE_ALT|onlytext}" title="{$slider.IMAGE_TITLE|onlytext}">
                          </picture>
                        </a>
                      {else}
                        <a title="{$slider.IMAGE_TITLE|onlytext}" href="{$slider.LINK}" {$slider.TARGET}>{$slider.IMAGE_IMG}</a>
                      {/if}
                    {elseif $slider.IMAGE_IMG != ''}
                      {if isset($slider.IMAGE_SRC_MOBILE) && $slider.IMAGE_SRC_MOBILE != ''}
                        <picture>
                          <source media="(max-width:600px)" data-srcset="{$slider.IMAGE_SRC_MOBILE}">
                          <source data-srcset="{$slider.IMAGE_SRC}">
                          <img class="lazyload" data-src="{$slider.IMAGE_SRC}" alt="{$slider.IMAGE_ALT|onlytext}" title="{$slider.IMAGE_TITLE|onlytext}">
                        </picture>
                      {else}
                        {$slider.IMAGE_IMG}
                      {/if}
                    {/if}
                  </div>
                {/foreach}
              </div>
            </div>            
          {/if}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/banners.html

Suche:

  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>
      <picture>
        <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
        <source data-srcset="{$banner_data.IMAGE_SRC}">
        <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}">
        <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}"></noscript>
      </picture>
    </a>
  {else}
    <a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>
  {/if}

Ersetze mit:

  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <a title="{$banner_data.IMAGE_TITLE|onlytext}" href="{$banner_data.LINK}" {$banner_data.TARGET}>
      <picture>
        <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
        <source data-srcset="{$banner_data.IMAGE_SRC}">
        <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
        <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}"></noscript>
      </picture>
    </a>
  {else}
    <a title="{$banner_data.IMAGE_TITLE|onlytext}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>
  {/if}

Suche:

  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <picture>
      <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
      <source data-srcset="{$banner_data.IMAGE_SRC}">
      <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}">
      <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.TITLE|onlytext}" title="{$banner_data.TITLE|onlytext}"></noscript>
    </picture>
  {else}
    {$banner_data.IMAGE_IMG}
  {/if}

Ersetze mit:

  {if isset($banner_data.IMAGE_SRC_MOBILE) && $banner_data.IMAGE_SRC_MOBILE != ''}
    <picture>
      <source media="(max-width:600px)" data-srcset="{$banner_data.IMAGE_SRC_MOBILE}">
      <source data-srcset="{$banner_data.IMAGE_SRC}">
      <img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
      <noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}"></noscript>
    </picture>
  {else}
    {$banner_data.IMAGE_IMG}
  {/if}

Fehlende Klasse für Listingbox in Template tpl_modified_responsive hinzufügen[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_responsive/stylesheet.css

Suche:

@media only screen and (min-width: 370px) {
  .listingcontainer .listingbox { width:50%;}
  .listingcontainer_full .listingbox { width:50%;}
  .pd_tabs .listingbox { width:50%; }
  .pd_accordion .listingbox { width:50%; }
}

@media only screen and (min-width: 500px) {
  .listingcontainer, .listingcontainer_full, .listingcontainer_details { margin: 0px -10px 0px -10px; }
  .listingbox { padding: 0px 10px; margin: 0px 0px 20px 0px; }
}

@media only screen and (min-width: 690px) {
  .listingcontainer .listingbox { width:33.3333%;}
  .listingcontainer_full .listingbox { width:33.3333%;}
  .pd_tabs .listingbox { width:33.3333%; }
  .pd_accordion .listingbox { width:33.3333%; }
}
@media only screen and (min-width: 920px) {
  .listingcontainer .listingbox { width:25%;}
  .listingcontainer_full .listingbox { width:25%;}
  .pd_tabs .listingbox { width:25%; }
  .pd_accordion .listingbox { width:25%; }
}

@media only screen and (min-width: 985px) {
  .listingcontainer .listingbox { width:33.3333%;}
  .pd_tabs .listingbox { width:33.3333%; }
  .pd_accordion .listingbox { width:33.3333%; }
  .listingcontainer_full .listingbox { width:25%;}
}

Ersetze mit:

@media only screen and (min-width: 370px) {
  .listingcontainer .listingbox { width:50%;}
  .listingcontainer_full .listingbox { width:50%;}
  .listingcontainer_details .listingbox { width:50%;}
  .pd_tabs .listingbox { width:50%; }
  .pd_accordion .listingbox { width:50%; }
}

@media only screen and (min-width: 500px) {
  .listingcontainer, .listingcontainer_full, .listingcontainer_details { margin: 0px -10px 0px -10px; }
  .listingbox { padding: 0px 10px; margin: 0px 0px 20px 0px; }
}

@media only screen and (min-width: 690px) {
  .listingcontainer .listingbox { width:33.3333%;}
  .listingcontainer_full .listingbox { width:33.3333%;}
  .listingcontainer_details .listingbox { width:33.3333%;}
  .pd_tabs .listingbox { width:33.3333%; }
  .pd_accordion .listingbox { width:33.3333%; }
}
@media only screen and (min-width: 920px) {
  .listingcontainer .listingbox { width:25%;}
  .listingcontainer_full .listingbox { width:25%;}
  .listingcontainer_details .listingbox { width:25%;}
  .pd_tabs .listingbox { width:25%; }
  .pd_accordion .listingbox { width:25%; }
}

@media only screen and (min-width: 985px) {
  .listingcontainer .listingbox { width:33.3333%;}
  .listingcontainer_details .listingbox { width:33.3333%;}
  .pd_tabs .listingbox { width:33.3333%; }
  .pd_accordion .listingbox { width:33.3333%; }
  .listingcontainer_full .listingbox { width:25%;}
}

Update Font Awesome von 5.15.3 auf 5.15.4[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_responsive/css/fontawesome-all.css
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.eot
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.svg
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.ttf
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.woff
/templates/tpl_modified_responsive/css/fonts/fa-brands-400.woff2
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.eot
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.svg
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.ttf
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.woff
/templates/tpl_modified_responsive/css/fonts/fa-regular-400.woff2
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.eot
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.svg
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.ttf
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.woff
/templates/tpl_modified_responsive/css/fonts/fa-solid-900.woff2

Entfernung der unnötigen zusätzlichen Angabe des Landes im Warenkorb[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/order_details.html
/templates/tpl_modified_responsive/module/order_details.html
/templates/xtc5/module/order_details.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/module/order_details.html

Entferne den folgenden Code (ggf. 2x):

 ({$COUNTRY}):

Korrektur des Verlusts der eingestellten Sprache bei Links von Artikeln mit Attributen aus dem Warenkorb[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/shopping_cart.php
/templates/tpl_modified_responsive/source/boxes/shopping_cart.php
/templates/xtc5/source/boxes/shopping_cart.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/shopping_cart.php

Suche:

                                     'LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$products[$i]['id']),

Ersetze mit:

                                     'LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_get_all_get_params_include(array('language')).'products_id='.$products[$i]['id']),

Korrektur der Anzeige inkl./exkl. Steuer bei aktiviertem Cache[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/best_sellers.php
/templates/tpl_modified/source/boxes/last_viewed.php
/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified/source/boxes/specials.php
/templates/tpl_modified/source/boxes/whats_new.php
/templates/tpl_modified_responsive/source/boxes/best_sellers.php
/templates/tpl_modified_responsive/source/boxes/last_viewed.php
/templates/tpl_modified_responsive/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/specials.php
/templates/tpl_modified_responsive/source/boxes/whats_new.php
/templates/xtc5/source/boxes/best_sellers.php
/templates/xtc5/source/boxes/last_viewed.php
/templates/xtc5/source/boxes/reviews.php
/templates/xtc5/source/boxes/specials.php
/templates/xtc5/source/boxes/whats_new.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/best_sellers.php

Suche:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|cID:'.$current_category_id);

Ersetze mit:

$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|cID:'.$current_category_id.'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/last_viewed.php

Suche:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$_SESSION['customers_status']['customers_status'].$_SESSION['tracking']['products_history'][$random_last_viewed]);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|history:'.$_SESSION['tracking']['products_history'][$random_last_viewed].'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/reviews.php

Suche:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.$product->data['products_id']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.$product->data['products_id'].'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Suche:

    $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.($product->isProduct() === true ? $product->data['products_id'] : 0).'|rID:'.$reviews['reviews_id']);

Ersetze mit:

    $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|pID:'.($product->isProduct() === true ? $product->data['products_id'] : 0).'|rID:'.$reviews['reviews_id'].'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/specials.php

Suche:

  $cache_id = md5($_SESSION['currency'].$_SESSION['language'].$specials['products_id']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|pID:'.$specials['products_id'].'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/whats_new.php

Suche:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|pID:'.$whats_new['products_id']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'|curr:'.$_SESSION['currency'].'|pID:'.$whats_new['products_id'].'|country:'.((isset($_SESSION['country'])) ? $_SESSION['country'] : ((isset($_SESSION['customer_country_id'])) ? $_SESSION['customer_country_id'] : STORE_COUNTRY)));

Fehlerkorrektur in Admin-Box[Bearbeiten]

  • zwingend notwendig

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/admin.php
/templates/tpl_modified_responsive/source/boxes/admin.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/admin.php

Suche:

    $box_smarty->assign('EDIT_XSELL', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'categories.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit_crossselling'));

Ersetze mit:

    $box_smarty->assign('EDIT_XSELL', xtc_href_link_admin((defined('DIR_ADMIN') ? DIR_ADMIN : 'admin/').'categories.php', 'cpath='.$cPath.'&current_product_id='.$product->data['products_id'].'&action=edit_crossselling&last_action=list'));

Update jQuery auf Version 3.7.1[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/jquery.min.js
/templates/tpl_modified_responsive/javascript/jquery.min.js
/templates/xtc5/javascript/jquery.min.js

Korrektur der Bewertungsanzeige auf product_info Seite[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified/module/product_info/product_info_v1.html
 /templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_v1.html
 /templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

Suche:

        {if $PRODUCTS_RATING_COUNT > 1}
        <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
          <strong>{#info_reviews#}</strong> 
          <span class="pd_reviews_image"><img src="{$tpl_path}img/stars_{$PRODUCTS_AVERAGE_RATING}.png" alt="" /></span> 
          ({$PRODUCTS_RATING_COUNT})
          <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
          <meta itemprop="bestRating" content="5" />
          <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
        </div>
        {elseif $PRODUCTS_RATING_COUNT > 0 }
        <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
          <strong>{#info_review#}</strong> 
          <span class="pd_reviews_image"><img src="{$tpl_path}img/stars_{$PRODUCTS_AVERAGE_RATING}.png" alt="" /></span> 
          ({$PRODUCTS_RATING_COUNT})
          <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
          <meta itemprop="bestRating" content="5" />
          <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
        </div>
        {/if}

Ersetze mit:

        {if isset($PRODUCTS_RATING_COUNT)}
          {if $PRODUCTS_RATING_COUNT > 1}
          <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
            <strong>{#info_reviews#}</strong> 
            <span class="pd_reviews_image"><img src="{$tpl_path}img/stars_{$PRODUCTS_AVERAGE_RATING}.png" alt="" /></span> 
            ({$PRODUCTS_RATING_COUNT})
            <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
            <meta itemprop="bestRating" content="5" />
            <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
          </div>
          {elseif $PRODUCTS_RATING_COUNT > 0 }
          <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
            <strong>{#info_review#}</strong> 
            <span class="pd_reviews_image"><img src="{$tpl_path}img/stars_{$PRODUCTS_AVERAGE_RATING}.png" alt="" /></span> 
            ({$PRODUCTS_RATING_COUNT})
            <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
            <meta itemprop="bestRating" content="5" />
            <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
          </div>
          {else}
          <div class="pd_inforow">
            <strong>{#info_reviews#}</strong> 
            <span class="pd_reviews_image"><img src="{$tpl_path}img/stars_{$PRODUCTS_AVERAGE_RATING}.png" alt="" /></span> 
            ({$PRODUCTS_RATING_COUNT})
          </div>
          {/if}
        {/if}

Suche:

          {if $smarty.session.customers_status.customers_status_write_reviews == 1}
           <li class="vote">{$PRODUCTS_WRITE_REVIEW}</li>
          {/if}

Ersetze mit:

          {if isset($PRODUCTS_WRITE_REVIEW)}
           <li class="vote">{$PRODUCTS_WRITE_REVIEW}</li>
          {/if}

Für Template tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

        {if $PRODUCTS_RATING_COUNT > 1}
        <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
          <strong>{#info_reviews#}</strong> 
          <span class="pd_rating_icons"><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 1} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 2} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 3} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 4} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 5} full{/if}"></i></span>
          ({$PRODUCTS_RATING_COUNT})
          <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
          <meta itemprop="bestRating" content="5" />
          <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
        </div>
        {elseif $PRODUCTS_RATING_COUNT > 0 }
        <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
          <strong>{#info_review#}</strong> 
          <span class="pd_rating_icons"><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 1} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 2} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 3} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 4} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 5} full{/if}"></i></span>
          ({$PRODUCTS_RATING_COUNT})
          <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
          <meta itemprop="bestRating" content="5" />
          <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
        </div>
        {/if}

Ersetze mit:

        {if isset($PRODUCTS_RATING_COUNT)}
          {if $PRODUCTS_RATING_COUNT > 1}
          <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
            <strong>{#info_reviews#}</strong> 
            <span class="pd_rating_icons"><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 1} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 2} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 3} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 4} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 5} full{/if}"></i></span>
            ({$PRODUCTS_RATING_COUNT})
            <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
            <meta itemprop="bestRating" content="5" />
            <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
          </div>
          {elseif $PRODUCTS_RATING_COUNT > 0 }
          <div class="pd_inforow" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
            <strong>{#info_review#}</strong> 
            <span class="pd_rating_icons"><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 1} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 2} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 3} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 4} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 5} full{/if}"></i></span>
            ({$PRODUCTS_RATING_COUNT})
            <meta itemprop="ratingValue" content="{$PRODUCTS_AVERAGE_RATING}" />
            <meta itemprop="bestRating" content="5" />
            <meta itemprop="ratingCount" content="{$PRODUCTS_RATING_COUNT}" /> 
          </div>
          {else}
          <div class="pd_inforow">
            <strong>{#info_reviews#}</strong> 
            <span class="pd_rating_icons"><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 1} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 2} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 3} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 4} full{/if}"></i><i class="fas fa-star{if $PRODUCTS_AVERAGE_RATING >= 5} full{/if}"></i></span>
            ({$PRODUCTS_RATING_COUNT})
          </div>
          {/if}
        {/if}

Suche:

          {if $smarty.session.customers_status.customers_status_write_reviews == 1}
           <li class="vote">{$PRODUCTS_WRITE_REVIEW}</li>
          {/if}

Ersetze mit:

          {if isset($PRODUCTS_WRITE_REVIEW)}
           <li class="vote">{$PRODUCTS_WRITE_REVIEW}</li>
          {/if}

Erweiterung für Artikel Bewertungssterne im product_listing[Bearbeiten]

  • optional (Erfordert die Installation von "Module" -> "Klassenerweiterungen" -> "Artikel" -> "Bewertungen im Listing (product_reviews)")

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/boxes/box_last_viewed.html
 /templates/tpl_modified/boxes/box_specials.html
 /templates/tpl_modified/boxes/box_whatsnew.html
 /templates/tpl_modified/module/includes/product_info_include.html
 /templates/tpl_modified/module/includes/product_listing_include.html
 /templates/tpl_modified/stylesheet.css
 /templates/tpl_modified_responsive/boxes/box_last_viewed.html
 /templates/tpl_modified_responsive/boxes/box_specials.html
 /templates/tpl_modified_responsive/boxes/box_whatsnew.html
 /templates/tpl_modified_responsive/module/includes/product_info_include.html
 /templates/tpl_modified_responsive/module/includes/product_listing_include.html
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/boxes/box_last_viewed.html
 /templates/tpl_modified/boxes/box_specials.html
 /templates/tpl_modified/boxes/box_whatsnew.html

Suche:

    <div class="box_title"><a href="{$box_content.PRODUCTS_LINK}"><strong>{$box_content.PRODUCTS_NAME}</strong></a></div>

Füge danach ein:

    {if isset($box_content.PRODUCTS_REVIEWS_COUNT)}
      <div class="box_rating_icons{if $box_content.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
        <span class="box_rating_image"><img src="{$tpl_path}img/stars_{$box_content.PRODUCTS_REVIEWS_AVERAGE}.png" alt="" /></span>
        <span class="box_rating_count">({$box_content.PRODUCTS_REVIEWS_COUNT})</span>
      </div>
    {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/includes/product_info_include.html
 /templates/tpl_modified/module/includes/product_listing_include.html

Suche:

      <div class="lb_shipping">{if $module_data.PRODUCTS_SHIPPING_NAME}{#text_shippingtime#} {if $module_data.PRODUCTS_SHIPPING_IMAGE}<span class="lb_shipping_image"><img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME|onlytext}" /></span>{/if}{$module_data.PRODUCTS_SHIPPING_NAME_LINK}{else}&nbsp;{/if}</div>

Füge danach ein:

      {if isset($module_data.PRODUCTS_REVIEWS_COUNT)}
        <div class="lb_rating_icons{if $module_data.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
          <span class="lb_rating_image"><img src="{$tpl_path}img/stars_{$module_data.PRODUCTS_REVIEWS_AVERAGE}.png" alt="" /></span>
          <span class="lb_rating_count">({$module_data.PRODUCTS_REVIEWS_COUNT})</span>
        </div>
      {/if}

Suche:

        <div class="lr_title"><h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2></div>
        <div class="lr_desc_box">

Füge danach ein:

          {if isset($module_data.PRODUCTS_REVIEWS_COUNT)}
            <div class="lr_rating_icons{if $module_data.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
              <span class="lr_rating_image"><img src="{$tpl_path}img/stars_{$module_data.PRODUCTS_REVIEWS_AVERAGE}.png" alt="" /></span>
              <span class="lr_rating_count">({$module_data.PRODUCTS_REVIEWS_COUNT})</span>
            </div>
          {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/stylesheet.css

Suche:

.box_title a:hover {
  color:#444;
  text-decoration:none;
}

Füge danach ein:

.box_rating_icons {
  margin: -4px 0 0 0;
  padding:0px 0px 10px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  height:20px;
}
.box_rating_icons.no_reviews {
}
.box_rating_icons .box_rating_image {
  height:14px;
}
.box_rating_icons .box_rating_image img {
  width:auto;
  height:14px;
  vertical-align:top;
}
.box_rating_icons .box_rating_count {
  color:#666;
  font-size:12px;
  line-height:14px;
  padding:0 0 0 3px;
  letter-spacing:1px;
}
.box_rating_icons.no_reviews .box_rating_count {
  color:#999;
}

Suche:

.lb_shipping .lb_shipping_image {
  display:inline-block;
  padding: 0 5px 0 0;
}

Füge danach ein:

.lb_rating_icons {
  padding:5px 0px 5px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  height:20px;
  border-bottom: 1px dotted #ddd;
}
.lb_rating_icons.no_reviews {
}
.lb_rating_icons .lb_rating_image {
  height:14px;
}
.lb_rating_icons .lb_rating_image img {
  width:auto;
  height:14px;
  vertical-align:top;
}
.lb_rating_icons .lb_rating_count {
  color:#666;
  font-size:12px;
  line-height:14px;
  padding:0 0 0 3px;
  letter-spacing:1px;
}
.lb_rating_icons.no_reviews .lb_rating_count {
  color:#ccc;
}

Suche:

.lr_price_box {
  float:right;
  width:31.8584%;
}

Füge danach ein:

.lr_rating_icons {
  padding:6px 0px 0px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  height:20px;
}
.lr_rating_icons.no_reviews {
}
.lr_rating_icons .lr_rating_image {
  height:14px;
}
.lr_rating_icons .lr_rating_image img {
  width:auto;
  height:14px;
  vertical-align:top;
}
.lr_rating_icons .lr_rating_count {
  color:#666;
  font-size:12px;
  line-height:14px;
  padding:0 0 0 3px;
  letter-spacing:1px;
}
.lr_rating_icons.no_reviews .lr_rating_count {
  color:#ccc;
}

Für Template tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified_responsive/boxes/box_last_viewed.html
 /templates/tpl_modified_responsive/boxes/box_specials.html
 /templates/tpl_modified_responsive/boxes/box_whatsnew.html

Suche:

      <div class="box_title"><a href="{$box_content.PRODUCTS_LINK}"><strong>{$box_content.PRODUCTS_NAME}</strong></a></div>

Füge danach ein:

      {if isset($box_content.PRODUCTS_REVIEWS_COUNT)}
        <div class="box_rating_icons{if $box_content.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
          <i class="fas fa-star{if $box_content.PRODUCTS_REVIEWS_AVERAGE >= 1} full{/if}"></i><i class="fas fa-star{if $box_content.PRODUCTS_REVIEWS_AVERAGE >= 2} full{/if}"></i><i class="fas fa-star{if $box_content.PRODUCTS_REVIEWS_AVERAGE >= 3} full{/if}"></i><i class="fas fa-star{if $box_content.PRODUCTS_REVIEWS_AVERAGE >= 4} full{/if}"></i><i class="fas fa-star{if $box_content.PRODUCTS_REVIEWS_AVERAGE >= 5} full{/if}"></i>
          <span class="box_rating_count">({$box_content.PRODUCTS_REVIEWS_COUNT})</span>
        </div>
      {/if}

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified_responsive/module/includes/product_info_include.html
 /templates/tpl_modified_responsive/module/includes/product_listing_include.html

Suche:

      <div class="lb_shipping">{if $module_data.PRODUCTS_SHIPPING_NAME}{#text_shippingtime#} {if $module_data.PRODUCTS_SHIPPING_IMAGE}<span class="lb_shipping_image"><img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME|onlytext}" /></span>{/if}{$module_data.PRODUCTS_SHIPPING_NAME_LINK}{else}&nbsp;{/if}</div>

Füge danach ein:

      {if isset($module_data.PRODUCTS_REVIEWS_COUNT)}
        <div class="lb_rating_icons{if $module_data.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
          <i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 1} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 2} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 3} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 4} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 5} full{/if}"></i>
          <span class="lb_rating_count">({$module_data.PRODUCTS_REVIEWS_COUNT})</span>
        </div>
      {/if}

Suche:

        <div class="lr_title"><h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2></div>
        <div class="lr_desc_box">

Füge danach ein:

          {if isset($module_data.PRODUCTS_REVIEWS_COUNT)}
            <div class="lr_rating_icons{if $module_data.PRODUCTS_REVIEWS_COUNT < 1} no_reviews{/if}">
              <i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 1} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 2} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 3} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 4} full{/if}"></i><i class="fas fa-star{if $module_data.PRODUCTS_REVIEWS_AVERAGE >= 5} full{/if}"></i>
              <span class="lr_rating_count">({$module_data.PRODUCTS_REVIEWS_COUNT})</span>
            </div>
          {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/stylesheet.css

Suche:

.box_title a:hover {
  color:#444;
  text-decoration:none;
}

Füge danach ein:

.box_rating_icons {
  margin: -2px 0 0 0;
  padding:0px 0px 12px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  font-weight:300;
  font-size:12px;
  line-height:21px;
}
.box_rating_icons.no_reviews {
}
.box_rating_icons .fas {
  color:#ccc;
  padding: 0 3px 0 0;
}
.box_rating_icons .full  {
  color:#f1c40f;
}
.box_rating_icons .box_rating_count {
  color:#666;
  font-size:11px;
  line-height:13px;
  font-weight:400;
  padding:2px 0 0 0;
  letter-spacing:1px;
}
.box_rating_icons.no_reviews .box_rating_count {
  color:#ccc;
}

Suche:

.lb_shipping .lb_shipping_image {
  display:inline-block;
  padding: 0 5px 0 0;
}

Füge danach ein:

.lb_rating_icons {
  padding:5px 0px 5px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  font-weight:300;
  font-size:12px;
  line-height:21px;
  height:21px;
  border-bottom: 1px solid #eee;
}
.lb_rating_icons.no_reviews {
}
.lb_rating_icons .fas {
  color:#ccc;
  padding: 0 3px 0 0;
}
.lb_rating_icons .full  {
  color:#f1c40f;
}
.lb_rating_icons .lb_rating_count {
  color:#666;
  font-size:11px;
  line-height:13px;
  font-weight:400;
  padding:2px 0 0 0;
  letter-spacing:1px;
}
.lb_rating_icons.no_reviews .lb_rating_count {
  color:#ccc;
}

Suche:

.lr_title h2 a:hover {
  color:#444;
  text-decoration:none;
}

Füge danach ein:

.lr_rating_icons {
  padding:12px 0px 0px 0px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  font-weight:300;
  font-size:12px;
  line-height:21px;
}
.lr_rating_icons.no_reviews {
}
.lr_rating_icons .fas {
  color:#ccc;
  padding: 0 3px 0 0;
}
.lr_rating_icons .full  {
  color:#f1c40f;
}
.lr_rating_icons .lr_rating_count {
  color:#666;
  font-size:11px;
  line-height:13px;
  font-weight:400;
  padding:2px 0 0 0;
  letter-spacing:1px;
}
.lr_rating_icons.no_reviews .lr_rating_count {
  color:#ccc;
}

Erweiterung für Artikel NEU-Kennzeichnung im product_listing[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/lang/lang_english.custom
 /templates/tpl_modified/lang/lang_german.custom
 /templates/tpl_modified/module/includes/product_info_include.html
 /templates/tpl_modified/module/includes/product_listing_include.html
 /templates/tpl_modified/stylesheet.css
 /templates/tpl_modified_responsive/lang/lang_english.custom
 /templates/tpl_modified_responsive/lang/lang_german.custom
 /templates/tpl_modified_responsive/module/includes/product_info_include.html
 /templates/tpl_modified_responsive/module/includes/product_listing_include.html
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/lang/lang_english.custom

Füge am Ende der Datei ein:

products_flag_new = 'New'

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/lang/lang_german.custom

Füge am Ende der Datei ein:

products_flag_new = 'Neu'

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified/module/includes/product_info_include.html
 /templates/tpl_modified/module/includes/product_listing_include.html

Suche:

  <div class="listingbox">
    <div class="lb_inner">

Füge danach ein:

      {if isset($module_data.PRODUCTS_FLAG_NEW) && ($module_data.PRODUCTS_FLAG_NEW == 1)}
        <div class="lb_new_flag">{#products_flag_new#}</div>
      {/if}

Suche:

  <div class="listingrow">
    <div class="lr_inner cf">

Füge danach ein:

      {if isset($module_data.PRODUCTS_FLAG_NEW) && ($module_data.PRODUCTS_FLAG_NEW == 1)}
        <div class="lr_new_flag">{#products_flag_new#}</div>
      {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/stylesheet.css

Suche:

.lb_inner {
  border: 1px solid #ddd;
  padding: 10px 10px 5px 10px;
  min-height:300px;
}

Ersetze mit:

.lb_inner {
  border: 1px solid #ddd;
  padding: 10px 10px 5px 10px;
  min-height:300px;
  position:relative;
}
.lb_new_flag {
  position:absolute;
  left:10px;
  top:10px;
  background: #43c875;
  color: #fff;
  padding: 4px 0px 4px 0px;
  font-size:14px;
  line-height:16px;
  font-weight:700;
  min-width:50px;
  text-transform:uppercase;
  text-align:center;
  border-radius:0px;
  z-index:1;
}

Suche:

.lr_inner {
  padding: 10px 0px 10px 0px;
  border-bottom: 1px solid #ddd;
  min-height:160px;
  position:relative;
}

Füge danach ein:

.lr_new_flag {
  position:absolute;
  left:0px;
  top:10px;
  background: #43c875;
  color: #fff;
  padding: 4px 0px 4px 0px;
  font-size:14px;
  line-height:16px;
  font-weight:700;
  min-width:50px;
  text-transform:uppercase;
  text-align:center;
  border-radius:0px;
  z-index:1;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/lang/lang_english.custom

Füge am Ende der Datei ein:

products_flag_new = 'New'

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/lang/lang_german.custom

Füge am Ende der Datei ein:

products_flag_new = 'Neu'

Die folgenden Dateien wie folgt bearbeiten:

 /templates/tpl_modified_responsive/module/includes/product_info_include.html
 /templates/tpl_modified_responsive/module/includes/product_listing_include.html

Suche:

  <div class="listingbox">
    <div class="lb_inner">

Füge danach ein:

      {if isset($module_data.PRODUCTS_FLAG_NEW) && ($module_data.PRODUCTS_FLAG_NEW == 1)}
        <div class="lb_new_flag">{#products_flag_new#}</div>
      {/if}

Suche:

  <div class="listingrow">
    <div class="lr_inner cf">

Füge danach ein:

      {if isset($module_data.PRODUCTS_FLAG_NEW) && ($module_data.PRODUCTS_FLAG_NEW == 1)}
        <div class="lr_new_flag">{#products_flag_new#}</div>
      {/if}

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/stylesheet.css

Suche:

.lb_inner {
  border: 1px solid #eee;
  padding: 10px 10px 10px 10px;
  overflow:hidden;
}

Ersetze mit:

.lb_inner {
  border: 1px solid #eee;
  padding: 10px 10px 10px 10px;
  overflow:hidden;
  position:relative;
}
.lb_new_flag {
  position:absolute;
  left:10px;
  top:10px;
  background: #43c875;
  color: #fff;
  padding: 4px 0px 4px 0px;
  font-size:14px;
  line-height:16px;
  font-weight:700;
  min-width:50px;
  text-transform:uppercase;
  text-align:center;
  border-radius:2px;
  z-index:1;
}

Suche:

.lr_inner {
  padding: 15px 0px 15px 0px;
  border-bottom: 1px solid #eee;
  min-height:160px;
  position:relative;
}

Füge danach ein:

.lr_new_flag {
  position:absolute;
  left:0px;
  top:15px;
  background: #43c875;
  color: #fff;
  padding: 4px 0px 4px 0px;
  font-size:14px;
  line-height:16px;
  font-weight:700;
  min-width:50px;
  text-transform:uppercase;
  text-align:center;
  border-radius:2px;
  z-index:1;
}

Änderungen ab Version 3.0.1[Bearbeiten]

Schönheitsfehler in Template tpl_modified_nova korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_nova/stylesheet.css

Betrifft nur das Template tpl_modified_nova

Suche:

.pd_price .small_price {
  vertical-align:0px;
  padding: 0 3px 0 0;
  font-weight:400;
  font-size:12px;
  line-height:12px;
}

Ersetze mit:

.pd_price .small_price {
  vertical-align:0px;
  padding: 0 3px 2px 0;
  font-weight:400;
  font-size:12px;
  line-height:12px;
}

Hochskalierung von Artikelbildern verhindern[Bearbeiten]

  • optional

Betrifft nur die Templates tpl_modified, tpl_modified_nova, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original tpl_modified, tpl_modified_nova bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/stylesheet.css
 /templates/tpl_modified_nova/stylesheet.css
 /templates/tpl_modified_responsive/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified/stylesheet.css

Suche:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Ersetze mit:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 100%;
  max-height: 100%;
  width:auto;
  height:auto;
}

Für Template tpl_modified_nova:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_nova/stylesheet.css

Suche:

.prod_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Ersetze mit:

.prod_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width:auto;
  height:auto;
  max-width: 100%;
  max-height: 100%;
}

Suche:

.pd_image_small_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 90%;
  height: 90%;
  object-fit:contain;
  cursor: pointer;
}

Ersetze mit:

.pd_image_small_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width:auto;
  height:auto;
  max-width: 90%;
  max-height: 90%;
  cursor: pointer;
}

Suche:

.pd_image_big img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 90%;
  height: 90%;
  object-fit:contain;
  cursor: zoom-in;
}

Ersetze mit:

.pd_image_big img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width:auto;
  height:auto;
  max-width: 90%;
  max-height: 90%;
  cursor: zoom-in;
}

Für Template tpl_modified_responsive:

Die folgende Datei wie folgt bearbeiten:

 /templates/tpl_modified_responsive/stylesheet.css

Suche:

.box_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Ersetze mit:

.box_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 88%;
  max-height: 88%;
  width:auto;
  height:auto;
}

Suche:

.lb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Ersetze mit:

.lb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 100%;
  max-height: 100%;
  width:auto;
  height:auto;
}

Suche:

.subcat_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Ersetze mit:

.subcat_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 88%;
  max-height: 88%;
  width:auto;
  height:auto;
}

Suche:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Ersetze mit:

.pd_big_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 100%;
  max-height: 100%;
  width:auto;
  height:auto;
}

Suche:

.pd_small_image_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 88%;
  height: 88%;
  object-fit:contain;
}

Ersetze mit:

.pd_small_image_inner img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 88%;
  max-height: 88%;
  width:auto;
  height:auto;
}

Suche:

.pd_small_image_tab img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 96%;
  height: 96%;
  object-fit:contain;
}

Ersetze mit:

.pd_small_image_tab img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 96%;
  max-height: 96%;
  width:auto;
  height:auto;
}

Suche:

.slider_bestseller .carousel_box .cb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit:contain;
}

Ersetze mit:

.slider_bestseller .carousel_box .cb_image img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  max-width: 100%;
  max-height: 100%;
  width:auto;
  height:auto;
}

Doppelten CSS-Code in Template tpl_modified_nova entfernt[Bearbeiten]

  • optional in
/templates/tpl_modified_nova/stylesheet.css

Betrifft nur das Template tpl_modified_nova

Suche:

.lr_price {
  margin: 0 0 0 0;
  font-weight:700;
  font-weight:700;
  font-size: 14px;
  line-height:14px;
  display: flex;  
  flex-wrap: wrap;
  flex-direction: column;
}

Ersetze mit:

.lr_price {
  margin: 0 0 0 0;
  font-weight:700;
  font-size: 14px;
  line-height:14px;
  display: flex;  
  flex-wrap: wrap;
  flex-direction: column;
}

Update Font Awesome von 6.4.2 auf 6.5.1 in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Templates tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/css/fontawesome-6-custom.css
/templates/tpl_modified_nova/css/fontawesome-6.css
/templates/tpl_modified_nova/css/fonts/fa-brands-400.ttf
/templates/tpl_modified_nova/css/fonts/fa-brands-400.woff2
/templates/tpl_modified_nova/css/fonts/fa-regular-400.ttf
/templates/tpl_modified_nova/css/fonts/fa-regular-400.woff2
/templates/tpl_modified_nova/css/fonts/fa-solid-900.ttf
/templates/tpl_modified_nova/css/fonts/fa-solid-900.woff2
/templates/tpl_modified_nova/css/fonts/fa-v4compatibility.ttf
/templates/tpl_modified_nova/css/fonts/fa-v4compatibility.woff2

Padding in sub_categories_listing.html in Template tpl_modified_nova korrigiert[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/module/sub_categories_listing.html
/templates/tpl_modified_nova/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/sub_categories_listing.html

Suche:

      {foreach name=aussen item=categories_data from=$categories_content key=spalten}
        <div class="subcats_item">
          <div class="subcats_item_inner">
            <a href="{$categories_data.CATEGORIES_LINK}" title="{$categories_data.CATEGORIES_NAME|onlytext}">                
              {if $categories_data.CATEGORIES_IMAGE != '' || (isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != '')}
                <span class="subcats_image">
                  <span class="subcats_image_inner">
                    {if isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != ''}
                      <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE_LIST}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
                    {else}
                      <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
                    {/if}
                    <noscript><img src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" /></noscript>
                  </span>
                </span>
              {/if}
              <span class="subcats_title"><span>{$categories_data.CATEGORIES_NAME}</span></span>
            </a>
          </div>
        </div>
      {/foreach}

Ersetze mit:

      {foreach name=aussen item=categories_data from=$categories_content key=spalten}
        <div class="subcats_item">
          <a href="{$categories_data.CATEGORIES_LINK}" title="{$categories_data.CATEGORIES_NAME|onlytext}">
            <span class="subcats_item_inner">
              {if $categories_data.CATEGORIES_IMAGE != '' || (isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != '')}
                <span class="subcats_image">
                  <span class="subcats_image_inner">
                    {if isset($categories_data.CATEGORIES_IMAGE_LIST) && $categories_data.CATEGORIES_IMAGE_LIST != ''}
                      <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE_LIST}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
                    {else}
                      <img class="lazyload" data-src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" />
                    {/if}
                    <noscript><img src="{$categories_data.CATEGORIES_IMAGE}" alt="{$categories_data.CATEGORIES_NAME|onlytext}" /></noscript>
                  </span>
                </span>
              {/if}
              <span class="subcats_title"><span>{$categories_data.CATEGORIES_NAME}</span></span>
            </span>
          </a>  
        </div>
      {/foreach}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/stylesheet.css

Suche:

.subcats_item {
  width:50%;
  padding: 10px 10px;
  border: solid #e1e1e1;
  border-width: 0px 1px 1px 0px;
}
@media only screen and (min-width: 600px) {
  .subcats_item { padding: 20px 20px; }
}

Ersetze mit:

.subcats_item {
  width:50%;
  border: solid #e1e1e1;
  border-width: 0px 1px 1px 0px;
}

Suche:

@media only screen and (min-width: 1060px) {
  .subcats_item { width:25%; }
}

Füge danach ein:

.subcats_item_inner {
  display:block;
  padding: 10px 10px;
}
@media only screen and (min-width: 600px) {
  .subcats_item_inner { padding: 20px 20px; }
}

Suche:

.subcats_item_inner a:hover,
.subcats_item_inner a:hover .subcats_title {
  color:#333;
  text-decoration:none;
}

Ersetze mit:

.subcats_item a:hover,
.subcats_item a:hover .subcats_title {
  color:#333;
  text-decoration:none;
}

Anzeige der Banner-Gruppe BANNER in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/index.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/index.html

Suche:

            <div class="splide {if $SLIDER|@count > 1}splide_slider{else}splide_slider_single{/if}" aria-label="Slider">

Ersetze mit:

            <div class="splide {if count($SLIDER) > 1}splide_slider{else}splide_slider_single{/if}" aria-label="Slider">

Suche:

        {if isset($box_GREETING)}{$box_GREETING}{/if}

Füge davor ein:

        {if isset($BANNER) && $BANNER != ''}
          <div class="slider_row">
            <div class="splide splide_slider_single">
              <div class="splide__track">
        		    <div class="splide__list">
                  <div class="splide__slide">          
                    {$BANNER}
                  </div>
                </div>        
              </div>
            </div>  
          </div>
        {/if}

Entfernen der "random selects" über Datenbank für Performance Optimierung[Bearbeiten]

  • optional

Betrifft nur die Templates xtc5, tpl_modified, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2

Aus dem original xtc5, tpl_modified bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

 /templates/tpl_modified/source/boxes/reviews.php
 /templates/tpl_modified/source/boxes/specials.php
 /templates/tpl_modified/source/boxes/whats_new.php
 /templates/tpl_modified_responsive/source/boxes/reviews.php
 /templates/tpl_modified_responsive/source/boxes/specials.php
 /templates/tpl_modified_responsive/source/boxes/whats_new.php
 /templates/xtc5/source/boxes/reviews.php
 /templates/xtc5/source/boxes/specials.php
 /templates/xtc5/source/boxes/whats_new.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/reviews.php
/templates/tpl_modified_responsive/source/boxes/reviews.php

Suche:

                  ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                     LIMIT 1";

Ersetze mit:

                  ORDER BY r.date_added ASC, p.products_id
                     LIMIT ".MAX_RANDOM_SELECT_REVIEWS;

Suche:

    $reviews = xtc_db_fetch_array($reviews_query);

Ersetze mit:

    $content_array = array();
    while ($reviews = xtc_db_fetch_array($reviews_query)) {
      $content_array[] = $reviews;
    }
    shuffle($content_array);
    $reviews = $content_array[0];

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/specials.php
/templates/tpl_modified_responsive/source/boxes/specials.php

Suche:

                              ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                                 LIMIT 1");

Ersetze mit:

                              GROUP BY p.products_id
                              ORDER BY s.expires_date ASC, p.products_id
                                 LIMIT ".MAX_RANDOM_SELECT_SPECIALS);

Suche:

  $specials = xtc_db_fetch_array($specials_query);

Ersetze mit:

  $content_array = array();
  while ($specials = xtc_db_fetch_array($specials_query)) {
    $content_array[] = $specials;
  }
  shuffle($content_array);
  $specials = $content_array[0];

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/source/boxes/whats_new.php
/templates/tpl_modified_responsive/source/boxes/whats_new.php

Suche:

                                        ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                                           LIMIT 1");

Ersetze mit:

                                        ORDER BY p.products_date_added DESC, p.products_id
                                           LIMIT ".MAX_RANDOM_SELECT_NEW);

Suche:

  $whats_new = xtc_db_fetch_array($whats_new_query);

Ersetze mit:

  $content_array = array();
  while ($whats_new = xtc_db_fetch_array($whats_new_query)) {
    $content_array[] = $whats_new;
  }
  shuffle($content_array);
  $whats_new = $content_array[0];

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/reviews.php

Suche:

                  ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                     LIMIT " . MAX_RANDOM_SELECT_REVIEWS;

Ersetze mit:

                  ORDER BY r.date_added ASC, p.products_id
                     LIMIT ".MAX_RANDOM_SELECT_REVIEWS;

Suche:

    $reviews = xtc_db_fetch_array($reviews_query);

Ersetze mit:

    $content_array = array();
    while ($reviews = xtc_db_fetch_array($reviews_query)) {
      $content_array[] = $reviews;
    }
    shuffle($content_array);
    $reviews = $content_array[0];

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/specials.php

Suche:

                              ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                                 LIMIT ".MAX_RANDOM_SELECT_SPECIALS);

Ersetze mit:

                              GROUP BY p.products_id
                              ORDER BY s.expires_date ASC, p.products_id
                                 LIMIT ".MAX_RANDOM_SELECT_SPECIALS);

Suche:

  $specials = xtc_db_fetch_array($specials_query);

Ersetze mit:

  $content_array = array();
  while ($specials = xtc_db_fetch_array($specials_query)) {
    $content_array[] = $specials;
  }
  shuffle($content_array);
  $specials = $content_array[0];

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/source/boxes/whats_new.php

Suche:

                                        ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP)) 
                                           LIMIT ".MAX_RANDOM_SELECT_NEW);

Ersetze mit:

                                        ORDER BY p.products_date_added DESC, p.products_id
                                           LIMIT ".MAX_RANDOM_SELECT_NEW);

Suche:

  $whats_new = xtc_db_fetch_array($whats_new_query);

Ersetze mit:

  $content_array = array();
  while ($whats_new = xtc_db_fetch_array($whats_new_query)) {
    $content_array[] = $whats_new;
  }
  shuffle($content_array);
  $whats_new = $content_array[0];

Austausch einer falschen Sprachvariable[Bearbeiten]

  • zwingend notwendig

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/index.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/index.html

Suche:

              <li class="level1{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS)} active1{/if}"><a title="{#header_specials#}" href="{$smarty.const.FILENAME_SPECIALS|xtc_href_link}">{#header_specials#}</a></li>

Ersetze mit:

              <li class="level1{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS)} active1{/if}"><a title="{#link_specials#}" href="{$smarty.const.FILENAME_SPECIALS|xtc_href_link}">{#link_specials#}</a></li>

Suche:

              <li class="level1{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW)} active1{/if}"><a title="{#header_whatsnew#}" href="{$smarty.const.FILENAME_PRODUCTS_NEW|xtc_href_link}">{#header_whatsnew#}</a></li>

Ersetze mit:

              <li class="level1{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW)} active1{/if}"><a title="{#link_whatsnew#}" href="{$smarty.const.FILENAME_PRODUCTS_NEW|xtc_href_link}">{#link_whatsnew#}</a></li>

Anzeige von optionaler Box whats_new im Kategorie-Menü[Bearbeiten]

  • zwingend notwendig

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/config/config.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/config/config.php

Suche:

  // check specials
  if (SPECIALS_CATEGORIES === true) {
    require_once (DIR_FS_INC.'check_specials.inc.php');
    define('SPECIALS_EXISTS', check_specials());
  }

Füge danach ein:

  // check whats new
  if (WHATSNEW_CATEGORIES === true) {
    require_once (DIR_FS_INC.'check_whatsnew.inc.php');
    define('WHATSNEW_EXISTS', check_whatsnew());
  }

Hinweis-Text in config.php ergänzt in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/config/config.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/config/config.php

Suche:

  define('THEME_COLOR', 'default');

Füge davor ein:

  // after a change, the template cache must be deleted.
  // admin -> adv. configuration -> cache options -> delete templatecache

Blitzen des mobilen Menüs verhindern in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/index.html
/templates/tpl_modified_nova/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/index.html

Suche:

      <div id="mobile_menu">
        <div id="menu_closer"><i class="fa-solid fa-xmark"></i></div>
        <ul>

Ersetze mit:

      <div id="mobile_menu">
        <div id="menu_closer"><i class="fa-solid fa-xmark"></i></div>
        <ul class="mobile_menu">

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/stylesheet.css

Suche:

/* prevent flicker of mobile menu */
#mobile_menu { display:none; }

Füge danach ein:

.mobile_menu { display:none; }

Optimierung der Übergangszeit für das Megamenü in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/stylesheet.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/stylesheet.css

Suche:

.mega_menu {
  border-top: 8px solid var(--categoriesmenu_bg, #f0f0f0);
  position: absolute;
  left: 0;
  width: 100%;
  top: calc(100% - 8px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  background:#fff;
  padding: 10px 0;
  z-index:101;
  box-shadow: 0 10px 15px -15px #333;
}

Ersetze mit:

.mega_menu {
  border-top: 8px solid var(--categoriesmenu_bg, #f0f0f0);
  position: absolute;
  left: 0;
  width: 100%;
  top: calc(100% - 8px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  transition-delay: 400ms;
  background:#fff;
  padding: 10px 0;
  z-index:101;
  box-shadow: 0 10px 15px -15px #333;
}

Suche:

.menu_items li:hover .mega_menu {
  opacity: 1;
  visibility: visible;
  transition-delay: 200ms;
}

Ersetze mit:

.menu_items li:hover .mega_menu {
  opacity: 1;
  visibility: visible;
  transition-delay: 400ms;
}

Korrektur der Verwendung der Funktion strpos() für Versandart "Selbstabholung (selfpickup)" für PHP 8[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/admin/print_order.html
/templates/tpl_modified/admin/print_packingslip.html
/templates/tpl_modified/mail/english/order_mail.html
/templates/tpl_modified/mail/english/order_mail_step.html
/templates/tpl_modified/mail/german/order_mail.html
/templates/tpl_modified/mail/german/order_mail_step.html
/templates/tpl_modified/module/account_history_info.html
/templates/tpl_modified/module/checkout_confirmation.html
/templates/tpl_modified/module/print_order.html
/templates/tpl_modified_nova/admin/print_order.html
/templates/tpl_modified_nova/admin/print_packingslip.html
/templates/tpl_modified_nova/mail/english/order_mail.html
/templates/tpl_modified_nova/mail/english/order_mail_step.html
/templates/tpl_modified_nova/mail/german/order_mail.html
/templates/tpl_modified_nova/mail/german/order_mail_step.html
/templates/tpl_modified_nova/module/account_history_info.html
/templates/tpl_modified_nova/module/checkout_confirmation.html
/templates/tpl_modified_nova/module/print_order.html
/templates/tpl_modified_responsive/admin/print_order.html
/templates/tpl_modified_responsive/admin/print_packingslip.html
/templates/tpl_modified_responsive/mail/english/order_mail.html
/templates/tpl_modified_responsive/mail/english/order_mail_step.html
/templates/tpl_modified_responsive/mail/german/order_mail.html
/templates/tpl_modified_responsive/mail/german/order_mail_step.html
/templates/tpl_modified_responsive/module/account_history_info.html
/templates/tpl_modified_responsive/module/checkout_confirmation.html
/templates/tpl_modified_responsive/module/print_order.html
/templates/xtc5/admin/print_order.html
/templates/xtc5/admin/print_packingslip.html
/templates/xtc5/mail/english/order_mail.html
/templates/xtc5/mail/english/order_mail_step.html
/templates/xtc5/mail/german/order_mail.html
/templates/xtc5/mail/german/order_mail_step.html
/templates/xtc5/module/account_history_info.html
/templates/xtc5/module/checkout_confirmation.html
/templates/xtc5/module/print_order.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/admin/print_order.html
/templates/TEMPLATENAME/admin/print_packingslip.html
/templates/TEMPLATENAME/mail/english/order_mail.html
/templates/TEMPLATENAME/mail/english/order_mail_step.html
/templates/TEMPLATENAME/mail/german/order_mail.html
/templates/TEMPLATENAME/mail/german/order_mail_step.html
/templates/TEMPLATENAME/module/account_history_info.html
/templates/TEMPLATENAME/module/checkout_confirmation.html
/templates/TEMPLATENAME/module/print_order.html

Suche:

{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup') !== false}

Korrektur & Vereinheitlichung der Verwendung weiterer Vorkommnisse der Funktion strpos() für PHP 8[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/boxes/box_categories.html
/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_nova/index.html
/templates/tpl_modified_nova/module/account_history_info.html
/templates/tpl_modified_nova/module/account_navigation.html
/templates/tpl_modified_nova/module/checkout_confirmation.html
/templates/tpl_modified_nova/module/downloads.html
/templates/tpl_modified_nova/module/products_media.html
/templates/tpl_modified_nova/module/shopping_cart.html
/templates/tpl_modified_responsive/boxes/box_categories.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
/templates/xtc5/index.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/boxes/box_categories.html
/templates/tpl_modified_responsive/boxes/box_categories.html

Suche:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS)}

Ersetze mit:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS) !== false}

Suche:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW)}

Ersetze mit:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW) !== false}

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified/module/product_info/product_info_v1.html
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_tabs_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
/templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html

Suche:

{if $MODULE_product_options_template == 'multi_options_1.html' || $MODULE_product_options_template|strpos:"dropdown" !== false}

Ersetze mit:

{if $MODULE_product_options_template == 'multi_options_1.html' || strpos($MODULE_product_options_template, 'dropdown') !== false}

Suche:

{if $MODULE_product_options_template != 'multi_options_1.html' && $MODULE_product_options_template|strpos:"dropdown" === false}

Ersetze mit:

{if $MODULE_product_options_template != 'multi_options_1.html' && strpos($MODULE_product_options_template, 'dropdown') === false}

Für Template tpl_modified_nova:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/index.html

Suche (2x):

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS)}

Ersetze mit:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS) !== false}

Suche (2x):

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW)}

Ersetze mit:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW) !== false}

Suche:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_CHECKOUT_SUCCESS)}

Ersetze mit:

{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_CHECKOUT_SUCCESS) !== false}

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/index.html

Suche (2x):

{if (!strpos($smarty.server.PHP_SELF, 'checkout')) || (strpos($smarty.server.PHP_SELF, 'checkout_express'))}

Ersetze mit:

{if (!strpos($smarty.server.PHP_SELF, 'checkout') !== false) || (strpos($smarty.server.PHP_SELF, 'checkout_express') !== false)}

Suche:

{if (strpos($smarty.server.PHP_SELF, 'checkout')) && (!strpos($smarty.server.PHP_SELF, 'checkout_express'))}

Ersetze mit:

{if (strpos($smarty.server.PHP_SELF, 'checkout') !== false) && (!strpos($smarty.server.PHP_SELF, 'checkout_express') !== false)}

Listenansicht auf product_info Seite in Template tpl_modified_nova korrigiert[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/config/config.php
/templates/tpl_modified_nova/javascript/extra/splide.js.php
/templates/tpl_modified_nova/module/also_purchased.html
/templates/tpl_modified_nova/module/cross_selling.html
/templates/tpl_modified_nova/module/includes/products_include_listing.html
/templates/tpl_modified_nova/module/products_category.html
/templates/tpl_modified_nova/module/reverse_cross_selling.html
/templates/tpl_modified_nova/module/upcoming_products.html
/templates/tpl_modified_nova/stylesheet.css

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/config/config.php

Entferne den folgenden Code:

  define('PRODUCT_LIST_BOX_STARTPAGE', 'true');

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/javascript/extra/splide.js.php

Suche:

  }); 

  /* prevent accessibility warning for vertical orientation */

Füge davor ein:

    /* carousel products row */
    var elms = document.getElementsByClassName("splide_size3");
    for (var i = 0; i < elms.length; i++) {
      new Splide(elms[i], {
        type: 'slide',
        role: 'group',
        speed: 1000,
        perPage: 1,
        mediaQuery: 'min', 
      }).mount();
    }

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/also_purchased.html

Suche:

    <div class="splide splide_size1" aria-label="{#heading_text#}">

Ersetze mit:

    <div class="splide {if $smarty.const.PRODUCT_INFO_BOX == 'true'}splide_size1{else}splide_size3{/if}" aria-label="{#heading_text#}">

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/cross_selling.html

Suche:

      <div class="splide splide_size1" aria-label="{if $products_data.GROUP != ''}{$products_data.GROUP}{else}{#heading_text#}{/if}">

Ersetze mit:

      <div class="splide {if $smarty.const.PRODUCT_INFO_BOX == 'true'}splide_size1{else}splide_size3{/if}" aria-label="{if $products_data.GROUP != ''}{$products_data.GROUP}{else}{#heading_text#}{/if}">

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/includes/products_include_listing.html

Suche:

{if ($STARTPAGE == 'true' && $smarty.const.PRODUCT_LIST_BOX_STARTPAGE == 'true')}

Ersetze mit:

{if $STARTPAGE == 'true'}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/reverse_cross_selling.html

Suche:

    <div class="splide splide_size1" aria-label="{#heading_text#}">

Ersetze mit:

    <div class="splide {if $smarty.const.PRODUCT_INFO_BOX == 'true'}splide_size1{else}splide_size3{/if}" aria-label="{#heading_text#}">

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/upcoming_products.html

Suche:

          {foreach name=aussen item=module_data from=$module_content}
            <div class="splide__slide">{include file="module/includes/products_include_info.html"}</div>
          {/foreach}

Ersetze mit:

          {include file="module/includes/products_include_listing.html"}

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/stylesheet.css

Suche:

/* rows */
.listingrow {
  position:relative;
  padding: 40px 20px;
  margin: 0px 0 0px 0;
  border:solid #e1e1e1;
  border-width:0px 1px 1px 0px;
  width:100%;
  display: flex;  
  flex-wrap: wrap;
}

Füge danach ein:

.splide_size3:after {
  content:'';
  position:absolute;
  display:block;
  width:2px;
  background:#fff;
  top:0px;
  bottom: 0px;
  right:-1px;
  border-right:1px solid #e1e1e1;
} 
.splide_size3 {
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
  border-left: 1px solid #e1e1e1;
  border-right: 1px solid #e1e1e1;
}
.splide_size3 .listingrow {
  height: 100%;
  border: none;
}

Schnellkauf-Link im Warenkorb in Template tpl_modified_nova korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_nova/module/shopping_cart.html

Betrifft nur das Template tpl_modified_nova

Suche:

            {if isset($BUTTON_CHECKOUT_EXPRESS) && !$PAYPALPLAN}
              <div class="br_btn_alternate"><span>oder</span></div>
              <div class="br_btn_0">
                {$BUTTON_CHECKOUT_EXPRESS}
                  <div class="font_small mt_5" style="text-align:center;"><a class="arrow" href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a></div>            
                {if isset($ACTIVATE_EXPRESS_LINK)}
                {/if}
              </div>
            {/if}

Ersetze mit:

            {if (isset($BUTTON_CHECKOUT_EXPRESS) || isset($ACTIVATE_EXPRESS_LINK)) && !$PAYPALPLAN}
              <div class="br_btn_alternate"><span>{#text_cart_or#}</span></div>
              <div class="br_btn_0">
                {$BUTTON_CHECKOUT_EXPRESS}
                {if isset($ACTIVATE_EXPRESS_LINK)}
                  <div class="font_small my_5" style="text-align:center;"><a class="arrow" href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a></div>            
                {/if}
              </div>
            {/if}

Farbe und Sortierung der ausgewählten Adresse in Template tpl_modified_nova korrigiert[Bearbeiten]

  • optional in
/templates/tpl_modified_nova/stylesheet.css

Betrifft nur das Template tpl_modified_nova

Suche:

.action_item.selected,
.action_item_full.selected {
  order:1;
}

Ersetze mit:

.action_item.selected,
.action_item_full.selected {
  order:2;
}

Suche:

.action_item.selected .action_item_inner,
.action_item_full.selected .action_item_inner {
  border-top: 1px solid #e1e1e1;
  background:#fff7dd;
}

Ersetze mit:

.action_item.selected .action_item_inner,
.action_item_full.selected .action_item_inner {
  border-top: 1px solid #e1e1e1;
  background:#eaf2fa;
}

Entfernung von unnötigem Code aus gv_send.html[Bearbeiten]

  • optional

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/gv_send.html
/templates/tpl_modified_nova/module/gv_send.html
/templates/tpl_modified_responsive/module/gv_send.html
/templates/xtc5/module/gv_send.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified & tpl_modified_responsive:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified/module/gv_send.html
/templates/tpl_modified_responsive/module/gv_send.html

Suche:

      <tr>
        <td><span class="fieldtext">{#entry_email#}</span>{$INPUT_EMAIL} {if $ERROR_EMAIL neq ''}{$ERROR_EMAIL}{/if}</td>
      </tr>
      <tr>
        <td><span class="fieldtext">{#entry_amount#}</span>{$INPUT_AMOUNT} {if $ERROR_AMOUNT neq ''}{$ERROR_AMOUNT}{/if}</td>
      </tr>

Ersetze mit:

      <tr>
        <td><span class="fieldtext">{#entry_email#}</span>{$INPUT_EMAIL}</td>
      </tr>
      <tr>
        <td><span class="fieldtext">{#entry_amount#}</span>{$INPUT_AMOUNT}</td>
      </tr>

Für Template tpl_modified_nova:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/gv_send.html

Suche:

            <div class="field_item_1"><label><span class="field_text">{#entry_email#}</span>{$INPUT_EMAIL} {if $ERROR_EMAIL != ''}{$ERROR_EMAIL}{/if}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span><label></div>
            <div class="field_item_1"><label><span class="field_text">{#entry_amount#}</span>{$INPUT_AMOUNT} {if $ERROR_AMOUNT != ''}{$ERROR_AMOUNT}{/if}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span><label></div>

Ersetze mit:

            <div class="field_item_1"><label><span class="field_text">{#entry_email#}</span>{$INPUT_EMAIL}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span><label></div>
            <div class="field_item_1"><label><span class="field_text">{#entry_amount#}</span>{$INPUT_AMOUNT}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span><label></div>

Für Template xtc5:

Die folgende Datei wie folgt bearbeiten:

/templates/xtc5/module/gv_send.html

Suche:

    <tr>
      <td>{#entry_email#}<br />{$INPUT_EMAIL} {if $ERROR_EMAIL neq ''}{$ERROR_EMAIL}{/if}</td>
    </tr>
    <tr>
      <td>{#entry_amount#}<br />{$INPUT_AMOUNT} {if $ERROR_AMOUNT neq ''}{$ERROR_AMOUNT}{/if}</td>
    </tr>

Ersetze mit:

    <tr>
      <td>{#entry_email#}<br />{$INPUT_EMAIL}</td>
    </tr>
    <tr>
      <td>{#entry_amount#}<br />{$INPUT_AMOUNT}</td>
    </tr>

Änderungen ab Version 3.0.2[Bearbeiten]

Weitere Korrektur der Verwendung der Funktion strpos() für Versandart "Selbstabholung (selfpickup)" für PHP 8[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/mail/english/order_mail.txt
/templates/tpl_modified/mail/english/order_mail_step.txt
/templates/tpl_modified/mail/german/order_mail.txt
/templates/tpl_modified/mail/german/order_mail_step.txt
/templates/tpl_modified_nova/mail/english/order_mail.txt
/templates/tpl_modified_nova/mail/english/order_mail_step.txt
/templates/tpl_modified_nova/mail/german/order_mail.txt
/templates/tpl_modified_nova/mail/german/order_mail_step.txt
/templates/tpl_modified_responsive/mail/english/order_mail.txt
/templates/tpl_modified_responsive/mail/english/order_mail_step.txt
/templates/tpl_modified_responsive/mail/german/order_mail.txt
/templates/tpl_modified_responsive/mail/german/order_mail_step.txt
/templates/xtc5/mail/english/order_mail.txt
/templates/xtc5/mail/english/order_mail_step.txt
/templates/xtc5/mail/german/order_mail.txt
/templates/xtc5/mail/german/order_mail_step.txt

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/mail/english/order_mail.txt
/templates/TEMPLATENAME/mail/english/order_mail_step.txt
/templates/TEMPLATENAME/mail/german/order_mail.txt
/templates/TEMPLATENAME/mail/german/order_mail_step.txt

Suche:

{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup')}

Ersetze mit:

{if isset($SHIPPING_CLASS) && strpos($SHIPPING_CLASS, 'selfpickup') !== false}

Änderungen ab Version 3.1.0[Bearbeiten]

Unnötige Hintergrundfarbe in Listingbox in Template tpl_modified_nova entfernt[Bearbeiten]

  • optional in
/templates/tpl_modified_nova/stylesheet.css

Betrifft nur das Template tpl_modified_nova

Suche:

.listingbox {
  position:relative;
  background:#fff;
  border:solid #e1e1e1;
  border-width:0px 1px 1px 0px;
  overflow:hidden;
}

Ersetze mit:

.listingbox {
  position:relative;
  border:solid #e1e1e1;
  border-width:0px 1px 1px 0px;
  overflow:hidden;
}

Fehlendes xtc_href_link in Links ergänzt um eventuellen Sessionverlust bei deaktivierten Cookies zu vermeiden[Bearbeiten]

  • zwingend notwendig

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/module/checkout_payment.html
/templates/tpl_modified_nova/module/checkout_shipping.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/checkout_payment.html

Suche:

        <div class="font_small mt_5"><a class="arrow" title="{#checkout_edit_address#}" href="{$smarty.const.FILENAME_CHECKOUT_PAYMENT_ADDRESS}"><strong>{#checkout_edit_address#}</strong></a></div>

Ersetze mit:

        <div class="font_small mt_5"><a class="arrow" title="{#checkout_edit_address#}" href="{$smarty.const.FILENAME_CHECKOUT_PAYMENT_ADDRESS|xtc_href_link}"><strong>{#checkout_edit_address#}</strong></a></div>

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/checkout_shipping.html

Suche:

        <div class="font_small mt_5"><a class="arrow" title="{#checkout_edit_address#}" href="{$smarty.const.FILENAME_CHECKOUT_SHIPPING_ADDRESS}"><strong>{#checkout_edit_address#}</strong></a></div>

Ersetze mit:

        <div class="font_small mt_5"><a class="arrow" title="{#checkout_edit_address#}" href="{$smarty.const.FILENAME_CHECKOUT_SHIPPING_ADDRESS|xtc_href_link}"><strong>{#checkout_edit_address#}</strong></a></div>

Blitzen des "schließen-Symbols" im mobilen Menüs verhindern in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/css/jquery.mmenulight.css

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/css/jquery.mmenulight.css

Suche:

#menu_closer {
  cursor:pointer;
  width:30px;
  height:30px;
  background: var(--toggle_menu_closer_bg, #eee);
  color: var(--toggle_menu_closer_color, #555);
  position:absolute;
  top:0px;
  right:0px;
  font-size:20px;
  line-height:30px;
  text-align:center;
  border-radius:4px;
}

Ersetze mit:

#menu_closer {
  cursor:pointer;
  width:30px;
  height:30px;
  background: var(--toggle_menu_closer_bg, #eee);
  color: var(--toggle_menu_closer_color, #555);
  position:relative;
  margin-left:auto;
  font-size:20px;
  line-height:30px;
  text-align:center;
  border-radius:4px;
}

Umbenennen des Buttons bei Gast-Account-Erstellung in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/module/create_account_guest.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/module/create_account_guest.html

Suche:

        <div class="br_btn_1">{$BUTTON_SUBMIT_SAVE}</div>

Ersetze mit:

        <div class="br_btn_1">{$BUTTON_SUBMIT}</div>

Abfrage für Hersteller-Anzeige in mobile Menü eingefügt in Template tpl_modified_nova[Bearbeiten]

  • optional

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/index.html

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/index.html

Suche:

          {if isset($box_MANUFACTURERS)}{$box_MANUFACTURERS|replace:"<div class=\"mega_menu\">":""|replace:"</div>":""}{/if}

Ersetze mit:

          {if $smarty.const.HEADER_SHOW_MANUFACTURERS === true}
            {if isset($box_MANUFACTURERS)}{$box_MANUFACTURERS|replace:"<div class=\"mega_menu\">":""|replace:"</div>":""}{/if}
          {/if}

Korrektur der Cache-ID in greeting.php Box in Template tpl_modified_nova[Bearbeiten]

  • zwingend notwendig

Betrifft nur das Template tpl_modified_nova

Aus dem original tpl_modified_nova Template ist die folgende Datei ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified_nova/source/boxes/greeting.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/tpl_modified_nova/source/boxes/greeting.php

Suche:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id']);

Ersetze mit:

  $cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].((isset($_SESSION['customer_id'])) ? '|cID:'.$_SESSION['customer_id'] : ''));

Erweiterung der OIL.js Cookie Consent Lösung um Google Consent Mode[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_nova/javascript/extra/cookieconsent.js.php
/templates/tpl_modified_responsive/javascript/extra/cookieconsent.js.php
/templates/xtc5/javascript/extra/cookieconsent.js.php

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/javascript/extra/cookieconsent.js.php

Suche:

      if (event && event.data && (eventDataContains('oil_optin_done') || eventDataContains('oil_has_optedin'))) {
        __cmp('getVendorConsents', [], oilGtagCookie);
      }

Füge davor ein:

      if (event && event.data && (eventDataContains('oil_soi_optin_done'))) {
        if (typeof pushgTagEventAction === "function" && gTagCounter > 0) {
          pushgTagEventAction();
        }
        if (typeof pushTagmanagerEventAction === "function" && gTagmanagerCounter > 0) {
          pushTagmanagerEventAction();
        }
      }

Code-Korrektur in den Options-Templates[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/product_options/multi_options_1.html
/templates/tpl_modified/module/product_options/product_options_dropdown.html
/templates/tpl_modified/module/product_options/product_options_selection.html
/templates/tpl_modified/module/product_options/table_listing.html
/templates/tpl_modified_nova/module/product_options/product_options_v1_select.html
/templates/tpl_modified_nova/module/product_options/product_options_v2_table.html
/templates/tpl_modified_nova/module/product_options/product_options_v3_button.html
/templates/tpl_modified_responsive/module/product_options/multi_options_1.html
/templates/tpl_modified_responsive/module/product_options/product_options_dropdown.html
/templates/tpl_modified_responsive/module/product_options/product_options_selection.html
/templates/tpl_modified_responsive/module/product_options/table_listing.html
/templates/xtc5/module/product_options/multi_options_1.html
/templates/xtc5/module/product_options/product_options_dropdown.html
/templates/xtc5/module/product_options/product_options_selection.html
/templates/xtc5/module/product_options/table_listing.html 

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für Template tpl_modified_nova:

Die folgenden Dateien wie folgt bearbeiten:

/templates/tpl_modified_nova/module/product_options/product_options_v1_select.html
/templates/tpl_modified_nova/module/product_options/product_options_v2_table.html
/templates/tpl_modified_nova/module/product_options/product_options_v3_button.html

Suche:

{if $options != ''}

Ersetze mit:

{if is_array($options) && count($options) > 0}

Für alle anderen Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/product_options/multi_options_1.html
/templates/TEMPLATENAME/module/product_options/product_options_dropdown.html
/templates/TEMPLATENAME/module/product_options/product_options_selection.html
/templates/TEMPLATENAME/module/product_options/table_listing.html 

Suche:

{if $options != ''}

Ersetze mit:

{if is_array($options) && count($options) > 0}

Code-Korrektur bzgl. Anlage neuer Adressen[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/module/address_book_details.html
/templates/tpl_modified/module/checkout_new_address.html
/templates/tpl_modified_nova/module/address_book_details.html
/templates/tpl_modified_nova/module/checkout_new_address.html
/templates/tpl_modified_responsive/module/address_book_details.html
/templates/tpl_modified_responsive/module/checkout_new_address.html
/templates/xtc5/module/address_book_details.html
/templates/xtc5/module/checkout_new_address.html

Alternativ können die Dateien auch manuell wie folgt ergänzt werden:

Für alle Templates gilt:

Die folgenden Dateien wie folgt bearbeiten:

/templates/TEMPLATENAME/module/address_book_details.html
/templates/TEMPLATENAME/module/checkout_new_address.html

Suche:

{if $new == '1'}

Erstze mit:

{if isset($new) && $new == '1'}

Geplante Features[Bearbeiten]

Überarbeitung Anmelde-Sicherheit in Login-Box[Bearbeiten]

  • zwingend notwendig

Aus dem original xtc5 bzw. tpl_modified Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:

/templates/tpl_modified/source/boxes/loginbox.php
/templates/xtc5/source/boxes/loginbox.php

Alternativ kann die Datei auch manuell wie folgt ergänzt werden:

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/loginbox.php

Suche:

    require_once (DIR_FS_INC.'xtc_draw_password_field.inc.php');

Füge danach ein:

    require_once (DIR_FS_INC.'secure_form.inc.php');

Suche:

    $box_smarty->assign('FORM_ACTION', xtc_draw_form('loginbox', xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL'), 'post', 'class="box-login"'));

Ersetze mit:

    $box_smarty->assign('FORM_ACTION', xtc_draw_form('loginbox', xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL'), 'post', 'class="box-login"').secure_form());

*xt:Commerce ist ein geschützter Name der Firma xt:Commerce GmbH ([1]]