Oxarticle erweitern||Session

Hallo,

ich versuche die Klasse oxbasket zu erweitern.

Derzeit habe ich nur eine Testklasse, die nichts anderes beinhaltet als


class test extends test_parent{
}

Wei auch immer, mit Methoden habe ich den gleichen Effekt.

Nachdem ich die Cookies gelöscht habe, da die oxbasket in der Session liegt, wird diese Klasse auch angesprochen…
…nur leider bekomme ich folgenden Fehler sobald ich einmal irgendetwas mit den Warenkorb gemacht habe (ZB: Artikel in den WK gelegt)

mod_rewrite_off
Fatal error: oxcmp_lang::init() [oxcmp-lang.init]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition “test” of the object you are trying to operate on was loaded before unserialize() gets called or provide a __autoload() function to load the class definition in /kunden/149720_47839/webseiten/sub_oxid/views/oxcmp_lang.php on line 79

Ich bin soweit gekommen, dass ich festgestellt habe, dass die (geerbte)Klasse test (wahrscheinlich) nicht richtig geladen wird.

Weiterhin habe ich mod_rewrite auf on und die Ausgabe von ‘mod_rewrite_off’ passiert mit folgenden Befehl (oxsession Zeile 501)

$oBasket=unserialize($sBasket).

Warum PHP dort eine Ausgabe macht, ist mit total unklar.

Folgendes steht in der Variable $oBasket:


__PHP_Incomplete_Class Object
(
    [__PHP_Incomplete_Class_Name] => test
    [_aBasketContents:protected] => Array
        (
            [72d2fd3f4c18171b4b6821f756c232e8] => oxBasketItem Object
                (
                    [_sProductId:protected] => irgendeine_id
                    [_sTitle:protected] => eintitle
                    [_sVarSelect:protected] => 
                    [_sIcon:protected] => icon/imagescover880918005621_ico.jpg
                    [_sLink:protected] => http://eineurl
                    [_oPrice:protected] => 
                    [_oUnitPrice:protected] => 
                    [_dAmount:protected] => 1
                    [_dWeight:protected] => 150
                    [_aSelList:protected] => 
                    [_sShopId:protected] => oxbaseshop
                    [_sNativeShopId:protected] => oxbaseshop
                    [_blSkipDiscounts:protected] => 
                    [_aPersistentParameters:protected] => 
                    [_blBundle:protected] => 
                    [_blIsDiscountArticle:protected] => 
                    [_oArticle:protected] => 
                    [_sDimageDirNoSsl:protected] => eine url
                    [_sDimageDirSsl:protected] => out/pictures/
                    [_aChosenSelectlist:protected] => Array
                        (
                        )

                    [_sWrappingId:protected] => 
                    [_sWishId:protected] => 
                    [_sWishArticleId:protected] => 
                    [_blCheckArticleStock:protected] => 1
                )

        )

    [_iProductsCnt:protected] => 0
    [_dItemsCnt:protected] => 0
    [_dWeight:protected] => 0
    [_oPrice:protected] => 
    [_oProductsPriceList:protected] => 
    [_aDiscounts:protected] => Array
        (
        )

    [_aItemDiscounts:protected] => Array
        (
        )

    [_sOrderId:protected] => 
    [_aVouchers:protected] => Array
        (
        )

    [_aCosts:protected] => Array
        (
        )

    [_oDiscountProductsPriceList:protected] => 
    [_oNotDiscountedProductsPriceList:protected] => 
    [_blUpdateNeeded:protected] => 1
    [_aBasketSummary:protected] => oxStdClass Object
        (
            [aArticles] => Array
                (
                )

            [aCategories] => Array
                (
                )

            [iArticleCount] => 0
            [dArticlePrice] => 0
        )

    [_blBasketMerged:protected] => 
    [_sPaymentId:protected] => 
    [_sShippingSetId:protected] => 
    [_oUser:protected] => 
    [_oTotalDiscount:protected] => 
    [_oVoucherDiscount:protected] => 
    [_oCurrency:protected] => 
    [_blSkipVouchersAvailabilityChecking:protected] => 
    [_dDiscountedProductNettoPrice:protected] => 
    [_aDiscountedVats:protected] => 
    [_blSkipDiscounts:protected] => 
    [_oDeliveryPrice:protected] => 
    [_blCheckStock:protected] => 1
)


Währe echt toll, wenn jemand mir dies bestätigen kann oder das Gegenteil und ggf. eine Idee hat.
…oder ein freies Modul kennt, was die oxbasket erweitert.

Warum auch immer :confused: :confused:
… jetzt geht’s

Die Lösung ist folgende:

oxbasket muss offensichtlich vor einigen anderen Klassen in der Modul-Liste im Backend eingetragen sein. In meinem Fall war der Übeltäter oxbasketitem. Sobald ich ocbasket => … in einer Zeile VOR oxbasketitem => … liste, funktioniert die Geschichte.

Also, merke: oxbasket in der ersten Zeile der Module eintragen und alles ist gut :slight_smile:

Ich recherchiere noch, warum das so ist. Wenn ich es herausfinde, füge ich es hier noch als Erklärung hinzu …

hallo,

ich versuche auch gerade für ein Modul, welches den Preis verändert, werte über die PersParams mit in den Warenkorb zu geben. Das klappt auch soweit.

Problem ist aber, diese Werte im Warenkorb wieder auszulesen!
Die Variable ist doch:

[_aPersistentParameters:protected] => Array ( [details] 

Wie greife ich im Modul darauf zu?
Das hier klappt leider nicht:

$aPersParam = oxConfig::getParameter("persparam"); 
$meineVariable = ($aPersParam["details"]);

Hat evtl jemand einen Tip?

:smiley:
[B]habs raus:
[/B]

$ol_anzahl = $this->getPersparams();
        $ol_preis = $olg_anzahl['details'];