getAdditionalParams

Hallo,

ich hätte eine Frage bzgl. AdditionalParams. Ich muss vorweg schicken, dass ich mich erst seit kurzer Zeit mit Oxid beschäftige, deshalb schon mal sorry, falls die Frage zu trivial ist. Aber ich habe leider keine Lösung gefunden.

Und zwar habe ich eine Landingpage, die über Url-Parameter gesteuert wird. Auf dieser Seite werden Artikel angezeigt (je nachdem, welche Url-Parameter übergeben wurden).
Allerdings funktioniert die Funktion “Vergleichen” nicht. Diese ruft ja eine Url wie z.B. folgende auf:

http://www.shopurl.de/verzeichnis/?am=1&addcompare=1&fnc=tocomparelist&aid=237889123478&anid=&pgNr=0&cl=tpl&searchparam=auto

Dabei werden jedoch meine vorherigen Parameter nicht mit übernommen (mit Ausnahme von “searchparam”). Ich habe mir also angeschaut, wie diese Links zusammengesetzt werden und bin auf das Template compare_links.tpl gestoßen, das so aufgebaut ist:

[{assign var="_additionalParams" value=$oView->getAdditionalParams()}]
<a class="compare remove clear" data-aid="[{$_compare_aid}]" id="removeCmp[{$_compare_testid}]" href="[{$oView->getLink()|oxaddparams:"am=1&removecompare=1&fnc=tocomparelist&aid=`$_compare_aid`&anid=`$_compare_anid`&pgNr=`$_compare_page`&$_additionalParams"}]" rel="nofollow">[{ oxmultilang ident="WIDGET_PRODUCT_REMOVEFROMCOMPARELIST" }]</a>
<a class="compare add clear" data-aid="[{$_compare_aid}]" id="toCmp[{$_compare_testid}]" href="[{$oView->getLink()|oxaddparams:"am=1&addcompare=1&fnc=tocomparelist&aid=`$_compare_aid`&anid=`$_compare_anid`&pgNr=`$_compare_page`&$_additionalParams"}]" rel="nofollow">[{ oxmultilang ident="WIDGET_PRODUCT_COMPARE" }]</a>

Wie kann ich meine Parameter nun so übergeben, dass diese über die Funktion getAdditionalParams zurückgeliefert werden? Ich hätte es so versucht, aber das scheint der falsche Weg zu sein:

$oxConfig = $this->getConfig();
$oxConfig->setConfigParam('preis', $preis);

Danke schon mal im Voraus

Gruß

Ich weiß jetzt zumindest, wieso der Parameter “searchparam” mit übernommen wird und die anderen Parameter nicht. Hier die Funktion in der oxubase.php:


public function getAdditionalParams()
    {
        if ( $this->_sAdditionalParams === null ) {
            // #1018A
            $this->_sAdditionalParams  = parent::getAdditionalParams();
            $this->_sAdditionalParams .= 'cl='.$this->getConfig()->getActiveView()->getClassName();

            // #1834M - specialchar search
            $sSearchParamForLink = rawurlencode( oxConfig::getParameter( 'searchparam', true ) );
            if ( isset( $sSearchParamForLink ) ) {
                $this->_sAdditionalParams .= "&searchparam={$sSearchParamForLink}";
            }
            if ( ( $sVar = oxConfig::getParameter( 'searchtag' ) ) ) {
                $this->_sAdditionalParams .= '&searchtag='.rawurlencode( rawurldecode( $sVar ) );
            }
            if ( ( $sVar = oxConfig::getParameter( 'searchcnid' ) ) ) {
                $this->_sAdditionalParams .= '&searchcnid='.rawurlencode( rawurldecode( $sVar ) );
            }
            if ( ( $sVar = oxConfig::getParameter( 'searchvendor' ) ) ) {
                $this->_sAdditionalParams .= '&searchvendor='.rawurlencode( rawurldecode( $sVar ) );
            }
            if ( ( $sVar = oxConfig::getParameter( 'searchmanufacturer' ) ) ) {
                $this->_sAdditionalParams .= '&searchmanufacturer='.rawurlencode( rawurldecode( $sVar ) );
            }
            if ( ( $sVar = oxConfig::getParameter( 'cnid' ) ) ) {
                $this->_sAdditionalParams .= '&cnid='.rawurlencode( rawurldecode( $sVar ) );
            }
            if ( ( $sVar = oxConfig::getParameter( 'mnid' ) ) ) {
                $this->_sAdditionalParams .= '&mnid='.rawurlencode( rawurldecode( $sVar ) );
            }
            
        }

        return $this->_sAdditionalParams;
    }

Leider kann ich aber keine Funktionen aus der oxubase.php überschreiben. Gibt es dafür einen Workaround?