HFP-1898 Move mocked semantics to backend
parent
58597460f6
commit
3deda27f9b
233
h5p.classes.php
233
h5p.classes.php
|
@ -3557,6 +3557,7 @@ class H5PContentValidator {
|
||||||
|
|
||||||
if (isset($file->copyright)) {
|
if (isset($file->copyright)) {
|
||||||
$this->validateGroup($file->copyright, $this->getCopyrightSemantics());
|
$this->validateGroup($file->copyright, $this->getCopyrightSemantics());
|
||||||
|
// TODO: We'll need to do something here about getMetadataSemantics() if we change the widgets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4106,6 +4107,238 @@ class H5PContentValidator {
|
||||||
return $uri;
|
return $uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getMetadataSemantics() {
|
||||||
|
static $semantics;
|
||||||
|
|
||||||
|
$cc_versions = array(
|
||||||
|
(object) array(
|
||||||
|
'value' => '4.0',
|
||||||
|
'label' => $this->h5pF->t('4.0 International')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => '3.0',
|
||||||
|
'label' => $this->h5pF->t('3.0 Unported')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => '2.5',
|
||||||
|
'label' => $this->h5pF->t('2.5 Generic')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => '2.0',
|
||||||
|
'label' => $this->h5pF->t('2.0 Generic')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => '1.0',
|
||||||
|
'label' => $this->h5pF->t('1.0 Generic')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$semantics = (object) array(
|
||||||
|
(object) array(
|
||||||
|
'name' => 'copyright',
|
||||||
|
'type' => 'group',
|
||||||
|
'label' => $this->h5pF->t('Copyright information'),
|
||||||
|
'fields' => array(
|
||||||
|
(object) array(
|
||||||
|
'name' => 'title',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => $this->h5pF->t('Title'),
|
||||||
|
'placeholder' => 'La Gioconda'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'license',
|
||||||
|
'type' => 'select',
|
||||||
|
'label' => $this->h5pF->t('License'),
|
||||||
|
'default' => 'U',
|
||||||
|
'options' => array(
|
||||||
|
(object) array(
|
||||||
|
'value' => 'U',
|
||||||
|
'label' => 'Undisclosed'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY',
|
||||||
|
'label' => 'Attribution',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY-SA',
|
||||||
|
'label' => 'Attribution-ShareAlike',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY-ND',
|
||||||
|
'label' => 'Attribution-NoDerivs',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY-NC',
|
||||||
|
'label' => 'Attribution-NonCommercial',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY-NC-SA',
|
||||||
|
'label' => 'Attribution-NonCommercial-ShareAlike',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC BY-NC-ND',
|
||||||
|
'label' => 'Attribution-NonCommercial-NoDerivs',
|
||||||
|
'versions' => $cc_versions
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC0 1.0',
|
||||||
|
'label' => 'Public Domain Dedication'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'CC PDM',
|
||||||
|
'label' => 'Public Domain Mark'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'GNU GPL',
|
||||||
|
'label' => 'General Public License v3'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'PD',
|
||||||
|
'label' => 'Public Domain'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'ODC PDDL',
|
||||||
|
'label' => 'Public Domain Dedication and Licence'
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'C',
|
||||||
|
'label' => 'Copyright'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'licenseVersion',
|
||||||
|
'type' => 'select',
|
||||||
|
'label' => $this->h5pF->t('License Version'),
|
||||||
|
'options' => array(),
|
||||||
|
'optional' => TRUE
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'yearFrom',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => $this->h5pF->t('Years (from-to)'),
|
||||||
|
'placeholder' => '1991',
|
||||||
|
'optional' => TRUE
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'yearTo',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => 'hiddenLabel',
|
||||||
|
'placeholder' => '1992',
|
||||||
|
'optional' => TRUE
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'source',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => 'Source',
|
||||||
|
'placeholder' => 'https://',
|
||||||
|
'optional' => TRUE,
|
||||||
|
'regexp' => array(
|
||||||
|
'pattern' => '^http[s]?://.+',
|
||||||
|
'modifiers' => 'i'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'authorWidget',
|
||||||
|
'type' => 'group',
|
||||||
|
'fields'=> array(
|
||||||
|
(object) array(
|
||||||
|
'label' => "Author's name",
|
||||||
|
'name' => "authorName",
|
||||||
|
'optional' => TRUE,
|
||||||
|
'type' => "text"
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'authorRole',
|
||||||
|
'type' => 'select',
|
||||||
|
'label' => $this->h5pF->t("Author's role"),
|
||||||
|
'default' => 'Originator',
|
||||||
|
'options' => array(
|
||||||
|
(object) array(
|
||||||
|
'value' => 'Editor',
|
||||||
|
'label' => $this->h5pF->t('Editor')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'Licensee',
|
||||||
|
'label' => $this->h5pF->t('Licensee')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'value' => 'Originator',
|
||||||
|
'label' => $this->h5pF->t('Originator')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'licenseExtras',
|
||||||
|
'type' => 'textarea',
|
||||||
|
'label' => $this->h5pF->t('License Extras'),
|
||||||
|
'optional' => TRUE,
|
||||||
|
'description' => $this->h5pF->t('Any additional information about the license')
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'changeLog',
|
||||||
|
'type' => 'group',
|
||||||
|
'expanded' => FALSE,
|
||||||
|
'label' => $this->h5pF->t('Change Log'),
|
||||||
|
'fields' => array(
|
||||||
|
(object) array (
|
||||||
|
'name' => 'changeLogForm',
|
||||||
|
'type' => 'group',
|
||||||
|
'label' => $this->h5pF->t('Question'),
|
||||||
|
'expanded' => TRUE,
|
||||||
|
'fields' => array(
|
||||||
|
(object) array(
|
||||||
|
'name' => 'date',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => $this->h5pF->t('Date'),
|
||||||
|
'optional' => TRUE
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'author',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => $this->h5pF->t('Changed by'),
|
||||||
|
'optional' => TRUE
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'log',
|
||||||
|
'type' => 'textarea',
|
||||||
|
'label' => $this->h5pF->t('Description of change'),
|
||||||
|
'placeholder' => $this->h5pF->t('Add a description of your change'),
|
||||||
|
'optional' => TRUE
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'name' => 'authorComments',
|
||||||
|
'label' => $this->h5pF->t('Additional Information'),
|
||||||
|
'type' => 'group',
|
||||||
|
'expanded' => FALSE,
|
||||||
|
'fields' => array(
|
||||||
|
(object) array (
|
||||||
|
'name' => 'authorComments',
|
||||||
|
'type' => 'textarea',
|
||||||
|
'label' => $this->h5pF->t('Author comments'),
|
||||||
|
'description' => $this->h5pF->t('Comments for the editor of the content (This text will not be published as a part of copyright info'),
|
||||||
|
'optional' => TRUE
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return $semantics;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCopyrightSemantics() {
|
public function getCopyrightSemantics() {
|
||||||
static $semantics;
|
static $semantics;
|
||||||
|
|
||||||
|
|
11
js/h5p.js
11
js/h5p.js
|
@ -1364,7 +1364,7 @@ H5P.MediaCopyright = function (copyright, labels, order, extraFields) {
|
||||||
link = copyrightLicense.link.replace(':version', copyrightLicense.linkVersions ? copyrightLicense.linkVersions[version] : version);
|
link = copyrightLicense.link.replace(':version', copyrightLicense.linkVersions ? copyrightLicense.linkVersions[version] : version);
|
||||||
}
|
}
|
||||||
else if (versionInfo && copyrightLicense.hasOwnProperty('link')) {
|
else if (versionInfo && copyrightLicense.hasOwnProperty('link')) {
|
||||||
link = versionInfo.link
|
link = versionInfo.link;
|
||||||
}
|
}
|
||||||
if (link) {
|
if (link) {
|
||||||
value = '<a href="' + link + '" target="_blank">' + value + '</a>';
|
value = '<a href="' + link + '" target="_blank">' + value + '</a>';
|
||||||
|
@ -2150,6 +2150,10 @@ H5P.createTitle = function (rawTitle, maxLength) {
|
||||||
link: 'http://creativecommons.org/licenses/by-nc-nd/:version/legalcode',
|
link: 'http://creativecommons.org/licenses/by-nc-nd/:version/legalcode',
|
||||||
versions: ccVersions
|
versions: ccVersions
|
||||||
},
|
},
|
||||||
|
'CC0 1.0': {
|
||||||
|
label: H5P.t('licenseCC010'),
|
||||||
|
link: 'https://creativecommons.org/publicdomain/zero/1.0/'
|
||||||
|
},
|
||||||
'GNU GPL': {
|
'GNU GPL': {
|
||||||
label: H5P.t('licenseGPL'),
|
label: H5P.t('licenseGPL'),
|
||||||
link: 'http://www.gnu.org/licenses/gpl-:version-standalone.html',
|
link: 'http://www.gnu.org/licenses/gpl-:version-standalone.html',
|
||||||
|
@ -2179,7 +2183,10 @@ H5P.createTitle = function (rawTitle, maxLength) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'ODC PDDL': '<a href="http://opendatacommons.org/licenses/pddl/1.0/" target="_blank">Public Domain Dedication and Licence</a>',
|
'ODC PDDL': '<a href="http://opendatacommons.org/licenses/pddl/1.0/" target="_blank">Public Domain Dedication and Licence</a>',
|
||||||
'CC PDM': H5P.t('licensePDM'),
|
'CC PDM': {
|
||||||
|
label: H5P.t('licensePDM'),
|
||||||
|
link: 'https://creativecommons.org/publicdomain/mark/1.0/'
|
||||||
|
},
|
||||||
'C': H5P.t('licenseC'),
|
'C': H5P.t('licenseC'),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue