{"id":3142,"date":"2016-01-10T22:15:45","date_gmt":"2016-01-10T20:15:45","guid":{"rendered":"http:\/\/reddescartes.org\/documentacion\/?p=3142"},"modified":"2021-08-06T17:25:57","modified_gmt":"2021-08-06T16:25:57","slug":"comunicacion-con-javascript-desde-una-escena-descartes-a-la-api-de-una-plataforma-educativa-via-paquete-scorm","status":"publish","type":"post","link":"https:\/\/reddescartes.org\/documentacion\/comunicacion-con-javascript-desde-una-escena-descartes-a-la-api-de-una-plataforma-educativa-via-paquete-scorm\/","title":{"rendered":"Comunicaci\u00f3n con JavaScript desde una escena Descartes a la API de una plataforma educativa v\u00eda paquete Scorm"},"content":{"rendered":"<p style=\"text-align: justify;\">Elena \u00c1lvarez nos ense\u00f1aba en un post <a href=\"https:\/\/proyectodescartes.org\/descartescms\/blog\/itemlist\/user\/991-elenaalvarezsaiz\">(elaboraci\u00f3n Scorm con Reload)<\/a> el modo de usar las funciones de comunicaci\u00f3n de Descartes que, mediante la inclusi\u00f3n de un iFrame (v\u00e9ase&nbsp;<a href=\"https:\/\/reddescartes.org\/documentacion\/?cat=103&amp;paged=4\">este art\u00edculo)<\/a> en una escena de descartes, nos permit\u00eda elaborar un paquete Scorm funcional y capaz de pasar par\u00e1metros (la nota, por ejemplo) a una plataforma educativa (por ejemplo Moodle).<\/p>\n<p style=\"text-align: justify;\">En un anterior post m\u00edo indicaba el modo de comunicar mediante instrucciones de JavaScript una escena de descartes con una p\u00e1gina web totalmente independiente. En el ejemplo que expon\u00eda pas\u00e1bamos 6 par\u00e1metros a una p\u00e1gina independiente o, incluso, pod\u00edamos pasar par\u00e1metros a Google Maps con JavaScript. V\u00e9ase <a href=\"https:\/\/reddescartes.org\/documentacion\/?p=3073\">post explicativo<\/a><\/p>\n<p style=\"text-align: justify;\">Tenemos otro modo de comunicar una escena de Descartes-JS con la API de la plataforma educativa (Mooddle, por ejemplo) usando directamente JavaScript.&nbsp; He realizado un paquete scorm con una actividad (con test) desde un punto de vista diferente al realizado por la compa\u00f1era Elena \u00c1lvarez.<\/p>\n<p style=\"text-align: justify;\">En este caso, la escena de descartes (descartes.html) es la que est\u00e1 embebida (como un iframe) en la p\u00e1gina padre (index.html) y se env\u00eda la informaci\u00f3n a trav\u00e9s de dos botones incluidos en la escena de Descartes (<a href=\"https:\/\/reddescartes.org\/documentacion\/?p=3073\" target=\"wrLfUNeRBUxWkquD1HB0p7A\" rel=\"noopener noreferrer\">comunicaci\u00f3n entre una escena descartes y una p\u00e1gina web<\/a>) que en este caso se denominan \u00abvalidar nota\u00bb y \u00abfinalizar\u00bb.<\/p>\n<p style=\"text-align: justify;\">En este caso, no necesitamos ning\u00fan fichero.js ni librer\u00eda adicional ya que los scripts necesarios para la comunicaci\u00f3n con el API de la plataforma educativa se encuentran en la p\u00e1gina index.html, en la que podemos a\u00f1adir otras funcionalidades.<\/p>\n<p style=\"text-align: justify;\">Por otra parte, podemos enviar otro tipo de informaci\u00f3n adicional (bien desde la propia escena.html descartes, o bien desde la p\u00e1gina index.html, seg\u00fan convenga) como el tiempo que dur\u00f3 la realizaci\u00f3n del test o la visualizaci\u00f3n de la escena, n\u00famero de tentativas realizadas&#8230;<\/p>\n<p style=\"text-align: justify;\">En la escena debemos incluir una variable llamada nota4&nbsp; y otra llamada Score (el nombre de estas variables, l\u00f3gicamente, los podemos cambiar) que ser\u00e1 el resultado del c\u00e1lculo de la nota final de la escena en un algoritmo de descartes:<\/p>\n<p><strong><span style=\"color: #ff0000;\">nota4=&#8217;getElementById(cogenota).value = Score&#8217;<\/span><\/strong><\/p>\n<div style=\"width: 656px\" class=\"wp-caption alignnone\"><img class=\"\" src=\"https:\/\/i.imgur.com\/c5m9LWq.png\" alt=\"\" width=\"646\" height=\"337\"><p class=\"wp-caption-text\">Aspecto del algoritmo<\/p><\/div>\n<p style=\"text-align: justify;\">Lo que hace el algoritmo es depositar el resultado (Score) en el elemento de la p\u00e1gina index.html identificado como \u00abcogenota\u00bb (que est\u00e1 oculto).<\/p>\n<p style=\"text-align: justify;\">Si descomprimimos el paquete scorm que adjunto, podemos simplificar mucho su elaboraci\u00f3n, ya que simplemente deber\u00edamos sustituir la p\u00e1gina escena.html por otra con el mismo nombre adicionando estos dos botones:<br \/>\n<strong><span style=\"color: #ff0000;\">id=&#8217;n37&#8242; tipo=&#8217;num\u00e9rico&#8217; interfaz=&#8217;bot\u00f3n&#8217; regi\u00f3n=&#8217;interior&#8217; espacio=&#8217;E5&#8242; nombre=&#8217;Validar respuestas&#8217; expresi\u00f3n='(160,150,140,30)&#8217; fijo=&#8217;s\u00ed&#8217; visible=&#8217;s\u00ed&#8217; color=&#8217;blanco&#8217; color-int=&#8217;rojo&#8217; negrita=&#8217;s\u00ed&#8217; subrayada=&#8217;s\u00ed&#8217; fuente puntos=&#8217;14&#8217; acci\u00f3n=&#8217;abrir URL&#8217; par\u00e1metro=&#8217;javascript:void(parent.document.getElementById(&amp;squot;cogenota&amp;squot;).innerHTML=[Score]);&#8217;<\/span><\/strong><\/p>\n<div style=\"width: 760px\" class=\"wp-caption alignnone\"><img class=\"\" src=\"https:\/\/i.imgur.com\/2BiThfX.png\" alt=\"\" width=\"750\" height=\"306\"><p class=\"wp-caption-text\">Bot\u00f3n \u00abValidar respuestas\u00bb. El c\u00f3digo se inserta en \u00abAbrir URL\u00bb de la escena de Descartes<\/p><\/div>\n<p>La funci\u00f3n <em>parent.document.getElementById(\u00abcogenota\u00bb).innerHTML=[Score] <\/em>toma la nota de la p\u00e1gina index.html.<\/p>\n<p>y<\/p>\n<p style=\"text-align: justify;\"><strong><span style=\"color: #ff0000;\">id=&#8217;n47&#8242; tipo=&#8217;num\u00e9rico&#8217; interfaz=&#8217;bot\u00f3n&#8217; regi\u00f3n=&#8217;interior&#8217; espacio=&#8217;E5&#8242; nombre=&#8217;Finalizar&#8217; expresi\u00f3n='(300,150,80,30)&#8217; fijo=&#8217;s\u00ed&#8217; visible=&#8217;s\u00ed&#8217; color=&#8217;blanco&#8217; color-int=&#8217;azul&#8217; negrita=&#8217;s\u00ed&#8217; subrayada=&#8217;s\u00ed&#8217; fuente puntos=&#8217;14&#8217; acci\u00f3n=&#8217;abrir URL&#8217; par\u00e1metro=&#8217;javascript:void(window.parent.SetScormScore());&#8217; pos_mensajes=&#8217;centro&#8217;<\/span><\/strong><\/p>\n<div style=\"width: 470px\" class=\"wp-caption alignnone\"><img class=\"\" src=\"https:\/\/i.imgur.com\/87kuiaY.png\" alt=\"\" width=\"460\" height=\"300\"><p class=\"wp-caption-text\">Bot\u00f3n \u00abFinalizar\u00bb. El c\u00f3digo lo colocamos en \u00abAbrir URL\u00bb de Descartes<\/p><\/div>\n<p style=\"text-align: justify;\">La funci\u00f3n <em>window.parent.SetScormScore(),&nbsp; <\/em>env\u00eda la nota al core de Moodle (por ejemplo) .<br \/>\nPara finalizar, metemos la escena.html en el scorm (arrastrar y soltar) y, si es necesario, modificamos las dimensiones del iframe en index.html para que se adapte a las dimensiones de la simulaci\u00f3n.<br \/>\nLa escena.html se puede abrir perfectamente en el editor de Descartes (la he abierto muchas veces y no se perdi\u00f3 informaci\u00f3n).<br \/>\nAdjunto el scorm para que se pruebe (lo pod\u00e9is descomprimir y cambiar la escena), se hicieron pruebas en Moodle 2.6++ y 3.0.1 y funcion\u00f3 bien.<\/p>\n<p>Pod\u00e9is bajar el Scorm en: <a href=\"https:\/\/www.reddescartes.org\/repositorio\/pasovariableswebindep-JS\/scorm_descartes.zip\">Bajada del scorm<\/a><br \/>\nTambi\u00e9n pod\u00e9is a\u00f1adir el paquete scorm como \u00abpaquete bajado\u00bb &nbsp;en las definiciones de Moodle desde la direcci\u00f3n anterior en:<\/p>\n<p><a href=\"https:\/\/www.reddescartes.org\/repositorio\/pasovariableswebindep-JS\/scorm_descartes.zip\">https:\/\/www.reddescartes.org\/repositorio\/pasovariableswebindep-JS\/scorm_descartes.zip<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Elena \u00c1lvarez nos ense\u00f1aba en un post (elaboraci\u00f3n Scorm con Reload) el modo de usar las funciones de comunicaci\u00f3n de Descartes que, mediante la inclusi\u00f3n de un iFrame (v\u00e9ase&nbsp;este art\u00edculo) en una escena de descartes, nos permit\u00eda elaborar un paquete Scorm funcional y capaz de pasar par\u00e1metros (la nota, por ejemplo) a una plataforma educativa (por ejemplo Moodle). En un anterior post m\u00edo indicaba el modo de comunicar mediante instrucciones de JavaScript una escena de descartes con una p\u00e1gina web totalmente independiente. En el ejemplo que expon\u00eda pas\u00e1bamos 6 par\u00e1metros a una p\u00e1gina independiente o, incluso, pod\u00edamos pasar par\u00e1metros a<\/p>\n<a class=\"more-link\" rel=\"nofollow\" href=\"https:\/\/reddescartes.org\/documentacion\/comunicacion-con-javascript-desde-una-escena-descartes-a-la-api-de-una-plataforma-educativa-via-paquete-scorm\/\">[Leer m\u00e1s...]<\/a>","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,23,103,32],"tags":[116,118,92,117],"_links":{"self":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/3142"}],"collection":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/comments?post=3142"}],"version-history":[{"count":9,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/3142\/revisions"}],"predecessor-version":[{"id":3357,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/3142\/revisions\/3357"}],"wp:attachment":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/media?parent=3142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/categories?post=3142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/tags?post=3142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}