Chris@0: .+)\/.+/'; Chris@0: Chris@0: protected $locations = array( Chris@0: 'module' => 'modules/{$name}/', Chris@0: 'theme' => 'application/views/{$name}/', Chris@0: 'out' => 'out/{$name}/', Chris@0: ); Chris@0: Chris@0: /** Chris@0: * getInstallPath Chris@0: * Chris@0: * @param PackageInterface $package Chris@0: * @param string $frameworkType Chris@0: * @return void Chris@0: */ Chris@0: public function getInstallPath(PackageInterface $package, $frameworkType = '') Chris@0: { Chris@0: $installPath = parent::getInstallPath($package, $frameworkType); Chris@0: $type = $this->package->getType(); Chris@0: if ($type === 'oxid-module') { Chris@0: $this->prepareVendorDirectory($installPath); Chris@0: } Chris@0: return $installPath; Chris@0: } Chris@0: Chris@0: /** Chris@0: * prepareVendorDirectory Chris@0: * Chris@0: * Makes sure there is a vendormetadata.php file inside Chris@0: * the vendor folder if there is a vendor folder. Chris@0: * Chris@0: * @param string $installPath Chris@0: * @return void Chris@0: */ Chris@0: protected function prepareVendorDirectory($installPath) Chris@0: { Chris@0: $matches = ''; Chris@0: $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches); Chris@0: if (!$hasVendorDirectory) { Chris@0: return; Chris@0: } Chris@0: Chris@0: $vendorDirectory = $matches['vendor']; Chris@0: $vendorPath = getcwd() . '/modules/' . $vendorDirectory; Chris@0: if (!file_exists($vendorPath)) { Chris@0: mkdir($vendorPath, 0755, true); Chris@0: } Chris@0: Chris@0: $vendorMetaDataPath = $vendorPath . '/vendormetadata.php'; Chris@0: touch($vendorMetaDataPath); Chris@0: } Chris@0: }