private function removeExtensionPackage() { $extPackage = $this->config->getExtensionPackage(); if ($extPackage !== false) { $this->modx->log(modX::LOG_LEVEL_INFO, 'Removing extension package'); $this->modx->removeExtensionPackage($this->config->getLowCaseName()); } }
/** * Add extension package if extension package block is in config.json */ private function addExtensionPackage() { $extPackage = $this->config->getExtensionPackage(); if ($extPackage !== false) { $modelPath = $this->packageCorePath . 'model/'; $modelPath = str_replace('\\', '/', $modelPath); if ($extPackage === true) { $this->modx->addExtensionPackage($this->config->getLowCaseName(), $modelPath); } else { $this->modx->addExtensionPackage($this->config->getLowCaseName(), $modelPath, array('serviceName' => $extPackage['serviceName'], 'serviceClass' => $extPackage['serviceClass'])); } } }
private function updateExtensionPackage() { $extPackage = $this->oldConfig->getExtensionPackage(); if ($extPackage !== false) { $this->modx->removeExtensionPackage($this->newConfig->getLowCaseName()); } $extPackage = $this->newConfig->getExtensionPackage(); if ($extPackage !== false) { $modelPath = $this->packagePath . $this->object->dir_name . "/core/components/" . $this->newConfig->getLowCaseName() . "/" . 'model/'; $modelPath = str_replace('\\', '/', $modelPath); if ($extPackage === true) { $this->modx->addExtensionPackage($this->newConfig->getLowCaseName(), $modelPath); } else { $this->modx->addExtensionPackage($this->newConfig->getLowCaseName(), $modelPath, array('serviceName' => $extPackage['serviceName'], 'serviceClass' => $extPackage['serviceClass'])); } } }
/** * Add extension package if extension package block is in config.json */ private function addExtensionPackage() { $extPackage = $this->config->getExtensionPackage(); if ($extPackage !== false) { $modelPath = $this->packageCorePath . 'model/'; $modelPath = str_replace('\\', '/', $modelPath); $db = $this->config->getDatabase(); $prefix = $db->getPrefix(); if (!is_array($extPackage)) { $extPackage = array(); } if (isset($prefix)) { $extPackage['tablePrefix'] = $prefix; } $this->modx->addExtensionPackage($this->config->getLowCaseName(), $modelPath, $extPackage); } }
private function updateExtensionPackage() { $extPackage = $this->oldConfig->getExtensionPackage(); if ($extPackage !== false) { $this->modx->removeExtensionPackage($this->newConfig->getLowCaseName()); } $extPackage = $this->newConfig->getExtensionPackage(); if ($extPackage !== false) { $modelPath = $this->packagePath . $this->object->dir_name . "/core/components/" . $this->newConfig->getLowCaseName() . "/" . 'model/'; $modelPath = str_replace('\\', '/', $modelPath); $db = $this->newConfig->getDatabase(); $prefix = $db->getPrefix(); if (!is_array($extPackage)) { $extPackage = array(); } if (isset($prefix)) { $extPackage['tablePrefix'] = $prefix; } $this->modx->addExtensionPackage($this->newConfig->getLowCaseName(), $modelPath, $extPackage); } }
public function process() { $prepare = $this->prepare(); if ($prepare !== true) { return $prepare; } $this->setPaths(); $this->builder = new GitPackageBuilder($this->modx, $this->smarty, $this->packagePath); $buildOptions = $this->config->getBuild(); $objectAttributes = $buildOptions->getAttributes(); foreach ($objectAttributes as $element => $attributes) { $this->builder->updateCategoryAttribute($element, $attributes); } $version = explode('-', $this->config->getVersion()); if (count($version) == 1) { $version[1] = 'pl'; } $this->builder->getTPBuilder()->directory = $this->config->getPackagePath() . '/_packages/'; $this->builder->getTPBuilder()->createPackage($this->config->getLowCaseName(), $version[0], $version[1]); $this->builder->registerNamespace($this->config->getLowCaseName(), false, true, '{core_path}components/' . $this->config->getLowCaseName() . '/', '{assets_path}components/' . $this->config->getLowCaseName() . '/'); $vehicle = $this->addCategory(); $resolver = $buildOptions->getResolver(); $resolversDir = $resolver->getResolversDir(); $resolversDir = trim($resolversDir, '/'); $resolversDir = $this->packagePath . '_build/' . $resolversDir . '/'; $before = $resolver->getBefore(); foreach ($before as $script) { $vehicle->addPHPResolver($resolversDir . ltrim($script, '/')); } if (is_dir($this->assetsPath)) { $vehicle->addAssetsResolver($this->assetsPath); } if (is_dir($this->corePath)) { $vehicle->addCoreResolver($this->corePath); } $fileResolvers = $resolver->getFileResolvers(); foreach ($fileResolvers as $fileResolver) { $source = $fileResolver['source']; $source = str_replace('[[+corePath]]', $this->corePath, $source); $source = str_replace('[[+assetsPath]]', $this->assetsPath, $source); $source = str_replace('[[+packagePath]]', $this->packagePath, $source); $vehicle->addFileResolver($source, $fileResolver['target']); } $db = $this->config->getDatabase(); if ($db != null) { $tables = $db->getTables(); if (!empty($tables)) { $vehicle->addTableResolver($this->packagePath . '_build/gpm_resolvers', $tables); } } $extensionPackage = $this->config->getExtensionPackage(); if ($extensionPackage !== false) { if ($extensionPackage === true) { $vehicle->addExtensionPackageResolver($this->packagePath . '_build/gpm_resolvers'); } else { $vehicle->addExtensionPackageResolver($this->packagePath . '_build/gpm_resolvers', $extensionPackage['serviceName'], $extensionPackage['serviceClass']); } } if (!empty($this->tvMap)) { $vehicle->addTVResolver($this->packagePath . '_build/gpm_resolvers', $this->tvMap); } $resources = $this->config->getResources(); $resourcesArray = array(); foreach ($resources as $resource) { $resourcesArray[] = $resource->toRawArray(); } if (!empty($resourcesArray)) { $vehicle->addResourceResolver($this->packagePath . '_build/gpm_resolvers', $resourcesArray); } $this->addWidgets(); $this->addSystemSettings(); $after = $resolver->getAfter(); foreach ($after as $script) { $vehicle->addPHPResolver($resolversDir . ltrim($script, '/')); } $this->builder->putVehicle($vehicle); $this->addMenus(); $packageAttributes = array(); $license = ltrim($buildOptions->getLicense(), '/'); if (!empty($license) && file_exists($this->corePath . $license)) { $packageAttributes['license'] = file_get_contents($this->corePath . $license); } $readme = ltrim($buildOptions->getReadme(), '/'); if (!empty($readme) && file_exists($this->corePath . $readme)) { $packageAttributes['readme'] = file_get_contents($this->corePath . $readme); } $changeLog = ltrim($buildOptions->getChangeLog(), '/'); if (!empty($changeLog) && file_exists($this->corePath . $changeLog)) { $packageAttributes['changelog'] = file_get_contents($this->corePath . $changeLog); } $setupOptions = $buildOptions->getSetupOptions(); if (!empty($setupOptions) && isset($setupOptions['source']) && !empty($setupOptions['source'])) { $file = $this->packagePath . '_build/' . $setupOptions['source']; if (file_exists($file)) { $setupOptions['source'] = $file; $packageAttributes['setup-options'] = $setupOptions; } } $dependencies = $this->config->getDependencies(); if (!empty($dependencies)) { $packageAttributes['requires'] = array(); foreach ($dependencies as $dependency) { $packageAttributes['requires'][$dependency['name']] = $dependency['version']; } } $this->builder->setPackageAttributes($packageAttributes); $this->builder->pack(); return $this->success(); }