Fehler in IPSFileVersionHandler.class.php ?

Erhalte beim Laden neuer Moduler folgende Fehlermeldung

1/22/2018 08:51:43 | PHP | Error: Notice: Undefined variable: versionHandler
Error in Script …/install/IPSModuleManager/IPSVersionHandler/IPSFileVersionHandler.class.php on Line 214

Gruß

IPSFileVersionHandler.class.php    line 211-214

Sollte in IPSFileVersionHandler.class.php die Anweisung '$knownModules[$moduleName][‚LastRepository‘] = $versionHandler->GetModuleRepository();


if ($this->IsModuleInstalled($moduleName)) {
     $versionHandler   = new IPSFileVersionHandler($moduleName);
}
$knownModules[$moduleName]['LastRepository'] = $versionHandler->GetModuleRepository();

nicht innerhalb der geschweiften Klammer stehen ?


if ($this->IsModuleInstalled($moduleName)) {
     $versionHandler   = new IPSFileVersionHandler($moduleName);
     $knownModules[$moduleName]['LastRepository'] = $versionHandler->GetModuleRepository();
}
							

Da könntest Du recht haben:cool:

Allerdings wird der $versionHandler einige Zeilen weiter bei bestimmten Bedingungen auch verwendet und ist dort ebenfalls nicht initialisiert. Insofern ist da vermutlich noch ein weiterer Fehler drinnen.

Eigentlich solltest Du beim Laden eines neuen Modules an diese Stelle nicht kommen. Muss mir da mal etwas Zeit nehmen um das Problem zu suchen. Solltest Du in der Zwischenzeit eine Lösung finden, bitte um Info

Hallo Andreas,

die Stelle wird sehr wohl ausgeführt. Bei mir jedenfalls, kann aber auch sein dass irgendwo was in meinen Configfiles fehlt.

Zeilen 192 ff $replaceModule wird true wenn Modul noch nicht bekannt

$replaceModule = false;
if (!array_key_exists($moduleName, $knownModules)) {
->   $replaceModule = true;
} else .....

dann Zeilen 206 ff Falls $replaceModule

->if ($replaceModule) {
   $knownModules[$moduleName]['Version']     = $availableVersion;
   $knownModules[$moduleName]['Repository']  = $repository;
   $knownModules[$moduleName]['Description'] = $moduleDescription;
   $knownModules[$moduleName]['Path']        = $modulePath;
   if ($this->IsModuleInstalled($moduleName)) {
	$versionHandler   = new IPSFileVersionHandler($moduleName);
->	$knownModules[$moduleName]['LastRepository'] = $versionHandler->GetModuleRepository();
   }
   ....

Habe für mich die Zeile $knownModules … in die if-Bedingung mit aufgenommen. LastRepository setzen macht wohl eh nicht viel Sinn bei neuem Modul.

Gruß