Data primo completamento oggetto scorm

Funzionalità di frontend per utenti e amministratori dei corsi: navigazione generale, materiali didattici, test, registro valutazioni, ecc.
Post Reply
frizzo28
Newbie
Posts: 18
Joined: Wed Sep 26, 2012 6:00 pm

Data primo completamento oggetto scorm

Post by frizzo28 »

Salve a tutti
Vorrei sapere se c'e' un modo per sapere la data di completamento di oggetto scorm di un determinato utente .
Adesso andando il statistiche oggetti e selezionandone uno mi dice "concluso" o "non iniziato".
Io vorrei sapere la data in cui e' stato concluso l'oggetto scorm.
Ed in caso venisse ripetuto piu' volte l'oggetto dall'utente vorrei mantenere memoerizzata sempre la data di primo completamento.

E' possibile cio'?
Magari la data non viene visualizzata ma viene salvata da qualche parte nel DB?


Grazie
Un saluto al forum
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Data primo completamento oggetto scorm

Post by jasmines »

Ciao, nel DB c'è. A meno che non si tratti di un oggetto scorm legato ad una communication è facilmente visualizzabile. Dove vorresti che compaia?
frizzo28
Newbie
Posts: 18
Joined: Wed Sep 26, 2012 6:00 pm

Re: Data primo completamento oggetto scorm

Post by frizzo28 »

Vorrei farlo apparire in "statistiche per oggeti".
In pratica ora se vado in quel menu e poi seleziono un oggetto ho l'elenco degli utenti del corso ed a che punto sono con l'opggetto(finito,incorso,etc) vorrei aggiungere li una colonna con data completamento o qualcosa di simile.

Grazie
Saluti
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Data primo completamento oggetto scorm

Post by jasmines »

ok, andiamo a modificare il file /doceboLms/class.module/track.object.php

aggiungiamo alla fine del file, prima dell'ultima parentesi graffa chiusa:


Code: Select all

function getDateFirstCompleteFromId( $idReference, $idUser, $environment = false ) {
		
		$query = "SELECT first_complete "
				." FROM ".self::getEnvironmentTable($environment).""
				." WHERE (idReference = ".(int)$idReference.")"
				."   AND (idUser = '".(int)$idUser."')";
		$rs = sql_query( $query )
			or die( "Error in query=[ $query ] ". mysql_error() );
			
		if( mysql_num_rows( $rs ) == 0 )
			return false;
		else {
			list( $first_complete ) = sql_fetch_row( $rs );
			return $first_complete;
		}				
	}
ora apri il file /doceboLms/modules/stats/stats.php

Modificheremo la funzione statitem()

che inizia più o meno a riga 601.

Individua la seguente porzione di codice:

Code: Select all

$content_h 	= array(
			$lang->def('_USERNAME'),
			$lang->def('_STATS_FULLNAME'),
			$lang->def('_STATUS'),
			$lang->def('_PROGRESS')
			);
		$type_h 	= array('', '', 'image', 'image', '');
e modificala in:

Code: Select all

$content_h 	= array(
			$lang->def('_USERNAME'),
			$lang->def('_STATS_FULLNAME'),
			$lang->def('_STATUS'),
			$lang->def('_PROGRESS'),
			$lang->def('_DATE_COMPLETE'),
			);
		$type_h 	= array('', '', 'image', 'image', '','');
Infine trova questo pezzo (riga 778 circa):

Code: Select all

$status = Track_Object::getStatusFromId(
									$idItem,
									$idst );
					// NOTE: How to get stat_status for users?
					$stat_status = $cs->getUserStatusTr($user_course_info['status']);
					$tabStat->addBody(
						array( '<a href="index.php?modname=stats&op=statoneuseroneitem&idUser='.$idst.'&idItem='.$idItem.'" >'
									.$aclManager->relativeId($user_info[ACL_INFO_USERID]).'</a>',
								$user_info[ACL_INFO_LASTNAME].'&nbsp;'.$user_info[ACL_INFO_FIRSTNAME],
								$stat_status,
								printReport( $status, TRUE )
								)
e modificalo in:

Code: Select all

$status = Track_Object::getStatusFromId(
									$idItem,
									$idst );
$datecomplete = Track_Object::getDateFirstCompleteFromId(
									$idItem,
									$idst );
					// NOTE: How to get stat_status for users?
					$stat_status = $cs->getUserStatusTr($user_course_info['status']);
					$tabStat->addBody(
						array( '<a href="index.php?modname=stats&op=statoneuseroneitem&idUser='.$idst.'&idItem='.$idItem.'" >'
									.$aclManager->relativeId($user_info[ACL_INFO_USERID]).'</a>',
								$user_info[ACL_INFO_LASTNAME].'&nbsp;'.$user_info[ACL_INFO_FIRSTNAME],
								$stat_status,
								printReport( $status, TRUE ),
$datecomplete
								)
frizzo28
Newbie
Posts: 18
Joined: Wed Sep 26, 2012 6:00 pm

Re: Data primo completamento oggetto scorm

Post by frizzo28 »

Ok grazie mille.
Io mi aspettavo che mi indicassi semplicemente in quale tabella si trovava la data, invecie hai fatto tutto il lavoro per me :D

Grazie ancora
Davide

P.s. Non conosco molto bene gli oggetti scorm. Cos'e' una communication??
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Data primo completamento oggetto scorm

Post by jasmines »

Sicuramente si può fare in mille modi, ma ci sono divertita.
Per le communication, le trovi nel menu Admin / E-Learning. Si tratta di un’area informativa trasversale ai tutti i corsi, in
cui inserire comunicazioni testuali, documenti, oggetti SCORM e tenere traccia della lettura delle letture/stati da parte degli utenti.
Per poter consultare il tracciamento della lettura delle comunicazioni occorre consultare i report, anche se sto implementando il modulo lato user e admin per il monitoraggio.
frizzo28
Newbie
Posts: 18
Joined: Wed Sep 26, 2012 6:00 pm

Re: Data primo completamento oggetto scorm

Post by frizzo28 »

Ah ok quella funzione non credo sia utilizzata.

Comunque ho faccio un veloce test ed il codice non funziona mi spiego meglio.
Nel Db la colonna firt complete dell'oggetto scorm e' vuota anche quando l'oggetto viene completato da un utente.
Qui puoi vedere il contenuto della riga del db http://imageshack.us/photo/my-images/703/qdw9.jpg/

Grazie
Saluti
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Data primo completamento oggetto scorm

Post by jasmines »

Il codice funziona.
Il problema è che non viene settata la data first_complete (e last_complete).
Questo potrebbe dipendere dall'oggetto scorm... I miei oggetti la settano regolarmente, per esempio...
User avatar
alberto
FormaLms Guru
Posts: 1140
Joined: Fri Mar 02, 2012 9:18 am
Contact:

Re: Data primo completamento oggetto scorm

Post by alberto »

jasmines wrote:Il codice funziona.
Il problema è che non viene settata la data first_complete (e last_complete).
Questo potrebbe dipendere dall'oggetto scorm... I miei oggetti la settano regolarmente, per esempio...
Ciao Jasmines, grazie mille per questo contributo! :)
Post Reply