3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Moduli esterni, funzionalità sviluppate dagli utenti, patch, fix...
Post Reply
davide.desimone
FormaLms Expert
Posts: 100
Joined: Sun Mar 04, 2012 12:11 pm

3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone » Wed May 02, 2012 11:00 am

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 Expert
Posts: 100
Joined: Sun Mar 04, 2012 12:11 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone » Wed May 02, 2012 11:37 am

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 Expert
Posts: 140
Joined: Mon Mar 12, 2012 10:06 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by robykirk » Thu May 03, 2012 3:01 pm

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 Expert
Posts: 100
Joined: Sun Mar 04, 2012 12:11 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by davide.desimone » Thu May 03, 2012 11:26 pm

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 Expert
Posts: 140
Joined: Mon Mar 12, 2012 10:06 pm

Re: 3.6.0.3 Chiusura automatica iframe visualizzazione scorm

Post by robykirk » Sat May 05, 2012 10:43 pm

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

Ciao
Roby Kirk

Post Reply