diff --git a/h5p-default-storage.class.php b/h5p-default-storage.class.php index 27b250b..5b8ffeb 100644 --- a/h5p-default-storage.class.php +++ b/h5p-default-storage.class.php @@ -116,10 +116,13 @@ class H5PDefaultStorage implements \H5PFileStorage { * Library properties * @param string $target * Where the library folder will be saved + * @param string $developmentPath + * Folder that library resides in */ - public function exportLibrary($library, $target) { + public function exportLibrary($library, $target, $developmentPath=NULL) { $folder = \H5PCore::libraryToString($library, TRUE); - self::copyFileTree("{$this->path}/libraries/{$folder}", "{$target}/{$folder}"); + $srcPath = ($developmentPath === NULL ? "/libraries/{$folder}" : $developmentPath); + self::copyFileTree("{$this->path}{$srcPath}", "{$target}/{$folder}"); } /** @@ -253,6 +256,8 @@ class H5PDefaultStorage implements \H5PFileStorage { * To path * @return boolean * Indicates if the directory existed. + * + * @throws Exception Unable to copy the file */ private static function copyFileTree($source, $destination) { if (!self::dirReady($destination)) { diff --git a/h5p.classes.php b/h5p.classes.php index 8bb7c7b..f9655a3 100644 --- a/h5p.classes.php +++ b/h5p.classes.php @@ -1550,8 +1550,25 @@ Class H5PExport { $library = $dependency['library']; try { + $exportFolder = NULL; + + // Determine path of export library + if (isset($this->h5pC) && isset($this->h5pC->h5pD)) { + + // Tries to find library in development folder + $isDevLibrary = $this->h5pC->h5pD->getLibrary( + $library['machineName'], + $library['majorVersion'], + $library['minorVersion'] + ); + + if ($isDevLibrary !== NULL) { + $exportFolder = "/" . $library['path']; + } + } + // Export required libraries - $this->h5pC->fs->exportLibrary($library, $tmpPath); + $this->h5pC->fs->exportLibrary($library, $tmpPath, $exportFolder); } catch (Exception $e) { $this->h5pF->setErrorMessage($this->h5pF->t($e->getMessage()));