Probleme bei Erweitern von oxviewconfig

Hallo Zusammen,

bei uns kommt das ekomi-Modul von Fatchip zum Einsatz. In diesem Modul wird die oxviewconfig extended. Nun haben wir ein weiteres Modul geschrieben, dass ebenfalls die oxviewconfig erweitert.
Von einander getrennt funktionieren beide Module einwandfrei. Wenn man allerdings beide Module aktiviert, wird ins Error_log die folgende Meldung geschrieben:
Function ‘getXSellingProducts’ does not exist or is not accessible! (fcEkomi_oxViewconfig)

Die aufgerufene Methode befindet sich allerdings in dem anderen Modul und nicht in ekomi.
Die Meta-Data sieht wie folgt aus:


$aModule = array(
    'id' => 'etxselling',
    'title' => 'ET Cross Selling',
    'description'  => array(
        'de' => 'Cross-Selling für den Warenkorb',
        'en' => 'Implement cross selling in the basket/checkout',
    ),
    'thumbnail' => 'logo.png',
    'version' => '1.0.0',
    'extend' => array(
        'oxviewconfig' => 'et/etxselling/core/etxselling_viewconfig',
    ),
    'blocks' => array(
        array('template' => 'page/checkout/basket.tpl', 'block' => 'etxselling_products', 'file' => '/blocks/products.tpl'),
        array('template' => 'page/checkout/user.tpl', 'block' => 'etxselling_products', 'file' => '/blocks/products.tpl'),
        array('template' => 'page/checkout/payment.tpl', 'block' => 'etxselling_products', 'file' => '/blocks/products.tpl'),
        array('template' => 'page/checkout/order.tpl', 'block' => 'etxselling_products', 'file' => '/blocks/products.tpl'),
    ),
    'templates' => array(
        'list_xselling.tpl' => 'et/etxselling/blocks/list_xselling.tpl',
        'list_tooltip.tpl' => 'et/etxselling/blocks/list_tooltip.tpl'
    ),
    'settings' => array(
        array('group' => 'items', 'name' => 'sXSellTag', 'type' => 'str', 'value' => 'crossselling'),
        array('group' => 'items', 'name' => 'bXSellShowRating', 'type' => 'bool', 'value' => true),
    )
);

Die Klasse, die oxviewconfig erweitern sieht wie folgt aus:


class etxselling_viewconfig extends etxselling_viewconfig_parent
{

    public function getXSellingProducts()
    {
        if( true || $this->getActiveClassName() == 'start' ){
            return $this->getXSellingProductsStart();
        }
    }

    public function ratingIsActive() {
        return oxRegistry::getConfig()->getConfigParam('bXSellShowRating');
    }

    public function getXSellingProductsStart()
    {
        $oArtList = oxNew( 'oxarticlelist' );
        $oArtList->setSqlLimit(0, 3);
        $oArtList->loadTagArticles( oxRegistry::getConfig()->getConfigParam('sXSellTag'), 0 );
        return $oArtList;
    }
}

Hat jemand zufällig eine Idee woran das beschriebene Verhalten liegen kann?
Danke.

Marc

Schau mal wie oxviewconfig beim ekomi-Modul geschrieben ist. Wenn ein Modul oxviewconfig erweitert und ein anderes oxViewconfig gibt es dieses Problem.

Danke für die Rückmeldung. In der Metadata wird es auch bei eKomi kleingeschrieben.

$aModule = array(
    'id'           => 'fcEkomi',
    'title'        => 'FATCHIP Oxid2Ekomi',
    'description'  => array(
        'de'        => '<a target="_blank" href="http://www.ekomi.de/de/produkte">eKomi Leistungspaket bestellen, hier klicken</a>',
        'en'        => '<a target="_blank" href="http://www.ekomi.de/de/produkte">Order eKomi service pack, click here</a>',
    ),
    'thumbnail'    => 'fc_oxid2ekomi_produktbox_246px.png',
    'version'      => '1.0.5_3311',
    'author'       => 'FATCHIP GmbH',
    'url'          => 'http://www.fatchip.de',
    'email'        => '[email protected]',
    'extend'       => array(
        'oxemail'           => 'fcEkomi/core/fcekomi_oxemail',
        'oxviewconfig'      => 'fcEkomi/views/fcekomi_oxviewconfig',
        'oxarticle'         => 'fcEkomi/views/fcekomi_product',
   	),
    'files' => array(
        'fcekomiapi'                    => 'fcEkomi/core/fcekomiapi.php',
        'fcekomiutils'                  => 'fcEkomi/core/fcekomiutils.php',
        'fcekomi_export_products'       => 'fcEkomi/batch/fcekomi_export_products.php',
        'fcekomi_send_ratingmails'      => 'fcEkomi/batch/fcekomi_send_ratingmails.php',
        'fcekomi_import_products'       => 'fcEkomi/batch/fcekomi_import_products.php',
    ),
    'blocks' => array(
        array('template' => 'page/details/inc/productmain.tpl', 'block'=>'details_productmain_ratings', 'file'=>'fcekomirating.tpl'),
        array('template' => 'widget/product/listitem_line.tpl', 'block'=>'listitem_line_ratings', 'file'=>'fcekomirating.tpl'),
        array('template' => 'widget/reviews/reviews.tpl',       'block'=>'widget_reviews_form',         'file'=>'fcekomireviews_form.tpl'),
        array('template' => 'widget/reviews/reviews.tpl',       'block'=>'widget_reviews_record',       'file'=>'fcekomireviews_records.tpl'),
        array('template' => 'layout/sidebar.tpl',               'block'=>'ekomi',                     'file'=>'fcekomiwidget.tpl'),
    ),
    'settings' => array(
        array('group' => 'connection',      'name' => 'sFcEkomiInterfaceId',            'type' => 'str',    'value' => ''),
        array('group' => 'connection',      'name' => 'sFcEkomiInterfacePassword',      'type' => 'str',    'value' => ''),
        array('group' => 'mail',            'name' => 'sFcEkomiEmailSubject',           'type' => 'str',    'value' => ''),
        array('group' => 'widget',          'name' => 'blFcEkomiShowWidgetUrl',         'type' => 'bool',   'value' => '1'),
        array('group' => 'reviews',         'name' => 'sFcEkomiReviewItemsPerPage',     'type' => 'str',    'value' => '10'),
    ),
    'templates' => array(
        'fcekomiratingmail_html.tpl'          => 'fcEkomi/out/tpl/fcekomiratingmail_html.tpl',
        'fcekomiratingmail_plain.tpl'         => 'fcEkomi/out/tpl/fcekomiratingmail_plain.tpl',
        'fcekomirating.tpl'         => 'fcEkomi/out/blocks/fcekomirating.tpl',
    ),
);

Die entsprechende Klasse dazu sieht so aus:

class fcEkomi_oxViewconfig extends fcEkomi_oxViewconfig_Parent {
    
    /**
     * Returns ekomi widget url
     * 
     * @return string
     */
    public function fcEkomiShowWidget() {
        
        return $this->getConfig()->getConfigParam('blFcEkomiShowWidgetUrl');
    }
     
    /**
     * Returns ekomi certificate id
     * 
     * @return string
     */
    public function fcEkomiCertId() {
        $cacheFileName = $this->getCacheFileName();
        if(file_exists($cacheFileName)) {
            // already cached
            return file_get_contents($cacheFileName);
        } else {
            // cache certificate
            $oFcEkomiApi = oxNew('fcekomiapi');
            $aSettings = $oFcEkomiApi->fcEkomiGetSnapshot();
            if ( $sCertId = $aSettings['info']['ekomi_certificate_id'] ) {
                file_put_contents($cacheFileName, $sCertId);
                return $sCertId;
            }
        }
        
    }
    
    private function getCacheFileName() {
        $tmpFolder = getShopBasePath() . 'tmp/';
        $cacheName = date('Y-m-d') . '-ekomicert';
        return getShopBasePath() . 'tmp/' . $cacheName;
    }
}

?>

Hier wird oxViewconfig groß geschrieben. Aber sollte es hier nicht egal sein?
Ich habe meine Klasse auch schon analog dazu angepasst und immer noch das identische Verhalten.