Shopware Knowledgebase

Dieser Artikel ist noch nicht für Shopware 3.5 geprüft bzw. freigegeben.
Shopware Labs

Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.

Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.

jQuery für Shopware 3.0.5

  • shopware AG
  • 26.03.2010
  • 1
  • Voting
  • Template, jQuery, Javascript, Mootools 
  • Labs/ Alte Erweiterungen/ Template
  • Kein Support 
Zum Download

Hinweis: - Experimentelle jQuery-Unterstützung Diese Anpassung / Umstellung sollte nur durch versierte Benutzer oder Entwickler vorgenommen werden.

Changelog

Version 1.5

Behebt einen Bug in der Bundlefunktion "changeDetails"

Version 1.4

Dieses Release ist ein Minor Bugfix Release, welches wir durch Anregungen unser Kunden releasen. Hierbei wurden alle Warnung, welche im Internet Explorer 6 auftauchen gefixt.

Version / Copyright

Version: 1.4

Copyright (c) 2010 Shopware AG

Allgemeines

Mit diesem Paket sind Sie in der Lage jQuery als Javascript Framework zu verwenden. Es wurden alle Javascript Komponenten vom Shopware 3.0.5 Template in jQuery übersetzt.

Für dieses Paket wurde jQuery 1.4.2 verwendet.

Folgende Features werden in dieser Version geboten:

  • Livesuche
  • Topseller Accordion
  • Vergleiche
  • Bundlefunktion
  • Konfigurator
  • Liveshopping
  • Sprachenwechsel
  • Tabs auf der Artikelseite
  • ZoomPlus basiert auf jQZoom Evolution 1.01
  • Lightbox basiert auf FancyBox 1.3.1

Wie installiere ich dieses Paket?

Bevor Sie dieses Paket benutzen sollten Sie ein Backup Ihres aktuellen Templates machen. Bitte beachten Sie dass dieses Paket nur mit dem Standardtemplate 0 von Shopware 3.0.5 zusammenarbeitet. Falls Sie ein Custom Template verwenden, lesen Sie bitte im Abschnitt "Einbindung in ein Custom Template" weiter.

1. Stellen Sie eine Verbindung zu Ihren FTP-Server her

2. Wechseln Sie in Ihre Shopware Installation und gehen hier in den Ordner "templates"

3. Laden Sie den neben dieser Installationsanleitungen enthaltenden Ordner "0" hoch

4. Bitte bestätigen Sie das Überschreiben der vorhandenen Dateien

5. Fertig

Welche Dateien sind neu?

  • /de/media/js/jquery-1.4.min.js
  • /de/media/js/jquery.shopware.js
  • /de/media/js/jquery.easing-1.3.pack.js
  • /de/media/img/default/fancybox/blank.gif
  • /de/media/img/default/fancybox/fancy_close.png
  • /de/media/img/default/fancybox/fancy_loading.png
  • /de/media/img/default/fancybox/fancy_nav_left.png
  • /de/media/img/default/fancybox/fancy_nav_right.png
  • /de/media/img/default/fancybox/fancy_shadow_e.png
  • /de/media/img/default/fancybox/fancy_shadow_n.png
  • /de/media/img/default/fancybox/fancy_shadow_ne.png
  • /de/media/img/default/fancybox/fancy_shadow_nw.png
  • /de/media/img/default/fancybox/fancy_shadow_s.png
  • /de/media/img/default/fancybox/fancy_shadow_se.png
  • /de/media/img/default/fancybox/fancy_shadow_sw.png
  • /de/media/img/default/fancybox/fancy_shadow_w.png
  • /de/media/img/default/fancybox/fancy_title_left.png
  • /de/media/img/default/fancybox/fancy_title_main.png
  • /de/media/img/default/fancybox/fancy_title_over.png
  • /de/media/img/default/fancybox/fancy_title_right.png
  • /de/media/img/default/fancybox/fancybox.png
  • /de/media/img/default/fancybox/fancybox-x.png
  • /de/media/img/default/fancybox/fancybox-y.png

Welche Dateien werden ersetzt/geändert?

  • /de/html/ajax/index_overlay_comparisons.tpl
  • /de/html/ajax/index_top_comarisons.tpl
  • /de/html/articles/bundles/article_bundle_box.tpl
  • /de/html/articles/bundles/article_relatedarticles_box.tpl
  • /de/html/articles/bundles/changeDetails_bundle.tpl
  • /de/html/articles/liveshoppinglogics.tpl
  • /de/html/articles/notification/article_notification.tpl
  • /de/html/articles/article_box_4col.tpl
  • /de/html/articles/article_details_middle.tpl
  • /de/html/blog/details.tpl
  • /de/html/blog/listing.tpl
  • /de/html/category_right_charts.tpl
  • /de/index/index.tpl
  • /de/media/css/basic.css

Welche Dateien/Ordner kann ich nach der Installation löschen?

  • /de/html/articles/number_format.func.tpl
  • /de/html/category/category_right_charts.js
  • /de/media/js/core.js
  • /de/media/img/lightbox

Kann ich jQuery 1.4.2 von Google hosten lassen?

Ja, das können Sie machen. Dazu gehen Sie in das Verzeichnis '/templates/0/html/index/index.tpl' und ändern folgende Zeilen:

 
{if !$sConfig.sDONTGZIP}
	{literal}
	<script type="text/javascript" src="../../media/js/get.php?file=jquery-1.4.min.js"></script>
	<script type="text/javascript" src="../../media/js/get.php?file=jquery.shopware.js"></script>
	{/literal}
{else}
	{literal}
	<script type="text/javascript" src="../../media/js/jquery-1.4.min.js"></script>
	<script type="text/javascript" src="../../media/js/jquery.shopware.js"></script>
	{/literal}
{/if}
 

in:

 
{if !$sConfig.sDONTGZIP}
	{literal}
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
	<script type="text/javascript" src="../../media/js/get.php?file=jquery.shopware.js"></script>
	{/literal}
{else}
	{literal}
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
	<script type="text/javascript" src="../../media/js/jquery.shopware.js"></script>
	{/literal}
{/if}
 

Bitte besuchen Sie Googles "Developer's Guide - Google AJAX Libraries API - Google Code" für weitere Informationen unter folgender URL: http://code.google.com/intl/de/apis/ajaxlibs/documentation/

Kann ich Einstellungen/Parameter übergeben?

Ja, diese Möglichkeit besteht für einige unserer jQuery Plugins.

Livesuche

Die Livesuche kann ohne Parameter (Default) gestartet werden. Falls Sie Parameter angeben möchten z.B. um einen mehrsprachigen Shop zu betreiben, dann orientieren Sie sich bitte an folgendem Beispiel:

 
$('#searchfield').search({
	showAllResults: string, //Default: Alle Ergebnisse anzeigen
	manufacturer: string,   //Default: Hersteller
	categories: string,     //Default: Kategorien
	minsearchlength: int,   //Default: 3
	container: selector     //Default: #searchresults
});
 

ZoomPlus

Der Zoomeffekt auf der Artikelseite kann auch an Ihre Anforderungen angepasst werden. Bitte orientieren Sie sich an folgendem Beispiel:

 
$('.MagicZoom').jqzoom({
	zoomType: 'standard'
	zoomWith: 325,
	zoomHeight: 325,
	xOffset: 20,
	yOffset: 0,
	position: 'right',
	lens: true,
	imageOpacity: 0.2,
	title: true,
	showEffect: 'fadein',
	hideEffect: 'fadeout',
	fadeinSpeed: 'fast',
	fadeoutSpeed: 'fast',
	showPreload: true,
	preloadText: 'Lade Zoom...',
	preloadPosition: 'center'
});
 

Weitere Informationen finden Sie auf der Plugin-Homepage: http://www.mind-projects.it/projects/jqzoom/index.php

Vergleiche

Sie haben mehrere Möglichkeiten Parameter a das Vergleiche-Plugin zu übergeben. Entweder überschreiben Sie die Standardeinstellungen über die "setup"-Funktion oder Sie setzen die einzelnen Optionen manuell im "options"-Objekt. Bitte beachten Sie hier dass sich die Syntax geändert hat.

 
$.compare.setup({
	viewportAjax: '/shopware.php/sViewport,ajax/',          //Request URL
	compareContainer: '#compare_bigbox',                    //Compare list container
	compareOverlay: '#compare_bigbox_overlays',             //Compare overlay container
	resultsContainer: '#compareContainerResults',           //Results container
	articleCountContainer: '#article_count',                //Article count container
	ajaxContainer: '#compareContainerAjax',                 //Ajax container
	compareHighlight: '#compareHighlight',                  //Compare highlight
	highlightSpeed: 1750,                                   //Highlight animation speed
	highlightColor: '#dd4800',                              //Highlight color
	dataType: 'json',                                       //Ajax request data type
	requestType: 'post',                                    //Ajax request method
	animationSpeed: 800,                                    //FadeIn and fadeOut animation speed
	topLink: '#top',                                        //Top Anchor
	maxReached: "Sie können maximal 5 Artikel vergleichen!" //reached maximal articles string
});
 

oder

 
//Ändern des Ajax Viewport
$.compare.options.viewportAjax = '/index.php/sViewport,ajax';
 

Lightbox

Das Lightbox-Plugin kann natürlich auch an Ihre Bedürfnisse angepasst werden. Bitte orientieren Sie sich an folgendem Beispiel:

 
$('a[rel=lightbox[photos]]').fancybox({
	padding: 10,
	margin: 20,
	opacity: false,
	modal: false,
	cyclic: false,
	scrolling: 'auto',
	width: 560,
	height: 340,
	autoScale: true,
	autoDimensions: true,
	centerOnScroll: false,
	ajax: {},
	swf: {wmode: 'transparent'},
	hideOnOverlayClick: true,
	hideOnContentClick: false,
	overlayShow: true,
	overlayOpacity: 0.3,
	overlayColor: '#666',
	titleShow: true,
	titlePosition: 'outside',
	titleFormat: null,
	transitionIn: 'fade',
	transitionOut: 'fade',
	speedIn: 300,
	speedOut: 300,
	changeSpeed: 300,
	changeFade: 'fast',
	easingIn: 'swing',
	easingOut: 'swing',
	showCloseButton: ture,
	showNavArrows: true,
	onStart: null,
	onCancel: null,
	onComplete: null,
	onCleanup: null,
	onClosed: null
});
 

Für weitere Informationen besuchen Sie bitte die Plugin-Homepage: http://fancybox.net/api

jQuery mit anderen Javascript Frameworks nutzen

Falls Sie jQuery in Verbindung mit anderen Javascript Frameworks nutzen möchten, dann haben Sie hier auch die Chance dazu. Dazu empfehlen wir Ihnen folgende Methode:

 
<script type="text/javascript">
  $.noConflict();
  //Code anderer Frameworks, welche den $ Namespace benutzen
</script>
 
 

Einbindung in ein Custom Template

Unsere jQuery Plugin Sammlung kann auch in ein Custom Template eingebaut werden. Um dieses Ziel zu erreichen finden Sie hier eine Auflistung aller geänderten Zeilen, woran Sie sich bei Ihrer Template-Erstellung richten können.

index.tpl

Die "index.tpl"-Datei finden Sie in Ihrer Shopware 3.0.5 Installation unter 'templates/0/de/html/index'. Hier müssen mehrere Bereiche ersetzt werden. Die angegebenen Zeilenangaben basieren auf dem Standardtemplate.

Zeile 34-54

 
<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>
{if !$sConfig.sDONTGZIP}
	{literal}
	<script type="text/javascript" src="../../media/js/get.php?file=core.js"></script>
	{/literal}
{else}
	{literal}
	<script type="text/javascript" src="../../media/js/core.js"></script>
	{/literal}
{/if}
 

in folgendes ändern:

 
{if !$sConfig.sDONTGZIP}
	{literal}
	<script type="text/javascript" src="../../media/js/get.php?file=jquery-1.4.min.js"></script>
	<script type="text/javascript" src="../../media/js/get.php?file=jquery.shopware.js"></script>
	{/literal}
{else}
	{literal}
	<script type="text/javascript" src="../../media/js/jquery-1.4.min.js"></script>
	<script type="text/javascript" src="../../media/js/jquery.shopware.js"></script>
	{/literal}
{/if}
<script type="text/javascript">
{literal}
$(document).ready(function() {
	//Servertime
	$.server.init({/literal}{$smarty.now}{literal});
	//Suche
	$('#searchfield').search();
 
	//Lightbox
	$('a[rel=lightbox[photos]]').fancybox();
 
	//Artikelbilderzoom
	$('#zoom1').jqzoom({
		zoomWidth: 325,
		zoomHeight: 325,
		xOffset: 20,
		position: 'right',
		title: true,
		showEffect: 'fadein',
		hideEffect: 'fadeout',
		fadeinSpeed: 'fast',
		fadeoutSpeed: 'fast',
		preloadText: 'Lade Zoom...'
	});
 
	//Funktioniert nur bei ZoomPlus
	$('.thumb_box a').click(function() {
		var thumb = $(this).attr('rev');
		var zoom = $(this).attr('href');
		var container = $('#zoom1');
		var img = container.children('img');
 
		container.attr('href', zoom);
		img.attr('src', thumb);
		return false;
	});
 
	//Topseller
	if($('#topseller')) $.accordion();
})
{/literal}
</script>
 

Zeile 160:

 
<select name="sLanguage" onchange="$('sLanguageForm').submit();" class="lang_select">
 

in folgendes ändern:

 
<select name="sLanguage" onchange="$('#sLanguageForm').submit();" class="lang_select">
 

Zeile 245:

 
<input type="submit" value="{* sSnippet: searchbutton *}{$sConfig.sSnippets.sIndexsearchbutton}" id="submit_search" onclick="hideSearchAfterClick();"/>
 

in folgendes ändern:

 
<input type="submit" value="{* sSnippet: searchbutton *}{$sConfig.sSnippets.sIndexsearchbutton}" id="submit_search" onclick="$.hideSearchAfterClick();"/>
 

Zeile 517:

 
<div id="compare_bigbox_overlays" style="position:fixed;top:0;left:0;display:none;z-index:8000;background-color:black;width:100%;height:100%;opacity:0;" onclick="hideCompareList()"></div>
 

in folgendes ändern:

 
<div id="compare_bigbox_overlays" style="position:fixed;top:0;left:0;display:none;z-index:8000;background-color:black;width:100%;height:100%;opacity:0;" onclick="$.compare.hideCompareList()"></div>
 

index_overlay_comparisons.tpl

Diese Datei finden Sie unter "/templates/0/de/html/ajax".

Zeile 2:

 
<a class="bt_compare_del" style="cursor: pointer;" onclick="hideCompareList()">schlie&szlig;en</a>
 

in folgendes ändern:

 
<a class="bt_compare_del" style="cursor: pointer;" onclick="$.compare.hideCompareList()">schlie&szlig;en</a>
 

index_top_comparisons.tpl

Zeile 1:

 
<div id="compareContainer" onmouseover="showCompare();" onmouseout="hideCompare();" {if $sComparisons|@count == 0}style="display:none;"{/if} style="z-index:1000;">
 

in folgendes ändern:

 
<div id="compareContainer" onmouseover="$.compare.showCompare();" onmouseout="$.compare.hideCompare();" {if $sComparisons|@count == 0}style="display:none;"{/if} style="z-index:1000;">
 

Zeile 8:

 
<div id="compareContainerResults" style="display:none; z-index:7000;" onmouseover="showCompare()" onmouseout="hideCompare()">
 

in folgendes ändern:

 
<div id="compareContainerResults" style="display:none; z-index:7000;" onmouseover="$.compare.showCompare()" onmouseout="$.compare.hideCompare()">
 

Zeile 12:

 
<div style="float:left;width:190px;">{$compare.articlename}</div> <a onclick="deleteCompare('{$compare.articleID}')" class="del_comp"></a><div class="fixfloat"></div>
 

in folgendes ändern:

 
<div style="float:left;width:190px;">{$compare.articlename}</div> <a onclick="$.compare.deleteCompare('{$compare.articleID}')" class="del_comp"></a><div class="fixfloat"></div>
 

Zeile 15-17:

 
<li><a onclick="startComparison()" style="cursor:pointer;" class="bt_compare">{* sSnippet: start compare *}{$sConfig.sSnippets.sAjaxstartcompare}</a></li>
<li><a onclick="deleteComparisons()" style="cursor:pointer" class="bt_compare_del">{* sSnippet: delete compare *}{$sConfig.sSnippets.sAjaxdeletecompare}</a></li>
 

in folgendes ändern:

 
<li><a onclick="$.compare.startComparison()" style="cursor:pointer;" class="bt_compare">{* sSnippet: start compare *}{$sConfig.sSnippets.sAjaxstartcompare}</a></li>
<li><a onclick="$.compare.deleteComparisons()" style="cursor:pointer" class="bt_compare_del">{* sSnippet: delete compare *}{$sConfig.sSnippets.sAjaxdeletecompare}</a></li>
 

article_relatedarticles_box.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/bundles/"

Zeile 80-180:

 
<script type="text/javascript">
/**
 *
 * @access public
 * @return void
 **/
function refreshRelatedArticle(){
	var relatedOrdernumbers = "";
	var totalPrice = $('selected_articel_price').value;
	$(document.body).getElements('input[class=relatedOrdernumber]').each(function(item, index, allItems){
		var tmpOrdernumber = item.value;
		var tmpContainerName = tmpOrdernumber+'_related_container';
		var tmpPlusiconName = tmpOrdernumber+'_related_plusicon';
		var tmpPreisName = tmpOrdernumber+'_price';
		var checkbox = $(tmpOrdernumber+'_related_checkbox');
 
		if(true == checkbox.checked)
		{
			//Container und Pluszeichen einblenden
			$(tmpContainerName).setStyle('display', 'block');
			$(tmpPlusiconName).setStyle('display', 'block');
 
			//Bestellnummer hinzufügen
			if("" == relatedOrdernumbers)
				relatedOrdernumbers = tmpOrdernumber;
			else
				relatedOrdernumbers+= ";"+tmpOrdernumber;
 
			//Preis addieren
			var tmpPrice = $(tmpPreisName).value;
			if(tmpPrice) totalPrice = eval(totalPrice)+eval(tmpPrice);
 
		}else{
			//Container und Pluszeichen ausblenden
			$(tmpContainerName).setStyle('display', 'none');
			$(tmpPlusiconName).setStyle('display', 'none');
		}
	});
	$('sRelatedOrdernumbers').value = relatedOrdernumbers;
	$('price_relatedbundle').innerHTML = number_format(totalPrice, 2, ',', '.');
}
 
/**
 *
 * @access public
 * @return void
 **/
function changeRelatedArticleState(ordernumber, active){
	var tmpContainerName = ordernumber+'_related_container';
	if(false == active)
	{
		//Container ausblenden
		$(tmpContainerName).setStyle('display', 'none');
	}else{
		//Container einblenden
		$(tmpContainerName).setStyle('display', 'block');
	}
}
 
//Werte setzen
refreshRelatedArticle();
 
function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
</script>
 

in folgendes ändern:

 
<script type="text/javascript">
//Werte setzen
$.refreshRelatedArticle(); //befindet sich in jquery.shopware.js
</script>
 

changeDetails_bundle.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/bundles/"

Zeile 1-230:

 
/*
 +++ RELATED BUNDLELOOK - START
 */
 {if $sArticle.sRelatedArticles && $sArticle.crossbundlelook}
 {literal}
 
 	//Box freischalten
 	try {
		$('related_box').setStyle('display', 'block');
	}catch(e){}
 
	//Bestellnummer und Preis hinterlegen
 	try {
		$('related_main_ordernumber').value = ordernumber;
		$('selected_articel_price').value = $('price_'+ordernumber).value;
		refreshRelatedArticle();
	}catch(e){}
 
	try{
		var tmpBundleImg = $('related_main_image');
		var tmpSourceImg = $('img_1_'+ordernumber);
		if(tmpSourceImg != null)
		{
			tmpBundleImg.setHTML(tmpSourceImg.innerHTML);
			//alert(tmpSourceImg.innerHTML);
		}
	}catch(e){	}
 
 
 {/literal}
 {/if}
 {literal}
/*
 +++ RELATED BUNDLELOOK - END
 */
 
/*
 +++ BUNDLE - START
 */
 
{/literal}
{if $sArticle.sBundles}
{literal}
 
	//Variantenbestellnummer als aktiven Artikel
	//hinterlegen
	try {
		$(document.body).getElements('input[name=sAddBundle]').each(function(item, index, allItems){
			item.value = ordernumber;
		});
	}catch(e){}
 
	//BundleBox ausblenden
	try {
		$('bundle_box').setStyle('display','none');
	}catch(e){}
 
	{/literal}
	//Bundle Display Flag
	//Wird auf true gesetzt, wenn mindestens
	//ein Bundleartikel aktiv ist
	var showBundleBox = false;
 
	{foreach from=$sArticle.sBundles item=bundle}
 
		{if $sArticle.sVariants && $sConfig.sSHOWBUNDLEMAINARTICLE}
			//Bild des Hauptartikels bei Varianten austauschen
			{literal}
				try{
					var tmpBundleImg = $('bundleImg_{/literal}{$bundle.id}{literal}');
					var tmpSourceImg = $('img_1_'+ordernumber);
					if(tmpBundleImg != null)
					{
						if(tmpSourceImg != null)
						{
							tmpBundleImg.setHTML(tmpSourceImg.innerHTML);
						}
					}
				}catch(e){	}
			{/literal}
		{/if}
 
		//Preise und Rabatte
		{literal}
			//GESAMTPREIS BERECHNEN
			try{
				//Ausgabe Span
				var price_rab_span = $('price_rabAbs_{/literal}{$bundle.id}{literal}');
				//Artikelpreis
				var articlePrice = $('price_'+ordernumber).value;
				//Bundleartikelgesamtpreis
				var bundleArticlesTotalPrice = {/literal}{$bundle.sBundleArticlesTotalPrice.display}{literal}
			}catch(e){}
			if(price_rab_span!=null && articlePrice!=null && bundleArticlesTotalPrice!=null)
			{
				var rabTotal = eval(articlePrice)+eval(bundleArticlesTotalPrice);
				//var total = "x";
				price_rab_span.innerHTML = number_format(rabTotal, 2, ",", ".");
			}
 
			//BUNDLEPREIS ERMITTELN
			try{
				//Ausgabe Span
				var price_bundle_span = $('price_bundle_{/literal}{$bundle.id}{literal}');
			}catch(e){}
			if(price_bundle_span!=null)
			{
				{/literal}
				//Absoluter Rabatt
				{if "abs"==$bundle.rab_type}
					var bundle_price = {$bundle.sBundlePrices.display};
					price_bundle_span.innerHTML = number_format(bundle_price, 2, ",", ".");
				{else}
					//Prozentualen Rabatt berechnen
					var percentage = {$bundle.sBundlePrices.percentage};
					var tmpRabatt = eval(rabTotal)/100*eval(percentage);
					var bundle_price = eval(rabTotal)-eval(tmpRabatt);
					price_bundle_span.innerHTML = number_format(bundle_price, 2, ",", ".");
				{/if}
				{literal}
 
			}
 
			//Rabatt in Prozent
			try{
				//Ausgabe Span
				var price_rabPro_span = $('price_rabPro_{/literal}{$bundle.id}{literal}');
				var rabPro = 100-(eval(bundle_price)*100/eval(rabTotal));
			}catch(e){}
			if(price_rabPro_span!=null && rabPro!=null)
			{
				price_rabPro_span.innerHTML = number_format(rabPro,2);
			}
 
		{/literal}
 
 
		//Überprüfung, ob eine Artikeleinschränkung vorliegt
		{if $bundle.sBundleStints}
			//Bundle Box zunächst ausblenden
			//im weiteren Verlauf wird Sie dann für
			//berechtigte Artikelnummern wieder freigeschaltet
			{literal} try { {/literal}
				var tmpBundlesetName = 'bundleset_{$bundle.id}';
				$(tmpBundlesetName).setStyle('display','none');
			{literal} }catch(e){} {/literal}
 
			//Bestellnummern durchlaufen, bei denen der Bundle
			//angezeigt werden soll
			{foreach from=$bundle.sBundleStints item=stints}
				var ordernumberToUpper = ordernumber.toUpperCase();
				var stints = '{$stints}';
				{literal}
				if(ordernumberToUpper == stints)
				{
					showBundleBox=true;
 
					//BundleBox anzeigen
					try {
					{/literal}
						var tmpBundlesetName = 'bundleset_{$bundle.id}';
						$(tmpBundlesetName).setStyle('display','block');
					{literal}
					}catch(e){}
				}
				{/literal}
			{/foreach}
		{else}
			{literal}
			try {
				$('bundle_box').setStyle('display','block');
			}catch(e){}
			{/literal}
		{/if}
	{/foreach}
 
	{literal}
	//BundleBox anzeigen, wenn noch mindestens ein Bundleartikel
	//aktiv ist
	if(showBundleBox)
	{
		try {
			$('bundle_box').setStyle('display','block');
		}catch(e){}
	}
 
	//Lagerbestandprüfung für Variantenartikel
	{/literal}
	{if $sArticle.sVariants}
		{if 1 == $sArticle.laststock}
			//Lagerbestand der Variante ermitteln
			{literal}
				try {
					var instock = $('instock_'+ordernumber).value;
				}catch(e){}
 
				if(instock > 0)
				{
					if(showBundleBox)
					{
						try {
							$('bundle_box').setStyle('display','block');
						}catch(e){}
					}
				}else{
					try {
						$('bundle_box').setStyle('display','none');
					}catch(e){}
				}
			{/literal}
		{else}
			//BundleBox anzeigen, wenn noch mindestens ein Bundleartikel
			//aktiv ist
			{literal}
				if(showBundleBox)
				{
					try {
						$('bundle_box').setStyle('display','block');
					}catch(e){}
				}
			{/literal}
		{/if}
	{/if}
	{literal}
 
{/literal}
{/if}
/*
 +++ BUNDLE - END
 */
 

in folgendes ändern:

 
/**
 * Related Bundlelook
 * Start
 */
{if $sArticle.sRelatedArticles && $sArticle.crossbundlelook}
	{literal}
	//Box Freischalten
	try {
		$('#related_box').show();
	} catch(e) {console.log('box konnte nicht freigeschaltet werden');}
 
	//Bestellnummer und Preis hinterlegen
	try {
		$('#related_main_ordernumber').val(ordernumber);
		$('selected_articel_price').val($('#price_'+ordernumber).val());
		$.refreshRelatedArticle();
	} catch(e) {
	}
 
	//Bilder hinterlegen
	try {
		var tmpBundleImg = $('#related_main_image');
		var tmpSourceImg = $('#img_1_'+ordernumber);
		if(tmpSourceImg != null) {
			tmpBundleImg.html(tmpSourceImg.html());
			console.log('tmpSourceImg: ' + tmpSourceImg.html());
		}
	} catch(e) {
	}
	{/literal}
{/if}
{literal}
/**
 * Related Bundlelook
 * End
 */
 
/**
 * Bundle
 * Start
 */
{/literal}
{if $sArticle.sBundles}
{literal}
	//Variantenbestellnummer als aktiven Artikel hinterlegen
 
	try {
		$('input[name=sAddBundle]').each(function(i, item) {
			$(item).val(ordernumber);
		});
	} catch(e) {
	}
 
	//Bundlebox ausblenden
	try {
		$('#bundle_box').hide();
	} catch(e) {}
	{/literal}
 
	/**
	 * Bundle Display Flag
	 * Wird auf true gesetzt, wenn mindestens
	 * ein Bundleartikel aktiv ist
	 */
	var showBundleBox = false;
 
	{foreach from=$sArticle.sBundles item=bundle}
		{if $sArticle.sVariants && $sConfig.sSHOWBUNDLEMAINARTICLE}
			//Bild des Hauptartikels bei Varianten austauschen
			{literal}
 
			try {
				var tmpBundleImg = $('#bundleImg_{/literal}{$bundle.id}{literal}');
				var tmpSourceImg = $('#img_1_'+ordernumber);
				if(tmpBundleImg != null) {
					if(tmpSourceImg != null) {
						tmpBundleImg.html(tmpSourceImg.html());
					}
				}
			} catch(e) {
			}
			{/literal}
		{/if}
 
		/**
		 * Preise und Rabatte
		 */
		{literal}
			//Gesamtpreis berechnen
			try {
				var price_rab_span = $('#price_rabAbs_{/literal}{$bundle.id}{literal}');
				var articlePrice = $('#price_'+ordernumber).val();
				var bundleArticlesTotalPrice = {/literal}{$bundle.sBundleArticlesTotalPrice.display}{literal}
			} catch(e) {}
 
			if(price_rab_span != null && articlePrice != null && bundleArticlesTotalPrice != null) {
				var rabTotal = eval(articlePrice) + eval(bundleArticlesTotalPrice);
				price_rab_span.html($.number_format(rabTotal, 2, ",", "."));
			}
 
			//Bundlepreis ermitteln
			try {
				var price_bundle_span = $('#price_bundle_{/literal}{$bundle.id}{literal}');
			} catch(e) {}
			if(price_bundle_span != null) {
				{/literal}
				//Absoluter Rabatt
				{if "abs"==$bundle.rab_type}
					var bundle_price = {$bundle.sBundlePrices.display};
					price_bundle_span.html($.number_format(bundle_price, 2, ",", "."));
				{else}
					//Prozentualen Rabatt berechnen
					var percentage = {$bundle.sBundlePrices.percentage};
					var tmpRabatt = eval(rabTotal)/100*eval(percentage);
					var bundle_price = eval(rabTotal)-eval(tmpRabatt);
					price_bundle_span.html($.number_format(bundle_price, 2, ",", "."));
				{/if}
				{literal}
			}
 
			//Rabatt in Prozent
			try {
				var price_rabPro_span = $('#price_rabPro_{/literal}{$bundle.id}{literal}');
				var rabPro = 100-(eval(bundle_price)*100/eval(rabTotal));
			} catch(e) {}
 
			if(price_rabPro_span != null && rabPro != null) {
				price_rabPro_span.html($.number_format(rabPro, 2));
			}
		{/literal}
 
		//Überprüfung, obv eine Artikeleinschraenkung vorliegt
		{if $bundle.sBundleStints}
 
			/**
			 * Bundlebox zunaechst ausblenden
			 * im weiteren Verlauf wird Sie dann fuer
			 * berechtigte Artikelnummern wieder freigeschaltet
			 */
			 {literal} try { {/literal}
				var tmpBundlesetName = 'bundleset_{$bundle.id}';
				$('#' + tmpBundlesetName).hide()
			{literal} }catch(e){} {/literal}
 
 
			//Bestellnummern durchlaufen, bei denen der Bundle
			//angezeigt werden soll
			{foreach from=$bundle.sBundleStints item=stints}
				var ordernumberToUpper = ordernumber.toUpperCase();
				var stints = '{$stints}';
				{literal}
				if(ordernumberToUpper == stints)
				{
					showBundleBox = true;
 
					//Bundlebox anzeigen
					try {
					{/literal}
						var tmpBundlesetName = '#bundleset_{$bundle.id}';
						$(tmpBundlesetName).show();
					{literal}
					}catch(e){}
				}
				{/literal}
			{/foreach}
		{/if}
	{/foreach}
 
	{literal}
 
	/**
	 * Bundlebox anzeigen, wenn noch mindestens ein Bundleartikel
	 * aktiv ist
	 */
	if(showBundleBox) {
		try {
			$('#bundle_box').show();
		} catch(e) {}
	}
 
	/**
	 * Lagerbestandpruefung fuer Variantenartikel
	 */
	{/literal}
	{if $sArticle.sVariants}
		{if 1 == $sArticle.laststock}
			//Lagerbestand der Variante ermitteln
			{literal}
			try {
				var instock = $('#instock_'+ordernumber.val())
			} catch(e) {}
 
			if(instock > 0) {
				if(showBundleBox) {
					try {
						$('#bundle_box').show();
					} catch(e) {}
				}
			} else {
				try {
					$('#bundle_box').hide();
				} catch(e) {}
			}
			{/literal}
		{else}
 
			/**
			 * Bundlebox anzeigen, wenn noch mindestens ein Bundleartikel
			 * aktiv ist
			 */
			{literal}
			if(showBundleBox) {
				try {
					$('#bundle_box').show();
				} catch(e) {}
			}
			{/literal}
	{/if}
{/if}
	{literal}
 
{/literal}
{/if}
/**
 * Bundle
 * End
 */
 

logics.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/liveshopping/"

Zeile 9-190:

 
<script type="text/javascript">
{literal}
//window.setTimeout(counterDelay,300);
window.setInterval(function () {
 
	{/literal}
	var now = sServer.dateObj;
	var target 	= new Date();
	target.setTime({$sLiveshoppingData.valid_to_ts} * 1000);
 
	//Debug
	//$('shopnav').innerHTML = now + ' --- '+ target;	
	{literal}	
 
	var d = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_days';
	var h = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_hours';
	var m = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_min';
	var s = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_sec';
	var dp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_days_prozess';
	var hp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_hours_prozess';
	var mp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_min_prozess';
	var sp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_sec_prozess';
	var spbar = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_secbar_prozess';
	var instockp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_instock_prozess';
	var diff = timestampDiff(target.getTime(), now.getTime());
 
	if(diff != false)
	{
		//Werte setzen
		$(document.body).getElements('span[class='+d+']').each(function(item, index, allItems){
			item.innerHTML = diff.d;
		});
		//Zweizeilig
		$(document.body).getElements('span[class='+d+'_doubledigit]').each(function(item, index, allItems){
			tmp = diff.d;
			tmp = tmp.toString();
			if(tmp.length==1){
				item.innerHTML = '0'+tmp;
			}else{					
				item.innerHTML = tmp;
			}
 
		});
 
		$(document.body).getElements('span[class='+h+']').each(function(item, index, allItems){
			item.innerHTML = diff.h;
		});
		//Zweizeilig
		$(document.body).getElements('span[class='+h+'_doubledigit]').each(function(item, index, allItems){
			tmp = diff.h;
			tmp = tmp.toString();
			if(tmp.length==1){
				item.innerHTML = '0'+tmp;
			}else{					
				item.innerHTML = tmp;
			}
 
		});
 
		$(document.body).getElements('span[class='+m+']').each(function(item, index, allItems){
			item.innerHTML = diff.m;
		});
		//Zweizeilig
		$(document.body).getElements('span[class='+m+'_doubledigit]').each(function(item, index, allItems){
			tmp = diff.m;
			tmp = tmp.toString();
			if(tmp.length==1){
				item.innerHTML = '0'+tmp;
			}else{					
				item.innerHTML = tmp;
			}
 
		});
 
		$(document.body).getElements('span[class='+s+']').each(function(item, index, allItems){
			item.innerHTML = diff.s;
		});
		//Zweizeilig
		$(document.body).getElements('span[class='+s+'_doubledigit]').each(function(item, index, allItems){
			tmp = diff.s;
			tmp = tmp.toString();
			if(tmp.length==1){
				item.innerHTML = '0'+tmp;
			}else{					
				item.innerHTML = tmp;
			}
 
		});
 
		//Minutenauf- bzw. abschlag
		try{				
			if (diff.s == 0) {
				{/literal}
				{if $sLiveshoppingData.typeID == 2 || $sLiveshoppingData.typeID == 3}
				//Neuen Preis ermitteln
				var newPrice = $('{$uniquekey}{$sLiveshoppingData.ordernumber}_price').value;
				{if $sLiveshoppingData.typeID == 3}
					newPrice = eval(newPrice)+eval({$sLiveshoppingData.minPrice});
				{else}
					newPrice = eval(newPrice)-eval({$sLiveshoppingData.minPrice});
				{/if}
				$('{$uniquekey}{$sLiveshoppingData.ordernumber}_price').value = newPrice;
				$('{$uniquekey}{$sLiveshoppingData.ordernumber}_display_price').innerHTML = number_format(newPrice, 2, ',','.');
				{/if}
				{literal}
			}
		}catch(e){}
 
		//Prozessbars aktualisieren
		$(document.body).getElements('div[class='+dp+']').each(function(item, index, allItems){
			var proz = eval(diff.d)*100/31;
			if(proz > 100) proz = 100;
			proz = 100 - proz;
			item.setStyle('width', proz+'%');
		});
 
		$(document.body).getElements('div[class='+hp+']').each(function(item, index, allItems){
			var proz = eval(diff.h)*100/59;
			proz = 100 - proz;
			item.setStyle('width', proz+'%');
		});
 
		$(document.body).getElements('div[class='+mp+']').each(function(item, index, allItems){
			var proz = eval(diff.m)*100/59;
			proz = 100 - proz;
			item.setStyle('width', proz+'%');
		});
 
		$(document.body).getElements('div[class='+sp+']').each(function(item, index, allItems){
			var proz = eval(diff.s)*100/59;		
			proz = 100 - proz;
 
			item.setStyle('width', proz+'%');
		});
 
		$(document.body).getElements('div[class='+spbar+']').each(function(item, index, allItems){
			var proz = eval(diff.s)*100/59;		
 
			item.setStyle('width', proz+'%');
		});
 
		{/literal}
		{if $sLiveshoppingData.max_quantity_enable}
		{literal}
		$(document.body).getElements('div[class='+instockp+']').each(function(item, index, allItems){
			var proz = eval({/literal}{$sLiveshoppingData.max_quantity}{literal})*100/eval({/literal}{$sLiveshoppingData.max_quantity+$sLiveshoppingData.sells}{literal});
			proz = 100 - proz;
			item.setStyle('width', proz+'%');
		});
		{/literal}
		{/if}
		{literal}
	}
	//Live-Shopping abgelaufen
	else{
		//Seite neu laden
		location.reload();
	}
 
 
},1000);
 
 
//Differenz zwischen zwei Timestamps berechnen
function timestampDiff (d1, d2) {
  if (d1 < d2) {
    return false;
  }
 
  var d = Math.floor ((d1 - d2) / (24 * 60 * 60 * 1000));
  var h = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
  var m = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000) - (h * 60 * 60 * 1000)) / (60 * 1000));
  var s = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000) - (h * 60 * 60 * 1000) - (m * 60 * 1000)) / 1000);
  return { 'd': d, 'h': h, 'm': m, 's': s };
}
 
 
{/literal}
</script>
 

in folgendes ändern:

 
<script type="text/javascript">
{literal}
window.setInterval(function () {
	{/literal}
	var now = $.server.dateObj;
	var target 	= new Date();
	target.setTime({$sLiveshoppingData.valid_to_ts} * 1000);
	{literal}
	var d = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_days';
	var h = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_hours';
	var m = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_min';
	var s = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_sec';
	var dp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_days_prozess';
	var hp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_hours_prozess';
	var mp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_min_prozess';
	var sp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_sec_prozess';
	var spbar = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_secbar_prozess';
	var instockp = '{/literal}{$uniquekey}{$sLiveshoppingData.ordernumber}{literal}_instock_prozess';
	var diff = timestampDiff(target.getTime(), now.getTime());
 
	if(diff != false) {
		//Tage 
		$('span[class='+d+']').each(function(index, item) {
			$(item).html(diff.d);
		});
 
		//Tage - Zweizeilig
		$('span[class='+d+'_doubledigit]').each(function(index, item) {
			tmp = diff.d;
			tmp = tmp.toString();
			if(tmp.length == 1)
				$(item).html('0' + tmp);
			else
				$(item).html(tmp);
		});
 
		//Stunden
		$('span[class='+h+']').each(function(index, item) {
			$(item).html(diff.h);
		});
 
		//Stunden - Zweizeilig
		$('span[class='+h+'_doubledigit]').each(function(index, item) {
			tmp = diff.h;
			tmp = tmp.toString();
			if(tmp.length == 1)
				$(item).html('0'+tmp);
			else
				$(item).html(tmp);
		});
 
		//Minuten
		$('span[class='+m+']').each(function(index, item) {
			$(item).html(diff.m);
		});
 
		//Minuten - Zweizeilig
		$('span[class='+m+'_doubledigit]').each(function(index, item) {
			tmp = diff.m;
			tmp = tmp.toString();
			if(tmp.length == 1)
				$(item).html('0'+tmp);
			else
				$(item).html(tmp);
		});
 
		//Sekunden
		$('span[class='+s+']').each(function(index, item) {
			$(item).html(diff.s);
		});
 
		//Sekunden -Zweizeilig
		$('span[class='+s+'_doubledigit]').each(function(index, item) {
			tmp = diff.s;
			tmp = tmp.toString();
			if(tmp.length == 1)
				$(item).html('0'+tmp);
			else
				$(item).html(tmp);
		});
 
		//Minutenauf- bzw. abschlag
		try {
			if(diff.s  == 0) {
				{/literal}
				{if $sLiveshoppingData.typeID == 2 || $sLiveshoppingData.typeID == 3}
				//Neuen Preis ermitteln
				var newPrice = $('#{$uniquekey}{$sLiveshoppingData.ordernumber}_price').val();
				{if $sLiveshoppingData.typeID == 3}
					newPrice = eval(newPrice)+eval({$sLiveshoppingData.minPrice});
				{else}
					newPrice = eval(newPrice)-eval({$sLiveshoppingData.minPrice});
				{/if}
				$('#{$uniquekey}{$sLiveshoppingData.ordernumber}_price').val(newPrice);
				$('#{$uniquekey}{$sLiveshoppingData.ordernumber}_display_price').html($.number_format(newPrice, 2, ',','.'));
				{/if}
				{literal}
			}
		} catch(e) {}
 
		//Prozessbars aktualisieren
		$('div .'+dp).each(function(index, item) {
			var proz = eval(diff.d)*100/31;
			if(proz > 100) proz = 100;
			proz = 100 - proz;
			$(item).css('width', proz+'%');
		});
		$('div .'+hp).each(function(index, item) {
			var proz = eval(diff.h)*100/59;
			proz = 100 - proz;
			$(item).css('width', proz + '%');
		});
		$('div .'+mp).each(function(index, item) {
			var proz = eval(diff.m)*100/59;
			proz = 100 - proz;
			$(item).css('width', proz + '%');
		});
		$('div .'+sp).each(function(index, item) {
			var proz = eval(diff.s)*100/59;
			proz = 100 - proz;
			$(item).css('width', proz + '%');
		});
		$('div .'+spbar).each(function(index, item) {
			var proz = eval(diff.s)*100/59;
			$(item).css('width', proz + '%');
		});
		{/literal}
		{if $sLiveshoppingData.max_quantity_enable}
		{literal}
		$('div .'+instockp).each(function(index, item) {
			var proz = eval({/literal}{$sLiveshoppingData.max_quantity}{literal})*100/eval({/literal}{$sLiveshoppingData.max_quantity+$sLiveshoppingData.sells}{literal});
			proz = 100 - proz;
			$(item).css('width', proz + '&');
		});
		{/literal}
		{/if}
		{literal}
 
	//Live-Shopping abgelaufen
	} else {
		//Seite neuladen
		location.reload();
	}
}, 1000);
 
//Differenz zwischen zwei Timestamps berechnen
function timestampDiff (d1, d2) {
  if (d1 < d2) {
    return false;
  }
 
  var d = Math.floor ((d1 - d2) / (24 * 60 * 60 * 1000));
  var h = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
  var m = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000) - (h * 60 * 60 * 1000)) / (60 * 1000));
  var s = Math.floor (((d1 - d2) - (d * 24 * 60 * 60 * 1000) - (h * 60 * 60 * 1000) - (m * 60 * 1000)) / 1000);
  return { 'd': d, 'h': h, 'm': m, 's': s };
}
{/literal}
</script>
 

article_notification.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/notification/"

Zeile 42-85

 
<script language="JavaScript" type="text/javascript">
	{literal}
		function checkNotification(ordernumber) {
			var variantOrdernumberArray = new Array();
			{/literal}
			{foreach from=$sArticle.sNotificationVariants item=notify}
				variantOrdernumberArray.push('{$notify}');
			{/foreach}
			{literal}
			var isSet = false;
			for (var i = 0; i < variantOrdernumberArray.length; ++i){
 
				if(variantOrdernumberArray[i] == ordernumber){
					isSet = true;
					try {$('articleNotificationWasSend').style.display="block";
					}catch (e){}
					try {$('sendArticleNotification').style.display="none";
					}catch (e){}
				}
			}
			if(isSet == false){
				try {
					$('articleNotificationWasSend').style.display="none";
				} catch(e){}
				try {
				$('sendArticleNotification').style.display="block";
				}catch (e){}
			}
			if (ordernumber != "0") {
				var currentInstock = $('instock_'+ordernumber).value;
				if(currentInstock > 0) {
					$('article_notification').setStyle('display', 'none');
				}
				else{
					$('article_notification').setStyle('display', 'block');
					try {
					$('variantOrdernumber').value=ordernumber;
					} catch(e){}
				}
			}
		}
	{/literal}
</script>
{/if}
 

in folgendes ändern:

 
<script type="text/javascript">
{literal}
	function checkNotification(ordernumber) {
		var variantOrdernumberArray = new Array();
		{/literal}
		{foreach from=$sArticle.sNotificationVariants item=notify}
			variantOrdernumberArray.push('{$notify}');
		{/foreach}
		{literal}
		var isSet = false;
 
		for(var i = 0; i < variantOrdernumberArray.length; ++i) {
			if(variantOrdernumberArray[i] == ordernumber) {
				isSet = true;
				try {
					$('#articleNotificationWasSend').show();
				} catch(e) {}
				try {
					$('#sendArticleNotification').hide();
				} catch(e) {}
			}
		}
		if(isSet == false) {
			try {
				$('#articleNotificationWasSend').hide();
			} catch(e) {}
			try {
				$('#sendArticleNotification').show();
			} catch(e) {}
		}
		if(ordernumber != '0') {
			var currentInstock = $('#instock_'+ordernumber).val();
			if(currentInstock > 0) {
				$('#article_notification').hide();
			} else {
				$('#article_notification').show();
				try {
					$('#variantOrdernumber').val(ordernumber);
				} catch(e) {}
			}
		}
	}
{/literal}
</script>
{/if}
 

article_box_4col.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/"

Zeile 13:

 
{if !$sHideCompare}<a href="#" onclick="addCompare('{$sArticle.articleID}')" class="compare_artbox4">{$sConfig.sSnippets.sArticleButtonCompare}</a>{/if}
 

in folgendes ändern:

 
{if !$sHideCompare}<a href="#" onclick="$.compare.addCompare('{$sArticle.articleID}')" class="compare_artbox4">{$sConfig.sSnippets.sArticleButtonCompare}</a>{/if}
 

article_details_middle.tpl

Diese Datei finden Sie unter "/templates/0/de/html/articles/"

Zeile 197-216

 
<script>
	{literal}
	function iterateOrder(){
		$('sAddAccessories').setProperty('value','');
 
		var x = document.getElementsBySelector('.sValueChanger');
 
		x.each(
			function (e){
				if (e.checked){
					var value = $('sAddAccessories').getProperty('value');
					value = value + e.value + ";";
					$('sAddAccessories').setProperty('value',value);
				}
 
			}
		);
	}
	{/literal}
</script>
 

in folgendes ändern:

 
<script>
{literal}
function iterateOrder() {
	$('#sAddAccessories').val('');
 
	var x = $('.sValueChanger');
	x.each(function(i, e) {
		if(e.checked) {
			var value = $('#sAddAccessories').val();
			value = value + e.value + ';';
			$('#sAddAccessories').val(value);
		}
	})
}
{/literal}
</script>
 

Zeile 225:

 
<input style="margin: 7px 7px 0 0;" type="checkbox"  class="sValueChanger chkbox" name="sValueChange" id="CHECK{$sAccessoryChild.ordernumber}" onchange="iterateOrder()" value="{$sAccessoryChild.ordernumber}"><label onmouseover="$('DIV{$sAccessoryChild.ordernumber}').setStyle('display','block');" onmouseout="$('DIV{$sAccessoryChild.ordernumber}').setStyle('display','none');" style="width:140px;float: left; line-height: 1.2em;margin: 5px 0 0 0; padding: 0; height: 20px; cursor: pointer;" for="CHECK{$sAccessoryChild.ordernumber}">{$sAccessoryChild.optionname|truncate:35} 
({* sSnippet: surcharge *}{$sConfig.sSnippets.sArticlesurcharge}: {$sAccessoryChild.price} {$sConfig.sCURRENCYHTML})</label>
 
 

in folgendes ändern:

 
<input style="margin: 7px 7px 0 0;" type="checkbox"  class="sValueChanger chkbox" name="sValueChange" id="CHECK{$sAccessoryChild.ordernumber}" onchange="iterateOrder()" value="{$sAccessoryChild.ordernumber}"><label onmouseover="$('#DIV{$sAccessoryChild.ordernumber}').show();" onmouseout="$('#DIV{$sAccessoryChild.ordernumber}').hide();" style="width:140px;float: left; line-height: 1.2em;margin: 5px 0 0 0; padding: 0; height: 20px; cursor: pointer;" for="CHECK{$sAccessoryChild.ordernumber}">{$sAccessoryChild.optionname|truncate:35} 
({* sSnippet: surcharge *}{$sConfig.sSnippets.sArticlesurcharge}: {$sAccessoryChild.price} {$sConfig.sCURRENCYHTML})</label>
 
 

Zeile 258-262:

 
{literal}
	<script type="text/javascript">
		$('basketButton').setStyle("opacity", "0.5");
	</script>
{/literal}
 

in folgendes ändern:

 
{literal}
	<script type="text/javascript">
		$('#basketButton').css(opacity, "0.5");
	</script>
{/literal}
 

Zeile 313-328:

 
{literal}
<script language="javascript">
function loadTab(tab){
 
	$$('.aTab').each(function(el){
		el.setStyle('display','none');
	});
	$(tab).setStyle('display','block');
	$$('.tabs-selected').each(function(el){
		el.removeClass('tabs-selected');
	});
 
	$('link'+tab).addClass('tabs-selected');
}
</script>
{/literal}
 

Diese Zeilen bitte komplett entfernen!

Zeile 627-662:

 
<script type="text/javascript">
window.onload=function()
{
	$('bewertungen').setStyle('display','none');
	try {
		$('datenblatt').setStyle('display','none');
	} catch (e){}
	try {
		$('zubehoer').setStyle('display','none');
	} catch (e){}
	 try {
		$('finance').setStyle('display','none');
	} catch (e){}
 
	$$('.updateMe').each(function(el){
		el.removeProperty('href');
	});
 
	stripe('zebra');
 
	Lightbox.init({descriptions: '.lightboxDesc', showControls: true});
 
	//Set Comment on focus by commentsubmit
	{/literal}
	{if $_POST.sAction == "saveComment"||!empty($_GET.sVoteMail)}
	{literal}
		loadTab('bewertungen');		
		$('bewertungen').setStyle('display', 'block');	
		$('bewertungen').focus();	
	{/literal}
	{/if}
	{literal}
}
</script>
{/literal}
 

Diese Zeilen bitte komplett entfernen!

Zeile 701-768:

 
<script language="JavaScript" type="text/javascript">
{literal}
function changeDetails(ordernumber)
{
	if(typeof(window.checkNotification) == "function") {
		checkNotification(ordernumber);
	}
	if (ordernumber != "0"){
		$('article_details').setHTML($(ordernumber).innerHTML);
		// Swap pictures
		try {
			{/literal}
			{if $sConfig.sUSEZOOMPLUS}
			MagicZoom_stopZooms();
			$('imgTarget').setHTML($('img'+ordernumber).innerHTML);
			$('imgTarget').getFirst().setProperty('id','zoom1');
			$('imgTarget').getFirst().addClass('MagicZoom MagicThumb');
			MagicZoom_findZooms();
			MagicThumb.refresh();
			{else}
			$('imgTarget').setHTML($('img'+ordernumber).innerHTML);
			{/if}
			{literal}
 
		}catch (e) {}
		if($('basketButton'))
		{
			$('basketButton').removeEvents('click');
			$('basketButton').setStyle('opacity',1);
		}
	}else {
		$('basketButton').removeEvents('click');
		$('basketButton').addEvent('click', function(event){
			new Event(event).stop();
			alert("{/literal}{* sSnippet: please choose first execution *}{$sConfig.sSnippets.sArticlechoosefirstexecu}{literal}");
		});
	}
	Lightbox.init({descriptions: '.lightboxDesc', showControls: true});	
	{/literal}{include file="articles/bundles/changeDetails_bundle.tpl"}{literal}
}
 
{/literal}
</script>
<script language="JavaScript" type="text/javascript">
{literal}
window.addEvent('domready', function() {
{/literal}
// Set default-view to base-article
{if !$sArticle.sVariants}
	changeDetails("{$sArticle.ordernumber}");
{else}
	{literal}
	// Set view for variant articles
	// price starting from
	$('article_details').setHTML($('variant').innerHTML);
 
	$('basketButton').removeEvents('click');
	$('basketButton').addEvent('click', function(event){
		new Event(event).stop();
		alert("{/literal}{* sSnippet: please choose first execution *}{$sConfig.sSnippets.sArticlechoosefirstexecu}{literal}");
	});
	{/literal}
{/if}
{literal}
});
 
</script>
{/literal}
 

in folgendes ändern:

 
<script type="text/javascript">
{literal}
$(document).ready(function() {
	$('#bewertungen').hide();
	try {$('#datenblatt').hide()} catch(e) {}
	try {$('#zubehoer').hide();} catch(e) {}
	try {$('#finance').hide();} catch(e) {}
 
	$('.updateMe').each(function(i, el) {$(el).removeAttr('href');});
 
	$.stripe('zebra');
 
	//lightbox: init()
 
	//Set Comment on focus by commentsubmit
	{/literal}
	{if $_POST.sAction == "saveComment" || !empty($_GET.sVoteMail)}
	{literal}
		loadTab('bewertungen');		
		$('#bewertungen').show().focus();
	{/literal}
	{/if}
// Set default-view to base-article
{if !$sArticle.sVariants}
	changeDetails("{$sArticle.ordernumber}");
{else}
	{literal}
	// Set view for variant articles
	// price starting from
	$('#article_details').html($('#variant').html());
	$('#basketButton').unbind('click').bind('click', function() {
		alert("{/literal}{* sSnippet: please choose first execution *}{$sConfig.sSnippets.sArticlechoosefirstexecu}{literal}");
	});
	{/literal}
{/if}
{literal}
});
 
function changeDetails(ordernumber) {
	if(typeof(window.checkNotifcation) == 'function')
		checkNotification(ordernumber);
	if(ordernumber != '0') {
		$('#article_details').html($('#'+ordernumber).html());
		//jQZoom zufinden in jquery.template.js
	} else {
		$('#basketButton').unbind('click').bind('click', function() {
			alert("{/literal}{* sSnippet: please choose first execution *}{$sConfig.sSnippets.sArticlechoosefirstexecu}{literal}");
		});
	}
	{/literal}{include file="articles/bundles/changeDetails_bundle.tpl"}{literal}
}
function loadTab(tab) {
	$('.aTab').each(function(i, el) {
		$(el).hide();
	});
	$('#'+tab).show();
	$('.tabs-selected').each(function(i, el) {
		$(el).removeClass('tabs-selected')
	});
	$('#link' + tab).addClass('tabs-selected').show();
}
{/literal}
</script>
 

details.tpl

Diese Datei finden Sie unter "/templates/0/de/html/blog/"

Zeile 230-237:

 
{literal}
<script type="text/javascript">
window.onload=function()
{
	Lightbox.init({descriptions: '.lightboxDesc', showControls: true});
}
</script>
{/literal}
 

Diese Zeilen bitte komplett löschen

listing.tpl

Diese Datei finden Sie unter "/templates/0/de/html/blog/"

Zeile 123-130:

 
{literal}
<script type="text/javascript">
window.onload=function()
{
	Lightbox.init({descriptions: '.lightboxDesc', showControls: true});
}
</script>
{/literal}
 

Diese Zeilen bitte komplett löschen

category_right_charts.tpl

Diese Datei finden Sie unter "/templates/0/de/html/category". Bitte überschreiben Sie diese und ersetzen Sie sie mit der hier gelieferten Datei. Sie finden diese Datei im Ordner "0/de/templates/html/articles/category_right.tpl". Es handelt es sich hier um eine Syntax zur Erstellung der Topseller-Liste. Bitte haben Sie dafür Verständnis.

"media"-Ordner

Im folgenden Schritt ändern und bereinigen wir den "media"-Ordner, welcher unter "/templates/0/de/" zufinden ist

"js"-Ordner

Bitte entfernen Sie die "core.js" und setzen Sie folgende Dateien in den "js"-Ordner:

  • jquery-1.4.min.js
  • jquery.shopware.js
  • jquery.easing-1.3.pack.js

"img"-Ordner

Hier entfernen Sie bitte den Ordner "lightbox" und fügen den Ordner "fancybox" unter "/templates/0/de/media/default" ein.

basic.css

Für die neuen Plugins müssen wir auch die Stylesheet Einstellungen setzen. Dazu öffnen Sie die Datei "/template/0/de/media/css/basic.css" und fügen am Ende folgendes ein:

 
/* Plugin jQZoom */
div.jqZoomTitle{z-index:5000; text-align:center; font-size:11px; font-family:Tahoma; height:16px; padding-top:2px; position:absolute; top:0px; left:0px; width:100%; color:#FFF; background:#999}
.jqZoomPup{overflow:hidden; background-color:#FFF; opacity:0.6; z-index:10; border-color:#c4c4c4; border-style:solid; cursor:crosshair}
.jqZoomPup img{border:0px}
.preload{color:#333; font-size:12px; font-family:Tahoma; text-decoration:none; border:1px solid #CCC; background-color:white; padding:8px; text-align:center; background-image:url(../img/default/zoomloader.gif); background-repeat:no-repeat; background-position:43px 30px; width:90px; height:43px; z-index:10; position:absolute; top:3px; left:3px}
.jqZoomWindow{border:1px solid #999; background-color:#FFF}

/* Plugin Topseller */
ul#accordion{ padding:0; border:1px solid #ececec; width:148px}
ul#accordion li a{ background:#222; padding:0.5em; display:block; color:#ececec; font-weight:bold; font:0.8em Verdana,Arial,Helvetica,sans-serif; text-decoration:none}
ul >li{ list-style:none;  padding:0;  margin:0}
ul#accordion li ul{ margin:0;  padding:0}
ul#accordion li ul li{ padding:2px; margin:0; text-align:center; font:0.8em Verdana,Arial,Helvetica,sans-serif}
ul#accordion li ul li a{ padding:5px 0; font:0.8em Verdana,Arial,Helvetica,sans-serif; color:#222; background:none}
ul#accordion li ul li a:hover{ color:#C90}

/* Plugin Fancybox */
#fancybox-loading{position:fixed; top:50%; left:50%; height:40px; width:40px; margin-top:-20px; margin-left:-20px; cursor:pointer; overflow:hidden; z-index:1104; display:none}
* html #fancybox-loading{/* IE6 */position:absolute; margin-top:0}
#fancybox-loading div{position:absolute; top:0; left:0; width:40px; height:480px; background-image:url('../img/default/fancybox/fancybox.png')}
#fancybox-overlay{position:fixed; top:0; left:0; bottom:0; right:0; background:#000; z-index:1100; display:none}
* html #fancybox-overlay{/* IE6 */position:absolute; width:100%}
#fancybox-tmp{padding:0; margin:0; border:0; overflow:auto; display:none}
#fancybox-wrap{position:absolute; top:0; left:0; margin:0; padding:20px; z-index:1101; display:none}
#fancybox-outer{position:relative; width:100%; height:100%; background:#FFF}
#fancybox-inner{position:absolute; top:0; left:0; width:1px; height:1px; padding:0; margin:0; outline:none; overflow:hidden}
#fancybox-hide-sel-frame{position:absolute; top:0; left:0; width:100%; height:100%; background:transparent}
#fancybox-close{position:absolute; top:-15px; right:-15px; width:30px; height:30px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px 0px; cursor:pointer; z-index:1103; display:none}
#fancybox_error{color:#444; font:normal 12px/20px Arial; padding:7px; margin:0}
#fancybox-content{height:auto; width:auto; padding:0; margin:0}
#fancybox-img{width:100%; height:100%; padding:0; margin:0; border:none; outline:none; line-height:0; vertical-align:top; -ms-interpolation-mode:bicubic}
#fancybox-frame{position:relative; width:100%; height:100%; border:none; display:block}
#fancybox-title{position:absolute; bottom:0; left:0; font-family:Arial; font-size:12px; z-index:1102}
.fancybox-title-inside{padding:10px 0; text-align:center; color:#333}
.fancybox-title-outside{padding-top:5px; color:#FFF; text-align:center; font-weight:bold}
.fancybox-title-over{color:#FFF; text-align:left}
#fancybox-title-over{padding:10px; background-image:url('../img/default/fancybox/fancy_title_over.png'); display:block}
#fancybox-title-wrap{display:inline-block}
#fancybox-title-wrap span{height:32px; float:left}
#fancybox-title-left{padding-left:15px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -90px; background-repeat:no-repeat}
#fancybox-title-main{font-weight:bold; line-height:29px; background-image:url('../img/default/fancybox/fancybox-x.png'); background-position:0px -40px; color:#FFF}
#fancybox-title-right{padding-left:15px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-55px -90px; background-repeat:no-repeat}
#fancybox-left, #fancybox-right{position:absolute; bottom:0px; height:100%; width:35%; cursor:pointer; outline:none; background-image:url('../img/default/fancybox/blank.gif'); z-index:1102; display:none}
#fancybox-left{left:0px}
#fancybox-right{right:0px}
#fancybox-left-ico, #fancybox-right-ico{position:absolute; top:50%; left:-9999px; width:30px; height:30px; margin-top:-15px; cursor:pointer; z-index:1102; display:block}
#fancybox-left-ico{background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -30px}
#fancybox-right-ico{background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -60px}
#fancybox-left:hover, #fancybox-right:hover{visibility:visible;  /* IE6 */}
#fancybox-left:hover span{left:20px}
#fancybox-right:hover span{left:auto; right:20px}
.fancy-bg{position:absolute; padding:0; margin:0; border:0; width:20px; height:20px; z-index:1001}
#fancy-bg-n{top:-20px; left:0; width:100%; background-image:url('../img/default/fancybox/fancybox-x.png')}
#fancy-bg-ne{top:-20px; right:-20px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -162px}
#fancy-bg-e{top:0; right:-20px; height:100%; background-image:url('../img/default/fancybox/fancybox-y.png'); background-position:-20px 0px}
#fancy-bg-se{bottom:-20px; right:-20px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -182px}
#fancy-bg-s{bottom:-20px; left:0; width:100%; background-image:url('../img/default/fancybox/fancybox-x.png'); background-position:0px -20px}
#fancy-bg-sw{bottom:-20px; left:-20px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -142px}
#fancy-bg-w{top:0; left:-20px; height:100%; background-image:url('../img/default/fancybox/fancybox-y.png')}
#fancy-bg-nw{top:-20px; left:-20px; background-image:url('../img/default/fancybox/fancybox.png'); background-position:-40px -122px}

/* Plugin Fancybox IE FIX */
#fancybox-loading.fancybox-ie div	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_loading.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-close		{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_close.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-title-over	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_title_over.png', sizingMethod='scale'); zoom: 1; }
.fancybox-ie #fancybox-title-left	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_title_left.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-title-main	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_title_main.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-title-right	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_title_right.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-left-ico		{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_nav_left.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-right-ico	{ background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_nav_right.png', sizingMethod='scale'); }
.fancybox-ie .fancy-bg { background: transparent !important; }
.fancybox-ie #fancy-bg-n	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_n.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-ne	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_ne.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-e	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_e.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-se	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_se.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-s	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_s.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-sw	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_sw.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-w	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_w.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-nw	{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/img/default/fancyboxfancy_shadow_nw.png', sizingMethod='scale'); }
 

Schlusswort

Das Shopware AG-Team wünscht Ihnen viel Spaß und Erfolg mit dieser Erweiterung.

Artikel-PDF erstellen

Erweiterung bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare:

Sauber =)

29.03.2010 10:10

Von: M. Klooß

Hört sich gut an :-), sogar sehr gut

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Bestell-Nr.: SW1352

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*