Sidebox "Ihre Konfiguration" - Anzeigeverhalten kontrollieren

raoul75

Aktives Mitglied
1. März 2012
50
11
Berlin
Hallo,

wir arbeiten gerade in der Endphase an unserem JTL-3 Onlineshop. Folgende Frage zur Sidebox "Ihre Konfiguration" mit dynamischer Preisberechnung:

Wir haben unser Template ziemlich verändert und haben die Sidebox unter die senkrecht platzierten Artikelbilder gerückt (in den Content-Bereich). Bei den Artikeln mit Konfigurationsmöglichkeit wandert diese beim scrollen auch schön nach unten mit.

Leider wird die Box aktuell auch bei Artikeln angezeigt, die gar keine Konfigurationsmöglichkeit haben. Allerdings nur beim ersten Besuch des Artikels. Ab dem zweiten Besuch wird sie auch dort nicht mehr eingeblendet.

Relevant für die Darstellung ist folgendes javascript aus der globals.js :

-------------------------------------------------------------
function register_sidebox_autoscroll() {
$('body').waitForImages(function() {
$("#right_wrap .sidebox:last").each(function(idx, item) {
if ($(this).hasClass('autoscroll')) {
$(item).css({
'position' : 'relative',
'height' : 'auto',
'top' : 0
});

// we LOVE IE, NOT


$(item).show();

var top = $(item).offset().top;


$(window).scroll(function() {

var offset = $(document).scrollTop();
var max = $('#content').offset().top + $('#content').outerHeight();

if (offset < top) offset = top;
if (offset > top) offset += 10;

var maxoff = offset + $(item).outerHeight();

if (maxoff <= max) {
$(item).stop();
$(item).animate({top: offset - top}, 250, 'swing');
}
});
}
});
});
}

-------------------------------------------------------------

Da es bei uns einige Probleme mit der Darstellung gab (z.B. wurde die sidebox nach einem Reload gar nicht mehr oder aber abgeschnitten angezeigt), haben wir in obigem Javascript hinter:

var top = $(item).offset().top;

folgenden Code entfernt:

$(item).hide();

Seitdem gibt es keine Probleme mehr mit der sidebox beim Reload, allerdings wird die Sidebox beim erstmaligen Besuch eines *nicht* konfigurierbaren Artikels jetzt auch angezeigt. Nicht aber ab dem zweiten Besuch.

Ideal wäre, wenn man obigen Code [also: $(item).hide(); ] von der Eigenschaft "Artikel konfigurierbar: ja/nein" abhängig machen könnte. Das sollte eigentlich das Problem lösen. Ich bin mir aber nicht sicher inwieweit man in dieser Funktion der global.js auf entsprechende Artikeleigenschaften zugreifen kann. Ich hatte es mit einem {if !$Artikel->bHasKonfig} versucht, wie es auch in der "box_konfig.tpl" zum Einsatz kommt - das führte aber nicht zum Erfolg.

Ideen aller Art führen zu spontanen Freudensprüngen meinerseits ;)

Raoul
 

raoul75

Aktives Mitglied
1. März 2012
50
11
Berlin
AW: Sidebox "Ihre Konfiguration" - Anzeigeverhalten kontrollieren

Da bastelt man einen halben Tag herum und entschließt sich dann doch im Forum was zu posten, nur um wenige Minuten später endlich selbst darauf zu kommen:

wir hatten die Sidebox noch in einen eigenen Container gestellt, der beim Ausblenden nicht abgefragt wurde - nachdem wir den Container nun im Rahmen der box_konfig.tpl mit abfragen (und ggf. ausblenden) klappt alles:

{if !$Artikel->bHasKonfig}
<script type="text/javascript">
$(document).ready(function() {ldelim}
$('.box_config').hide();
{rdelim});

$(document).ready(function() {ldelim}
$('#deinContainer').hide();
{rdelim});


</script>
{/if}
 

JayJayS

Gut bekanntes Mitglied
11. Juli 2012
671
1
AW: Sidebox "Ihre Konfiguration" - Anzeigeverhalten kontrollieren

Wie oder wo aktiviere ich die Sidebox "Ihre Konfiguration" ?