Hallo Forum,
in der Datei servicebox.tpl wird die Anzahl der Artikel im Artikelvergleich mit $oView->getCompareItemsCnt() ausgegeben.
Beim Umbau meines Templates möchte ich die Anzeige aber wo anders platzieren.
Leider geht da die Variable nicht.
Mit der folgenden Zeile habe ich versucht eine Globale Variable zu generieren (die Servicebox ist nur mit CSS ausgeblendet, nicht gelöscht oder entfernt)
[{if $oView->getCompareItemsCnt()}]
[{assign var="sMyCompListCount" value='$oView->getCompareItemsCnt()' }]
[{/if}]
Ich habe schon einiges gegoogelt aber nichts gefunden.
Hi,
kannst Du vielleicht auf einen getter zurückgreifen, der in diesem Template zur Verfügung steht, bist Du mit lazy loading vertraut?
Gruß
Hallo Marco,
leider habe ich da noch keinen Plan.
Ich wollte auch das komplette Flyout Menü entfernen.
Dann gehen einige Sachen aber nicht mehr.
Bin da für alle Ansätze offen.
Oder kann ich das irgendwo nachlesen?
Gruß
Jürgen
Hallo Marco,
ich muss nochmal nachfragen.
Warum brauche ich da lazy loading?
Die Seite wird aufgerufen und es soll die Anzahl der im Vergleich befindlichen Artikel angezeigt werden.
Gibt es irgendwo eine Info welche Variablen zur Verfügung stehen?
Hallo Jürgen,
ändere mal bitte:
[{if $oView->getCompareItemsCnt()}]
[{assign var="sMyCompListCount" value='$oView->getCompareItemsCnt()'}]
[{/if}]
in:
[{if $oView->getCompareItemsCnt()}]
[{assign var="sMyCompListCount" value=$oView->getCompareItemsCnt()}]
[{/if}]
Die Anführungszeichen bei dem Parameter “value” sorgen dafür, dass dein Funktionsaufruf als String angesehen wird und nicht mehr als Funktionsaufruf.
Hallo Kai,
Stimmt. :rolleyes:
Jetzt habe ich aber folgendes Problem die Variable wird in der FlyoutBox angezeigt.
Wenn ich den Wert im Template:
/application/views/template/tpl/page/list/list.tpl mit [{ $sMyCompListCount }] anzeigen möchte, kommt nichts an?!
Wie kann ich die Variable abrufen?
Hallo Jürgen,
wenn du dich noch in deiner if-Abfrage befindest und keinen Artikel im Artikelvergleich hast, kann auch nichts angezeigt werden 
Hallo Kai,
ich habe 2 Artikel in die Vergleichsliste aufgenommen.
Muss ich die Variable von dem Template servicebox.tpl irgendwie an das Template list.tpl übergeben?
Mit [{debug}] sehe ich die Variable im Template nicht.
Hallo Jürgen,
entweder definierst du die Variable in einem übergeordneten Template (z.B. layout/page.tpl), dann solltest du in beiden Templates Zugriff auf die Variable haben, oder du definierst sie einfach nochmal in dem Template servicebox.tpl. Das sollte keinem weh tun 
Hallo Kai,
das genau ist ja mein Problem, dass ich das nicht hinbekomme.
Der Befehl aus der Servicebox geht nicht im list.tpl
Wenn ich den folgenden Code in der Datei list.tpl einbaue bekomme ich einen redirect auf die Startseite:
[{if $oViewConf->getShowCompareList() }]
<li><a href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=compare" }]" rel="nofollow"><span>[{oxmultilang ident="LAYOUT_HEADER_COMPARE_LINK"}]</span>[{ if $oView->getCompareItemsCnt() }]<span class="counter FXgradOrange">[{ $oView->getCompareItemsCnt() }]</span>[{/if}]</a></li>
[{if $oView->getCompareItemsCnt()}]
[{oxscript include='js/widgets/oxcomparelinks.js'}]
[{oxscript add="$(function(){oxCompareLinks.updateLinks("|cat:$oView->getCompareItems(true)|cat:");});"}]
[{/if}]
[{/if}]
Mit der folgenden Zeile habe ich in der Servicebox.tpl einen Wert definiert den ich im list.tpl auslesen möchte, doch das bekomme ich auch nicht hin:
[{assign var="sMyCompListCount" value=$oView->getCompareItemsCnt() }]
in der list.tpl habe ich es so versucht auszulesen:
[{ $sMyCompListCount }]
aber es kommt nichts an?!? 


Hallo Jürgen,
okay das Problem ist, dass die Funktion getCompareItemsCnt() über das Widet der Sevicbox zur Verfügung gestellt wird.
Ich habe dir ein kleines Modul geschrieben, welches es dir ermöglich im View “alist” die Funktion zu benutzen (siehe Anhang).
Benutzung:
[{$oView->getCompareItemsCnt()}]
Einfach das Modul hochladen und im Admin aktivieren
Ich hoffe, dass ich helfen konnte. Wenn noch Probleme auftreten, einfach nochmal schreiben 
Hallo Kai,
genial!!
Danke
PS: du bist zwar erst seit 2 Tagen im Forum registriert, aber irgendwie habe ich den Eindruck das du da schon länger damit arbeitest:cool:
Hallo Jürgen,
[QUOTE=Newbie13;121599]Hallo Kai,
genial!!
Danke[/QUOTE]
Gerne 
[QUOTE=Newbie13;121599]PS: du bist zwar erst seit 2 Tagen im Forum registriert, aber irgendwie habe ich den Eindruck das du da schon länger damit arbeitest:cool:[/QUOTE]
Ja schon ein paar Tage länger 
Hallo Kai,
ich möchte deine Hilfsbereitschaft nicht überfordern, aber ich hätte da noch ein paar Fragen zur Vergleichsliste.
Ich habe das Modul Ajax Multifilter XL.
Der Kunde soll in der Kategorie Produkte filtern und vergleichen (Das Klappt jetzt).
Wenn er jetzt auf vergleichen klickt verschwindet links der Kategoriebaum und in der Navbar erscheint:
Sie sind hier: / Mein Konto / Artikelvergleich
Kann bzw. muss ich die Kategorie irgendwo mit geben?
Ich weiß ich stelle viele Fragen.
Bisher habe ich auf einem anderen System programmiert, das nichts mit PHP und Smarty zu tun hatte.
[QUOTE=Newbie13;121602]Wenn er jetzt auf vergleichen klickt verschwindet links der Kategoriebaum und in der Navbar erscheint:
Sie sind hier: / Mein Konto / Artikelvergleich[/QUOTE]
Eigentlich reicht es, folgenden Code zu benutzen, um die Links zum Vergleichen auszugeben:
[{if $oViewConf->getShowCompareList()}]
[{oxid_include_dynamic file="widget/product/compare_links.tpl" testid="_`$testid`" type="compare" aid=$product->oxarticles__oxid->value anid=$altproduct in_list=$product->isOnComparisonList() page=$oView->getActPage()}]
[{/if}]
Hallo Kai,
hat leider nicht ganz geklappt.
Ich habe den Code wie folgt eingebaut:
[{if $oViewConf->getShowCompareList() }]
<a href="[{oxid_include_dynamic file="widget/product/compare_links.tpl" testid="_`$testid`" type="compare" aid=$product->oxarticles__oxid->value anid=$altproduct in_list=$product->isOnComparisonList() page=$oView->getActPage()}]" rel="nofollow" style="float:right;">[{$oView->getCompareItemsCnt()}] [{oxmultilang ident="LAYOUT_HEADER_COMPARE_LINK"}]</a>
[{/if}]
Leider crasht dann das Layout.
Gibt es da ein Tutorial wo man das nachlesen kann?
Ich möchte ja nicht immer betteln…
Danke
Jürgen
Hallo Jürgen,
Wieso machst du es denn so? Kopier doch einfach das, was ich geschrieben habe 
Du hast ja jetzt noch ein <a>-Element mit eingebaut, was da aber unnötig ist, da das Widget selbst schon Links ausgibt.
Hallo Kai,
habe ich probiert dann kam aber eine Fehlermeldung:
Fatal error: Call to a member function isOnComparisonList() on a non-object in D:\Server\htdocs\web mp\smarty\3c6bc3e0bfc8cfb76916a2aed8f38348^%%F0^F0F^F0F92504%%list.tpl.php on line 202
Und ich dachte(??) ich müsste das in den Link einbauen.
Die Fehlermeldung ist dann aber noch da.
[QUOTE=Newbie13;121615]Hallo Kai,
habe ich probiert dann kam aber eine Fehlermeldung:
Fatal error: Call to a member function isOnComparisonList() on a non-object in D:\Server\htdocs\web mp\smarty\3c6bc3e0bfc8cfb76916a2aed8f38348^%%F0^F0F^F0F92504%%list.tpl.php on line 202
Und ich dachte(??) ich müsste das in den Link einbauen.
Die Fehlermeldung ist dann aber noch da.[/QUOTE]
Hallo Jürgen,
du müsstest mal gucken, ob es die Variable $product in deiner Datei an der Stelle, wo du den Code eingebunden hast, auch gibt. Kann auch mal vorkommen, dass sie $oDetailsProduct, $oProduct oder $oArt heißt 
Zur Not einfach mal die list.tpl hochladen, damit wir da mal rein schauen können 
Hallo Kai,
zu den Produkten/Variablen habe ich nichts gefunden.
Ich denke da es die Kategorieliste ist sind noch keine Variablen da.
In der Anlage die Datei.