/** * Запускает установку указанного компонента */ private function installComponent() { $this->includeMicrocore(); $name = $component_name = isset($this->params['component']) ? trim($this->params['component']) : ''; if (!strlen($name)) { throw new Exception("Не передано имя компонента для установки (пример: installer.php --component=core)."); } $offset = $offsetOld = $this->getComponentOffset($component_name); $component_config = $this->temp_dir . "/{$component_name}/{$component_name}.xml"; if (!is_file($component_config)) { throw new Exception("Не удается найти файл конфигурации компонента \"{$component_name}\": " . $component_config); } $this->flushLog("с {$offset} по " . ($offset + self::$split_block_size)); $importer = new xmlImporter(isset($this->params['type']) ? trim($this->params['type']) : 'system'); if (isset($this->params['type']) && trim($this->params['type']) == 'demosite') { $update_ignore_mode = false; $importer->setDemositeMode(true); } else { $update_ignore_mode = $this->install_mode; } $importer->setUpdateIgnoreMode($update_ignore_mode); $importer->setFilesSource($this->temp_dir . "/{$component_name}/"); $splitterType = 'umiDump20'; if (isset($this->params['type']) && trim($this->params['type']) == 'demosite' || !$this->install_mode) { $splitterType = 'transfer'; } $splitterClass = $splitterType . 'Splitter'; $splitter = new $splitterClass($splitterType); $splitter->load($component_config, self::$split_block_size, $offset); $importer->loadXmlDocument($splitter->getDocument()); $offset = $splitter->getOffset(); $this->setComponentOffset($component_name, $offset); $importer->execute(); file_put_contents(CURRENT_WORKING_DIR . "/install.log", implode("\r\n", $importer->getImportLog()), FILE_APPEND); if ($offset < $offsetOld + self::$split_block_size) { return true; } else { return false; } }
private function installComponent() { $this->includeMicrocore(); $vb068931cc450442b63f5b3d276ea4297 = $v13921f0f9e84cf745ef7cdf661c74b0c = isset($this->params['component']) ? trim($this->params['component']) : ''; if (!strlen($vb068931cc450442b63f5b3d276ea4297)) { throw new Exception("Не передано имя компонента для установки (пример: installer.php --component=core)."); } $v7a86c157ee9713c34fbd7a1ee40f0c5a = $v261beee97b53b9fb5a5265d58670c7a8 = $this->getComponentOffset($v13921f0f9e84cf745ef7cdf661c74b0c); $ve7c4a00691c547adc1250842bd67f6e9 = $this->temp_dir . "/{$v13921f0f9e84cf745ef7cdf661c74b0c}/{$v13921f0f9e84cf745ef7cdf661c74b0c}.xml"; if (!is_file($ve7c4a00691c547adc1250842bd67f6e9)) { throw new Exception("Не удается найти файл конфигурации компонента \"{$v13921f0f9e84cf745ef7cdf661c74b0c}\": " . $ve7c4a00691c547adc1250842bd67f6e9); } $this->flushLog("с {$v7a86c157ee9713c34fbd7a1ee40f0c5a} по " . ($v7a86c157ee9713c34fbd7a1ee40f0c5a + self::$split_block_size)); $v1bc49dba86c5074c5266c6d38c301a46 = new xmlImporter(isset($this->params['type']) ? trim($this->params['type']) : 'system'); if (isset($this->params['type']) && trim($this->params['type']) == 'demosite') { $v45b7e5a476c7c8aa0c5cfca50f833af1 = false; $v1bc49dba86c5074c5266c6d38c301a46->setDemositeMode(true); } else { $v45b7e5a476c7c8aa0c5cfca50f833af1 = $this->install_mode; } $v1bc49dba86c5074c5266c6d38c301a46->setUpdateIgnoreMode($v45b7e5a476c7c8aa0c5cfca50f833af1); $v1bc49dba86c5074c5266c6d38c301a46->setFilesSource($this->temp_dir . "/{$v13921f0f9e84cf745ef7cdf661c74b0c}/"); $vbfde4c938d366cad9404b4647ba35217 = 'umiDump20'; if (isset($this->params['type']) && trim($this->params['type']) == 'demosite' || !$this->install_mode) { $vbfde4c938d366cad9404b4647ba35217 = 'transfer'; } $v44fd8e2f3008c90601a84a2de4382272 = $vbfde4c938d366cad9404b4647ba35217 . 'Splitter'; $ved8430dc53fe9c99911b7c85e45aa6a2 = new $v44fd8e2f3008c90601a84a2de4382272($vbfde4c938d366cad9404b4647ba35217); $ved8430dc53fe9c99911b7c85e45aa6a2->load($ve7c4a00691c547adc1250842bd67f6e9, self::$split_block_size, $v7a86c157ee9713c34fbd7a1ee40f0c5a); $v1bc49dba86c5074c5266c6d38c301a46->loadXmlDocument($ved8430dc53fe9c99911b7c85e45aa6a2->getDocument()); $v7a86c157ee9713c34fbd7a1ee40f0c5a = $ved8430dc53fe9c99911b7c85e45aa6a2->getOffset(); $this->setComponentOffset($v13921f0f9e84cf745ef7cdf661c74b0c, $v7a86c157ee9713c34fbd7a1ee40f0c5a); $v1bc49dba86c5074c5266c6d38c301a46->execute(); file_put_contents(CURRENT_WORKING_DIR . "/install.log", implode("\r\n", $v1bc49dba86c5074c5266c6d38c301a46->getImportLog()), FILE_APPEND); if ($v7a86c157ee9713c34fbd7a1ee40f0c5a < $v261beee97b53b9fb5a5265d58670c7a8 + self::$split_block_size) { return true; } else { return false; } }