Protected Function erweitern - oxaddress.php _getMergedAddressFields()

Hi,

wie kann ich die protected function _getMergedAddressFields() in der /application/models/oxaddress.php erweitern?

Muss solch eine Änderung in ein Modul, oder kann ich es in einer TPL Datei, in meinem Fall in die /application/views/MeinTheme/tpl/form/fieldset/user_shipping.tpl schreiben?

Die Function lautet derzeit wie folgt und der Fett-gedruckte Teil soll hinzugefügt werden:

    protected function _getMergedAddressFields()
    {
        $sDelAddress = '';
        $sDelAddress .= $this->oxaddress__oxcompany;
        $sDelAddress .= $this->oxaddress__oxfname;
        $sDelAddress .= $this->oxaddress__oxlname;
        $sDelAddress .= $this->oxaddress__oxstreet;
        $sDelAddress .= $this->oxaddress__oxstreetnr;
        $sDelAddress .= $this->oxaddress__oxaddinfo;
        $sDelAddress .= $this->oxaddress__oxcity;
        $sDelAddress .= $this->oxaddress__oxcountryid;
        $sDelAddress .= $this->oxaddress__oxstateid;
        $sDelAddress .= $this->oxaddress__oxzip;
        $sDelAddress .= $this->oxaddress__oxfon;
        $sDelAddress .= $this->oxaddress__oxfax;
        $sDelAddress .= $this->oxaddress__oxsal;
        [B]$sDelAddress .= $this->oxaddress__oxchange;[/B]

        return $sDelAddress;
    }

Edit: hat jemand eine Idee?

Hi,

auch wenn die Antwort wohl schon “zu spät” ist:

Ja, solche Dinge macht man über Module. Das ist der übliche Weg, um Klassen und Funktionen in der Form zu verändern, wie du es vor hast.

Hi, danke für deine Rückmeldung.

Mein Vorhaben ist noch nicht in den Live-Betrieb gegangen, daher ist es noch nicht zu spät :slight_smile:

Sobald es so weit ist schaue ich mir das näher an. Danke

Moin,
sieh mal, wie ich es in meinem Modul gelöst habe: https://github.com/alfredbez/ab_htmlmin/blob/master/models/ab_htmlmin.php

Hi,
danke für deinen Tipp. Bin schon ein ganzes Stück weitergekommen :cool:

Wie würdet Ihr bei folgendem Anliegen vorgehen:
Es müssen über das Modul Änderungen in der user_shipping.tpl vorgenommen werden. Also am Ende soll das Modul nur aktiviert werden und alles soll automatisch ablaufen und keine Blöcke müssen händisch eingefügt werden o. ä.

Da in dieser Datei nur ein Block ist und ich diesen Block nicht benötige und auch manuell nichts einfügen möchte, würde ich gerne, falls möglich, den kompletten Inhalt der Datei ersetzen.
Ich habe es bereits auf diesem Weg versucht:
http://forum.oxid-esales.com/showthread.php?t=18260
jedoch hat es nicht geklappt, bzw. wäre es auch viel zu aufwändig/umständlich, oder?

Stattdessen habe ich den Block der Datei user_checkout_change.tpl, der die user_shipping.tpl lädt, so abgeändert, dass mein Template (in der metadata.php definiert) anstelle der user_shipping.tpl geladen wird.

Würdet ihr das anders machen?