From 4d010ef38ff2809e2c52aba07d61ce438261e85e Mon Sep 17 00:00:00 2001 From: Paal Joergensen Date: Thu, 1 Dec 2016 11:34:28 +0100 Subject: [PATCH] Improved message presented to user --- h5p.classes.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/h5p.classes.php b/h5p.classes.php index 03d5136..dabca7d 100644 --- a/h5p.classes.php +++ b/h5p.classes.php @@ -3132,7 +3132,30 @@ class H5PContentValidator { return; } if (!in_array($value->library, $semantics->options)) { - $this->h5pF->setErrorMessage($this->h5pF->t('Library used in content is not a valid library according to semantics')); + $message = NULL; + // Create an understandable error message: + $machineName = explode(' ', $value->library)[0]; + foreach ($semantics->options as $semanticsLibrary) { + $semanticsMachineName = explode(' ', $semanticsLibrary)[0]; + if ($machineName === $semanticsMachineName) { + // Using the wrong version of the library in the content + $message = $this->h5pF->t('The version of the H5P library %machineName used in this content is not valid. Content contains %contentLibrary, but it should be %semanticsLibrary.', array( + '%machineName' => $machineName, + '%contentLibrary' => $value->library, + '%semanticsLibrary' => $semanticsLibrary + )); + break; + } + } + + // Using a library in content that is not present at all in semantics + if ($message === NULL) { + $message = $this->h5pF->t('The H5P library %library used in the content is not valid', array( + '%library' => $value->library + )); + } + + $this->h5pF->setErrorMessage($message); $value = NULL; return; }