Page 1 of 1

Data primo completamento oggetto scorm

Posted: Tue Jul 30, 2013 9:10 am
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

Re: Data primo completamento oggetto scorm

Posted: Tue Jul 30, 2013 10:04 am
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?

Re: Data primo completamento oggetto scorm

Posted: Tue Jul 30, 2013 10:17 am
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

Re: Data primo completamento oggetto scorm

Posted: Tue Jul 30, 2013 11:50 am
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
								)

Re: Data primo completamento oggetto scorm

Posted: Thu Aug 01, 2013 8:07 am
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??

Re: Data primo completamento oggetto scorm

Posted: Thu Aug 01, 2013 8:24 am
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.

Re: Data primo completamento oggetto scorm

Posted: Thu Aug 01, 2013 8:42 am
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

Re: Data primo completamento oggetto scorm

Posted: Thu Aug 01, 2013 10:58 am
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...

Re: Data primo completamento oggetto scorm

Posted: Mon Aug 05, 2013 6:51 am
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! :)