diff --git a/docs/api.md b/docs/api.md index b35bcab..003de18 100644 --- a/docs/api.md +++ b/docs/api.md @@ -115,7 +115,7 @@ Return a detailed metadata array containing Package, Dublin Core, LOM and LOM-ES information together with the page tree. - **Throws:** `Exception` if the XML cannot be parsed -- **Returns:** array - Metadata and content structure +- **Returns:** array - Metadata structure #### `extract(string $destinationPath): void` diff --git a/src/ElpParser.php b/src/ElpParser.php index 1aa2d3f..bc69a95 100644 --- a/src/ElpParser.php +++ b/src/ElpParser.php @@ -542,73 +542,67 @@ public function getMetadata(): array $meta = [ [ 'schema' => 'Package', - 'content' => [ + 'content' => [ 'title' => $data['_title'] ?? '', + 'lang' => $data['_lang'] ?? '', + 'description' => [ + 'general_description' => $data['_description'] ?? '', + 'objectives' => $data['_objectives'] ?? '', + 'preknowledge' => $data['_preknowledge'] ?? '' + ], 'author' => $data['_author'] ?? '', - 'language' => $data['_lang'] ?? '', - 'description' => $data['_description'] ?? '', 'license' => $data['license'] ?? '', - 'classification' => '', + 'learningResourceType' => $data['_learningResourceType'] ?? '', + 'usage' => [ + 'intendedEndUserRoleType' => $data['_intendedEndUserRoleType'] ?? '', + 'intendedEndUserRoleGroup' => $data['_intendedEndUserRoleGroup'] ?? '', + 'intendedEndUserRoleTutor' => $data['_intendedEndUserRoleTutor'] ?? '', + 'contextPlace' => $data['_contextPlace'] ?? '', + 'contextMode' => $data['_contextMode'] ?? '', + ], + 'project_properties' => [ + 'backgroundImg' => $data['_backgroundImg'] ?? '', + 'backgroundImgTile' => $data['backgroundImgTile'] ?? '', + 'footer' => $data['footer'] ?? '', + ], + 'format' => [ + 'Doctype' => $data['_docType'] ?? '', + ], + 'taxonomy' => [ + 'level_1' => $data['_levelNames'][0] ?? '', + 'level_2' => $data['_levelNames'][1] ?? '', + 'level_3' => $data['_levelNames'][2] ?? '', + ], + 'advanced_options' => [ + 'custom_head' => $data['_extraHeadContent'] ?? '' + ] ], ], ]; if (isset($data['dublinCore'])) { - $dc = $data['dublinCore']; $meta[] = [ 'schema' => 'Dublin core', - 'content' => [ - 'title' => $dc['title'] ?? '', - 'author' => $dc['creator'] ?? '', - 'language' => $dc['language'] ?? '', - 'description' => $dc['description'] ?? '', - 'license' => [ 'rights' => $dc['rights'] ?? '' ], - 'classification' => [ 'source' => $dc['source'] ?? '', 'taxon_path' => [] ], - ], + 'content' => $data['dublinCore'] ?? [], ]; } if (isset($data['lom'])) { - $lom = $data['lom']; $meta[] = [ 'schema' => 'LOM v1.0', - 'content' => [ - 'title' => $lom['general']['title']['string'] ?? [], - 'author' => $lom['lifeCycle']['contribute']['entity'] ?? [], - 'language' => $lom['general']['language'] ?? [], - 'description' => $lom['general']['description'] ?? [], - 'rights' => $lom['rights'] ?? [], - 'classification' => $lom['classification'] ?? [], - ], + 'content' => $data['lom'] ?? [], ]; } if (isset($data['lomEs'])) { - $lomEs = $data['lomEs']; $meta[] = [ 'schema' => 'LOM-ES v1.0', - 'content' => [ - 'title' => $lomEs['general']['title']['string'] ?? [], - 'author' => $lomEs['lifeCycle']['contribute']['entity']['name'] ?? ($lomEs['lifeCycle']['contribute']['entity'] ?? ''), - 'language' => $lomEs['general']['language'] ?? [], - 'description' => $lomEs['general']['description'] ?? [], - 'rights' => $lomEs['rights'] ?? [], - 'classification' => $lomEs['classification'] ?? [], - ], + 'content' => $data['lomEs'] ?? [], ]; } - $pages = []; - if (isset($data['_nodeIdDict']['0'])) { - $this->collectPages($data['_nodeIdDict']['0'], 0, $pages); - } - return [ 'metadata' => $meta, - 'content' => [ - 'file' => basename($this->filePath), - 'pages' => $pages, - ], ]; } diff --git a/tests/Fixtures/04_La_Ilustracion.metadata.expected.json b/tests/Fixtures/04_La_Ilustracion.metadata.expected.json index a7019a9..302e9e4 100644 --- a/tests/Fixtures/04_La_Ilustracion.metadata.expected.json +++ b/tests/Fixtures/04_La_Ilustracion.metadata.expected.json @@ -4,68 +4,157 @@ "schema": "Package", "content": { "title": "La Ilustración", + "lang": "es", + "description": { + "general_description": "Este recurso está dirigido al alumnado de 4º de ESO y se inserta dentro del itinerario \"El Antiguo Régimen\". Está diseñado para tener una duración de, aproximadamente, una sesión, y el objetivo principal es mostrar ampliamente las principales características de la Ilustración.", + "objectives": "", + "preknowledge": "" + }, "author": "Víctor Gómez Muñiz", - "language": "es", - "description": "Este recurso está dirigido al alumnado de 4º de ESO y se inserta dentro del itinerario \"El Antiguo Régimen\". Está diseñado para tener una duración de, aproximadamente, una sesión, y el objetivo principal es mostrar ampliamente las principales características de la Ilustración.", "license": "creative commons: attribution - share alike 4.0", - "classification": "" + "learningResourceType": "", + "usage": { + "intendedEndUserRoleType": "learner", + "intendedEndUserRoleGroup": false, + "intendedEndUserRoleTutor": false, + "contextPlace": "classroom", + "contextMode": "presencial" + }, + "project_properties": { + "backgroundImg": "", + "backgroundImgTile": false, + "footer": "" + }, + "format": { + "Doctype": "HTML5" + }, + "taxonomy": { + "level_1": "Tema", + "level_2": "Sección", + "level_3": "Unidad" + }, + "advanced_options": { + "custom_head": "" + } } }, { "schema": "Dublin core", "content": { - "title": "La Ilustración", - "author": "Victor Gómez Muñiz", - "language": "es", + "contributors": "", + "coverage": "", + "creator": "Victor Gómez Muñiz", + "date": "2021-06-22", "description": "Este recurso que se presenta está dirigido al alumnado de 4º de ESO y se inserta dentro del itinerario \"El Antiguo Régimen\". Está diseñado para tener una duración de, aproximadamente, una sesión, y el objetivo principal es mostrar ampliamente las principales características de la Ilustración.", - "license": { - "rights": "" - }, - "classification": { - "source": "", - "taxon_path": [] - } + "format": "", + "identifier": "4a7d755e-34a5-410a-a7d4-601881136623", + "language": "es", + "publisher": "", + "relation": "", + "rights": "", + "source": "", + "subject": "", + "title": "La Ilustración", + "type": "" } }, { "schema": "LOM v1.0", "content": { - "title": [ - { - "language": "es", - "valueOf_": "La Ilustraci\\xc3\\xb3n" - } - ], - "author": [], - "language": [ - { - "extensiontype_": null, - "valueOf_": "es" - } - ], - "description": [ + "__index__": [], + "__oldchild__": null, + "annotation": [], + "classification": [], + "educational": [ { - "extensiontype_": null, - "string": [ + "cognitiveProcess": [], + "context": [ { - "language": "es", - "valueOf_": "Este recurso que se presenta est\\xc3\\xa1 dirigido al alumnado de 4\\xc2\\xba de ESO y se inserta dentro del itinerario \\\"El Antiguo R\\xc3\\xa9gimen\\\". Est\\xc3\\xa1 dise\\xc3\\xb1ado para tener una duraci\\xc3\\xb3n de, aproximadamente, una sesi\\xc3\\xb3n, y el objetivo principal es mostrar ampliamente las principales caracter\\xc3\\xadsticas de la Ilustraci\\xc3\\xb3n." + "extensiontype_": null, + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "other" + } + }, + { + "extensiontype_": null, + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "school" + } } - ] - }, - { - "extensiontype_": null, - "string": [ + ], + "description": [], + "difficulty": null, + "intendedEndUserRole": [ { - "language": "es", - "valueOf_": "Este recurso est\\xc3\\xa1 dirigido al alumnado de 4\\xc2\\xba de ESO y se inserta dentro del itinerario \\\"El Antiguo R\\xc3\\xa9gimen\\\". Est\\xc3\\xa1 dise\\xc3\\xb1ado para tener una duraci\\xc3\\xb3n de, aproximadamente, una sesi\\xc3\\xb3n, y el objetivo principal es mostrar ampliamente las principales caracter\\xc3\\xadsticas de la Ilustraci\\xc3\\xb3n." + "extensiontype_": null, + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "learner" + } } - ] + ], + "interactivityLevel": null, + "interactivityType": null, + "language": [ + { + "extensiontype_": null, + "valueOf_": "es" + } + ], + "learningResourceType": [ + { + "extensiontype_": null, + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "experiment" + } + } + ], + "semanticDensity": null, + "typicalAgeRange": [], + "typicalLearningTime": null } ], - "rights": { - "access": null, - "copyrightAndOtherRestrictions": { + "general": { + "aggregationLevel": { "extensiontype_": null, "source": { "extensiontype_": null, @@ -73,86 +162,186 @@ "uniqueElementName": "source", "valueOf_": "LOMv1.0" }, - "uniqueElementName": "copyrightAndOtherRestrictions", + "uniqueElementName": "aggregationLevel", "value": { "extensiontype_": null, "source": null, "uniqueElementName": "value", "value": null, - "valueOf_": "yes" + "valueOf_": "2" } }, - "cost": null, - "description": null, - "uniqueElementName": "rights" - }, - "classification": [] - } - }, - { - "schema": "LOM-ES v1.0", - "content": { - "title": [ - { - "language": "es", - "valueOf_": "La Ilustraci\\xc3\\xb3n" - } - ], - "author": "", - "language": [ - { - "extensiontype_": null, - "valueOf_": "es" - } - ], - "description": [ - { + "coverage": [], + "description": [ + { + "extensiontype_": null, + "string": [ + { + "language": "es", + "valueOf_": "Este recurso que se presenta est\\xc3\\xa1 dirigido al alumnado de 4\\xc2\\xba de ESO y se inserta dentro del itinerario \\\"El Antiguo R\\xc3\\xa9gimen\\\". Est\\xc3\\xa1 dise\\xc3\\xb1ado para tener una duraci\\xc3\\xb3n de, aproximadamente, una sesi\\xc3\\xb3n, y el objetivo principal es mostrar ampliamente las principales caracter\\xc3\\xadsticas de la Ilustraci\\xc3\\xb3n." + } + ] + }, + { + "extensiontype_": null, + "string": [ + { + "language": "es", + "valueOf_": "Este recurso est\\xc3\\xa1 dirigido al alumnado de 4\\xc2\\xba de ESO y se inserta dentro del itinerario \\\"El Antiguo R\\xc3\\xa9gimen\\\". Est\\xc3\\xa1 dise\\xc3\\xb1ado para tener una duraci\\xc3\\xb3n de, aproximadamente, una sesi\\xc3\\xb3n, y el objetivo principal es mostrar ampliamente las principales caracter\\xc3\\xadsticas de la Ilustraci\\xc3\\xb3n." + } + ] + } + ], + "identifier": [ + { + "catalog": { + "uniqueElementName": "catalog", + "valueOf_": "My Catalog" + }, + "entry": { + "uniqueElementName": "entry", + "valueOf_": "4a7d755e-34a5-410a-a7d4-601881136623" + } + } + ], + "keyword": [], + "language": [ + { + "extensiontype_": null, + "valueOf_": "es" + } + ], + "structure": null, + "title": { "extensiontype_": null, "string": [ { "language": "es", - "valueOf_": "Este recurso que se presenta est\\xc3\\xa1 dirigido al alumnado de 4\\xc2\\xba de ESO y se inserta dentro del itinerario \\\"El Antiguo R\\xc3\\xa9gimen\\\". Est\\xc3\\xa1 dise\\xc3\\xb1ado para tener una duraci\\xc3\\xb3n de, aproximadamente, una sesi\\xc3\\xb3n, y el objetivo principal es mostrar ampliamente las principales caracter\\xc3\\xadsticas de la Ilustraci\\xc3\\xb3n." + "valueOf_": "La Ilustraci\\xc3\\xb3n" } - ] - } - ], - "rights": { - "access": { - "accessType": { - "extensiontype_": null, - "source": { + ], + "uniqueElementName": "title" + }, + "uniqueElementName": "general" + }, + "lifeCycle": { + "contribute": [ + { + "date": { + "dateTime": { + "uniqueElementName": "dateTime", + "valueOf_": "2021-06-21T09:07:36.00+02:00" + }, + "description": { + "extensiontype_": null, + "string": [ + { + "language": "es", + "valueOf_": "Fecha de creaci\\xc3\\xb3n de los metadatos" + } + ] + }, "extensiontype_": null, - "string": [], - "uniqueElementName": "source", - "valueOf_": "LOM-ESv1.0" + "uniqueElementName": "date", + "valueOf_": null }, - "uniqueElementName": "accessType", - "value": { + "entity": [ + { + "extensiontype_": null, + "valueOf_": "BEGIN:VCARD VERSION:3.0 FN:V\\xc3\\xadctor G\\xc3\\xb3mez Mu\\xc3\\xb1iz EMAIL;TYPE=INTERNET: ORG: END:VCARD" + } + ], + "role": { "extensiontype_": null, - "source": null, - "uniqueElementName": "value", - "value": null, - "valueOf_": "universal" + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "uniqueElementName": "role", + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "author" + } } - }, - "description": { - "extensiontype_": null, - "string": [ + } + ], + "status": null, + "uniqueElementName": "lifeCycle", + "version": null + }, + "metaMetadata": { + "contribute": [ + { + "date": { + "dateTime": { + "uniqueElementName": "dateTime", + "valueOf_": "2021-06-21T09:07:36.00+02:00" + }, + "description": { + "extensiontype_": null, + "string": [ + { + "language": "es", + "valueOf_": "Fecha de creaci\\xc3\\xb3n de los metadatos" + } + ] + }, + "extensiontype_": null, + "uniqueElementName": "date", + "valueOf_": null + }, + "entity": [ { - "language": "en", - "valueOf_": "Default" + "extensiontype_": null, + "valueOf_": "BEGIN:VCARD VERSION:3.0 FN:V\\xc3\\xadctor G\\xc3\\xb3mez Mu\\xc3\\xb1iz EMAIL;TYPE=INTERNET: ORG: END:VCARD" } - ] - }, - "uniqueElementName": "access" + ], + "role": { + "extensiontype_": null, + "source": { + "extensiontype_": null, + "string": [], + "uniqueElementName": "source", + "valueOf_": "LOMv1.0" + }, + "uniqueElementName": "role", + "value": { + "extensiontype_": null, + "source": null, + "uniqueElementName": "value", + "value": null, + "valueOf_": "creator" + } + } + } + ], + "identifier": [], + "language": { + "extensiontype_": null, + "valueOf_": "es" }, + "metadataSchema": [ + { + "valueOf_": "LOMv1.0" + } + ], + "uniqueElementName": "metaMetadata" + }, + "relation": [], + "rights": { + "access": null, "copyrightAndOtherRestrictions": { "extensiontype_": null, "source": { "extensiontype_": null, "string": [], "uniqueElementName": "source", - "valueOf_": "LOM-ESv1.0" + "valueOf_": "LOMv1.0" }, "uniqueElementName": "copyrightAndOtherRestrictions", "value": { @@ -160,13 +349,22 @@ "source": null, "uniqueElementName": "value", "value": null, - "valueOf_": "creative commons: attribution - share alike" + "valueOf_": "yes" } }, "cost": null, "description": null, "uniqueElementName": "rights" }, + "technical": null + } + }, + { + "schema": "LOM-ES v1.0", + "content": { + "__index__": [], + "__oldchild__": null, + "annotation": [], "classification": [ { "description": null, @@ -322,181 +520,349 @@ } ] } - ] - } - } - ], - "content": { - "file": "04_La_Ilustracion.elp", - "pages": [ - { - "filename": "index.html", - "pagename": "La Ilustración", - "level": 0, - "idevices": [ - { - "id": "", - "type": "text", - "title": "Introducción", - "text": "Este recurso está dirigido al alumnado de 4º de ESO y se inserta dentro del itinerario \"El Antiguo Régimen\". Está diseñado para tener una duración de, aproximadamente, una sesión, y el objetivo principal es mostrar ampliamente las principales características de la Ilustración, un movimiento cultural del siglo XVIII que pretendía acabar con la ignorancia y superstición popular a través de la razón y de la educación Las actividades contenidas en este recurso están creadas para que el alumnado consolide los conocimientos sobre los principales rasgos e ideas ilustradas, los principales pensadores ilustrados y de la Enciclopedia. Cada apartado constará de una parte teórica, como un test o un rosco interactivo, y posteriormente diversas actividades prácticas para realizar en el aula, como el Whatsapp ilustrado. Estos ejercicios tendrán su evaluación a través de una rúbrica en la que se especifica el peso de cada una de ellas. Wikimedia Commons\/Anicet Charles Gabriel Lemonnier. Salón de Madame Geoffrin (Dominio público)", - "html_code": "

Este recurso está dirigido al alumnado de 4º de ESO y se inserta dentro del itinerario \"El Antiguo Régimen\"<\/strong>. Está diseñado para tener una duración de, aproximadamente, una sesión<\/strong>, y el objetivo principal es mostrar ampliamente las principales características de la Ilustración,<\/strong> un movimiento cultural del siglo XVIII que pretendía acabar con la ignorancia y superstición popular a través de la razón y de la educación
<\/span><\/p>

Las actividades contenidas en este recurso están creadas para que el alumnado consolide los conocimientos sobre los principales rasgos e ideas ilustradas, los principales pensadores ilustrados y de la Enciclopedia. Cada apartado constará de una parte teórica, como un test o un rosco interactivo, y posteriormente diversas actividades prácticas para realizar en el aula, como el Whatsapp<\/em> ilustrado. Estos ejercicios tendrán su evaluación a través de una rúbrica en la que se especifica el peso de cada una de ellas.<\/p>

\"Salón
Wikimedia Commons\/Anicet Charles Gabriel Lemonnier<\/a>. Salón de Madame Geoffrin<\/em><\/a> (<\/span>Dominio público<\/span>)<\/span><\/span><\/figcaption> <\/figure><\/div>" - } - ] - }, - { - "filename": "elementos_curriculares.html", - "pagename": "Elementos curriculares", - "level": 1, - "idevices": [ + ], + "educational": [ { - "id": "", - "type": "text", - "title": "", - "text": "Objetivos Enumerar los principios clásicos de la Ilustración y asimilar su influencia en el pensamiento político. Conocer a los principales pensadores ilustrados. Reconocer la importancia de la Enciclopedia como obra clave de la Ilustración. Contenidos El pensamiento ilustrado La Enciclopedia Sociedad y economía en el Siglo de las Luces Criterios de Evaluación Bloque 1. El siglo XVIII en Europa hasta 1789 Criterio 1 Conocer el alcance de la Ilustración como nuevo movimiento cultural y social en Europa y América. Estándares de Aprendizaje Bloque 1. El siglo XVIII en Europa hasta 1789. Estándar 1.1 Distingue conceptos históricos como \"Antiguo Régimen\" e \"Ilustración\". Estándar 3.1 Describe las características de la cultura de la Ilustración y qué implicaciones tiene en algunas monarquías. Competencias Competencias sociales y cívicas. CSC. Competencia para aprender a aprender. CAA. Competencia digital. CD. Competencia en comunicación lingüística. CCL. Los Criterios de Evaluación y Estándares de Aprendizaje, presentados en este recurso, se han seleccionado del Real Decreto 1105\/2014, de 26 de diciembre por el que se establece el currículo básico de la Educación Secundaria Obligatoria y del Bachillerato. ", - "html_code": "

Objetivos<\/h2>