Ich hoffe, mir kann einer helfen.
Ich versuche im Template basket.tpl das Lieferland des Kunden auszulesen. Wenn es keine Lieferadresse gibt, soll er das Land aus der Rechnungsadresse nehmen.
Das Land (bzw. die oxcountryid) aus der Rechnungsadresse des Kunden bekomme ich mit $oxcmp_user->oxuser__oxcountryid->value
Leider bin ich absolut ratlos wie ich auf die oxcountryid aus der Lieferadresse zugreifen kann.
Einer ne Idee?
LG Carolin
P.S. Ich wäre auch dankbar wenn mir jemand erklären würde wie ich rausbekomme welche Methoden und Objekte in einem Template zur Verfügung stehen und welcher Syntax der Aufruf folgt. (Vielleicht gibt es da ja auch irgendwo ne Erklärung die ich noch nicht gefunden habe…)
Hallo Carolin,
wirf mal bitte einen Blick in die Sourcecode-Doku:
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.4.1.28950/
Dort kannst Du z.B. nach getCountryId suchen. Du lädtst quasi über getter nur die Methoden, die Du in diesem Template benötigst, damit Du nicht alle Daten überall durchschleifen musst.
Gruß
Hallo Marco,
gibt es dazu irgendwo ne Erklärung? Ich hab einige Forenbeiträge zu getter gefunden, aber bisher nichts, was mir die Funktion wirklich näher gebracht hat…
Beispiel:
Ich suche in der Doku nach: getCountryList und finde:
User.getCountryList ( )
Template variable getter. Returns country list
Returns:
object
Definition at line 223 of file user.php.
und/oder
Account_User.getCountryList ( )
Return country list
Returns:
oxcountrylist
Definition at line 89 of file account_user.php.
Woher weiß ich nun was ich nehmen muss und was muss passieren, dass ich das auch in basket.tpl verwenden kann?
LG Carolin
[QUOTE=Carolin;37111]P.S. Ich wäre auch dankbar wenn mir jemand erklären würde wie ich rausbekomme welche Methoden und Objekte in einem Template zur Verfügung stehen und welcher Syntax der Aufruf folgt. (Vielleicht gibt es da ja auch irgendwo ne Erklärung die ich noch nicht gefunden habe…)[/QUOTE]
Die veröffentlichten Objekt-Daten eines Templates erhältst Du über ein [{debug}] am Anfang des Templates.
Die Methoden kann man IMO nur aus dem Objekt-Quellcode ermitteln.
Hallo avenger,
auf den Hinweis mit dem [{debug}] im Template bin ich schon in anderen Postings von dir gestoßen.
Darüber hab ich auch das eine oder andere abdecken können. Aber wie ist es nun mit dem getCountryList? Woher weiß ich denn, wie man das aufrufen kann? In der user.tpl wird es über $oView aufgerufen, aber in basket.tpl steht es nicht zur Verfügung.
Vielleicht hören sich meine Fragen seltsam an, aber man muss dazu vielleicht wissen, dass ich kein php kann. Ich mache normal ausschließlich Smarty/HTML/CSS. Und da ist es leider oft so, dass ich eine passende Smarty Abfrage nur durch probieren finden kann… Und das finde ich einfach schlecht… denn 1. ist das unglaublich zeitaufwändig und 2. einfach nervig und blöd.
LG Carolin
Hallo Carolin,
es gibt im Grunde zwei Wege, an diese Date heranzukommen. Vorher noch kurz eine logische Betrachtung: Du kannst in der basket.tpl die LänderID nur abrufen, wenn der Kunde auch schon eingeloggt ist, vorher kommst Du nicht ran. Der Shop kann vor dem Login noch nicht wissen, woher der Kunde kommt.
Weg 1, sog. “lazy loading”:
Versuch bitte, im template direkt folgendes einzugeben:
$oxcmp_user->oxuser__oxcountryid->value
Weg 2, die eigentlich smartere Variante:
Über eine Volltextsuche findest Du heraus, in welcher view der getter getCountryID eingebaut ist (ohne nachzuschauen: user.php). Kopiere Dir diese Zeile. Nun könntest Du die entsprechende Klasse aus der basket.php entsprechend mit diesem getter erweitern. Wie das mit den Modulen genau funktioniert, steht im Handbuch bzw auch in einigen Tutorials auf der OXID forge.
Hoffentlich hilfts
Gruß