Do not attempt to save library dependencies for libraries that have already been saved, and also remove previous dependencies for libraries that are beeing patched
parent
d51e6e8d01
commit
18b2475918
|
@ -170,6 +170,14 @@ interface H5PFrameworkInterface {
|
||||||
* FALSE if the library doesn't exist
|
* FALSE if the library doesn't exist
|
||||||
*/
|
*/
|
||||||
public function loadLibrary($machineName, $majorVersion, $minorVersion);
|
public function loadLibrary($machineName, $majorVersion, $minorVersion);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all dependencies belonging to given library
|
||||||
|
*
|
||||||
|
* @param int $libraryId
|
||||||
|
* Library Id
|
||||||
|
*/
|
||||||
|
public function deleteLibraryDependencies($libraryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -760,6 +768,7 @@ class H5PStorage {
|
||||||
// Save the libraries we processed during validation
|
// Save the libraries we processed during validation
|
||||||
foreach ($this->h5pC->librariesJsonData as $key => &$library) {
|
foreach ($this->h5pC->librariesJsonData as $key => &$library) {
|
||||||
$libraryId = $this->h5pF->getLibraryId($key, $library['majorVersion'], $library['minorVersion']);
|
$libraryId = $this->h5pF->getLibraryId($key, $library['majorVersion'], $library['minorVersion']);
|
||||||
|
$library['saveDependencies'] = TRUE;
|
||||||
if (!$libraryId) {
|
if (!$libraryId) {
|
||||||
$new = TRUE;
|
$new = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -768,7 +777,9 @@ class H5PStorage {
|
||||||
$library['libraryId'] = $libraryId;
|
$library['libraryId'] = $libraryId;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
$library['libraryId'] = $libraryId;
|
||||||
// We already have the same or a newer version of this library
|
// We already have the same or a newer version of this library
|
||||||
|
$library['saveDependencies'] = FALSE;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$this->h5pF->saveLibraryData($library, $new);
|
$this->h5pF->saveLibraryData($library, $new);
|
||||||
|
@ -778,8 +789,10 @@ class H5PStorage {
|
||||||
$this->h5pC->delTree($destination_path);
|
$this->h5pC->delTree($destination_path);
|
||||||
rename($current_path, $destination_path);
|
rename($current_path, $destination_path);
|
||||||
}
|
}
|
||||||
// All libraries have been saved, we now save all the dependencies
|
|
||||||
foreach ($this->h5pC->librariesJsonData as $key => &$library) {
|
foreach ($this->h5pC->librariesJsonData as $key => &$library) {
|
||||||
|
if ($library['saveDependencies']) {
|
||||||
|
$this->h5pF->deleteLibraryDependencies($library['libraryId']);
|
||||||
if (isset($library['preloadedDependencies'])) {
|
if (isset($library['preloadedDependencies'])) {
|
||||||
$this->h5pF->saveLibraryDependencies($library['libraryId'], $library['preloadedDependencies'], 'preloaded');
|
$this->h5pF->saveLibraryDependencies($library['libraryId'], $library['preloadedDependencies'], 'preloaded');
|
||||||
}
|
}
|
||||||
|
@ -790,6 +803,7 @@ class H5PStorage {
|
||||||
$this->h5pF->saveLibraryDependencies($library['libraryId'], $library['editorDependencies'], 'editor');
|
$this->h5pF->saveLibraryDependencies($library['libraryId'], $library['editorDependencies'], 'editor');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Move the content folder
|
// Move the content folder
|
||||||
$current_path = $this->h5pF->getUploadedH5pFolderPath() . DIRECTORY_SEPARATOR . 'content';
|
$current_path = $this->h5pF->getUploadedH5pFolderPath() . DIRECTORY_SEPARATOR . 'content';
|
||||||
$destination_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId;
|
$destination_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId;
|
||||||
|
|
Loading…
Reference in New Issue