Tutorial: Template eines xt:Commerce Shops in der modified eCommerce Shopsoftware weiter verwenden
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> {#total#}
Ersetze mit:
{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#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} {$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} {$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> {/if}{$BUTTON_RELOAD} {$BUTTON_CHECKOUT}</p>
[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} {$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"> </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"> </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"> </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} <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} {/if}</td>
<td class="small">{if $info.field}{$info.field|stripslashes}{else} {/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;"> </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> </td>
<td class="main">{if $data.field}{$data.field|stripslashes}{else} {/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} {/if}</td>
<td> </td>
<td class="main">{if $data.field != ''}{$data.field|stripslashes}{else} {/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} {/if}</td>
<td>{if $info.field != ''}{$info.field|stripslashes}{else} {/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> </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> </td>
</tr>
<tr>
<td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
<td>{$INPUT_CODE}</td>
<td> </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">« {$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} {/if}</td>
<td class="small">{if $info.field}{$info.field|stripslashes}{else} {/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}"> {$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_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"> </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> {$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> {$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> </td>
</tr>
<tr>
<td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
<td>{$INPUT_CODE}</td>
<td> </td>
</tr>
{/if}
Ersetze mit:
{if $VVIMG}
<tr>
<td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
<td>{$VVIMG}</td>
<td> </td>
</tr>
{/if}
{if $INPUT_CODE}
<tr>
<td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
<td>{$INPUT_CODE}</td>
<td> </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> <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"> <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"> <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.'¤t_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.'¤t_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öchten.<br />
<br />
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.<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öchten.<br />
<br />
Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse für den Newsletterempfang freigeschaltet wird.<br />
<br />
<b>Ihr Aktivierungslink:</b><br />
<a href="{$LINK}">{$LINK}</a><br />
<br />
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.<br />
<br />
Ihre Einwilligung in den Versand unseres Newsletters ist jederzeit widerruflich. Der Newsletter-Versand erfolgt entsprechend unserer Datenschutzerklä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> {$AGB_LINK}
</div>
{if isset($REVOCATION_checkbox)}
<div class="checkoutconditions">
{$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong> {$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> {$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> {$AGB_LINK}
{else}
{$AGB_checkbox} <strong><label for="conditions">{#text_accept_agb#}</label></strong> {$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> {$PRIVACY_LINK}
</div>
{/if}
{if isset($REVOCATION_checkbox)}
<div class="checkoutconditions">
{$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong> {$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> {$PRIVACY_LINK}
</div>
{/if}
{if isset($REVOCATION_checkbox)}
<div class="checkoutconditions">
{$REVOCATION_checkbox} <strong><label for="revocation">{#text_accept_revocation#}</label></strong> {$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¨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.</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öchten.</p>
<p>Bitte klicken Sie auf den Aktivierungslink, damit Ihre E-Mail-Adresse fü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ür unseren Newsletter eingetragen haben bzw. den Empfang des Newsletters nicht wü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ä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> {$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> {$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> {$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> {$AGB_LINK}</td>
{else}
<td>{$AGB_checkbox}</td>
<td width="100%"><strong><label for="conditions">{#text_accept_agb#}</label></strong> {$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> {$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> {$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> {$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> {$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'> <a href='#'>→</a></span>"}else{TB_PrevCaption=TB_TempArray[TB_Counter].title;TB_PrevURL=TB_TempArray[TB_Counter].href;TB_PrevHTML="<span id='TB_prev'> <a href='#'>←</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> {/if}{$BUTTON_RELOAD} {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> {/if}{$BUTTON_RELOAD} {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}> {$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>
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} {/if}</td>
<td>{if $data.field != ''}{$data.field|stripslashes}{else} {/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} {/if}</td>
<td>{if $data.field != ''}{$data.field|stripslashes}{else} {/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} {/if}</td>
<td> </td>
<td class="main">{if $data.field != ''}{$data.field|stripslashes}{else} {/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}
{/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}
{/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}
{/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}
{/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"> <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}
{/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}
{/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}
{/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.'¤t_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.'¤t_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> <span itemprop="author">{$module_data.AUTHOR}</span>
Ersetze mit:
<span itemprop="author" itemtype="http://schema.org/Person" itemscope>
<strong>{#text_author#}</strong> <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"> <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"> <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önnen sich über den Zustellstatus durch einen Klick auf die nachstende(n) Paketnummer(n) informieren:<br />
Ersetze mit:
Sie können sich ü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> | {/if}{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#total#}</span>
<span class="detail_next_previous">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if} |
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if} |
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if} |
{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> | {/if}{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#total#}</span>
<span class="detail_next_previous">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if} |
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if} |
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if} |
{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} {/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} {/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> | {/if}{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#total#}</span>
<span class="detail_next_previous">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if} |
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if} |
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if} |
{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> | {/if}{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#total#}</span>
<span class="detail_next_previous">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a>{else}<span class="inactive">{#first#}</span>{/if} |
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a>{else}<span class="inactive">{#back#}</span>{/if} |
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a>{else}<span class="inactive">{#next#}</span>{/if} |
{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} {/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} {/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} {/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> <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} {/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> <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> </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} {/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> <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} {/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> <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} {/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#}
{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} {/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} {/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#}
{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} {/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} {/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#}
{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} {/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} {/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#}
{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} {/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> | {/if}
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a> | {/if}
{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a> | {/if}
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a> | {/if}
{if $LAST != ''}<a href="{$LAST}">{#last#}</a> | {/if}
{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#total#}
</div>
Ersetze mit:
{if isset($module_content)}
<div class="productnavigator">
{if $FIRST != ''}<a href="{$FIRST}">{#first#}</a> | {/if}
{if $PREVIOUS != ''}<a href="{$PREVIOUS}">{#back#}</a> | {/if}
{if $OVERVIEW != ''}<a href="{$OVERVIEW}">{#overview#}</a> | {/if}
{if $NEXT != ''}<a href="{$NEXT}">{#next#}</a> | {/if}
{if $LAST != ''}<a href="{$LAST}">{#last#}</a> | {/if}
{#product#} <strong>{$ACTUAL_PRODUCT} {#of#} {$PRODUCTS_COUNT}</strong> {#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} {/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> <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} {/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> <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} {/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> <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} {/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> <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&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} © {$smarty.now|date_format:"%Y"} | Template © 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} © {$smarty.now|date_format:"Y"} | Template © 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} © {$smarty.now|date_format:"%Y"} | Template © 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} © {$smarty.now|date_format:"Y"} | Template © 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} © {$smarty.now|date_format:"%Y"} | Template © 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} © {$smarty.now|date_format:"Y"} | Template © 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">«</li>
<li id="autocomplete_count"></li>
<li id="autocomplete_next">»</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">«</li>
<li id="autocomplete_count"></li>
<li id="autocomplete_next">»</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">«</li>
<li id="autocomplete_count"></li>
<li id="autocomplete_next">»</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 sind die folgenden Dateien 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/autocomplete.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> </td>
</tr>
{/if}
{if $INPUT_CODE}
<tr>
<td style="white-space:nowrap;"><strong>{#text_sec_code#}:</strong></td>
<td>{$INPUT_CODE}</td>
<td> </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> </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> </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:" ":""}
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:" ":""}
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öschen');
define('CSS_IMAGE_SMALL_DELETE_TITLE', 'Löschen');
Suche:
define('CSS_IMAGE_SMALL_CONTINUE_TEXT', '');
//define('CSS_IMAGE_SMALL_CONTINUE_TITLE', '');
Ersetze mit:
define('CSS_IMAGE_SMALL_CONTINUE_TEXT', 'Auswählen');
define('CSS_IMAGE_SMALL_CONTINUE_TITLE', 'Auswä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',
),
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',
),
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/stylesheet.css
Suche:
.cssButtonColor6 .color-paypal2 {
font-size:18px;
line-height:16px;
font-family: 'Poppins', sans-serif;
font-style:italic;
font-weight:700;
color:#019CDE;
}
Füge danach ein:
/* Small account action text-buttons */
.cssButtonColor7 {
text-transform:none;
font-weight:400;
padding: 0px;
margin: 0px;
height:auto;
text-decoration:none;
border: none;;
color: #333;
}
.cssButtonColor7 .cssButtonText {
font-size: 12px;
line-height: 16px;
text-transform: none;
vertical-align: top;
padding: 0px 0px;
text-decoration:none;
border-bottom: 1px solid #555;
}
.cssButtonColor7 .fas, .cssButtonColor7 .far {
padding-left: 0px;
padding-right: 6px;
}
.cssButtonColor7:hover {
opacity:0.8;
text-decoration:none !important;
border:none;
background:none;
}
Suche:
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;
}
Ersetze mit:
#address_block_new > li .address_inner .header {
display:flex;
flex-wrap:wrap;
}
#address_block_new > li .address_inner .title {
padding: 0px 0 0 0;
font-weight: 700;
line-height:17px;
flex:1;
}
#address_block_new > li .address_inner .actions {
display:flex;
padding: 2px 0 0 0;
width: 100%;
}
@media only screen and (min-width: 500px) {
#address_block_new > li .address_inner .actions { padding: 0 0 0 10px; width:auto; }
}
#address_block_new > li .address_inner .actions .icon {
width:auto;
display:inline-block;
vertical-align:top;
margin: 0 10px 0 0;
}
@media only screen and (min-width: 500px) {
#address_block_new > li .address_inner .actions .icon { margin: 0 0 0 10px; }
}
#address_block_new > li .address_inner .content {
display: block !important;
padding: 15px 0px 0px 0px !important;
font-weight: 400 !important;
}
#address_block_new > li .cssButton {
min-height:17px;
}
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/checkout_new_address.html
Suche:
{if $new == '1'}
<tr>
<td> </td>
<td align="left">{$CHECKBOX_PRIMARY} {#text_standard#}</td>
</tr>
{/if}
</table>
Ersetze mit:
{if $new == '1'}
<tr>
<td> </td>
<td align="left">{$CHECKBOX_PRIMARY} {#text_standard#}</td>
</tr>
{/if}
{if isset($CHECKBOX_EDIT_ADDRESS)}
<tr>
<td> </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}
Banner um Title & Alt Tags erweitern für 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/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.'¤t_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.'¤t_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} {/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} {/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 in Template tpl_modified_nova[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'}
Ersetze mit:
{if isset($new) && $new == '1'}
Abfrage für Kleinunternehmer für Hinweistext in Fußzeile 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:
{#footer_price_hinweis_1#} {if $smarty.session.customers_status.customers_status_show_price_tax == 1}{#footer_price_hinweis_incl#}{else}{#footer_price_hinweis_excl#}{/if} {#footer_price_hinweis_2#} <a class="iframe" title="Information" href="{'popup_content.php'|xtc_href_link:'coID=1'}" target="_blank" rel="nofollow">{#footer_price_hinweis_3#}</a>. {#footer_price_hinweis_4#} {$smarty.const.TITLE}.<br />
Ersetze mit:
{if $smarty.const.MODULE_SMALL_BUSINESS != 'true'}{#footer_price_hinweis_1#} {if $smarty.session.customers_status.customers_status_show_price_tax == 1}{#footer_price_hinweis_incl#}{else}{#footer_price_hinweis_excl#}{/if} {#footer_price_hinweis_2#} <a class="iframe" title="Information" href="{'popup_content.php'|xtc_href_link:'coID=1'}" target="_blank" rel="nofollow">{#footer_price_hinweis_3#}</a>. {/if}{#footer_price_hinweis_4#} {$smarty.const.TITLE}.<br />
Update Font Awesome von 6.5.1 auf 6.5.2 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
Hinzufügen der Logos von Apple Pay & Goole Pay 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/boxes/box_miscellaneous.html /templates/tpl_modified_nova/img/payment_icons/payment_icon_applepay.png /templates/tpl_modified_nova/img/payment_icons/payment_icon_googlepay.png
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/boxes/box_miscellaneous.html
Suche:
<span><img class="lazyload" data-src="{$tpl_path}img/payment_icons/payment_icon_sepa.png" alt=""></span>
Füge danach ein:
<span><img class="lazyload" data-src="{$tpl_path}img/payment_icons/payment_icon_applepay.png" alt=""></span>
<span><img class="lazyload" data-src="{$tpl_path}img/payment_icons/payment_icon_googlepay.png" alt=""></span>
Optimierung des Bild-Links bei kleinen Bildern 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/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:
/* global products image handling */
.prod_image {
display:block;
text-align: center;
width: 100%;
position:relative;
}
Füge danach ein:
.prod_image > a {
position:absolute;
top:0px;
bottom:0px;
left:0px;
right:0px;
display:block;
width:100%;
height:100%;
}
[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/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:
.footer_item ul.content_box_list li {
padding: 6px 0px 6px 0px;
font-size:13px;
line-height:17px;
}
.footer_item ul.content_box_list li a {
padding: 0 0 0 0px;
display:block;
color: var(--footer_link_color, #333);
font-size:13px;
line-height:17px;
position:relative;
}
Ersetze mit:
.footer_item ul.content_box_list li {
padding: 6px 0px;
font-size:13px;
line-height:17px;
}
@media only screen and (min-width: 985px) {
.footer_item ul.content_box_list li { padding: 0px 0px; }
}
.footer_item ul.content_box_list li a {
padding: 0px 0px;
display:block;
color: var(--footer_link_color, #333);
font-size:13px;
line-height:17px;
position:relative;
}
@media only screen and (min-width: 985px) {
.footer_item ul.content_box_list li a { padding: 6px 0; }
}
Anzeige eines optionalen Scrollbalkens in Warenkorb, Merkzettel, Konto & Einstellungen 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/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:
.toggle_cart,
.toggle_wishlist,
.toggle_account,
.toggle_settings {
text-align:left;
position:fixed;
top:0px;
bottom: 0px;
margin: auto;
z-index:1301;
overflow: auto;
-webkit-overflow-scrolling: touch;
max-width:100%;
padding:50px 20px 70px 20px;
background:#fafafa;
color:#333;
right:-440px;
width:440px;
display:block;
transition: all 0.3s ease-in-out;
opacity:0;
}
Ersetze mit:
.toggle_cart,
.toggle_wishlist,
.toggle_account,
.toggle_settings {
text-align:left;
position:fixed;
top:0px;
bottom: 0px;
margin: auto;
z-index:1301;
overflow: auto;
-webkit-overflow-scrolling: touch;
max-width:100%;
padding:50px 11px 70px 20px;
border-right: 9px solid transparent;
background:#fafafa;
color:#333;
right:-440px;
width:440px;
display:block;
transition: all 0.3s ease-in-out;
opacity:0;
}
Suche:
.toggle_cart > .toggle_closer,
.toggle_wishlist > .toggle_closer,
.toggle_account > .toggle_closer,
.toggle_settings > .toggle_closer {
cursor:pointer;
width:30px;
height:30px;
background: var(--toggle_menu_closer_bg, #eee);
color: var(--toggle_menu_closer_color, #555);
border-radius:4px;
position:absolute;
top:15px;
right:20px;
font-size:20px;
line-height:30px;
text-align:center;
}
Ersetze mit:
.toggle_cart > .toggle_closer,
.toggle_wishlist > .toggle_closer,
.toggle_account > .toggle_closer,
.toggle_settings > .toggle_closer {
cursor:pointer;
width:30px;
height:30px;
background: var(--toggle_menu_closer_bg, #eee);
color: var(--toggle_menu_closer_color, #555);
border-radius:4px;
position:absolute;
top:15px;
right:11px;
font-size:20px;
line-height:30px;
text-align:center;
}
Optimierung des linken Kategoriebaums 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/boxes/box_sub_categories.html /templates/tpl_modified_nova/lang/lang_english.section /templates/tpl_modified_nova/lang/lang_german.section /templates/tpl_modified_nova/source/boxes/sub_categories.php /templates/tpl_modified_nova/index.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/boxes/box_sub_categories.html
Suche:
{if isset($BOX_CONTENT) && $BOX_CONTENT != ''}
Ersetze mit:
{if isset($BOX_CONTENT) && is_array($BOX_CONTENT)}
Suche:
{$BOX_CONTENT}
Ersetze mit:
{config_load file="lang_`$language`.section" section="boxes"}
<div class="box_sub_categories">
<div class="subline mt_40 mb_0">{if isset($BOX_CONTENT_HOVER) && count($BOX_CONTENT_HOVER) > 0}{#subcats_menu_heading#}{else}{#subcats_menu_heading#}{/if}</div>
{if isset($BOX_CONTENT_HOVER) && count($BOX_CONTENT_HOVER) > 0}
<div class="subcats_menu_hover_box">
{foreach name=aussen item=module_data from=$BOX_CONTENT_HOVER}
<ul class="subcats_menu_hover">
<li class="level0"><a href="{$module_data.DATA.link}">{if $module_data.DATA.name == ''}{#subcats_total_heading#}{else}{$module_data.DATA.name}{/if}{if isset($module_data.DATA.count) && $module_data.DATA.count != ''}<span class="counts">({$module_data.DATA.count})</span>{/if}</a>
{if is_array($module_data.SUBS)}
<ul>
{foreach name=innen item=subs_data from=$module_data.SUBS}
<li class="level{$subs_data.level}{if $subs_data.active == 1} Selected{/if}{if isset($subs_data.hasSubs) && $subs_data.hasSubs == 1} Subs{/if}"><a href="{$subs_data.link}">{$subs_data.name}{if isset($subs_data.count) && $subs_data.count != ''}<span class="counts">({$subs_data.count})</span>{/if}</a></li>
{/foreach}
</ul>
{/if}
</li>
</ul>
{/foreach}
</div>
{/if}
<div class="subcats_menu_box">
<ul class="subcats_menu">
{foreach name=aussen item=module_data from=$BOX_CONTENT}
{if !isset($BOX_CONTENT_HOVER) || count($BOX_CONTENT_HOVER) == 0}
{if is_array($module_data.SUBS)}
{foreach name=innen item=subs_data from=$module_data.SUBS}
<li class="level0{if $subs_data.active == 1} Selected{/if}{if isset($subs_data.hasSubs) && $subs_data.hasSubs == 1} Subs{/if}"><a href="{$subs_data.link}">{$subs_data.name}{if isset($subs_data.count) && $subs_data.count != ''}<span class="counts">({$subs_data.count})</span>{/if}</a></li>
{/foreach}
{/if}
{else}
<li class="level0{if $module_data.DATA.active == 1} Selected{/if}"><a href="{$module_data.DATA.link}">{$module_data.DATA.name}{if isset($module_data.DATA.count) && $module_data.DATA.count != ''}<span class="counts">({$module_data.DATA.count})</span>{/if}</a>
{if is_array($module_data.SUBS)}
<ul>
{foreach name=innen item=subs_data from=$module_data.SUBS}
<li class="level{$subs_data.level}{if isset($subs_data.hasSubs) && $subs_data.hasSubs == 1} Subs{/if}{if $subs_data.active == 1} Selected{/if}"><a href="{$subs_data.link}">{$subs_data.name}{if isset($subs_data.count) && $subs_data.count != ''}<span class="counts">({$subs_data.count})</span>{/if}</a></li>
{/foreach}
</ul>
{/if}
</li>
{/if}
{/foreach}
</ul>
</div>
</div>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/lang/lang_english.section
Suche:
show_all = 'Show all'
Füge danach ein:
subcats_total_heading = 'Product range'
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/lang/lang_german.section
Suche:
show_all = 'Alle anzeigen'
Füge danach ein:
subcats_total_heading = 'Gesamtsortiment'
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/source/boxes/sub_categories.php
Suche:
$categories_string = '';
if (isset($cPath_array)
&& is_array($cPath_array)
)
{
$new_cPath_array = $cPath_array;
array_unshift($new_cPath_array, 0);
$reverse_cPath_array = array_reverse($new_cPath_array);
foreach ($reverse_cPath_array as $categories_id) {
$category_tree_array = xtc_get_category_tree_array($categories_id, 1);
if (count($category_tree_array) > 0) break;
array_pop($new_cPath_array);
}
if (count($category_tree_array) > 0) {
$new_cPath_array = array_filter($new_cPath_array);
$new_cPath = implode('_', $new_cPath_array);
xtc_show_category($categories_id, $new_cPath, $category_tree_array);
}
}
$box_smarty->assign('BOX_CONTENT', $categories_string);
Ersetze mit:
require_once (DIR_FS_INC.'xtc_has_category_subcategories.inc.php');
$category_tree_array = array();
if (isset($cPath_array)
&& is_array($cPath_array)
)
{
$new_cPath_array = $cPath_array;
array_unshift($new_cPath_array, 0);
$path = '';
foreach ($new_cPath_array as $categories_id) {
$path = $path . (($path != '') ? '_' : '') . (($categories_id > 0) ? $categories_id : '');
$data = array(
'name' => '',
'id' => 0,
'link' => xtc_href_link(FILENAME_DEFAULT, '', 'NONSSL'),
'active' => 0,
);
if ($categories_id != 0) {
$category_data = xtc_get_category_data($categories_id);
$data = array(
'name' => $category_data['categories_name'],
'id' => $category_data['categories_id'],
'link' => xtc_href_link(FILENAME_DEFAULT, 'cPath='.$path, 'NONSSL'),
'active' => ((end($cPath_array) == $category_data['categories_id']) ? 1 : 0),
);
if (SHOW_COUNTS == 'true') {
$products_in_category = xtc_count_products_in_category($category_data['categories_id']);
if ($products_in_category > 0) {
$data['count'] = $products_in_category;
}
}
if (defined('CATEGORIES_CHECK_SUBS') && (CATEGORIES_CHECK_SUBS == true)) {
$data['hasSubs'] = 0;
$tmpCheck = xtc_has_category_subcategories($category_data['categories_id']);
if ($tmpCheck) {
$data['hasSubs'] = 1;
}
}
}
$subs = xtc_get_categories_tree_data($categories_id, 1);
if (count($subs) > 0) {
foreach ($subs as $subs_id => $subs_data) {
if (mod_count_products_in_category($subs_data['id']) > 0) {
$link_path = $path . (($path != '') ? '_' : '') . $subs_data['id'];
$subs[$subs_id]['level'] = 1;
$subs[$subs_id]['link'] = xtc_href_link(FILENAME_DEFAULT, 'cPath='.$link_path, 'NONSSL');
$subs[$subs_id]['active'] = ((end($cPath_array) == $subs_data['id']) ? 1 : 0);
if (SHOW_COUNTS == 'true') {
$products_in_category = xtc_count_products_in_category($subs_data['id']);
if ($products_in_category > 0) {
$subs[$subs_id]['count'] = $products_in_category;
}
}
if (defined('CATEGORIES_CHECK_SUBS') && (CATEGORIES_CHECK_SUBS == true)) {
$subs[$subs_id]['hasSubs'] = 0;
$tmpCheck = xtc_has_category_subcategories($subs_data['id']);
if ($tmpCheck) {
$subs[$subs_id]['hasSubs'] = 1;
}
}
} else {
unset($subs[$subs_data['id']]);
}
}
$category_tree_array[$categories_id] = array(
'DATA' => $data,
'SUBS' => $subs,
);
}
}
}
if (count($category_tree_array) > 0) {
$box_smarty->assign('BOX_CONTENT', array(array_pop($category_tree_array)));
$box_smarty->assign('BOX_CONTENT_HOVER', $category_tree_array);
}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/index.html
Suche:
<div class="flex_listing_categories">
<div class="subcats_menu_box">
<div class="subline mt_40 mb_0">{#subcats_menu_heading#}</div>
<ul class="subcats_menu">
{if isset($box_SUB_CATEGORIES)}{$box_SUB_CATEGORIES}{/if}
</ul>
</div>
</div>
Ersetze mit:
<div class="flex_listing_categories">
{if isset($box_SUB_CATEGORIES)}{$box_SUB_CATEGORIES}{/if}
</div>
/templates/tpl_modified_nova/stylesheet.css
Suche:
/* 14. START left categories menu */
.subcats_menu_box {
position: -webkit-sticky;
position: sticky;
top: 70px;
}
ul.subcats_menu {
margin: 0px 0 0 0;
list-style-type:none;
font-size:14px;
line-height:18px;
}
ul.subcats_menu li {
padding: 0 0 0 0;
}
ul.subcats_menu li > a {
position:relative;
display:block;
font-weight:400;
color:#666;
padding: 10px 20px 10px 0px;
border-bottom: 1px solid #e1e1e1;
}
ul.subcats_menu li > a:hover {
color:#222;
text-decoration:none;
}
ul.subcats_menu li > a > .counts {
display:inline-block;
font-weight:400;
font-size:10px;
line-height:12px;
padding: 0 0 0 3px;
vertical-align:0px;
}
ul.subcats_menu li.has_sub_cats > a .sub_cats_arrow {
position:absolute;
top:10px;
right:0px;
text-align:center;
margin: auto;
width: 12px;
height:18px;
}
ul.subcats_menu li.has_sub_cats > a .sub_cats_arrow::after {
font-family: 'Font Awesome 6 Free';
content: '\f078';
font-size:12px;
line-height:18px;
font-weight: 900;
}
ul.subcats_menu li.Selected a {
font-weight:700;
color: var(--subcatsmenu_color_selected, #222);
}
/* 14. END left categories menu */
Ersetze mit:
/* 14. START left categories menu */
.box_sub_categories {
position: -webkit-sticky;
position: sticky;
top: 70px;
z-index:2;
}
.subcats_menu_box {
margin: 0 0 0 0;
}
ul.subcats_menu {
margin: 0px 0 0 0;
list-style-type:none;
font-size:14px;
line-height:18px;
}
ul.subcats_menu li {
padding: 0 0 0 0;
}
ul.subcats_menu li > a {
position:relative;
display:block;
font-weight:400;
color:#666;
padding: 10px 20px 10px 0px;
border-bottom: 1px solid #d9d9d9;
}
ul.subcats_menu li > a:hover {
color:#222;
text-decoration:none;
}
ul.subcats_menu ul {
margin: 0px 0 0 0;
list-style-type:none;
}
ul.subcats_menu ul li > a {
padding: 10px 25px 10px 15px;
position:relative;
}
ul.subcats_menu ul li > a::before {
content: '';
position: absolute;
left: 0px;
top: 15px;
width: 8px;
height: 8px;
display: block;
border: dotted #999;
border-width: 0px 0px 2px 2px;
}
ul.subcats_menu li > a > .counts {
display:inline-block;
font-weight:400;
font-size:10px;
line-height:12px;
padding: 0 0 0 3px;
vertical-align:0px;
}
ul.subcats_menu li.Subs > a::after {
position:absolute;
right:8px;
top:10px;
font-family: 'Font Awesome 6 Free';
content: '\f054';
font-size: 12px;
line-height: 18px;
font-weight: 900;
}
ul.subcats_menu > li.Selected > a {
font-weight:700;
color: var(--subcatsmenu_color_selected, #222);
}
ul.subcats_menu ul > li.Selected > a {
font-weight:700;
color: var(--subcatsmenu_color_selected, #222);
}
.subcats_menu_hover_box {
margin: 0 0 0 0;
}
ul.subcats_menu_hover {
margin: 0 0 0 0;
list-style-type:none;
font-size:14px;
line-height:18px;
}
ul.subcats_menu_hover li {
position:relative;
}
ul.subcats_menu_hover li a,
ul.subcats_menu_hover li a:hover {
text-decoration:none;
}
ul.subcats_menu_hover > li > a {
position: relative;
display: block;
font-weight: 600;
color: #666;
padding: 10px 25px 10px 0px;
border-bottom: 1px solid #d9d9d9;
}
ul.subcats_menu_hover li > a > .counts {
display:inline-block;
font-weight:400;
font-size:10px;
line-height:12px;
padding: 0 0 0 3px;
vertical-align:0px;
}
ul.subcats_menu_hover > li > a:hover {
margin-left:-10px;
padding-left:10px;
background:rgba(0,0,0,0.1);
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
}
ul.subcats_menu_hover > li > a::after {
position:absolute;
right:8px;
top:10px;
font-family: 'Font Awesome 6 Free';
content: '\f054';
font-size: 12px;
line-height: 18px;
font-weight: 900;
}
ul.subcats_menu_hover > li > ul {
background:#f0f0f0;
border: solid #d9d9d9;
border-width:1px 0 1px 0;
transition: all 0.3s ease-in-out;
padding: 0px 0px;
margin: 0;
list-style-type:none;
position: absolute;
left: 100%;
top: -1px;
width: 270px;
visibility:hidden;
opacity:0;
max-height:60vh;
overflow:auto;
}
ul.subcats_menu_hover > li:hover > ul {
visibility:visible;
opacity:1;
}
ul.subcats_menu_hover > li > ul > li {
padding: 0 10px 0 10px;
}
ul.subcats_menu_hover > li > ul > li > a {
display: block;
font-weight: 400;
color: #666;
padding: 10px 20px 10px 0px;
border-bottom: 1px solid #d9d9d9;
}
ul.subcats_menu_hover > li > ul > li:hover {
background:rgba(0,0,0,0.1);
}
ul.subcats_menu_hover > li > ul > li:last-child > a {
border-bottom: none;
}
/* 14. END left categories menu */
Korrektur der Sprach- & Währungs-Box für PHP 8.2[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_nova/source/boxes/currencies.php /templates/tpl_modified_nova/source/boxes/languages.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 Template tpl_modified, tpl_modified_responsive & xtc5:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/source/boxes/currencies.php /templates/tpl_modified_responsive/source/boxes/currencies.php /templates/xtc5/source/boxes/currencies.php
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), '', $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);
}
Ersetze mit:
// dont show box if there's only 1 currency
if (count($currencies_array) > 1 ) {
$hidden_get_variables = '';
$params_array = xtc_get_params_array(xtc_get_all_get_params(array('language', 'currency')));
if (count($params_array) > 0) {
foreach ($params_array as $k => $v) {
if (is_array($v)) {
foreach ($v as $kk => $vv) {
$hidden_get_variables .= xtc_draw_hidden_field($k.'['.$kk.']', $vv);
}
} else {
$hidden_get_variables .= xtc_draw_hidden_field($k, $v);
}
}
}
$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);
}
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/source/boxes/currencies.php
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), '', $request_type, false), 'get', '')
. xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'aria-label="currencies" 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);
}
Ersetze mit:
// dont show box if there's only 1 currency
if (count($currencies_array) > 1 ) {
$hidden_get_variables = '';
$params_array = xtc_get_params_array(xtc_get_all_get_params(array('language', 'currency')));
if (count($params_array) > 0) {
foreach ($params_array as $k => $v) {
if (is_array($v)) {
foreach ($v as $kk => $vv) {
$hidden_get_variables .= xtc_draw_hidden_field($k.'['.$kk.']', $vv);
}
} else {
$hidden_get_variables .= xtc_draw_hidden_field($k, $v);
}
}
}
$box_content = xtc_draw_form('currencies', xtc_href_link(basename($PHP_SELF), '', $request_type, false), 'get', '')
. xtc_draw_pull_down_menu('currency', $currencies_array, $_SESSION['currency'], 'aria-label="currencies" onchange="this.form.submit();"')
. $hidden_get_variables . xtc_hide_session_id()
. '</form>';
$box_smarty->assign('BOX_CONTENT', $box_content);
}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/source/boxes/languages.php
Suche:
if (isset($_GET) && count($_GET) > 0) {
reset($_GET);
foreach ($_GET as $key => $value) {
if (is_string($value) && $key != 'language' && $key != xtc_session_name() && $key != 'x' && $key != 'y' ) {
$hidden_get_variables .= xtc_draw_hidden_field($key, $value);
}
}
}
Ersetze mit:
$params_array = xtc_get_params_array(xtc_get_all_get_params(array('language', 'currency')));
if (count($params_array) > 0) {
foreach ($params_array as $k => $v) {
if (is_array($v)) {
foreach ($v as $kk => $vv) {
$hidden_get_variables .= xtc_draw_hidden_field($k.'['.$kk.']', $vv);
}
} else {
$hidden_get_variables .= xtc_draw_hidden_field($k, $v);
}
}
}
strip tags aus css Buttons title und alt tags[Bearbeiten]
- optional
Betrifft nur die Templates tpl_modified_nova, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2
Aus dem original tpl_modified_nova bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:
/templates/tpl_modified_nova/source/inc/css_button.inc.php /templates/tpl_modified_responsive/source/inc/css_button.inc.php
Alternativ können die Dateien auch manuell wie folgt ergänzt werden:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified_nova/source/inc/css_button.inc.php /templates/tpl_modified_responsive/source/inc/css_button.inc.php
Suche:
$button = '<span class="cssButton '.((isset($button_array[$image_idx]['class'])) ? $button_array[$image_idx]['class'] : $default_class).'"'.(($submit !== true) ? ' title="'.((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') && constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') != '') ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') : $alt).'"' : '').'>';
Ersetze mit:
$button = '<span class="cssButton '.((isset($button_array[$image_idx]['class'])) ? $button_array[$image_idx]['class'] : $default_class).'"'.(($submit !== true) ? ' title="'.strip_tags((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') && constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') != '') ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') : $alt).'"' : '').'>';
Suche:
$button .= '<button type="submit" class="cssButtonText"'.(((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') && constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE')) || $alt != '') ? ' title="'.((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE')) ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') : $alt).'"' : '').$parameters.'>'.((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TEXT')) ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TEXT') : $alt).'</button>';
Ersetze mit:
$button .= '<button type="submit" class="cssButtonText"'.(((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') && constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE')) || $alt != '') ? ' title="'.strip_tags((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE')) ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TITLE') : $alt).'"' : '').$parameters.'>'.((defined('CSS_IMAGE_'.strtoupper($image_idx).'_TEXT')) ? constant('CSS_IMAGE_'.strtoupper($image_idx).'_TEXT') : $alt).'</button>';
Auslagerung des form tags aus Button[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_nova/module/checkout_confirmation.html /templates/tpl_modified_responsive/module/checkout_confirmation.html /templates/xtc5/module/checkout_confirmation.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_confirmation.html
Suche:
<div class="button_right">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}{$CHECKOUT_BUTTON}</div>
Ersetze mit:
<div class="button_right">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}{$CHECKOUT_BUTTON}{$CHECKOUT_FORM_END}</div>
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/checkout_confirmation.html
Suche:
<div class="br_btn_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}{$CHECKOUT_BUTTON|replace:"cssButton ":"cssButton cssButtonPos12 "|replace:"</form>":""}</form></div>
Ersetze mit:
<div class="br_btn_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}<div class="cssButtonPos12">{$CHECKOUT_BUTTON}</div>{$CHECKOUT_FORM_END}</div>
Für Template tpl_modified_responsive:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/checkout_confirmation.html
Suche:
<div class="button_right_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}<div class="cssButtonPos12">{$CHECKOUT_BUTTON|replace:"</form>":""}</div></form></div>
Ersetze mit:
<div class="button_right_checkout">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''}{$MODULE_BUTTONS}{/if}<div class="cssButtonPos12">{$CHECKOUT_BUTTON}</div>{$CHECKOUT_FORM_END}</div>
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/checkout_confirmation.html
Suche:
<div style="text-align:right">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''} {$MODULE_BUTTONS}{/if} {$CHECKOUT_BUTTON}</div>
Ersetze mit:
<div style="text-align:right">{$CHECKOUT_FORM}{if $MODULE_BUTTONS != ''} {$MODULE_BUTTONS}{/if} {$CHECKOUT_BUTTON}{$CHECKOUT_FORM_END}</div>
Fallback für DIR_TMPL in general_bottom.js.php ergänzt[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/general_bottom.js.php /templates/tpl_modified_nova/javascript/general_bottom.js.php /templates/tpl_modified_responsive/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 alle Templates gilt:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/javascript/general_bottom.js.php /templates/tpl_modified_nova/javascript/general_bottom.js.php /templates/tpl_modified_responsive/javascript/general_bottom.js.php /templates/xtc5/javascript/general_bottom.js.php
Suche:
defined('DIR_TMPL_JS') OR define('DIR_TMPL_JS', DIR_TMPL.'javascript/');
Füge davor ein:
defined('DIR_TMPL') OR define('DIR_TMPL', 'templates/'.CURRENT_TEMPLATE.'/');
HTML-Validierungsfehler in Template tpl_modified_nova korrigiert[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/module/contact_us.html
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/contact_us.html
Suche (9x):
<label></div>
Ersetze mit:
</label></div>
Ergänzung der Stylesheet-Komprimierung 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/module/popup_content.html /templates/tpl_modified/module/popup_coupon_help.html /templates/tpl_modified/module/popup_search_help.html /templates/tpl_modified/module/print_order.html /templates/tpl_modified/module/print_product_info.html /templates/tpl_modified_nova/module/popup_content.html /templates/tpl_modified_nova/module/popup_coupon_help.html /templates/tpl_modified_nova/module/popup_search_help.html /templates/tpl_modified_nova/module/print_order.html /templates/tpl_modified_nova/module/print_product_info.html /templates/tpl_modified_responsive/module/popup_content.html /templates/tpl_modified_responsive/module/popup_coupon_help.html /templates/tpl_modified_responsive/module/popup_search_help.html /templates/tpl_modified_responsive/module/print_order.html /templates/tpl_modified_responsive/module/print_product_info.html /templates/xtc5/module/popup_content.html /templates/xtc5/module/popup_coupon_help.html /templates/xtc5/module/popup_search_help.html /templates/xtc5/module/print_order.html /templates/xtc5/module/print_product_info.html
Alternativ können die Dateien auch manuell wie folgt ergänzt werden:
Für Template tpl_modified, tpl_modified_nova & tpl_modified_responsive:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/module/popup_content.html /templates/tpl_modified/module/popup_coupon_help.html /templates/tpl_modified/module/popup_search_help.html /templates/tpl_modified_nova/module/popup_content.html /templates/tpl_modified_nova/module/popup_coupon_help.html /templates/tpl_modified_nova/module/popup_search_help.html /templates/tpl_modified_responsive/module/popup_content.html /templates/tpl_modified_responsive/module/popup_coupon_help.html /templates/tpl_modified_responsive/module/popup_search_help.html
Suche:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet.css" />
Ersetze mit:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet{if $smarty.const.COMPRESS_STYLESHEET == 'true'}.min{/if}.css" />
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/module/print_order.html /templates/tpl_modified/module/print_product_info.html /templates/tpl_modified_nova/module/print_order.html /templates/tpl_modified_nova/module/print_product_info.html /templates/tpl_modified_responsive/module/print_order.html /templates/tpl_modified_responsive/module/print_product_info.html
Suche:
<!DOCTYPE html>
<html>
Ersetze mit:
<!DOCTYPE html{$doctype}>
<html {$html_params}>
Suche:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet.css" />
Ersetze mit:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet{if $smarty.const.COMPRESS_STYLESHEET == 'true'}.min{/if}.css" />
Für Template xtc5:
Die folgenden Dateien wie folgt bearbeiten:
/templates/xtc5/module/popup_content.html /templates/xtc5/module/popup_coupon_help.html /templates/xtc5/module/popup_search_help.html
Suche:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet.css" />
Ersetze mit:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet{if $smarty.const.COMPRESS_STYLESHEET == 'true'}.min{/if}.css" />
Die folgenden Dateien wie folgt bearbeiten:
/templates/xtc5/module/print_order.html /templates/xtc5/module/print_product_info.html
Suche:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Ersetze mit:
<!DOCTYPE html{$doctype}>
<html {$html_params}>
Suche:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet.css" />
Ersetze mit:
<link rel="stylesheet" type="text/css" href="{$tpl_path}stylesheet{if $smarty.const.COMPRESS_STYLESHEET == 'true'}.min{/if}.css" />
Möglichkeit der Verwendung einer tpl_custom_bottom.css 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/general_bottom.css.php
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/css/general_bottom.css.php
Suche:
$css_min = DIR_TMPL_CSS.'tpl_plugins.min.css';
Füge davor ein:
if (is_file(DIR_FS_CATALOG.DIR_TMPL_CSS.'tpl_custom_bottom.css')) {
array_push($css_array, DIR_TMPL_CSS.'tpl_custom_bottom.css');
}
Fehlendes rel-Attribut, Klassenname und Sprachdeklaration für Title Tags in tpl_modified_nova[Bearbeiten]
- optional
Betrifft nur das Templates 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/listing_filter.html
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/listing_filter.html
Suche (2x):
<a rel="nofollow" class="tags_bar_reset" href="{$LINK_FILTER_RESET}" title="Reset">{#text_filter_reset#}</a>
Ersetze mit:
<a rel="nofollow" class="tags_bar_reset" href="{$LINK_FILTER_RESET}" title="{#text_filter_reset#}">{#text_filter_reset#}</a>
Suche:
<div class="listing_filter_selected_item"><a title="{#listing_filter_text_delete#}" href="{$filter_data.LINK}"><span>{$filter_data.NAME}</span></a></div>
Ersetze mit:
<div class="listing_filter_selected_item"><a rel="nofollow" class="tags_bar_reset_item" title="{#listing_filter_text_delete#}" href="{$filter_data.LINK}"><span>{$filter_data.NAME}</span></a></div>
Anzeige des Gutschein-/Coupon-Eingabefeldes in Warenkorb-Box nur bei aktiviertem ot_gv.php/ot_coupon.php Modul[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_nova/source/boxes/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 folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/source/boxes/shopping_cart.php /templates/tpl_modified_nova/source/boxes/cart.php /templates/tpl_modified_responsive/source/boxes/shopping_cart.php /templates/xtc5/source/boxes/shopping_cart.php
Suche:
$box_smarty->assign('ACTIVATE_GIFT', ACTIVATE_GIFT_SYSTEM == 'true' ? 'true' : false);
Ersetze mit:
$box_smarty->assign('ACTIVATE_GIFT', ((ACTIVATE_GIFT_SYSTEM == 'true' && ((defined('MODULE_ORDER_TOTAL_GV_STATUS') && MODULE_ORDER_TOTAL_GV_STATUS == 'true') || (defined('MODULE_ORDER_TOTAL_COUPON_STATUS') && MODULE_ORDER_TOTAL_COUPON_STATUS == 'true'))) ? 'true' : false));
VPE in Warenkorb, Bestellbestätigungs-Seite & Bestellbestätigungs E-Mails anzeigen sowie fehlende Artikelnummer & Lieferzeit in Warenkorb für Template tpl_modified, tpl_modified_responsive & xtc5 ergänzt[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.txt /templates/tpl_modified/mail/german/order_mail_step.html /templates/tpl_modified/mail/german/order_mail_step.txt /templates/tpl_modified/module/checkout_confirmation.html /templates/tpl_modified/module/order_details.html /templates/tpl_modified_nova/mail/english/order_mail.html /templates/tpl_modified_nova/mail/english/order_mail.txt /templates/tpl_modified_nova/mail/english/order_mail_step.html /templates/tpl_modified_nova/mail/english/order_mail_step.txt /templates/tpl_modified_nova/mail/german/order_mail.html /templates/tpl_modified_nova/mail/german/order_mail.txt /templates/tpl_modified_nova/mail/german/order_mail_step.html /templates/tpl_modified_nova/mail/german/order_mail_step.txt /templates/tpl_modified_nova/module/checkout_confirmation.html /templates/tpl_modified_nova/module/order_details.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.txt /templates/tpl_modified_responsive/mail/german/order_mail_step.html /templates/tpl_modified_responsive/mail/german/order_mail_step.txt /templates/tpl_modified_responsive/module/checkout_confirmation.html /templates/tpl_modified_responsive/module/order_details.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/checkout_confirmation.html /templates/xtc5/module/order_details.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/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
Suche:
{if $order_values.PRODUCTS_ATTRIBUTES neq ''}<div style="padding: 4px 0px 4px 0px;"><em>{$order_values.PRODUCTS_ATTRIBUTES}</em></div>{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE neq ''}<div style="padding: 4px 0px 4px 0px;">{$order_values.PRODUCTS_VPE}</div>{/if}
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/mail/german/order_mail.txt /templates/tpl_modified/mail/german/order_mail_step.txt
Suche:
{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE != ''}{$order_values.PRODUCTS_VPE}
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified/module/checkout_confirmation.html
Suche:
{if $data.shipping_time}<div class="shipping">{$smarty.const.SHIPPING_TIME} {$data.shipping_time}</div>{/if}
Füge davor ein:
{if $data.vpe}<div class="shipping">{$data.vpe}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified/module/order_details.html
Suche:
{if $module_data.BUTTON_WISHLIST != ''}<span class="ord_wishlist">« {$module_data.BUTTON_WISHLIST}</span>{/if}
Füge davor ein:
{if $module_data.PRODUCTS_VPE}<div class="shipping">{$module_data.PRODUCTS_VPE}</div>{/if}
{if $module_data.PRODUCTS_MODEL}<div class="shipping"><strong>{$smarty.const.HEADER_MODEL}:</strong> {$module_data.PRODUCTS_MODEL}</div>{/if}
{if $module_data.PRODUCTS_SHIPPING_TIME}<div class="shipping"><strong>{$smarty.const.SHIPPING_TIME}</strong> {$module_data.PRODUCTS_SHIPPING_TIME}</div>{/if}
Für Template tpl_modified_nova:
Die folgenden Dateien wie folgt bearbeiten:
/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
Suche:
{if $order_values.PRODUCTS_ATTRIBUTES != ''}<div style="padding: 4px 0px 4px 0px;"><em>{$order_values.PRODUCTS_ATTRIBUTES}</em></div>{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE neq ''}<div style="padding: 4px 0px 4px 0px;">{$order_values.PRODUCTS_VPE}</div>{/if}
Die folgenden Dateien wie folgt bearbeiten:
/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
Suche:
{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE != ''}{$order_values.PRODUCTS_VPE}
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/checkout_confirmation.html
Suche:
{if $data.model || $data.shipping_time}
Ersetze mit:
{if $data.model || $data.shipping_time || $data.vpe}
Suche:
{if $data.model}<div class="of_infoline"><strong>{$smarty.const.HEADER_MODEL}:</strong> {$data.model}</div>{/if}
Füge davor ein:
{if $data.vpe}<div class="of_infoline">{$data.vpe}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/order_details.html
Suche:
{if $module_data.PRODUCTS_MODEL || $module_data.PRODUCTS_SHIPPING_TIME}
Ersetze mit:
{if $module_data.PRODUCTS_MODEL || $module_data.PRODUCTS_SHIPPING_TIME || $module_data.PRODUCTS_VPE}
Suche:
{if $module_data.PRODUCTS_MODEL}<div class="of_infoline"><strong>{$smarty.const.HEADER_MODEL}:</strong> {$module_data.PRODUCTS_MODEL}</div>{/if}
Füge davor ein:
{if $module_data.PRODUCTS_VPE}<div class="of_infoline">{$module_data.PRODUCTS_VPE}</div>{/if}
Für Template tpl_modified_responsive:
Die folgenden Dateien wie folgt bearbeiten:
/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_ATTRIBUTES neq ''}<div style="padding: 4px 0px 4px 0px;"><em>{$order_values.PRODUCTS_ATTRIBUTES}</em></div>{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE neq ''}<div style="padding: 4px 0px 4px 0px;">{$order_values.PRODUCTS_VPE}</div>{/if}
Die folgenden Dateien wie folgt bearbeiten:
/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
Suche:
{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE != ''}{$order_values.PRODUCTS_VPE}
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/checkout_confirmation.html
Suche:
<div class="ol_model">{$smarty.const.HEADER_MODEL}: {$data.model}</div>
Füge davor ein:
{if $data.vpe}<div class="ol_shipping">{$data.vpe}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/order_details.html
Suche:
{if $module_data.BUTTON_WISHLIST != ''}<span class="ord_wishlist"><i class="fas fa-angle-left"></i>{$module_data.BUTTON_WISHLIST}</span>{/if}
Füge davor ein:
{if $module_data.PRODUCTS_VPE}<div class="ol_model">{$module_data.PRODUCTS_VPE}</div>{/if}
{if $module_data.PRODUCTS_MODEL}<div class="ol_model"><strong>{$smarty.const.HEADER_MODEL}:</strong> {$module_data.PRODUCTS_MODEL}</div>{/if}
{if $module_data.PRODUCTS_SHIPPING_TIME}<div class="ol_shipping"><strong>{$smarty.const.SHIPPING_TIME}</strong> {$module_data.PRODUCTS_SHIPPING_TIME}</div>{/if}
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 /templates/xtc5/mail/german/order_mail.html /templates/xtc5/mail/german/order_mail_step.html
Suche:
{if $order_values.PRODUCTS_ORDER_DESCRIPTION neq ''}<br />{$order_values.PRODUCTS_ORDER_DESCRIPTION}{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE neq ''}<br />{$order_values.PRODUCTS_VPE}{/if}
Die folgenden Dateien wie folgt bearbeiten:
/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
Suche:
{if $order_values.PRODUCTS_ORDER_DESCRIPTION != ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}
{/if}
Füge danach ein:
{if $order_values.PRODUCTS_VPE != ''}{$order_values.PRODUCTS_VPE}
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/checkout_confirmation.html
Suche:
{if $data.shipping_time}<br /><span class="nobr small">{$smarty.const.SHIPPING_TIME} {$data.shipping_time}</span>{/if}
Füge davor ein:
{if $data.vpe}<br /><span class="nobr small">{$data.vpe}</span>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/order_details.html
Suche:
{if $module_data.BUTTON_WISHLIST != ''}« {$module_data.BUTTON_WISHLIST}{/if}
Füge davor ein:
{if $module_data.PRODUCTS_VPE}<span class="nobr small">{$module_data.PRODUCTS_VPE}</span><br />{/if}
{if $module_data.PRODUCTS_MODEL}<span class="nobr small"><strong>{$smarty.const.HEADER_MODEL}:</strong> {$module_data.PRODUCTS_MODEL}</span><br />{/if}
{if $module_data.PRODUCTS_SHIPPING_TIME}<span class="nobr small"><strong>{$smarty.const.SHIPPING_TIME}</strong> {$module_data.PRODUCTS_SHIPPING_TIME}</span><br />{/if}
Fehlende Abfrage für MAX_DISPLAY_NEW_PRODUCTS ergänzt in tpl_modified_nova[Bearbeiten]
- optional
Betrifft nur das Templates 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/whats_new.php
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/source/boxes/whats_new.php
Suche:
if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_whatsnew.html', $cache_id) || !$cache) {
// get random product data
$whats_new_query = xtDBquery("SELECT DISTINCT ".$product->default_select."
FROM ".TABLE_PRODUCTS." 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 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
" . PRODUCTS_CONDITIONS_P . "
" . $products_id . "
" . $days . "
ORDER BY p.products_date_added DESC, p.products_id
LIMIT ".MAX_RANDOM_SELECT_NEW);
$box_content = array();
if (xtc_db_num_rows($whats_new_query, true) > 0) {
$content_array = array();
while ($whats_new = xtc_db_fetch_array($whats_new_query, true)) {
$content_array[] = $whats_new;
}
shuffle($content_array);
$content_array = array_slice($content_array, 0, MAX_PRODUCTS_BOX);
foreach ($content_array as $whats_new) {
$box_content[] = $product->buildDataArray($whats_new);
}
}
$box_smarty->assign('BOX_CONTENT', $box_content);
$box_smarty->assign('LINK_NEW_PRODUCTS', xtc_href_link(FILENAME_PRODUCTS_NEW));
}
Ersetze mit:
if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_whatsnew.html', $cache_id) || !$cache) {
// get random product data
if (MAX_DISPLAY_NEW_PRODUCTS != '0' || $current_category_id != 0) {
$whats_new_query = xtDBquery("SELECT DISTINCT ".$product->default_select."
FROM ".TABLE_PRODUCTS." 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 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
" . PRODUCTS_CONDITIONS_P . "
" . $products_id . "
" . $days . "
ORDER BY p.products_date_added DESC, p.products_id
LIMIT ".MAX_RANDOM_SELECT_NEW);
$box_content = array();
if (xtc_db_num_rows($whats_new_query, true) > 0) {
$content_array = array();
while ($whats_new = xtc_db_fetch_array($whats_new_query, true)) {
$content_array[] = $whats_new;
}
shuffle($content_array);
$content_array = array_slice($content_array, 0, MAX_PRODUCTS_BOX);
foreach ($content_array as $whats_new) {
$box_content[] = $product->buildDataArray($whats_new);
}
}
$box_smarty->assign('BOX_CONTENT', $box_content);
$box_smarty->assign('LINK_NEW_PRODUCTS', xtc_href_link(FILENAME_PRODUCTS_NEW));
}
}
Korrektur der Cache ID in Box miscellaneous.php[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/source/boxes/miscellaneous.php /templates/tpl_modified_nova/source/boxes/miscellaneous.php /templates/tpl_modified_responsive/source/boxes/miscellaneous.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/tpl_modified/source/boxes/miscellaneous.php /templates/tpl_modified_nova/source/boxes/miscellaneous.php /templates/tpl_modified_responsive/source/boxes/miscellaneous.php
Suche:
$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id'].'coP:'.$coPath);
Ersetze mit:
$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status_id']);
[Bearbeiten]
- optional
Betrifft nur die Templates tpl_modified_nova, tpl_modified_responsive, tpl_modified_responsive_1 & tpl_modified_responsive_2
Aus dem original tpl_modified_nova bzw. tpl_modified_responsive Template sind die folgenden Dateien ins eigene Template in die selben Ordner zu kopieren:
/templates/tpl_modified_nova/css/jquery.sumoselect.css /templates/tpl_modified_responsive/css/jquery.sumoselect.css
Alternativ können die Dateien auch manuell wie folgt ergänzt werden:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified_nova/css/jquery.sumoselect.css /templates/tpl_modified_responsive/css/jquery.sumoselect.css
Suche:
.SumoSelect > .optWrapper > .options li.opt.disabled * { opacity: 0.5; }
Füge danach ein:
.SumoSelect > .optWrapper > .options li.opt.sel { background-color: #eee; }
Zusätzliche Kategorie- & Hersteller-Kurzbeschreibung[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/product_listing/product_listing_v1.html /templates/tpl_modified/module/sub_categories_listing.html /templates/tpl_modified/stylesheet.css /templates/tpl_modified_nova/module/categorie_listing/categorie_listing.html /templates/tpl_modified_nova/module/product_listing/product_listing_v1.html /templates/tpl_modified_responsive/module/categorie_listing/categorie_listing.html /templates/tpl_modified_responsive/module/product_listing/product_listing_v1.html /templates/tpl_modified_responsive/stylesheet.css /templates/xtc5/module/categorie_listing/categorie_listing.html /templates/xtc5/module/product_listing/product_listing_v1.html /templates/xtc5/module/sub_categories_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/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_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_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_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}
Suche:
{if isset($MODULE_new_products)}{$MODULE_new_products}{/if}
Füge danach ein:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description bottom cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified/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_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_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_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}
Suche:
{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}
<div class="manu_description cf">
{if $MANUFACTURER_IMAGE}<img class="manu_image{if !$MANUFACTURER_DESCRIPTION} mi_nomargin{/if}" src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER_NAME|onlytext}" />{/if}
{if $MANUFACTURER_DESCRIPTION}{$MANUFACTURER_DESCRIPTION}{/if}
</div>
{/if}
Ersetze mit:
{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
|| (isset($MANUFACTURER_SHORT_DESCRIPTION) && $MANUFACTURER_SHORT_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}
<div class="manu_description cf">
{if $MANUFACTURER_IMAGE}<img class="manu_image{if !$MANUFACTURER_DESCRIPTION && !$MANUFACTURER_SHORT_DESCRIPTION} mi_nomargin{/if}" src="{$MANUFACTURER_IMAGE}" alt="{$MANUFACTURER_NAME|onlytext}" />{/if}
{if $MANUFACTURER_SHORT_DESCRIPTION}{$MANUFACTURER_SHORT_DESCRIPTION}{else if $MANUFACTURER_DESCRIPTION}{$MANUFACTURER_DESCRIPTION}{/if}
</div>
{/if}
Suche:
{$PAGINATION}
<div class="listingcontainer cf">
{include file="module/includes/product_listing_include.html"}
</div>
{$PAGINATION}
Füge danach ein:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description bottom cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified/module/sub_categories_listing.html
Suche:
{* <span class="subcat_desc">{$categories_data.CATEGORIES_DESCRIPTION}</span> *}
Ersetze mit:
{* <span class="subcat_desc">{if $categories_data.CATEGORIES_SHORT_DESCRIPTION}{$categories_data.CATEGORIES_SHORT_DESCRIPTION}{else}{$categories_data.CATEGORIES_DESCRIPTION}{/if}</span> *}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified/stylesheet.css
Suche:
.cat_description {
padding: 0px 0px 25px 0px;
}
Füge danach ein:
.cat_description.bottom {
padding: 25px 0px 0px 0px;
}
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/categorie_listing/categorie_listing.html
Suche:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Ersetze mit:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Suche:
{if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description_text cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
Ersetze mit:
{if (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
}
<div class="cat_description_text cf">
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}
Suche:
{if isset($MODULE_new_products)}{$MODULE_new_products}{/if}
Füge danach ein:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description mt_50 mb_0">
<div class="cat_description_text cf">
{$CATEGORIES_DESCRIPTION}
</div>
</div>
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/product_listing/product_listing_v1.html
Suche:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Ersetze mit:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Suche:
{if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description_text cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
Ersetze mit:
{if (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
}
<div class="cat_description_text cf">
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
</div>
{/if}
Suche:
{if isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != ''}
Ersetze mit:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description mt_50 mb_0">
<div class="cat_description_text cf">
{$CATEGORIES_DESCRIPTION}
</div>
</div>
{/if}
{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
|| (isset($MANUFACTURER_SHORT_DESCRIPTION) && $MANUFACTURER_SHORT_DESCRIPTION != '')
}
Suche:
<div class="cat_description_text cf">{$MANUFACTURER_DESCRIPTION}</div>
Ersetze mit:
<div class="cat_description_text cf">{if $MANUFACTURER_SHORT_DESCRIPTION}{$MANUFACTURER_SHORT_DESCRIPTION}{else if $MANUFACTURER_DESCRIPTION}{$MANUFACTURER_DESCRIPTION}{/if}</div>
Für Template tpl_modified_responsive:
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 != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Ersetze mit:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Suche:
{if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
Ersetze mit:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
Suche:
{if isset($MODULE_new_products)}{$MODULE_new_products}{/if}
Füge danach ein:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description bottom cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
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 != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Ersetze mit:
{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')
|| (isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '')
|| (isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != '')
|| (isset($CATEGORIES_IMAGE_MOBILE) && $CATEGORIES_IMAGE_MOBILE != '')
}
Suche:
{if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
Ersetze mit:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}{$CATEGORIES_SHORT_DESCRIPTION}{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}{$CATEGORIES_DESCRIPTION}{/if}
Suche:
{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
|| (isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != '')
|| (isset($MANUFACTURER_NAME) && $MANUFACTURER_NAME != '')
|| (isset($MANUFACTURER_TITLE) && $MANUFACTURER_TITLE != '')}
Ersetze mit:
{if (isset($MANUFACTURER_DESCRIPTION) && $MANUFACTURER_DESCRIPTION != '')
|| (isset($MANUFACTURER_SHORT_DESCRIPTION) && $MANUFACTURER_SHORT_DESCRIPTION != '')
|| (isset($MANUFACTURER_IMAGE) && $MANUFACTURER_IMAGE != '')
|| (isset($MANUFACTURER_NAME) && $MANUFACTURER_NAME != '')
|| (isset($MANUFACTURER_TITLE) && $MANUFACTURER_TITLE != '')}
Suche:
{if $MANUFACTURER_DESCRIPTION}{$MANUFACTURER_DESCRIPTION}{/if}
Ersetze mit:
{if $MANUFACTURER_SHORT_DESCRIPTION}{$MANUFACTURER_SHORT_DESCRIPTION}{else if $MANUFACTURER_DESCRIPTION}{$MANUFACTURER_DESCRIPTION}{/if}
Suche:
{$PAGINATION}
<div class="{if $smarty.get.keywords|htmlentities != ''}listingcontainer_full{else}listingcontainer{/if} cf">
{include file="module/includes/product_listing_include.html"}
</div>
{$PAGINATION}
Füge danach ein:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != '' && isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}
<div class="cat_description bottom cf">
{$CATEGORIES_DESCRIPTION}
</div>
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/stylesheet.css
Suche:
.cat_description {
padding: 0px 0px 25px 0px;
}
Füge danach ein:
.cat_description.bottom {
padding: 25px 0px 0px 0px;
}
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/categorie_listing/categorie_listing.html
Suche:
{if $CATEGORIES_DESCRIPTION}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
Ersetze mit:
{if isset($CATEGORIES_SHORT_DESCRIPTION) && $CATEGORIES_SHORT_DESCRIPTION != ''}<div>{$CATEGORIES_SHORT_DESCRIPTION}</div>{else if isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != ''}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
Suche:
{if isset($MODULE_new_products)}{$MODULE_new_products}{/if}
Füge danach ein:
<div class="cf">
{if $CATEGORIES_SHORT_DESCRIPTION && $CATEGORIES_DESCRIPTION}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
</div>
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/product_listing/product_listing_v1.html
Suche:
{if $CATEGORIES_DESCRIPTION}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
Ersetze mit:
{if $CATEGORIES_SHORT_DESCRIPTION}<div>{$CATEGORIES_SHORT_DESCRIPTION}</div>{else if $CATEGORIES_DESCRIPTION}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
Suche:
{/foreach}
</table>
{$PAGINATION}
Füge danach ein:
<div class="cf">
{if $CATEGORIES_SHORT_DESCRIPTION && $CATEGORIES_DESCRIPTION}<div>{$CATEGORIES_DESCRIPTION}</div>{/if}
</div>
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/sub_categories_listing.html
Suche:
<td align="center">{$categories_data.CATEGORIES_DESCRIPTION}</td>
Ersetze mit:
<td align="center">{if $categories_data.CATEGORIES_SHORT_DESCRIPTION}{$categories_data.CATEGORIES_SHORT_DESCRIPTION}{else}{$categories_data.CATEGORIES_DESCRIPTION}{/if}</td>
Zusätzliche Hersteller-Beschreibung für ProdSVO[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_nova/module/product_info/product_info_v1_tabs.html /templates/tpl_modified_nova/module/product_info/product_info_v2_accordion.html /templates/tpl_modified_nova/module/product_info/product_info_v3_plain.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 Template tpl_modified & tpl_modified_responsive:
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:
{if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div>{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}</div>{/if}
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/module/product_info/product_info_v1.html /templates/tpl_modified_responsive/module/product_info/product_info_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<h4 class="detailbox">{#products_desc#}</h4><div class="pd_description" itemprop="description">{$PRODUCTS_DESCRIPTION}</div><br />{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div class="pd_description">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}</div>{/if}
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html /templates/tpl_modified_responsive/module/product_info/product_info_x_accordion_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<li>{#description#}</li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<li>{#description#}</li>{/if}
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div itemprop="description">{$PRODUCTS_DESCRIPTION}{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div>{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}</div></div>{/if}
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/product_info/product_info_v1_tabs.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<li id="description">{#products_desc#}</li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<li id="description">{#products_desc#}</li>{/if}
Suche:
<div class="resp-tabs-container">
{if $PRODUCTS_DESCRIPTION != ''}
Ersetze mit:
<div class="resp-tabs-container">
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}
Suche:
<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}
{if $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description_content cf{if $PRODUCTS_DESCRIPTION != ''} mt_30{/if}">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/product_info/product_info_v2_accordion.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<li>{#products_desc#}</li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<li>{#products_desc#}</li>{/if}
Suche:
<div class="resp-tabs-container">
{if $PRODUCTS_DESCRIPTION != ''}
Ersetze mit:
<div class="resp-tabs-container">
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}
Suche:
<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}
{if $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description_content cf{if $PRODUCTS_DESCRIPTION != ''} mt_30{/if}">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/product_info/product_info_v3_plain.html
Suche:
<div class="pd_plain">
{if $PRODUCTS_DESCRIPTION != ''}
Ersetze mit:
<div class="pd_plain">
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}
Suche:
<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description_content cf" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}
{if $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description_content cf{if $PRODUCTS_DESCRIPTION != ''} mt_30{/if}">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/product_info/product_info_tabs_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<li><a href="#tab_description">{#description#}</a></li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<li><a href="#tab_description">{#description#}</a></li>{/if}
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<div id="tab_description">{$PRODUCTS_DESCRIPTION}</div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<div id="tab_description">{$PRODUCTS_DESCRIPTION}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}{$MANUFACTURER_ADD_DESCRIPTION}{/if}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/product_info/product_info_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<div>{$PRODUCTS_DESCRIPTION}</div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<div>{$PRODUCTS_DESCRIPTION}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}{$MANUFACTURER_ADD_DESCRIPTION}{/if}</div>{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/product_info/product_info_x_accordion_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != ''}<h3><a href="#">{#description#}</a></h3><div>{$PRODUCTS_DESCRIPTION}</div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<h3><a href="#">{#description#}</a></h3><div>{$PRODUCTS_DESCRIPTION}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}{$MANUFACTURER_ADD_DESCRIPTION}{/if}</div>{/if}
Änderungen ab Version 3.1.1[Bearbeiten]
Abfrage auf Vorhandensein des Banner-Titels ergänzt für reduzierten HTML-Code[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/module/banners.html
Alternativ können die Dateien auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/index.html
Suche (2x):
<span class="slider_item_content">
{$slider.TITLE}
</span>
Ersetze mit:
{if $slider.TITLE != ''}
<span class="slider_item_content">{$slider.TITLE}</span>
{/if}
Suche (2x):
<span class="slider_item_content">
{$slider.TITLE}
</span>
Ersetze mit:
{if $slider.TITLE != ''}
<span class="slider_item_content">{$slider.TITLE}</span>
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/banners.html
Suche (2x):
<span class="banner_item_content">
<span>{$banner_data.TITLE}</span>
</span>
Ersetze mit:
{if $banner_data.TITLE != ''}
<span class="banner_item_content"><span>{$banner_data.TITLE}</span></span>
{/if}
Suche (2x):
<span class="banner_item_content">
<span>{$banner_data.TITLE}</span>
</span>
Ersetze mit:
{if $banner_data.TITLE != ''}
<span class="banner_item_content"><span>{$banner_data.TITLE}</span></span>
{/if}
Fehlerhaft geschlossenes DIV in Hersteller-Beschreibung für ProdSVO in tpl_modified_responsive korrigiert[Bearbeiten]
- zwingend notwendig
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 den selben Ordner zu kopieren:
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/product_info/product_info_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div class="pd_description">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}</div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description" itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div class="pd_description">{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}{/if}
Neue Funktion get_admin_access() für Performance Optimierung[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/source/boxes/admin.php /templates/tpl_modified_nova/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 folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/source/boxes/admin.php /templates/tpl_modified_nova/source/boxes/admin.php /templates/tpl_modified_responsive/source/boxes/admin.php
Suche:
$admin_access_query = xtc_db_query("SELECT * FROM " . TABLE_ADMIN_ACCESS . " WHERE customers_id = ".(int)$_SESSION['customer_id']);
$admin_access = xtc_db_fetch_array($admin_access_query);
Ersetze mit:
require_once(DIR_FS_INC.'get_admin_access.inc.php');
$admin_access = get_admin_access($_SESSION['customer_id']);
Aufzählung in Bestseller-Box 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/source/boxes/best_sellers.php /templates/tpl_modified_nova/source/boxes/best_sellers.php /templates/tpl_modified_responsive/source/boxes/best_sellers.php /templates/xtc5/source/boxes/best_sellers.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/tpl_modified/source/boxes/best_sellers.php /templates/tpl_modified_nova/source/boxes/best_sellers.php /templates/tpl_modified_responsive/source/boxes/best_sellers.php /templates/xtc5/source/boxes/best_sellers.php
Suche:
$rows ++;
$best_sellers = array_merge($best_sellers, array('ID' => xtc_row_number_format($rows)));
$box_content[] = $product->buildDataArray($best_sellers);
Ersetze mit:
$box_content[$rows] = $product->buildDataArray($best_sellers);
$box_content[$rows] = array_merge($box_content[$rows], array('ID' => xtc_row_number_format($rows + 1), 'COUNT' => xtc_row_number_format($rows + 1)));
$rows ++;
Unnötige SQL-Abfrage in Bestseller-Box vermeiden, wenn MAX_DISPLAY_BESTSELLERS = 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/source/boxes/best_sellers.php /templates/tpl_modified_nova/source/boxes/best_sellers.php /templates/tpl_modified_responsive/source/boxes/best_sellers.php /templates/xtc5/source/boxes/best_sellers.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/tpl_modified/source/boxes/best_sellers.php /templates/tpl_modified_nova/source/boxes/best_sellers.php /templates/tpl_modified_responsive/source/boxes/best_sellers.php /templates/xtc5/source/boxes/best_sellers.php
Suche:
if (MIN_DISPLAY_BESTSELLERS > 0 && (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_best_sellers.html', $cache_id) || !$cache)) {
Ersetze mit:
if (MIN_DISPLAY_BESTSELLERS > 0
&& MAX_DISPLAY_BESTSELLERS > 0
&& (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_best_sellers.html', $cache_id) || !$cache)
)
{
Hover bei HTML Text-Bannern optimiert in 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/module/banners.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/banners.html
Suche:
{$banner_data.TEXT}
Ersetze mit:
<div class="banner_html_text">
{$banner_data.TEXT}
</div>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/stylesheet.css
Suche:
.banner_item_image_inner:hover {
background:#000;
}
Füge danach ein:
.banner_item_image_inner:has(.banner_html_text):hover {
background:rgba(0,0,0,0.10);
}
Verwendung von jQuery Selektoren[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/javascript/extra/default.js.php /templates/tpl_modified_nova/javascript/extra/default.js.php /templates/tpl_modified_nova/javascript/extra/tabs.js.php /templates/tpl_modified_responsive/javascript/extra/default.js.php /templates/tpl_modified_responsive/javascript/extra/tabs.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/default.js.php
Suche:
$('#toggle_cart').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_cart', function() {
Suche:
$('#toggle_wishlist').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_wishlist', function() {
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/javascript/extra/default.js.php
Suche:
$(".topscroll").click(function(event) {
Ersetze mit:
$('body').on('click', '.topscroll', function(event) {
Suche:
$(".listing_topscroll").click(function(event) {
Ersetze mit:
$('body').on('click', '.listing_topscroll', function(event) {
Suche:
$(".listing_bottomscroll").click(function(event) {
Ersetze mit:
$('body').on('click', '.listing_bottomscroll', function(event) {
Suche:
$('#toggle_account').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_account', function() {
Suche:
$('#toggle_settings').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_settings', function() {
Suche:
$('#toggle_filter').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_filter', function() {
Suche:
$('html').click(function(e){
Ersetze mit:
$('html').on('click', function(e){
Suche:
$('#search_short').click(function(event) {
Ersetze mit:
$('#search_short').on('click', function(event) {
Suche:
$('#search_closer').click(function(event) {
Ersetze mit:
$('#search_closer').on('click', function(event) {
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/javascript/extra/tabs.js.php
Suche:
$('.cus_check_gift label').click(function() {
Ersetze mit:
$('.cus_check_gift label').on('click', function() {
Für Template tpl_modified_responsive:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/javascript/extra/default.js.php
Suche:
$('#toggle_cart').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_cart', function() {
Suche:
$('#toggle_wishlist').click(function() {
Ersetze mit:
$('body').on('click', '#toggle_wishlist', function() {
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/javascript/extra/tabs.js.php
Suche:
$('.cus_check_gift label').click(function() {
Ersetze mit:
$('.cus_check_gift label').on('click', function() {
Korrektur der Cache ID in Box languages.php für abweichende Sprachen-Berechtigungen des Admins[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/languages.php /templates/tpl_modified_nova/source/boxes/languages.php /templates/tpl_modified_responsive/source/boxes/languages.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/tpl_modified/source/boxes/languages.php /templates/tpl_modified_nova/source/boxes/languages.php /templates/tpl_modified_responsive/source/boxes/languages.php /templates/xtc5/source/boxes/languages.php
Suche:
$cache_id = md5('lID:'.$_SESSION['language'].'|site:'.basename($PHP_SELF).'|params:'.xtc_get_all_get_params());
Ersetze mit:
$cache_id = md5('lID:'.$_SESSION['language'].'|csID:'.$_SESSION['customers_status']['customers_status'].'|site:'.basename($PHP_SELF).'|params:'.xtc_get_all_get_params());
Änderungen ab Version 3.1.2[Bearbeiten]
[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.html /templates/tpl_modified_nova/boxes/box_login.html /templates/tpl_modified_nova/module/account.html /templates/tpl_modified_nova/module/account_navigation.html /templates/tpl_modified_nova/source/boxes/login.php /templates/tpl_modified_responsive/module/account.html /templates/xtc5/module/account.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/account.html
Suche:
{if !$products_history || !isset($smarty.session.customer_id)}
Ersetze mit:
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0 }
Suche:
{if $LINK_LOGIN}
<p><a class="black" href="{$LINK_LOGIN}"><strong>{#text_login#}</strong></a></p>
{/if}
Ersetze mit:
{if $LINK_LOGIN}
<p><a class="black" href="{$LINK_LOGIN}"><strong>{#text_login#}</strong></a></p>
{/if}
<br />
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/boxes/box_login.html
Suche:
{if isset($IS_CUSTOMER) && $IS_CUSTOMER == true}
Ersetze mit:
{if (isset($smarty.session.account_type) && $smarty.session.account_type == 0) || ((isset($smarty.session.account_type) && $smarty.session.account_type == 1) && $smarty.const.GUEST_ACCOUNT_EDIT == 'true')}
Suche:
<li>
<a href="{$LINK_ADDRESS}" title="{#title_nav_address_book#}">
<span class="icon"><i class="fa-solid fa-address-card"></i></span><span class="title">{#title_nav_address_book#}</span>
</a>
</li>
Ersetze mit:
<li>
<a href="{$LINK_ADDRESS}" title="{#title_nav_address_book#}">
<span class="icon"><i class="fa-solid fa-address-card"></i></span><span class="title">{#title_nav_address_book#}</span>
</a>
</li>
{/if}
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/account.html
Suche:
{if !$products_history || !isset($smarty.session.customer_id)}
Ersetze mit:
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0 }
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/account_navigation.html
Suche:
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_PASSWORD) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_PASSWORD|xtc_href_link}" title="{#title_nav_password#}">
<span class="icon"><i class="fa-solid fa-key"></i></span><span class="title">{#title_nav_password#}</span>
</a>
</div>
<div class="navigation_item{if (strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_HISTORY) !== false) || (strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_HISTORY_INFO) !== false)} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_HISTORY|xtc_href_link}" title="{#title_nav_orders#}">
<span class="icon"><i class="fa-solid fa-cart-shopping"></i></span><span class="title">{#title_nav_orders#}</span>
</a>
</div>
{if $smarty.session.customer_id != 1}
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_DELETE) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_DELETE|xtc_href_link}" title="{#title_nav_account_delete#}">
<span class="icon"><i class="fa-solid fa-trash-can"></i></span><span class="title">{#title_nav_account_delete#}</span>
</a>
</div>
{/if}
{if 'MODULE_CHECKOUT_EXPRESS_STATUS'|defined && $smarty.const.MODULE_CHECKOUT_EXPRESS_STATUS == 'true'}
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_CHECKOUT_EXPRESS) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_CHECKOUT_EXPRESS|xtc_href_link}" title="{#title_nav_checkout_express#}">
<span class="icon"><i class="fa-solid fa-truck-fast"></i></span><span class="title">{#title_nav_checkout_express#}</span>
</a>
</div>
{/if}
Ersetze mit:
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0 }
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_PASSWORD) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_PASSWORD|xtc_href_link}" title="{#title_nav_password#}">
<span class="icon"><i class="fa-solid fa-key"></i></span><span class="title">{#title_nav_password#}</span>
</a>
</div>
<div class="navigation_item{if (strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_HISTORY) !== false) || (strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_HISTORY_INFO) !== false)} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_HISTORY|xtc_href_link}" title="{#title_nav_orders#}">
<span class="icon"><i class="fa-solid fa-cart-shopping"></i></span><span class="title">{#title_nav_orders#}</span>
</a>
</div>
{if $smarty.session.customer_id != 1}
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_DELETE) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_DELETE|xtc_href_link}" title="{#title_nav_account_delete#}">
<span class="icon"><i class="fa-solid fa-trash-can"></i></span><span class="title">{#title_nav_account_delete#}</span>
</a>
</div>
{/if}
{if 'MODULE_CHECKOUT_EXPRESS_STATUS'|defined && $smarty.const.MODULE_CHECKOUT_EXPRESS_STATUS == 'true'}
<div class="navigation_item{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_ACCOUNT_CHECKOUT_EXPRESS) !== false} selected{/if}">
<a href="{$smarty.const.FILENAME_ACCOUNT_CHECKOUT_EXPRESS|xtc_href_link}" title="{#title_nav_checkout_express#}">
<span class="icon"><i class="fa-solid fa-truck-fast"></i></span><span class="title">{#title_nav_checkout_express#}</span>
</a>
</div>
{/if}
{/if}
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/source/boxes/login.php
Entferne den folgenden Code:
$box_smarty->assign('IS_CUSTOMER', ($_SESSION['customers_status']['customers_status_id'] != DEFAULT_CUSTOMERS_STATUS_ID_GUEST) ? 1 : 0);
Für Template tpl_modified_responsive:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/account.html
Suche:
{if !$products_history || !isset($smarty.session.customer_id)}
Ersetze mit:
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0 }
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/account.html
Suche:
{if !$products_history || !isset($smarty.session.customer_id)}
Ersetze mit:
{if isset($smarty.session.account_type) && $smarty.session.account_type == 0 }
Erneute Ü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/javascript/extra/autocomplete.js.php /templates/tpl_modified_nova/javascript/extra/autocomplete.js.php /templates/tpl_modified_responsive/javascript/extra/autocomplete.js.php /templates/xtc5/javascript/extra/autocomplete.js.php
Für alle Templates gilt:
Die folgende Datei wie folgt bearbeiten:
/templates/TEMPLATENAME/javascript/extra/autocomplete.js.php
Inhalt der Datei ersetzen mit:
<?php
/* --------------------------------------------------------------
$Id: autocomplete.js.php 16205 2024-11-04 10:55:19Z GTB $
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' || (basename($PHP_SELF) != FILENAME_SHOPPING_CART && !strpos($PHP_SELF, 'checkout'))) { ?>
function ac_closing() {
setTimeout("$('#suggestions').slideUp();", 100);
}
<?php } ?>
<?php if (SEARCH_AC_STATUS == 'true') { ?>
var session_id = '<?php echo xtc_session_id(); ?>';
function ac_ajax_call(post_params) {
$.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(ac_decode(data.result));
$('#suggestions').slideDown();
} else {
$('#suggestions').slideUp();
}
}
}
});
}
function ac_delay(fn, ms) {
let timer = 0;
return function(args) {
clearTimeout(timer);
timer = setTimeout(fn.bind(this, args), ms || 0);
}
}
function ac_decode(encodedString) {
var textArea = document.createElement('textarea');
textArea.innerHTML = encodedString;
return textArea.value;
}
$('body').on('keydown paste cut input focus', '#inputString', ac_delay(function() {
if ($(this).length == 0) {
$('#suggestions').hide();
} else {
let post_params = $('#quick_find').serialize();
ac_ajax_call(post_params);
}
}, 500));
$('body').on('click', function (e) {
if ($(e.target).closest("#suggestions").length === 0
&& $(e.target).closest("#quick_find").length === 0
)
{
ac_closing();
}
});
<?php if(defined('SEARCH_AC_CATEGORIES') && SEARCH_AC_CATEGORIES == 'true') { ?>
$('body').on('change', '#cat_search', ac_delay(function() {
let post_params = $('#quick_find').serialize();
ac_ajax_call(post_params);
}, 500));
<?php } ?>
<?php } ?>
</script>
Änderungen ab Version 3.1.3[Bearbeiten]
JavaScript-Fehler in Template tpl_modified_nova korrigiert, wenn Shop "offline" gestellt ist[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/javascript/extra/mmenulight.js.php
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/javascript/extra/mmenulight.js.php
Suche:
if (strpos(basename($PHP_SELF), 'checkout') === false
|| strpos(basename($PHP_SELF), 'account_checkout_express') !== false
)
{
?>
<script>
Füge danach ein:
let mobilemenu = document.getElementById('mobile_menu');
if (mobilemenu !== null) {
Suche:
</script>
<?php
}
Füge davor ein:
}
URL Pfad für Ajax Calls 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/javascript/extra/get_states.js.php /templates/tpl_modified_nova/javascript/extra/get_states.js.php /templates/tpl_modified_responsive/javascript/extra/get_states.js.php /templates/xtc5/javascript/extra/get_states.js.php
Für alle Templates gilt:
Die folgende Datei wie folgt bearbeiten:
/templates/TEMPLATENAME/javascript/extra/get_states.js.php
Suche:
$.get('ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
Ersetze mit:
$.get('<?php echo DIR_WS_BASE; ?>ajax.php', {ext: 'get_states', country: selection, speed: 1}, function(data) {
Abfangen eines möglichen leeren DIV-Copntainers in 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:
<div class="flex_listing_categories">
{if isset($box_SUB_CATEGORIES)}{$box_SUB_CATEGORIES}{/if}
</div>
<div class="flex_listing_products">
{if isset($main_content)}{$main_content}{/if}
</div>
Ersetze mit:
{if isset($box_SUB_CATEGORIES)}
<div class="flex_listing_categories">
{$box_SUB_CATEGORIES}
</div>
<div class="flex_listing_products">
{if isset($main_content)}{$main_content}{/if}
</div>
{else}
{if isset($main_content)}{$main_content}{/if}
{/if}
Konstanten für Dateinamen in get_states.js.php 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/javascript/extra/get_states.js.php /templates/tpl_modified_nova/javascript/extra/get_states.js.php /templates/tpl_modified_responsive/javascript/extra/get_states.js.php /templates/xtc5/javascript/extra/get_states.js.php
Für alle Templates gilt:
Die folgende Datei wie folgt bearbeiten:
/templates/TEMPLATENAME/javascript/extra/get_states.js.php
Suche:
$state_pages = array(
'address_book_process.php',
'create_account.php',
'create_guest_account.php',
'checkout_shipping_address.php',
'checkout_payment_address.php'
);
Ersetze mit:
$state_pages = array(
FILENAME_ADDRESS_BOOK_PROCESS,
FILENAME_CREATE_ACCOUNT,
FILENAME_CREATE_GUEST_ACCOUNT,
FILENAME_CHECKOUT_SHIPPING_ADDRESS,
FILENAME_CHECKOUT_PAYMENT_ADDRESS,
);
Hinweis-Link für "Mein Schnellkauf" auf shopping_cart Seite ergänzt[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/shopping_cart.html /templates/tpl_modified_nova/module/shopping_cart.html /templates/tpl_modified_responsive/module/shopping_cart.html /templates/xtc5/module/shopping_cart.html
Für Template tpl_modified & tpl_modified_responsive:
Die folgenden Dateien wie folgt bearbeiten:
/templates/tpl_modified/module/shopping_cart.html /templates/tpl_modified_responsive/module/shopping_cart.html
Suche:
{if isset($ACTIVATE_EXPRESS_LINK)}<span class="express_info_cart"><a href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a></span>{/if}
Ersetze mit:
{if isset($ACTIVATE_EXPRESS_LINK)}
<span class="express_info_cart">
{if isset($EXPRESS_LINK)}{$EXPRESS_LINK}<br>{/if}
<a href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a>
</span>
{/if}
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/shopping_cart.html
Suche:
{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}
Ersetze mit:
{if isset($ACTIVATE_EXPRESS_LINK)}
<div class="font_small my_5" style="text-align:center;">
{if isset($EXPRESS_LINK)}{$EXPRESS_LINK|replace:"iframe":"arrow iframe"}<br>{/if}
<a class="arrow" href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a>
</div>
{/if}
Für Template xtc5:
Die folgende Datei wie folgt bearbeiten:
/templates/xtc5/module/shopping_cart.html
Suche:
{if isset($ACTIVATE_EXPRESS_LINK)}<p align="right" style="padding-right:70px;"><a href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a></p>{/if}
Ersetze mit:
{if isset($ACTIVATE_EXPRESS_LINK)}
<p align="right" style="padding-right:70px;">
{if isset($EXPRESS_LINK)}{$EXPRESS_LINK}<br>{/if}
<a href="{$ACTIVATE_EXPRESS_LINK}">{#checkout_express_activate#}</a>
</p>
{/if}
Funktion ac_closing in autocomplete.js.php immer verfügbar machen um JavaScript Fehler zu vermeiden[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/autocomplete.js.php /templates/tpl_modified_nova/javascript/extra/autocomplete.js.php /templates/tpl_modified_responsive/javascript/extra/autocomplete.js.php /templates/xtc5/javascript/extra/autocomplete.js.php
Für alle Templates gilt:
Die folgende Datei wie folgt bearbeiten:
/templates/TEMPLATENAME/javascript/extra/autocomplete.js.php
Suche:
<?php if (SEARCH_AC_STATUS == 'true' || (basename($PHP_SELF) != FILENAME_SHOPPING_CART && !strpos($PHP_SELF, 'checkout'))) { ?>
function ac_closing() {
setTimeout("$('#suggestions').slideUp();", 100);
}
<?php } ?>
Ersetze mit:
function ac_closing() {
setTimeout("$('#suggestions').slideUp();", 100);
}
Fehlerhafte Verwendung von return false in default.js.php in Template tpl_modified_nova vermeiden[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/javascript/extra/default.js.php
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/javascript/extra/default.js.php
Suche:
$('body').on('click', '.topscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
$('body').on('click', '.listing_topscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: $('.listing').offset().top - 120}, "slow");
return false;
});
$('body').on('click', '.listing_bottomscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: $('.listing').offset().top + $(".listing").outerHeight() - $(window).height() + 80}, "slow");
return false;
});
Ersetze mit:
$('body').on('click', '.topscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: 0 }, "slow");
});
$('body').on('click', '.listing_topscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: $('.listing').offset().top - 120}, "slow");
});
$('body').on('click', '.listing_bottomscroll', function(event) {
event.preventDefault();
$("html, body").animate({ scrollTop: $('.listing').offset().top + $(".listing").outerHeight() - $(window).height() + 80}, "slow");
});
Suche:
$(function() {
$('body').on('click', '#toggle_account', function() {
$('body').addClass('no_scroll');
$('.toggle_account').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
return false;
});
$('body').on('click', '#toggle_settings', function() {
$('body').addClass('no_scroll');
$('.toggle_settings').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
ac_closing();
return false;
});
$('body').on('click', '#toggle_filter', function() {
$('body').addClass('no_scroll');
$('.toggle_filter').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_settings').removeClass('active');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
ac_closing();
return false;
});
Ersetze mit:
$(function() {
$('body').on('click', '#toggle_account', function(event) {
event.preventDefault();
$('body').addClass('no_scroll');
$('.toggle_account').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
});
$('body').on('click', '#toggle_settings', function(event) {
event.preventDefault();
$('body').addClass('no_scroll');
$('.toggle_settings').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
ac_closing();
});
$('body').on('click', '#toggle_filter', function(event) {
event.preventDefault();
$('body').addClass('no_scroll');
$('.toggle_filter').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_settings').removeClass('active');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
ac_closing();
});
Suche:
$('body').on('click', '#toggle_cart', function() {
$('body').addClass('no_scroll');
$('.toggle_cart').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
return false;
});
Ersetze mit:
$('body').on('click', '#toggle_cart', function(event) {
event.preventDefault();
$('body').addClass('no_scroll');
$('.toggle_cart').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
});
Suche:
$('body').on('click', '#toggle_wishlist', function() {
$('body').addClass('no_scroll');
$('.toggle_wishlist').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
return false;
});
Ersetze mit:
$('body').on('click', '#toggle_wishlist', function(event) {
event.preventDefault();
$('body').addClass('no_scroll');
$('.toggle_wishlist').addClass('active');
$('.toggle_overlay').fadeIn('slow');
$('.toggle_cart').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
ac_closing();
});
Suche:
function close_search_field(event) {
event.stopPropagation();
$(".toggle_search").fadeOut("slow");
return false;
}
function show_search_field(event) {
$(".toggle_search").fadeIn("slow");
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
return false;
}
function close_toggle_panel(event) {
$('body').removeClass('no_scroll');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
$('.toggle_filter').removeClass('active');
$('.toggle_overlay').fadeOut('slow');
return false;
}
Ersetze mit:
function close_search_field(event) {
event.stopPropagation();
$(".toggle_search").fadeOut("slow");
}
function show_search_field(event) {
$(".toggle_search").fadeIn("slow");
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
}
function close_toggle_panel(event) {
$('body').removeClass('no_scroll');
$('.toggle_cart').removeClass('active');
$('.toggle_wishlist').removeClass('active');
$('.toggle_account').removeClass('active');
$('.toggle_settings').removeClass('active');
$('.toggle_filter').removeClass('active');
$('.toggle_overlay').fadeOut('slow');
}
Merkzettel Slideout auf Warenkorb-Seite in Template tpl_modified_nova erlauben[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/javascript/extra/default.js.php
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/javascript/extra/default.js.php
Suche:
<?php if (DISPLAY_CART == 'false' && isset($_SESSION['new_products_id_in_cart'])) {
unset($_SESSION['new_products_id_in_cart']); ?>
$('body').addClass('no_scroll');
$('.toggle_cart').addClass('active');
$('.toggle_overlay').fadeIn('slow');
timer = setTimeout(function(){
$('body').removeClass('no_scroll');
$('.toggle_cart').removeClass('active');
$('.toggle_overlay').fadeOut('slow');
}, 3000);
$('.toggle_cart').mouseover(function() {clearTimeout(timer);});
<?php } ?>
});
Füge danach ein:
<?php } else {
unset($_SESSION['new_products_id_in_cart']);
} ?>
<?php if (basename($PHP_SELF) != FILENAME_WISHLIST && !strpos($PHP_SELF, 'checkout')) { ?>
Suche:
<?php } else {
unset($_SESSION['new_products_id_in_cart']);
unset($_SESSION['new_products_id_in_wishlist']);
} ?>
Ersetze mit:
<?php } else {
unset($_SESSION['new_products_id_in_wishlist']);
} ?>
Überarbeitung der banners.html[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/module/banners.html /templates/tpl_modified_nova/module/banners.html /templates/tpl_modified_responsive/module/banners.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/banners.html
Suche:
<a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>
Ersetze mit:
<a title="{$banner_data.TITLE}" href="{$banner_data.LINK}" {$banner_data.TARGET}>
<img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
</a>
Suche:
{elseif $banner_data.IMAGE_IMG != ''}
{$banner_data.IMAGE_IMG}
{/if}
Ersetze mit:
{elseif $banner_data.IMAGE_IMG != ''}
<img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
{/if}
Für Template tpl_modified_nova:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/banners.html
Entferne den folgenden Code (2x):
<noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}"></noscript>
Suche (2x):
{$banner_data.IMAGE_IMG|replace:"<img src":"<img class=\"lazyload\" data-src"}
Ersetze mit:
<img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
Für Template tpl_modified_responsive:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_responsive/module/banners.html
Entferne den folgenden Code (2x):
<noscript><img src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}"></noscript>
Suche:
<a title="{$banner_data.IMAGE_TITLE|onlytext}" href="{$banner_data.LINK}" {$banner_data.TARGET}>{$banner_data.IMAGE_IMG}</a>
Ersetze mit:
<a title="{$banner_data.IMAGE_TITLE|onlytext}" href="{$banner_data.LINK}" {$banner_data.TARGET}>
<img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
</a>
Suche:
{else}
{$banner_data.IMAGE_IMG}
{/if}
Ersetze mit:
{else}
<img class="lazyload" data-src="{$banner_data.IMAGE_SRC}" alt="{$banner_data.IMAGE_ALT|onlytext}" title="{$banner_data.IMAGE_TITLE|onlytext}">
{/if}
Englischer Hinweistext für durchgestrichene Preise in Template tpl_modified_nova korrigiert[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/lang/lang_english.custom
Alternativ kann die Datei auch manuell wie folgt ergänzt werden:
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/lang/lang_english.custom
Suche:
footer_price_hinweis_4 = 'The crossed out prices correspond to the price at'
Ersetze mit:
footer_price_hinweis_4 = 'The crossed out prices correspond to the previous price at'
Passwortvorschlag Icon versteckt sich hinter Passwort anzeigen Icon 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/boxes/box_login.html /templates/tpl_modified_nova/module/account_delete.html /templates/tpl_modified_nova/module/account_password.html /templates/tpl_modified_nova/module/create_account.html /templates/tpl_modified_nova/module/login.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/boxes/box_login.html
Suche:
<span class="field_text">{#text_pwd#}</span>{$FIELD_PWD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
Ersetze mit:
<span class="field_text">{#text_pwd#}</span>
<span class="field_password">
<span class="field_input">{$FIELD_PWD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span></span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
</span>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/account_delete.html
Suche:
<span class="field_text">{#text_password#}</span>{$INPUT_PASSWORD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
Ersetze mit:
<span class="field_text">{#text_password#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_PASSWORD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span></span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
</span>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/account_password.html
Suche:
<span class="field_text">{#text_actual#}</span>{$INPUT_ACTUAL|asterisk}
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_current"></i></span>
Ersetze mit:
<span class="field_text">{#text_actual#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_ACTUAL|asterisk}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_current"></i></span>
</span>
Suche:
<span class="field_text">{#text_new#}</span>{$INPUT_NEW|asterisk}
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_new"></i></span>
Ersetze mit:
<span class="field_text">{#text_new#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_NEW|asterisk}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_new"></i></span>
</span>
Suche:
<span class="field_text">{#text_confirm#}</span>{$INPUT_CONFIRM|asterisk}
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_confirmation"></i></span>
Ersetze mit:
<span class="field_text">{#text_confirm#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_CONFIRM|asterisk}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password_confirmation"></i></span>
</span>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/create_account.html
Suche:
<span class="field_text">{#text_password#}</span>{$INPUT_PASSWORD|asterisk}
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
Ersetze mit:
<span class="field_text">{#text_password#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_PASSWORD|asterisk}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
</span>
Suche:
<span class="field_text">{#text_confirmation#}</span>{$INPUT_CONFIRMATION|asterisk}
<span class="field_eye"><i class="fa-solid fa-eye" data-name="confirmation"></i></span>
Ersetze mit:
<span class="field_text">{#text_confirmation#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_CONFIRMATION|asterisk}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="confirmation"></i></span>
</span>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/module/login.html
Suche:
<span class="field_text">{#text_password#}</span>{$INPUT_PASSWORD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
Ersetze mit:
<span class="field_text">{#text_password#}</span>
<span class="field_password">
<span class="field_input">{$INPUT_PASSWORD}<span class="inputRequirement">{$smarty.const.TEXT_ICON_ASTERISK}</span></span>
<span class="field_eye"><i class="fa-solid fa-eye" data-name="password"></i></span>
</span>
Die folgende Datei wie folgt bearbeiten:
/templates/tpl_modified_nova/stylesheet.css
Suche:
.field_item_7 .cssButtonIcon {
font-size: 18px;
}
Füge danach ein:
.field_password {
display:flex;
align-items:center;
background-color:#f2f2f2;
border-color: #d9d9d9;
border-style: solid;
border-width: 1px;
transition: all 0.3s ease-in-out;
color: #555;
border-radius: 4px;
height:44px;
}
.field_password:hover {
background-color:#f2f2f2;
border-color: #999;
color: #555;
}
.field_password:focus-within {
background-color:#fff;
border-color: #999;
color: #333;
outline: 0 none;
}
.field_password input[type=text],
.field_password input[type=password] {
height:42px;
padding: 10px 11px 10px 11px;
background:transparent;
border:none;
}
.field_password input[type=text]:hover,
.field_password input[type=password]:hover {
background:transparent;
border:none;
}
.field_password input[type=text]:focus,
.field_password input[type=password]:focus {
background:transparent;
border:none;
}
.field_input {
flex:1;
}
Suche:
.field_eye {
position:absolute;
bottom: 5px;
right:0px;
width:44px;
height:44px;
line-height:46px;
text-align:center;
cursor:pointer;
display:block;
font-size:20px;
}
.field_eye .fa-eye {
color:#ccc;
}
.field_eye .fa-eye-slash {
color:#555;
}
Ersetze mit:
.field_eye {
width:42px;
height:42px;
line-height:44px;
text-align:center;
display:block;
font-size:20px;
}
.field_eye .fa-eye {
color:#ccc;
cursor:pointer;
}
.field_eye .fa-eye-slash {
color:#555;
cursor:pointer;
}
Suche:
.toggle_account #loginbox {
border-top: 1px solid #ddd;
padding: 10px 0 10px 0;
}
Füge danach ein:
.toggle_account #loginbox .field_password {
background-color:#fff;
}
Zusätzliche Hersteller-Felder für ProdSVO[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/stylesheet.css /templates/tpl_modified_nova/module/product_info/product_info_v1_tabs.html /templates/tpl_modified_nova/module/product_info/product_info_v2_accordion.html /templates/tpl_modified_nova/module/product_info/product_info_v3_plain.html /templates/tpl_modified_nova/stylesheet.css /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/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/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/module/product_info/product_info_tabs_v1.html
Suche:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != ''}{counter}<li>{#description#}</li>{/if}
Suche:
{if isset($MODULE_products_category) && $MODULE_products_category != ''}{counter}<li>{#products_category#}</li>{/if}
Füge danach ein:
{if isset($MANUFACTURER_CONTACT_ADDRESS) || isset($MANUFACTURER_RESPONSIBLE_ADDRESS) != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}{counter}<li>{#manufacturers_info#}</li>{/if}
Suche:
{if $PRODUCTS_DESCRIPTION != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4>{if $PRODUCTS_DESCRIPTION != ''}<div itemprop="description">{$PRODUCTS_DESCRIPTION}</div>{/if}{if $MANUFACTURER_ADD_DESCRIPTION != ''}{if $PRODUCTS_DESCRIPTION != ''}<br class="clearfix" />{/if}<div>{$MANUFACTURER_ADD_DESCRIPTION}</div>{/if}</div>{/if}
Ersetze mit:
{if $PRODUCTS_DESCRIPTION != ''}<div class="pd_description"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
Suche:
{if isset($MODULE_products_category) && $MODULE_products_category != ''}<div>{$MODULE_products_category}</div>{/if}
Füge danach ein:
{if isset($MANUFACTURER_CONTACT_ADDRESS) || isset($MANUFACTURER_RESPONSIBLE_ADDRESS) != '' || $MANUFACTURER_ADD_DESCRIPTION != ''}
<div class="pd_manu_description">
<h4 class=