private function getBaseDir($sourceDir) { return FilesystemTools::slotDir($sourceDir, $this->options); }
private function doSaveBlocks(BlockManagerApprover $approver, $basePath, array $options) { $options["slot"] = basename($basePath); $slotPath = sprintf('%s/contributors/%s', FilesystemTools::slotDir($this->baseDir, $options), $this->username); if (!is_dir($slotPath)) { return array(); } $activeSlotDefinition = json_decode(FilesystemTools::readFile($basePath . '/active/slot.json'), true); $contributorSlotDefinition = json_decode(FilesystemTools::readFile($slotPath . '/slot.json'), true); $removedBlocks = array(); $contributorSlotDefinitionBlocks = $contributorSlotDefinition["blocks"]; if (null === $contributorSlotDefinitionBlocks) { $contributorSlotDefinitionBlocks = array(); } if (null !== $activeSlotDefinition) { $removedBlocks = array_diff_key($activeSlotDefinition["blocks"], $contributorSlotDefinitionBlocks); } foreach ($removedBlocks as $blockName) { $options["blockname"] = $blockName; $approver->approveRemoval($this->baseDir, $options, $this->username); } $approvedBlocks = array(); $blocks = array_diff_key($contributorSlotDefinitionBlocks, $removedBlocks); foreach ($blocks as $blockName) { $options["blockname"] = $blockName; $approved = $approver->approve($this->baseDir, $options, $this->username); $approvedBlocks[] = $approved; } return $approvedBlocks; }