4.6 Beta - Eigenes Modul, mehrere Moduleinträge auf einer Klasse in metadata

Ein gesundes neues Jahr erst einmal,

wir bereiten gerade unsere Module für die neue 4.6 vor. Dabei ist uns aufgefallen, jedes Modul benötigt ja jetzt eine metadata.php die in etwa so aussieht:


$aModule = array(
   'id'           => 'shirtnetwork',
   'title'        => 'Aggrosoft Shirtnetwork Connector',
   'description'  => 'Aggrosoft Shirtnetwork Connector',
   'thumbnail'    => 'shirtnetwork.png',
   'version'      => '1.4',
   'author'       => 'Aggrosoft',
   'extend'      => array(
       'oxorder' => array('shirtnetwork/snw_order','shirtnetwork/snw_ordercore'),
       'oxorderarticle' => 'shirtnetwork/snw_orderarticle',
       'oxarticle' => 'shirtnetwork/snw_article',
       'oxbasketitem' => 'shirtnetwork/snw_basketitem',
       'oxemail' => 'shirtnetwork/snw_mail',
       'oxutilsfile' => 'shirtnetwork/snw_utilsfile',
       'oxuser' => 'shirtnetwork/snw_user',
       'oxcategory' => 'shirtnetwork/snw_category',
       'oxlocator' => 'shirtnetwork/snw_locator',
       'oxviewconfig' => 'shirtnetwork/views/snw_view',
       'oxcmp_user' => 'shirtnetwork/views/snw_cmpuser',
       'oxcategorylist' => 'shirtnetwork/snw_categorylist',
       'oxseoencoder' => 'shirtnetwork/snw_seoencoder'
   )
);

So nun das Problem, wir haben für die Klasse oxorder 2 Einträge zu setzen (bitte nicht fragen warum, das ist halt so - es zu ändern wäre nicht praktikabel). Das geht auch wenn man ein Array angibt, ist also auch so vorgesehen. Nur schlägt jetzt anscheinend die Aktiv Prüfung für das Modul fehl, ich tippe auf core/oxmodule.php


    public function isActive()
    {
        $blActive = false;
        if (isset($this->_aModule['extend']) && is_array($this->_aModule['extend'])) {
            $aAddModules = $this->_aModule['extend'];
            $aInstalledModules = $this->parseModuleChains($this->getConfig()->getConfigParam('aModules'));
            $aDisabledModules  = $this->parseModuleChains($this->getConfig()->getConfigParam('aDisabledModules'));

            $iClCount = count($aAddModules);
            $iActive  = 0;

            foreach ($aAddModules as $sClass => $sModule) {
                if ( (isset($aInstalledModules[$sClass]) && in_array($sModule, $aInstalledModules[$sClass])) && !(isset($aDisabledModules[$sClass]) && in_array($sModule, $aDisabledModules[$sClass])) ) {
                    $iActive ++;
                }
            }
            $blActive = $iClCount > 0 && $iActive == $iClCount;
        }

        return $blActive;
    }

Ist das ein Bug? Habt ihr das selbe Problem irgendwo?