From d51e6e8d0112099911b46d91e4ea7191790676f3 Mon Sep 17 00:00:00 2001 From: Svein-Tore Griff With Date: Sat, 13 Apr 2013 13:28:48 +0200 Subject: [PATCH] Fix dependency checking --- h5p.classes.php | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/h5p.classes.php b/h5p.classes.php index d8e55a1..8f58986 100644 --- a/h5p.classes.php +++ b/h5p.classes.php @@ -414,13 +414,18 @@ class H5PValidator { $this->h5pC->mainJsonData = $mainH5pData; $this->h5pC->contentJsonData = $contentJsonData; - $libraries['mainH5pData'] = $mainH5pData; + $libraries['mainH5pData'] = $mainH5pData; // Check for the dependencies in h5p.json as well as in the libraries $missingLibraries = $this->getMissingLibraries($libraries); foreach ($missingLibraries as $missing) { if ($this->h5pF->getLibraryId($missing['machineName'], $missing['majorVersion'], $missing['minorVersion'])) { unset($missingLibraries[$missing['machineName']]); } } + if (!empty($missingLibraries)) { + foreach ($missingLibraries as $library) { + $this->h5pF->setErrorMessage($this->h5pF->t('Missing required library @library', array('@library' => $this->h5pC->libraryToString($library)))); + } + } $valid = empty($missingLibraries) && $valid; } if (!$valid) { @@ -442,13 +447,13 @@ class H5PValidator { $missing = array(); foreach ($libraries as $library) { if (isset($library['preloadedDependencies'])) { - array_merge($missing, $this->getMissingDependencies($library['preloadedDependencies'], $libraries)); + $missing = array_merge($missing, $this->getMissingDependencies($library['preloadedDependencies'], $libraries)); } if (isset($library['dynamicDependencies'])) { - array_merge($missing, $this->getMissingDependencies($library['dynamicDependencies'], $libraries)); + $missing = array_merge($missing, $this->getMissingDependencies($library['dynamicDependencies'], $libraries)); } if (isset($library['editorDependencies'])) { - array_merge($missing, $this->getMissingDependencies($library['editorDependencies'], $libraries)); + $missing = array_merge($missing, $this->getMissingDependencies($library['editorDependencies'], $libraries)); } } return $missing; @@ -977,5 +982,17 @@ class H5PCore { } closedir($dir); } + + /** + * Writes library data as string on the form {machineName} {majorVersion}.{minorVersion} + * + * @param array $library + * With keys machineName, majorVersion and minorVersion + * @return string + * On the form {machineName} {majorVersion}.{minorVersion} + */ + public function libraryToString($library) { + return $library['machineName'] . ' ' . $library['majorVersion'] . '.' . $library['minorVersion']; + } } ?> \ No newline at end of file