Template-Änderungen in 3.0.5
Inhaltsverzeichnis
- 1 Allgemeine Informationen
- 1.1 Template-Browser
- 1.2 Vorbemerkungen
- 1.3 Checkliste - Wichtigste Änderungen
- 2 Download der aktuellen Template-Version
- 3 Bevor Sie starten
- 4 Liste der neuen Dateien, die nach dem Update vorhanden sein müssen
- 4.1 Grafiken/ CSS - Dateien
- 4.2 Template - Dateien
- 5 Liste der Dateien, die komplett ersetzt werden müssen
- 6 Zwingend erforderliche Template-Änderungen
- 6.1 Datei index.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.2 Datei index_home.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.3 Datei articles/article_details_data.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.4 Alle Article-Listings (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.5 Datei articles/article_details_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.6 Datei basket/basket_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.7 Datei orderprocess/order_confirm_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.8 Datei orderprocess/order_finished.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.9 Datei newsletter/newsletter.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 6.10 Datei account/account_ordersummary.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
- 7 Weitere Template-Änderungen
- 8 Campaigns / Newsletter-Template
Allgemeine Informationen
Template-Browser
Mit Hilfe unseres Template-Browsers werden Ihnen alle notwendigen Template-Änderungen für ein Update übersichtlich dargestellt.
Vorbemerkungen
In Shopware 3.0.5 gibt es eine Reihe erforderlicher Template-Anpassungen, die umgesetzt werden müssen damit neue Module wie Liveshopping / Blog oder Bundle-Funktion eingesetzt werden können.
Sofern Ihr System im Rahmen eines Wartungsvertrags aktualisiert wird, werden diese Änderungen automatisch mit umgesetzt.
Hinweis: Diese Änderungen beziehen sich auf ein Template-Update von Shopware Version 3.0.4.1 auf 3.0.5! Falls Sie eine ältere Template-Version einsetzen, sind ggf. weitere Anpassungen erforderlich!
Hinweis: Erstellen Sie eine lokale Sicherung Ihres Template-Ordners, bevor Sie mit den Anpassungen beginnen!
Tipp:
Sie können alle Template-Anpassungen auch direkt im Update-Script durchführen. Dort ist ein Code-Editor integriert, mit dem alle Anpassungen direkt durchgeführt werden können. Dieser Weg ist gegenüber der manuellen Anpassung immer zu bevorzugen, da dieser in der Regel deutlich weniger Zeit benötigt!
Checkliste - Wichtigste Änderungen
Die nachfolgenden Änderungen sollten Sie in jedem Fall durchführen: (Zeilenangaben beziehen sich auf den 3.0.5 Stand des Templates, bei Code der entfernt werden muss, auf 3.0.4.1)
- Update index.tpl
- Einbinden des Canonical Tags (Zeile 19 bis 25)
- Definition Javascript-Variablen (Zeile 34 bis 45)
- Aktualisieren der core.js auf aktuelle Version
- Entfernen des überflüssigen Javascript-Codes (Zeile 119 bis 295)
- Entfernen des alten Google Analytic-Codes (Zeile 765 bis 778)
- Einbinden des neuen Google Analytic-Codes (Zeile 31 bis 33)
- Update index_home.tpl
- Einfügen Liveshopping (Zeile 5 bis 11, 28 bis 29,56 bis 57)
- Einbinden Blog-Ausgabe (Zeilen 65 bis 72)
- Aktualisierung Artikel-Listings (article_listing_1col bis 4col)
- Einbinden Liveshopping (Zeilen 4 bis 10, 27 bis 28, 125 bis 126)
- Aktualisierung der Artikel-Detailseite (article_details_middle.tpl)
- Einbinden Artikel Benachrichtigung (Zeile 16 bis 18,152 bis 154,163 bis 165, 167, 709 bis 710)
- Einbinden Bundle-Funktion (Zeilen 99 bis 123,Zeile 334, )
- Aktualisierung des Artikeldaten-Templates (article_details_data.tpl)
- Einbinden Liveshopping (Zeile 5 bis 11,70,97,104 bis 127)
- Einbinden Bundle (Zeile 14 bis 25)
- Warenkorb (basket_middle.tpl)
- Einbinden Bundle-Funktion (Zeile 52,128 bis 148)
- Bestellabschlussseiten (order_confirm_middle,order_finished)
- Zeilen 148 bis 168, 182 bzw.
- Zeilen 24 bis 45, 58 (finished.tpl)
Download der aktuellen Template-Version
Bevor Sie starten
Sie sollten die Update-Schritte in der Reihenfolge durchführen, wie sie hier definiert sind. Alle neuen Styles und Layout-Anpassungen sind in der Datei 305.css definiert, hier sind also keine Modifizierungen an Ihren bestehenden Style-Sheets erforderlich. Nach dem Update können Sie einfach Farben und Proportionen der neuen Module in der 305.css anpassen!
Es ist häufig deutlich einfacher, die verwendeten Template-Dateien komplett zu ersetzen und die eigenen Änderungen in die neuen Dateien zu übernehmen. Dabei unterstützt Sie unser Update-Script, welches Ihre lokalen Änderungen anzeigt.
Liste der neuen Dateien, die nach dem Update vorhanden sein müssen
Grafiken/ CSS - Dateien
- templates/0/de/media/css/305.css
- templates/0/de/media/img/default/atom_logo.gif
- templates/0/de/media/img/default/rss_logo.gif
- templates/0/de/media/img/default/store/live_time_processbar.jpg
- templates/0/de/media/img/default/store/bg_countdown.gif
- templates/0/de/media/img/default/store/bt_liveprice_up2.gif
- templates/0/de/media/img/default/store/bg_liveprice_normal.gif
- templates/0/de/media/img/default/store/blogsocial_sprite.gif
- templates/0/de/media/img/default/store/live_countdown_slider.gif
- templates/0/de/media/img/default/store/stock_bar.gif
- templates/0/de/media/img/default/store/live.gif
- templates/0/de/media/img/default/store/bg_liveprice_down2.gif
- templates/0/de/media/img/default/store/rss.gif
- templates/0/de/media/img/default/store/live_countdown_bg.gif
- templates/0/de/media/img/default/store/bg_live_normal.gif
- templates/0/de/media/img/default/store/live_instock_processbar.jpg
- templates/0/de/media/img/default/store/bg_liveprice_stock_up.gif
- templates/0/de/media/img/default/store/bg_liveprice_stock_down.gif
- templates/0/de/media/img/default/store/atom.gif
Template - Dateien
- Verzeichnis: templates/0/de/html/blog
- Verzeichnis: templates/0/de/html/articles/notification
- Verzeichnis: templates/0/de/html/articles/bundles
- Verzeichnis: templates/0/de/html/articles/liveshopping
- templates/0/de/html/newsletter/newsletter_details.tpl
- templates/0/de/html/newsletter/newsletter_listing.tpl
- templates/0/de/html/articles/number_format.func.tpl
- templates/0/de/html/index/google_analytics.tpl
- templates/0/de/html/category/category_right_filter.tpl
Liste der Dateien, die komplett ersetzt werden müssen
Hinweis: Falls Sie die Datei core.js modifiziert haben, hilft Ihnen das Update-Tool bei der Migration beider Dateistände!
- trunk/templates/0/de/media/js/core.js
Zwingend erforderliche Template-Änderungen
Hinweis: Die nachfolgenden Änderungen sind unbedingt erforderlich und MÜSSEN umgesetzt werden!
Datei index.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Fügen Sie oberhalb von
<title>
ein:
{if !$_GET.sViewport} <link rel="canonical" href="{$sConfig.sBASEFILE}" /> {elseif $_GET.sViewport == 'cat'} <link rel="canonical" href="{$sConfig.sBASEFILE}?sViewport=cat&sCategory={$_GET.sCategory|intval}" title="{$sCategoryContent.description}" /> {elseif $_GET.sViewport == 'detail'} <link rel="canonical" href="{$sConfig.sBASEFILE}?sViewport=detail&sArticle={$_GET.sArticle|intval}" title="{$sArticle.articleName}" /> {/if}
Ersetzen Sie:
<script> var sSearchShowAllResults = "{* sSnippet: Show all results *}{$sConfig.sSnippets.sSearchshowallresults}"; var sSearchManufacturer = '{* sSnippet: Manufacturer: *}{$sConfig.sSnippets.sSearchmanufacturer}'; var sSearchCategories = "{* sSnippet: Categories: *}{$sConfig.sSnippets.sSearchcategories}"; </script>
durch
{if $sConfig.sGOOGLECODE} {include file="index/google_analytics.tpl"} {/if} <script type="text/javascript"> //<![CDATA[ var sSearchShowAllResults = "{* sSnippet: Show all results *}{$sConfig.sSnippets.sSearchshowallresults}"; var sSearchManufacturer = '{* sSnippet: Manufacturer: *}{$sConfig.sSnippets.sSearchmanufacturer}'; var sSearchCategories = "{* sSnippet: Categories: *}{$sConfig.sSnippets.sSearchcategories}"; var sViewportAjax = "{if $_SERVER.SERVER_PORT == 80}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/"; var sCompareMaxReached = "{* sSnippet: you can compare up to 5 items in one step! *}{$sConfig.sSnippets.sIndexcompareupto5articles}"; var basepath = "{if $_SERVER.SERVER_PORT == 80}http{else}https{/if}://{$sConfig.sBASEPATH}"; var minsearchlenght = {if $sConfig.sMINSEARCHLENGHT}{$sConfig.sMINSEARCHLENGHT}{else}3{/if}; var sServerTime = {$smarty.now}; //]]> </script>
Fügen Sie über:
{if !$sConfig.sDONTGZIP}
ein:
<link href="../../media/css/305.css" rel="stylesheet" type="text/css" media="screen" />
Ersetzen Sie:
{literal} <script type="text/javascript" src="../../media/zoomplus/get.php?hash={/literal}{$sConfig.sPREMIUM}{literal}"></script> {/literal}
durch:
<script type="text/javascript" src="../../media/zoomplus/get.php?hash=1"></script>
Entfernen Sie den kompletten Part:
{literal} <script> function hideSearchAfterClick() { $('hidesearch').setStyle('display', 'none'); } function showCompare(){ $('compareContainerResults').setStyle('display','block'); } function hideCompare(){ $('compareContainerResults').setStyle('display','none'); } function hideCompareList(){ $('compare_bigbox').setStyle('display','none'); $('compare_bigbox').setStyle('width','0px'); $('compare_bigbox').setStyle('height','0px'); $('compare_bigbox_overlays').setStyle('display','none'); $('compare_bigbox_overlays').setStyle('opacity',0); } function startComparison(){ var jSonRequest = new Ajax ( {/literal} "{if $_SERVER.SERVER_PORT == "80"}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/", {literal} { method: 'post', onStart: function(el){}, onFailure: function (el){ }, onComplete: function(result){ $('compare_bigbox').setHTML(result); var width = 800; switch($('article_count').value){ case "1": width = 344; break; case "2": width = 546; break; case "3": width = 750; break; case "4": width = 954; break; default: width = 954; $('compare_bigbox').setStyle('overflow-x', 'scroll'); } var top = 40; var left = (981 - width)/2; $('compare_bigbox').setStyle('top',top); $('compare_bigbox').setStyle('left',left); $('compare_bigbox').setStyle('display','block'); $('compare_bigbox').setStyle('height','0px'); $('compare_bigbox').setStyle('width','0px'); //lightbox-effect new Fx.Style($('compare_bigbox_overlays'), 'opacity', {duration:1000}).start(0,0.8); // new Fx.Style($('compare_bigbox'), 'width', {duration:1000}).start('0px',width+'px'); $('compare_bigbox').setStyle('width',width+'px'); new Fx.Style($('compare_bigbox'), 'height', {duration:800}).start('0px','550px'); $('compare_bigbox_overlays').setStyle('display','block'); } } ).request({'sAjaxData':-1,'sAjaxFunction':'getComparisons'}); } // Call ajax-viewport and add article to compare-list function addCompare(articleID){ var articleID = parseInt(articleID); var jSonRequest = new Ajax ( {/literal} "{if $_SERVER.SERVER_PORT == "80"}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/", {literal} { method: 'post', onStart: function(el){}, onFailure: function (el){ }, onComplete: function(result){ if (result=="max_reached"){ alert("{/literal}{* sSnippet: you can compare up to 5 items in one step! *}{$sConfig.sSnippets.sIndexcompareupto5articles}{literal}"); return; } $('compareContainerAjax').setHTML(result); new Fx.Style($('compareHighlight'), 'color', {duration:1750}).start('#000','#DD4800'); window.location.href='#top'; } } ).request({'sAjaxData':articleID,'sAjaxFunction':'addCompare'}); } // Call ajax-viewport and delete article from compare-list function deleteCompare (articleID){ var articleID = parseInt(articleID); var jSonRequest = new Ajax ( {/literal} "{if $_SERVER.SERVER_PORT == "80"}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/", {literal} { method: 'post', onStart: function(el){}, onFailure: function (el){ }, onComplete: function(result){ $('compareContainerAjax').setHTML(result); new Fx.Style($('compareHighlight'), 'color', {duration:1750}).start('#F00','#000'); window.location.href='#top'; } } ).request({'sAjaxData':articleID,'sAjaxFunction':'deleteCompare'}); } // Call ajax-viewport and delete all articles from compare-list function deleteComparisons(){ var articleID = parseInt(articleID); var jSonRequest = new Ajax ( {/literal} "{if $_SERVER.SERVER_PORT == "80"}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/", {literal} { method: 'post', onStart: function(el){}, onFailure: function (el){ }, onComplete: function(result){ $('compareContainerAjax').setHTML(""); } } ).request({'sAjaxData':-1,'sAjaxFunction':'deleteComparisons'}); } // Call ajax-viewport and get compare-list function getComparisons (){ var jSonRequest = new Ajax ( {/literal} "{if $_SERVER.SERVER_PORT == "80"}http{else}https{/if}://{$sConfig.sBASEPATH}/{$sConfig.sBASEFILE}/sViewport,ajax/", {literal} { method: 'post', onStart: function(el){}, onFailure: function (el){ }, onComplete: function(result){ $('compareContainerAjax').setHTML(result); } } ).request({'sAjaxData':-1,'sAjaxFunction':'getComparisonList'}); } </script> {/literal}
Entfernen Sie:
<!-- Suche --> <script type="text/javascript"> var basepath = "{if $_SERVER.SERVER_PORT == 80}http{else}https{/if}://{$sConfig.sBASEPATH}"; var minsearchlenght = {if $sConfig.sMINSEARCHLENGHT}{$sConfig.sMINSEARCHLENGHT}{else}3{/if}; </script>
Entfernen Sie:
{if $sConfig.sGOOGLECODE} <script type="text/javascript"> {literal} var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try{ var pageTracker = _gat._getTracker("{/literal}{$sConfig.sGOOGLECODE}{literal}"); pageTracker._trackPageview(); } catch(err) {} {/literal} </script> {/if}
Datei index_home.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Fügen Sie unterhalb von:
<div class="col_center">
ein:
{* LIVE-SHOPPING - START *} {if $sLiveShopping} {foreach from=$sLiveShopping.liveshoppingData item=liveArt} {include file="articles/liveshopping/include_liveshopping.tpl" liveArt=$liveArt} {/foreach} {/if} {* LIVE-SHOPPING - END *}
Fügen Sie oberhalb von:
{else} <!-- homepagebanner --> {if $sBanner.link == "#" || $sBanner.link == ""}<div class="cat_banner">{else}<a href="{$sBanner.link}" class="cat_banner" {if $sBanner.link_target}target="{$sBanner.link_target}"{/if} title="{$sBanner.description}">{/if} {if $sBanner.img}<img src="{$sBanner.img}" alt="{$sBanner.description}" name="{$sBanner.description}" border="0" title="{$sBanner.description}" />{/if} {if $sBanner.link == "#" || $sBanner.link == ""}</div>{else}</a>{/if} <!-- /homepagebanner --> {/if}
ein:
{elseif $sBanner.liveshoppingData} {include file="articles/liveshopping/include_liveshopping.tpl" liveArt=$sBanner.liveshoppingData}
Fügen Sie oberhalb von:
{else} {include file="articles/article_box_3col.tpl" sArticle=$offer}
ein:
{elseif $offer.mode == "livefix" || $offer.mode == "liverand" || $offer.mode == "liverandcat"} {include file='articles/liveshopping/include_liveshopping.tpl' liveArt=$offer.liveshoppingData}
Fügen Sie unter:
<div class="listing_box_cap2"></div>
ein:
{if $sBlog.sArticles|@count} <div class="listing_box"> <h1>{* sSnippet: article *}{$sConfig.sSnippets.sBlogNewInTheBlog}:</h1> {foreach from=$sBlog.sArticles item=article key=key name="counter"} {include file="blog/col.tpl" sArticle=$article key=$key homepage=true} {/foreach} </div> {/if}
Datei articles/article_details_data.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Fügen Sie oberhalb von:
{if $sArticle.ordernumber}
ein:
{if $sArticle.liveshoppingData.valid_to_ts} {if (2==$sArticle.liveshoppingData.typeID || 3==$sArticle.liveshoppingData.typeID) && $sArticle.liveshoppingData.max_quantity_enable==1} {include file="articles/liveshopping/liveshopping_detail_countdown.tpl" sLiveshoppingData=$sArticle.liveshoppingData} {else} {include file="articles/liveshopping/liveshopping_detail.tpl" sLiveshoppingData=$sArticle.liveshoppingData sArticlePseudoprice=$sArticle.pseudoprice} {/if} {/if} {* LIVE-SHOPPING - END *} {* Lagerbestand der Artikel zwischenspeichern *} <input id='instock_{$sArticle.ordernumber}'type='hidden' value='{$sArticle.instock}' /> {* Preis der Artikel zwischenspeichern *} {if $sArticle.sBlockPrices && (!$sArticle.sConfigurator || $sArticle.pricegroupActive) && $sArticle.sConfiguratorSettings.type!=2} {foreach from=$sArticle.sBlockPrices item=staffel key=key} {if $staffel.from=="1"} <input id='price_{$sArticle.ordernumber}'type='hidden' value='{$staffel.price|replace:",":"."}' /> {/if} {/foreach} {else} <input id='price_{$sArticle.ordernumber}'type='hidden' value='{$sArticle.price|replace:".":""|replace:",":"."}' /> {/if}
Fügen Sie oberhalb von:
{* //25.11.2008, Express-Lieferung / STH *}
folgende Bedingung ein:
{if !$sArticle.liveshoppingData.valid_to_ts}
Schließen Sie diese Bedingung ganz am Ende der Datei, indem Sie
{/if}
einfügen!
Alle Article-Listings (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Betrifft standardmäßig die Dateien article_listing_1col bis article_listing_4col.tpl Führen Sie die nachfolgenden Schritte für jede dieser Dateien durch: Fügen Sie unterhalb von:
<div class="col_center_listing">
ein:
{* LIVE-SHOPPING - START *} {if $sLiveShopping} {foreach from=$sLiveShopping.liveshoppingData item=liveArt} {include file="articles/liveshopping/include_liveshopping.tpl" liveArt=$liveArt} {/foreach} {/if} {* LIVE-SHOPPING - END *}
Fügen Sie oberhalb von:
{else} <!-- homepagebanner -->
ein:
{elseif $sBanner.liveshoppingData} {include file="articles/liveshopping/include_liveshopping.tpl" liveArt=$sBanner.liveshoppingData}
Fügen Sie über:
{else} {include file="articles/article_box_1col.tpl" sArticle=$offer}
ein:
{elseif $offer.mode == "livefix" || $offer.mode == "liverand" || $offer.mode == "liverandcat"} {include file='articles/liveshopping/include_liveshopping.tpl' liveArt=$offer.liveshoppingData}
Datei articles/article_details_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Fügen Sie über:
{* DETAIL_COL1 *}
ein:
{include file="articles/notification/article_confirm_notification.tpl" sArticle=$sArticle}
Fügen Sie über:
{* /DETAIL_COL1 *}
ein:
{* BUNDLE VARIANTS IMG *} {* Original *} <div id='img_1_{$sArticle.ordernumber}' style="display:none"> {if $sArticle.image.src.1} <a href='#' title="{$sArticle.articleName}" class="bundleImg" style="background-image: url({$sArticle.image.src.1});"></a> {else} <a href='#' title="{$sArticle.articleName}" class="bundleImg" style="background-image: url(../../media/img/de/layout/no_picture.jpg);"></a> {/if} </div> {* /Original *} {foreach from=$sArticle.images item=sArticleImage} {if $sArticleImage.relations} <div id="img_1_{$sArticleImage.relations}" style="display:none"> {if $sArticleImage.src.1} <a href='#' title="{$sArticle.articleName}" class="bundleImg" style="background-image: url({$sArticleImage.src.1});"></a> {else} <a href='#' title="{$sArticle.articleName}" class="bundleImg" style="background-image: url(../../media/img/de/layout/no_picture.jpg);"></a> {/if} </div> {/if} {/foreach} {* /BUNDLE VARIANTS IMG *}
Ersetzen Sie:
<div class="buy_box"{if $sArticle.sConfigurator && $sArticle.sConfiguratorSettings.type==2} style="float:none; width:792px;" {/if}>
durch:
{if !$sArticle.sConfigurator && !$sArticle.sVariants && $sArticle.laststock==1 && $sArticle.instock<=0} {assign var=buy_box_display value='display:none;'} {/if} <div class="buy_box"{if $sArticle.sConfigurator && $sArticle.sConfiguratorSettings.type==2} style="float:none; width:792px;"{/if} >
Ersetzen Sie:
<form name="sAddToBasket" method="GET" action="{$sStart}" class="clearfix">
durch:
{* ARTICLE_NOTIFICATION *} {include file="articles/notification/article_notification.tpl" sArticle=$sArticle} {* /ARTICLE_NOTIFICATION *} <form name="sAddToBasket" method="GET" action="{$sStart}" {if $sArticle.showBasketOnNotification && $sArticle.notification && $sArticle.instock <= 0}style="display: none;"{/if} class="clearfix">
Ersetzen Sie:
<input type="submit" id="basketButton" title="{$sArticle.articleName} {* sSnippet: add article to basket *}{$sConfig.sSnippets.sArticleinthebasket}" name="{* sSnippet: add to basked *}{$sConfig.sSnippets.sArticleaddtobasked}" value="{$sConfig.sSnippets.sArticleaddtobasked}" {if $sArticle.sVariants}{/if} />
durch:
<input type="submit" id="basketButton" title="{$sArticle.articleName} {* sSnippet: add article to basket *}{$sConfig.sSnippets.sArticleinthebasket}" name="{* sSnippet: add to basked *}{$sConfig.sSnippets.sArticleaddtobasked}" value="{$sConfig.sSnippets.sArticleaddtobasked}" style="{$buy_box_display}"{if $sArticle.sVariants}{/if} />
Fügen Sie unter:
{if $sArticle.sVariants} {literal} <script type="text/javascript"> $('basketButton').setStyle("opacity", "0.5"); </script> {/literal} {/if}
ein:
{include file="articles/bundles/bundle_box_include.tpl" }
Ersetzen Sie:
{if $sArticle.sRelatedArticles}
durch:
{if $sArticle.sRelatedArticles && !$sArticle.crossbundlelook}
Fügen Sie oberhalb von
<script language="JavaScript" type="text/javascript">
(ca. Zeile 725)
ein:
<div id='selected_ordernumber' style="display:none;"></div>
Fügen Sie unter folgender Zeile:
function changeDetails(ordernumber) {
diesen Code ein:
if(typeof(window.checkNotification) == "function") { checkNotification(ordernumber); }
Fügen Sie unterhalb von:
$('article_details').setHTML($(ordernumber).innerHTML);
ein:
$('selected_ordernumber').setHTML(ordernumber);
Ersetzen Sie:
Lightbox.init({descriptions: '.lightboxDesc', showControls: true});
durch:
{/literal}{include file="articles/bundles/changeDetails_bundle.tpl" }{literal}
Datei basket/basket_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Ersetzen Sie:
{if $sBasketItem.modus != 1}
durch:
{if $sBasketItem.modus != 1 && $sBasketItem.modus != 10}
Fügen Sie oberhalb von:
{else} <!-- GRATIS dynamisch START--> <tr> <td> {if $sBasketItem.image.src.0} <a class="thumb_image"><img src="{$sBasketItem.image.src.1}" border="0" alt="{$sBasketItem.articlename}" class="imgwkorb" /></a> {/if} <strong>{$sBasketItem.articlename}</strong> {* sSnippet: A small thank you, you get this item for free *}{$sConfig.sSnippets.sBasketasasmallthankyou} </td> {if $sConfig.sBASKETSHIPPINGINFO}<td></td>{/if} <td></td> <td class="priceright"></td> <td class="sum"><strong>{* sSnippet: free *}{$sConfig.sSnippets.sBasketfree}</strong></td> <td class="center"></td> </tr> <!-- GRATIS dynamisch END --> {/if}
ein:
{elseif $sBasketItem.modus == 10} <!-- Bundle-Artikel START--> <tr style="background-color:#FCD4DC;"> <td colspan='{if $sConfig.sBASKETSHIPPINGINFO}4{else}3{/if}' style="padding:0px;"> <table> <tr> <td style="border-bottom:0; padding:0px;"> <span style="color:#FFFFFF; background-color:#E80D3A;font-weight:bold;padding:4px;">{$sConfig.sSnippets.sBasketBundleDiscountText}</span> </td> <td style="border-bottom:0; padding:0px;padding-left:4px;"> <span style="color:#000000;">{$sBasketItem.articlename}</span> </td> </tr> </table> </td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}</td> <td class="center"></td> </tr> <!-- Bundle-Artikel END -->
Datei orderprocess/order_confirm_middle.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Ersetzen Sie:
{foreach name=basket from=$sBasket.content item=sBasketItem key=key} {* DATENSATZ START *} <tr> <td>{if $sBasketItem.image.src.0} <a href="{$sBasketItem.linkDetails}" class="thumb_image"><img src="{$sBasketItem.image.src.1}" border="0" alt="{$sBasketItem.articlename}" class="imgwkorb" /></a> {/if} {if $sBasketItem.modus eq 0}<a href="{$sBasketItem.linkDetails}">{/if}{$sBasketItem.articlename}{if $sBasketItem.modus eq 0}</a>{/if}</td> <td> {$sBasketItem.quantity} {if $sBasketItem.packunit}{$sBasketItem.packunit}{else}{$sBasketItem.itemUnit}{/if}</td> <td class="sum">{if $sBasketItem.modus eq 0}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 2}{$sConfig.sCURRENCYHTML}{$sBasketItem.amount} {elseif $sBasketItem.modus eq 3}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 4}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount} {else}<span class="fett">GRATIS</span>{/if}</td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.tax}</td> </tr> {* DATENSATZ END *} {/foreach}
durch:
{foreach name=basket from=$sBasket.content item=sBasketItem key=key} {if $sBasketItem.modus == 10} <tr style="background-color:#FCD4DC;"> <td colspan='1' style="padding:0px;"> <table> <tr> <td style="border-bottom:0; padding:0px;"> <span style="color:#FFFFFF; background-color:#E80D3A;font-weight:bold;padding:4px;">{$sConfig.sSnippets.sBasketBundleDiscountText}</span> </td> <td style="border-bottom:0; padding:0px;padding-left:4px;"> <span style="color:#000000;">{$sBasketItem.articlename}</span> </td> </tr> </table> </td> <td>{$sBasketItem.quantity} {if $sBasketItem.packunit}{$sBasketItem.packunit}{else}{$sBasketItem.itemUnit}{/if}</td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}</td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.tax}</td> </tr> {else} {* DATENSATZ START *} <tr> <td>{if $sBasketItem.image.src.0} <a href="{$sBasketItem.linkDetails}" class="thumb_image"><img src="{$sBasketItem.image.src.1}" border="0" alt="{$sBasketItem.articlename}" class="imgwkorb" /></a> {/if} {if $sBasketItem.modus eq 0}<a href="{$sBasketItem.linkDetails}">{/if}{$sBasketItem.articlename}{if $sBasketItem.modus eq 0}</a>{/if}</td> <td> {$sBasketItem.quantity} {if $sBasketItem.packunit}{$sBasketItem.packunit}{else}{$sBasketItem.itemUnit}{/if}</td> <td class="sum">{if $sBasketItem.modus eq 0 || $sBasketItem.modus eq 10}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 2}{$sConfig.sCURRENCYHTML}{$sBasketItem.amount} {elseif $sBasketItem.modus eq 3}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 4}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount} {else}<span class="fett">GRATIS</span>{/if}</td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.tax}</td> </tr> {/if} {* DATENSATZ END *} {/foreach}
Datei orderprocess/order_finished.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Ersetzen Sie alles zwischen
{foreach name=basket from=$sBasketAfterOrder.content item=sBasketItem key=key} {/foreach}
durch:
{if $sBasketItem.modus == 10} <tr style="background-color:#FCD4DC;"> <td colspan='1' style="padding:0px;"> <table> <tr> <td style="border-bottom:0; padding:0px;"> <span style="color:#FFFFFF; background-color:#E80D3A;font-weight:bold;padding:4px;">{$sConfig.sSnippets.sBasketBundleDiscountText}</span> </td> <td style="border-bottom:0; padding:0px;padding-left:4px;"> <span style="color:#000000;">{$sBasketItem.articlename}</span> </td> </tr> </table> </td> <td> {$sBasketItem.quantity} {if $sBasketItem.packunit}{$sBasketItem.packunit}{else}{$sBasketItem.itemUnit}{/if} </td> <td class="sum">{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}</td> </tr> {else} {* DATENSATZ START *} <tr> <td>{if $sBasketItem.image.src.0} <a href="{$sBasketItem.linkDetails}" class="thumb_image"><img src="{$sBasketItem.image.src.2}" border="0" alt="{$sBasketItem.articlename}" class="imgwkorb" /></a> {/if}{if $sBasketItem.modus eq 0}<a href="{$sBasketItem.linkDetails}">{/if}{$sBasketItem.articlename}{if $sBasketItem.modus eq 0}</a>{/if}</td> <td> {$sBasketItem.quantity} {if $sBasketItem.packunit}{$sBasketItem.packunit}{else}{$sBasketItem.itemUnit}{/if}</td> <td class="sum">{if $sBasketItem.modus eq 0}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 2}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount} {elseif $sBasketItem.modus eq 3}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount}{elseif $sBasketItem.modus eq 4}{$sConfig.sCURRENCYHTML} {$sBasketItem.amount} {else}<span class="fett">{* sSnippet: free *}{$sConfig.sSnippets.sOrderprocessfree}</span>{/if}</td> </tr> {* DATENSATZ END *} {/if}
Ersetzen Sie:
<input type="image" border="0" src="../../media/img/default/store/logo_trusted_shop.gif"
durch:
<input type="image" border="0" src="../../../../0/de/media/img/default/store/logo_trusted_shop.gif" title="{* sSnippet: Trusted shops - click here. *}{$sConfig.sSnippets.sOrderprocessclickhere}">
Ersetzen Sie:
<input name="payment" type="hidden" value="">
durch:
<input name="payment" type="hidden" value="{$sUserData.additional.payment.id}">
Datei newsletter/newsletter.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Ersetzen Sie die Datei durch die Aktuelle Version aus dem Download-Archiv!
Datei account/account_ordersummary.tpl (Im Verz. /0/ und allen Subshop-Verzeichnissen, die Sie verwenden)
Fügen Sie unter:
{foreach from=$sOpenOrders item=offerPosition}
folgendes ein:
{assign var="ordernumber" value=""} <form name="sNewOrder" method="GET" action="{$sStart}"> <input name="sViewport" type="hidden" value="basket"> <input name="sAdd" type="hidden" value="-1111">
Fügen Sie unter:
{if $offerPosition.comment}{* sSnippet: A comment was deposited *}{$sConfig.sSnippets.sAccountACommentisdeposited}{/if} </span>
ein:
<input type="submit" value="{* sSnippet: Repeat the Order *}{$sConfig.sSnippets.sAccountRepeatOrder}">
Fügen Sie unter:
{foreach from=$offerPosition.details item=article}
ein:
{if $article.modus == 0} {assign var="ordernumber" value=$ordernumber|cat:$article.articleordernumber|cat:";"} {/if}
Fügen Sie unter:
{/if} {/foreach}
ein:
<input type="hidden" name="sAddAccessories" value="{$ordernumber}">
Fügen Sie über:
{/foreach}
ein:
</form>
Ändern Sie:
{if $offerPosition.net}
in:
{if $offerPosition.taxfree}
Weitere Template-Änderungen
Alle weiteren Template-Anpassungen betreffen hauptsächlich kleinere Bug-Fixes die sich aber nicht auf die Funktionalität des Shops auswirken. Falls Sie auch diese Anpassungen komplett durchführen möchten, sollten Sie das Update-Script nutzen. Hier werden Ihnen alle erforderlichen Anpassungen in Bezug auf Ihre lokale Template-Basis angezeigt und Sie können diese im integrierten Editor direkt umsetzen.
Campaigns / Newsletter-Template
Falls Sie neuen Funktionen nutzen möchten, die Ihnen das Shopware Newsletter Modul bietet, müssen Sie die Dateien campaigns/index.tpl und campaigns/alt/index.tpl modifizieren.
Artikel-PDF erstellen
Artikel bewerten
Weitere interessante Artikel:
Kategorien:
Bestell-Nr.: SW1270_5068
Lieferzeit ca. 5 Tage
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. + Versandkosten*

