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

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

Aus Wiki | modified eCommerce Shopsoftware

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:


Inhaltsverzeichnis

Ä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

folgendes 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

Finde:

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

Füge an:

 <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"}

Datei an gewünschter Stelle erweitern um:

 <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

Finde:

 if (!xtc_session_is_registered('customer_id')) {

ersetzen mit

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

Anpassung des AGB-Anzeigefeldes[Bearbeiten]

  • zwingend notwendig in
/templates/TEMPLATENAME/stylesheet.css erweitern um:
 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 http://trac.modified-shop.org/changeset/232/


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

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

nach

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

folgendes einfügen

 {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

und in der Datei /templates/TEMPLATENAME/source/boxes.php folgenden Code am Anfang hinzufügen

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

Änderungen ab Version 1.0.4[Bearbeiten]

CSS am Seitenanfang und Javascript am Seitenende laden[Bearbeiten]

  • optional

neue Datei

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

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

In der Datei

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

die CSS-Stile dafür entfernen.

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


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

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

Suche:

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

Ersetze mit:

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

PayPal-IPN Link-Anpassung[Bearbeiten]

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

Suche:

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

Ersetze mit:

 <div class="hr"></div>
 {if $PAYPAL_LINK}
 <p><div style="padding:5px;">{$PAYPAL_LINK}</div></p>
 {/if}
 <p>{$TOTAL_BLOCK}</p>

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

Suche:

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

Ersetze mit:

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

Eigene Überschrift bei Gastkonten[Bearbeiten]

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

Suche:

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

Ersetze mit:

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

Signatur und Widerruf als E-Mail Anhang[Bearbeiten]

  • zwingend notwendig

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

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

Änderungen ab Version 1.0.5[Bearbeiten]

Shop online/offline Modus[Bearbeiten]

  • zwingend notwendig

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

/templates/xtc5/offline.html

Button "Einkauf fortsetzen" im Warenkorb anzeigen[Bearbeiten]

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

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

Nach

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

einfügen von:

 {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!

und vor

  <p>{$FORM_END}{/if}

einfügen von

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

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

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

vor

{foreach name=aussen item=module_data from=$module_content}

einfügen von:

 {$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

suchen nach

<h1>{#heading_success#}</h1>

davor

{$FORM_ACTION}

ersetzen mit

{*$FORM_ACTION*}

suchen nach

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

ersetzen durch

{$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

suchen nach

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

und danach einfügen von

{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/

strstr ($smarty…

ändern in:

strstr($smarty…

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

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

<div{if $GV_AMOUNT =='' }

ändern in

<div{if $GV_AMOUNT ==''}

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

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

{if $item_data.PRICE !='' }

ändern in

{if $item_data.PRICE !=''}

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

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

{if $item_data.PRICE !='' }

ändern in

{if $item_data.PRICE !=''}

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

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

{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}

ändern in

{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}

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

Korrekte Ausgabe von Fehlermeldungen beim Gutscheinversand[Bearbeiten]

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

suchen nach

{$FORM_ACTION}

und darunter einfügen

{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 beliebiger Stelle einfügen:

{if $PRODUCTS_EXPIRES}<p>{#text_expires_date#} {$PRODUCTS_EXPIRES}</p>{/if}

und in der Datei

/templates/TEMPLATENAME/module/specials.html
{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 beliebiger Stelle einfügen:

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

an beliebiger Stelle einfügen:

{#packingslip#}

und in der Datei /lang/german/lang_german.conf unter dem Abschnitt [print_order] einfügen:

invoice = 'Rechnung'
packingslip = 'Lieferschein'

und in der Datei /lang/english/lang_english.conf unter dem Abschnitt [print_order] einfügen:

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 http://trac.modified-shop.org/changeset/2284/

Changeset http://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]

Ergänze die /templates/TEMPLATENAME/mail/SPRACHE/order_mail.txt vor [SIGNATUR] um:

{if $DELIVERY_DUTY_INFO neq ''}

----------------------------------------------------------------------
{$smarty.const.TEXT_DUTY_INFO}
----------------------------------------------------------------------{/if}

Ergänze die /templates/TEMPLATENAME/mail/SPRACHE/order_mail.html vor [SIGNATUR] um:

{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}

Suche in der /templates/TEMPLATENAME/module/print_product_info.html

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

und ersetze durch

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

Ersetze die folgenden Dateien mit den Versionen aus dem modified eCommerce Shopsoftware 1.06 Template (xtc5) in deinem eigenen Template an gleicher Stelle:

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

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

/templates/xtc5/img/external.gif

Erweitere deine /templates/TEMPLATENAME/stylesheet.css um folgenden Code:

/*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]

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

Suche in Datei /templates/TEMPLATENAME/module/shopping_cart.html:

{$BUTTON_CHECKOUT}

und ersetze mit:

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

Update für Sofort Gateway Zahlungsmodul[Bearbeiten]

Ergänze die /templates/TEMPLATENAME/module/checkout_success.html nach:

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

um folgenden Code:

{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 das hier:

			{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 es mit dem hier:

			{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 das hier:

		{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 es mit dem hier:

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

Anzeige der Versandkosten im Warenkorb[Bearbeiten]

  • zwingend notwendig in

/templates/xtc5/modules/order_details.html

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

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

Ersetze durch:

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

Änderungen aufgrund des SEPA-Lastschrift Moduls[Bearbeiten]

  • zwingend notwendig

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

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

Änderungen ab Version 1.0.6 rev 4642 SP3[Bearbeiten]

Änderungen aufgrund des BillSAFE Moduls[Bearbeiten]

/templates/TEMPLATENAME/module/checkout_confirmation.html

suchen nach

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

davor einfügen

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

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

/templates/TEMPLATENAME/stylesheet.css

suchen nach

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

und ersetzen durch

/* 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

suchen nach

      <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>

und ersetzen durch

      <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

suchen nach

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

und danach einfügen

{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

suchen nach

  <p>{$HISTORY_BLOCK}</p>

und danach einfügen

  {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

suchen nach

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

und ersetzen durch

  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 erweitern um:

{$AGB_TXT}

Die folgenden Dateien:

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

an gewünschter Stelle erweitern um:

{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:

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

an gewünschter Stelle erweitern um:

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

Datei /templates/TEMPLATENAME/mail/english/order_mail.html an gewünschter Stelle erweitern um:

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

Datei /templates/TEMPLATENAME/mail/german/order_mail.html an gewünschter Stelle erweitern um:

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

Datei /templates/TEMPLATENAME/mail/english/order_mail.txt an gewünschter Stelle erweitern um:

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

Datei /templates/TEMPLATENAME/mail/german/order_mail.txt an gewünschter Stelle erweitern um:

{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"

suchen nach

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

und ersetzen durch

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

zusätzlich in der Datei /templates/TEMPLATENAME/css/general.css.php suchen nach

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

und ersetzen durch

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

zusätzlich in der Datei /templates/TEMPLATENAME/javascript/general.js.php suchen nach dem ersten Vorkommen von

?>

und danach einfügen

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

suchen nach

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

und ersetzen durch

<?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

suchen nach

		{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}

und ersetzen durch

    {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

suchen nach

    $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>';

und ersetzen durch

    $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

suchen nach

{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}

und ersetzen durch

{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 suchen nach:

      {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}

und darunter einfügen:

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

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

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

suche nach:

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

und darunter einfügen:

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

/templates/TEMPLATENAME/module/account_history_info.html suchen nach:

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

und darunter einfügen:

{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 suchen nach:

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

ersetzen mit:

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

suchen nach (2x):

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

ersetzen mit:

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

suchen nach:

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

ersetzen mit:

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

/templates/TEMPLATENAME/module/checkout_success.html suchen nach:

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

ersetzen mit:

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

/templates/TEMPLATENAME/module/logoff.html suchen nach:

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

und darunter einfügen:

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

Update für kostenlose Artikel (PRODUCTS_GIFT_FORBIDDEN)[Bearbeiten]

  • optional

TODO


Update für Passwort-Richtlinie[Bearbeiten]

  • optional in

/templates/TEMPLATENAME/module/account_password.html suchen nach:

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

und darunter einfügen:

<p>{#text_password_policy#|sprintf:$smarty.const.ENTRY_PASSWORD_MIN_LENGTH}</p>

/templates/TEMPLATENAME/module/create_account.html suchen nach:

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

und darunter einfügen:

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

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

  • zwingend notwendig

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

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

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

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

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

  • zwingend notwendig

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

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

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

Suche:

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

Füge danach ein:

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

Suche:

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

Füge davor ein:

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

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

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

Suche:

                                          AND s.status = '1'

Füge danach ein:

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

Überarbeitung der Content Popups[Bearbeiten]

  • zwingend notwendig

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

/templates/tpl_modified/module/popup_content.html

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/stylesheet.css

Am Ende der Datei einfügen:

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

Ä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/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>

und danach einfügen

  {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>

und danach einfügen

{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}

und danach einfügen

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

Newsletter-System abschalten[Bearbeiten]

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

Suche:

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

Ersetze mit:

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


/templates/TEMPLATENAME/module/create_account.html

Suche:

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

Ersetze mit:

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


/templates/TEMPLATENAME/module/create_account_guest.html   

Suche:

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

Ersetze mit:

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



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

/templates/TEMPLATENAME/module/checkout_payment.html

Suche:

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

Ersetze mit:

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

Erweiterung des Kontaktformulars um Datenschutz-Checkbox[Bearbeiten]

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

Suche:

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

Ersetze mit:

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

Füge an gewünschter Stelle ein:

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

Neue Template-Datei für Wartungsmodus[Bearbeiten]

  • optional

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

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

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

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

Suche:

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

Füge danach ein:

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

Ä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)

Und 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>

Und ersetze mit:

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

Suche:

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

Und ersetze mit:

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

Suche:

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

Und 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}

Und 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#}

Und ersetze mit:

    {#text_information#|sprintf:$HEADQUARTER}

Verhindern von Mehrfachkäufen im Checkout[Bearbeiten]

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

Am Ende der Datei einfügen:

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

Änderungen ab Version 2.0.2.2[Bearbeiten]

Autocomplete Suche[Bearbeiten]

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

Am Ende der Datei einfügen:

<?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

Am Ende der Datei einfügen:

<div class="suggestionsBox" id="suggestions" style="display:none;">
  <div class="suggestionList" id="autoSuggestionsList">&nbsp;</div>
</div>


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

Suche:

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

Ersetze mit:

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


/templates/TEMPLATENAME/stylesheet.css

Am Ende der Datei einfügen:

/* 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 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}

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 "nomage.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.3.1[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) {

Geplante Features[Bearbeiten]

Überarbeitung Anmelde-Sicherheit in Login-Box[Bearbeiten]

  • zwingend notwendig

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

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

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

Die folgende Datei wie folgt bearbeiten:

/templates/TEMPLATENAME/source/boxes/loginbox.php

Suche:

    require_once (DIR_FS_INC.'xtc_draw_password_field.inc.php');

und danach einfügen

    require_once (DIR_FS_INC.'secure_form.inc.php');

Suche:

    $box_smarty->assign('FORM_ACTION', xtc_draw_form('loginbox', xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL'), 'post', 'class="box-login"'));

ersetzen mit

    $box_smarty->assign('FORM_ACTION', xtc_draw_form('loginbox', xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL'), 'post', 'class="box-login"').secure_form());

*xt:Commerce ist ein geschützter Name der Firma xt:Commerce GmbH ([1]]

  • Diese Seite wurde zuletzt am 27. November 2017 um 18:25 Uhr bearbeitet.
             
anything