3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Plugins, funzionalità sviluppate dagli utenti, patch, fix...
Post Reply
davide.desimone
FormaLms User
Posts: 108
Joined: Sun Mar 04, 2012 12:11 pm

3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone »

non riesco a far chiudere in modo automatico il frame di visualizzazione di un contenuto scorm alla fine di un modulo (alla chiusura del popup o premendo il tasto uscita nel modulo scorm).
il corso è generato con articulate presenter, alla chiusura del popup la pagina con il bottone "launch" si scarica ma l'iframe rimane aperto.
qualcuno sa darmi una soluzione?
davide.desimone
FormaLms User
Posts: 108
Joined: Sun Mar 04, 2012 12:11 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone »

come non detto, ho appena trovato la soluzione:

file /doceboLms/modules/scorm/player.js:
sostituire questa funzione:

Code: Select all

ScormPlayer.prototype.blankPageLoaded = function() {
	/*if(window.close_player) {
		var url = window.top.location.href;
		url = url.slice(0, url.lastIndexOf("/"));
		window.top.location.href = url + "/" + playerConfig.backurl;
	} else {
		this.playNext();
	}*/
	
	//if we are in a single sco environment we can close the player
	if(window.close_player) {
		window.top.onbeforeunload = null;
		/*var url = window.top.location.href;
		url = url.slice(0, url.lastIndexOf("/"));
		window.top.location.href = url + "/" + playerConfig.backurl;*/
		window.top.location.href = playerConfig.lms_base_url + "" + playerConfig.backurl;
	} else {
		this.playNext();
	}
}
aggiungere questa funzione:

Code: Select all

ScormPlayer.prototype.singleSco = function() {

	var item = this.xmlTree.selectNodes('//item[@resource!=""]');
	if(item.length == 1) return true
	else return false
}
file /doceboLms/modules/scorm/StdPlayer.js:
sostituire:

Code: Select all

StdUIPlayer.prototype.scormPlayerActionPerformer = function( evType, evValue) {
	switch( evType ) {
		case 'Initialize':
			if( playerConfig.autoplay == '1' ) {
				// set next scoid
				var currScoId = this.scormPlayer.getCurrScoId();
				var nextScoid = this.scormPlayer.getNextScoId(currScoId);
				this.scormPlayer.setNextToPlay(nextScoid, this.cntSco);
			} 
		break;
		case 'Finish':
			StdUIPlayer.refresh();
			if(this.scormPlayer.singleSco()) window.close_player = true;
			this.scormPlayer.play(null, this.cntSco);
		break;
		case 'BeforeScoLoad':
			var elem = this.cntTree.ownerDocument.getElementById(evValue);
			
			if(elem.className.indexOf('RunningSco') == -1) { elem.className += ' RunningSco' };
		break;
	}
}
User avatar
robykirk
FormaLms User
Posts: 140
Joined: Mon Mar 12, 2012 10:06 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by robykirk »

Ciao Davide,

scusa ma credo di non aver capito bene il problema che avevi... vorrei anche comprendere se è relativo alla sola versione 3.6.0.3 o anche alla 4.0.5.
Comunque sia, grazie per il fix.

Ciao
Roby Kirk
davide.desimone
FormaLms User
Posts: 108
Joined: Sun Mar 04, 2012 12:11 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone »

No è solo per la 3.6.x, aprendo un modulo scorm si apre un lightbox con il modulo, nel mio caso veniva lanciato un popup, alla chiusura del popup la pagina del veniva scaricata ma il lightbox rimaneva aperto. Con la modifica Il lightbox si chiude. Non so se adesso è piu chiaro.

Nella 4.0.5 la pach è già integrata.
User avatar
robykirk
FormaLms User
Posts: 140
Joined: Mon Mar 12, 2012 10:06 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by robykirk »

Ti ringrazio, non capivo il problema in quanto non ho testato versioni differenti dalla 4.0.5.

Ciao
Roby Kirk
Post Reply