"erzwungene" Vererbung der LongDesc vom Vaterartikel

Hallöchen!

Und zwar ist mir folgendes seltsames Verhalten aufgefallen:
die Funktion getArticleLongDesc() holt zwangsweise die Vaterartikelbeschreibung ab, wenn das Kind keine eigene hat.

An sich nicht weiter schlimm und im FE durchaus gewollt, aber nun gehen wir ins BE und suchen uns ein Artikel mit Varianten aus.
Dann wählen wir eine Variante aus. Auch im BE wird die LongDesc mit getArticleLongDesc() geholt daher finden wir hier die LongDesc vom Vaterartikel.
Würde ich jetzt auf “Speichern” drücken, hätte das Kind die LongDesc auch bei sich gespeichert und wenn ich in der Zukunft die Artikelbeschreibung beim Vater ändere, muss ich auch alle Artikel durchgehen und checken ob da irgendwo mal aus Versehen die LongDesc übernommen wurde.

Hat jemand schon damit zu tun gehabt?

In meinem Shop habe ich die Funktion soweit verändert, dass wenn ich eine oxID mitgebe, mir nur die LongDesc von dem einen Artikel geholt wird und nicht vom Vater (fürs BE, im FE wird ja keine oxID mitgegeben). Mit TinyMCE muss ich aber noch etwas kämpfen.

Hier sind meine Module, falls jemand Interesse hat:
oxarticle:


    public function getArticleLongDesc( $sOxid = null )
    {
        if ( $this->_oLongDesc === null ) {
            // initializing
            $this->_oLongDesc = new oxField();
            
            $sId = $sOxid === null ? $this->getId() : $sOxid;
            $sViewName = getViewName( 'oxartextends', $this->getLanguage() );
            $sDbValue = oxDb::getDb()->getOne( "select oxlongdesc from {$sViewName} where oxid = ?", array( $sId ) );	
			
            if ( $sDbValue != false ) {
               	$this->_oLongDesc->setValue( $sDbValue, oxField::T_RAW );
            } elseif ( !$sOxid && $this->oxarticles__oxparentid->value ) {
               	$this->_oLongDesc->setValue( $this->getParentArticle()->getArticleLongDesc()->getRawValue(), oxField::T_RAW );
            }
        }
        return $this->_oLongDesc;
    }

article_main


    protected function _getEditValue($oObject, $sField) {
        $sEditObjectValue = '';
        if ($oObject) {
            $oDescField = $oObject->getArticleLongDesc($oObject->oxarticles__oxid->value);
            $sEditObjectValue = $this->_processEditValue($oDescField->getRawValue());
            $oDescField = new oxField($sEditObjectValue, oxField::T_RAW);
        }

        return $sEditObjectValue;
    }

Viele Grüße aus Bonn