Hi list,
I have found the problem -
oxmodule::isActive() does
not check for module arrays defined in metadata.php, below
is a fixed version... until OXID fixes the bug, you can use
this module to overwrite the oxmodule class so that your
module is displayed correctly as being "active" :)
(added code in
BOLD) - you can add this module to
metadata.php like this:
'extend' => array(
// here is a "problematic" entry with two classes in
an array
'search' =>
array('shoptimax/shoptifind/shoptifind_view_base',
'shoptimax/shoptifind/shoptifind_search'),
...
'oxmodule' =>
'shoptimax/shoptifind/smx_oxmodule',
}
And here is the module code which checks for module arrays
for one extended class, too:
class smx_oxmodule extends smx_oxmodule_parent {
/**
* Check if extension is active
*
* @return bool
*/
public function isActive()
{
$blActive = false;
$sId = $this->getId();
if (isset($sId)) {
if ( is_array($this->_aModule['extend'])
&& !empty($this->_aModule['extend']) ) {
$aAddModules = $this->_aModule['extend'];
$aInstalledModules =
$this->getAllModules();
$iClCount = count($aAddModules);
$iActive = 0;
foreach ($aAddModules as $sClass =>
$sModule) {
// smx_sm: also check for module
arrays defined for one extended class!
if(is_array($sModule)) {
if(count(array_diff($aInstalledModules[$sClass],
$sModule)) == 0) {
$iActive ++;
}
}
else {
if (
(isset($aInstalledModules[$sClass]) &&
in_array($sModule, $aInstalledModules[$sClass])) ) {
$iActive ++;
}
}
}
$blActive = $iClCount > 0 &&
$iActive == $iClCount;
$aDisabledModules =
$this->getDisabledModules();
if ( $blActive && (
is_array($aDisabledModules) && in_array($sId,
$aDisabledModules) ) ) {
$blActive = false;
}
} else {
//handling modules that does not extend any
class
$aDisabledModules =
$this->getDisabledModules();
if ( is_array($aDisabledModules) &&
!in_array($sId, $aDisabledModules) ) {
$blActive = true;
}
}
}
return $blActive;
}
}
Cheers,
Stefan
Am 16.08.2012 16:05, schrieb
Stefan Moises:
Hi,
thanks, this seems to kinda work and the modules are
loaded!
But for some strange reason, if I do this, the module is
always displayed as inactive (although it IS "active"
and working)... and there is always the "Activate"
button, so there is no change to de-activate it any more
:P
But at least the module seems to be working now...
So, OXID-Devs, you only have to fix the activation if
arrays are used in the "extend" section.... :)
Thanks,
Stefan
Am 16.08.2012 15:55, schrieb
Kundenservice | digidesk - media solutions:
Hey,
just try it with an array, this works ( at
least its displayed correct in the
admin-section ):
'extend' => array(
'search' => array(
'shoptimax/shoptifind/shoptifind_view_base',
'shoptimax/shoptifind/shoptifind_search'
),
Mit
freundlichen Grüßen aus Verl
Patrick Nussbaum
Technik
|
------------------------------------------------- |
![]() |
------------------------------------------------- |
digidesk – media solutions
Inh. Marco Müller
Kapellenweg 76
D-33415 Verl |
------------------------------------------------- |
Telefon: |
+4952469099110 |
Telefax: |
+4952469099120 |
E-Mail: |
tech...@digidesk.de |
Web: |
www.digidesk.de |
Hi OXID devs,
any news on this? We have a problem now
updating the latest modules to OXID 4.6.x
because of "multiple" inheritance reasons we
need to do something like this in the
metadata.php (which doesn't work):
'extend' => array(
'search' =>
'shoptimax/shoptifind/shoptifind_view_base',
'search' =>
'shoptimax/shoptifind/shoptifind_search',
...
This doesn't work either:
'extend' => array(
'search' =>
'shoptimax/shoptifind/shoptifind_view_base&shoptimax/shoptifind/shoptifind_search',
...
Background: to avoid code duplication we need
a common base class for different views (but
can't extend from it because of the "extends
xy_parent" logic in OXID... and as you know
PHP doesn't support multiple inheritance
unfortunately (and don't tell me to use PHP
5.4's "traits" instead :P)
Thanks,
Stefan
Am 29.06.2012
17:02, schrieb Rimvydas Paskevicius:
Its nice to
see discussing about modules
handling, so after some internal
discussion we decided to add
multiple modules entries for one
class support in one of the next
releases. Hope this will make
life easier for modules writers.
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general
--
Mit den besten Grüßen aus Nürnberg,
Stefan Moises
*******************************************
Stefan Moises
Senior Softwareentwickler
Leiter Modulentwicklung
shoptimax GmbH
Guntherstraße 45 a
90461 Nürnberg
Amtsgericht Nürnberg HRB 21703
GF Friedrich Schreieck
Tel.: 0911/25566-0
Fax: 0911/25566-29
moi...@shoptimax.de
http://www.shoptimax.de
*******************************************
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general
--
Mit den besten Grüßen aus Nürnberg,
Stefan Moises
*******************************************
Stefan Moises
Senior Softwareentwickler
Leiter Modulentwicklung
shoptimax GmbH
Guntherstraße 45 a
90461 Nürnberg
Amtsgericht Nürnberg HRB 21703
GF Friedrich Schreieck
Tel.: 0911/25566-0
Fax: 0911/25566-29
moi...@shoptimax.de
http://www.shoptimax.de
*******************************************
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general
--
Mit den besten Grüßen aus Nürnberg,
Stefan Moises
*******************************************
Stefan Moises
Senior Softwareentwickler
Leiter Modulentwicklung
shoptimax GmbH
Guntherstraße 45 a
90461 Nürnberg
Amtsgericht Nürnberg HRB 21703
GF Friedrich Schreieck
Tel.: 0911/25566-0
Fax: 0911/25566-29
moi...@shoptimax.de
http://www.shoptimax.de
*******************************************
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general