Shopware Knowledgebase

Template-Änderungen in 3.0.5

Inhaltsverzeichnis

Allgemeine Informationen

Template-Browser

Mit Hilfe unseres Template-Browsers werden Ihnen alle notwendigen Template-Änderungen für ein Update übersichtlich dargestellt.

Zum Template-Browser

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.

Diff index.tpl:

Diff alt/index.tpl:

Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Kategorien:

Bestell-Nr.: SW1270_5068

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*