public static function GetDataModelVersion($sDatamodelDir) { $sVersionFile = $sDatamodelDir . 'version.xml'; if (file_exists($sVersionFile)) { $oParams = new XMLParameters($sVersionFile); return $oParams->Get('version'); } return false; }
protected function GetStepInfo($idx = null) { $aStepInfo = null; if ($idx === null) { $index = $this->GetStepIndex(); } else { $index = $idx; } $aSteps = array(); if (@file_exists($this->GetSourceFilePath())) { $aParams = new XMLParameters($this->GetSourceFilePath()); $aSteps = $aParams->Get('steps', array()); $bAddExtensionsOnly = true; } else { // No wizard configuration provided, build a standard one: $bAddExtensionsOnly = false; $aSteps[] = array('title' => 'Modules Selection', 'description' => '<h2>Select the modules to install. You can launch the installation again to install new modules, but you cannot remove already installed modules.</h2>', 'banner' => '/images/modules.png', 'options' => array()); } // Additional step for the extensions $aSteps[] = array('title' => 'Extensions', 'description' => '<h2>Select additional extensions to install. You can launch the installation again to install new extensions, but you cannot remove already installed extensions.</h2>', 'banner' => '/images/extension.png', 'options' => array()); try { $sDefaultAppPath = utils::GetDefaultUrlAppRoot(); } catch (Exception $e) { $sDefaultAppPath = '..'; } $aAvailableModules = SetupUtils::AnalyzeInstallation($this->oWizard); foreach ($aAvailableModules as $sModuleId => $aModule) { if ($sModuleId == ROOT_MODULE) { continue; } // Convention: the version number of the application (and datamodel) are stored as a module named ROOT_MODULE $sModuleLabel = $aModule['label']; $sModuleHelp = $aModule['doc.more_information']; $sMoreInfo = !empty($aModule['doc.more_information']) ? "<a href=\"{$sDefaultAppPath}{$aModule['doc.more_information']}\" target=\"_blank\">more info</a>" : ''; if ($aModule['category'] != 'authentication' && $aModule['visible']) { if ($bAddExtensionsOnly && !$this->IsExtension($aModule)) { continue; } if ($this->IsExtension($aModule)) { $iStepIndex = count($aSteps) - 1; } else { $iStepIndex = 0; } $aSteps[$iStepIndex]['options'][] = array('title' => $sModuleLabel, 'description' => '', 'more_info' => $sMoreInfo, 'default' => true, 'modules' => array($sModuleId), 'mandatory' => $aModule['install']['flag'] & MODULE_ACTION_MANDATORY ? true : false); } } if (count($aSteps[count($aSteps) - 1]['options']) == 0) { // No extensions at all, remove the last step array_pop($aSteps); } if (array_key_exists($index, $aSteps)) { $aStepInfo = $aSteps[$index]; } return $aStepInfo; }