JI-857 Validate metadata
parent
74f9a84034
commit
4fe8eca0f2
|
@ -1939,6 +1939,10 @@ class H5PCore {
|
||||||
$content = $this->h5pF->loadContent($id);
|
$content = $this->h5pF->loadContent($id);
|
||||||
|
|
||||||
if ($content !== NULL) {
|
if ($content !== NULL) {
|
||||||
|
// Validate main content's metadata
|
||||||
|
$validator = new H5PContentValidator($this->h5pF, $this);
|
||||||
|
$validator->validateMetadata($content['metadata']);
|
||||||
|
|
||||||
$content['library'] = array(
|
$content['library'] = array(
|
||||||
'id' => $content['libraryId'],
|
'id' => $content['libraryId'],
|
||||||
'name' => $content['libraryName'],
|
'name' => $content['libraryName'],
|
||||||
|
@ -3367,6 +3371,21 @@ class H5PContentValidator {
|
||||||
return $this->dependencies;
|
return $this->dependencies;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate metadata
|
||||||
|
*
|
||||||
|
* @param array $metadata
|
||||||
|
*/
|
||||||
|
public function validateMetadata(&$metadata) {
|
||||||
|
$semantics = $this->getMetadataSemantics();
|
||||||
|
|
||||||
|
$group = (object)$metadata;
|
||||||
|
$this->validateGroup($group, (object) array(
|
||||||
|
'type' => 'group',
|
||||||
|
'fields' => $semantics,
|
||||||
|
), FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate given text value against text semantics.
|
* Validate given text value against text semantics.
|
||||||
* @param $text
|
* @param $text
|
||||||
|
@ -3883,10 +3902,17 @@ class H5PContentValidator {
|
||||||
$library = $this->libraries[$value->library];
|
$library = $this->libraries[$value->library];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate parameters
|
||||||
$this->validateGroup($value->params, (object) array(
|
$this->validateGroup($value->params, (object) array(
|
||||||
'type' => 'group',
|
'type' => 'group',
|
||||||
'fields' => $library['semantics'],
|
'fields' => $library['semantics'],
|
||||||
), FALSE);
|
), FALSE);
|
||||||
|
|
||||||
|
// Validate subcontent's metadata
|
||||||
|
if (isset($value->metadata)) {
|
||||||
|
$this->validateMetadata($value->metadata);
|
||||||
|
}
|
||||||
|
|
||||||
$validKeys = array('library', 'params', 'subContentId', 'metadata');
|
$validKeys = array('library', 'params', 'subContentId', 'metadata');
|
||||||
if (isset($semantics->extraAttributes)) {
|
if (isset($semantics->extraAttributes)) {
|
||||||
$validKeys = array_merge($validKeys, $semantics->extraAttributes);
|
$validKeys = array_merge($validKeys, $semantics->extraAttributes);
|
||||||
|
|
Loading…
Reference in New Issue