2017-10-18 4 views
1

Je tente de ramener l'état de la leçon de l'utilisateur, c'est-à-dire incomplet, complet, etc. Avec cette valeur, je vais masquer ou montrer l'activité de certificat selon que le fichier SCORM a été marqué comme complet ou non.Comment masquer/montrer l'activité dans moodle basé sur les résultats de l'achèvement de la scorm

function block_iomad_progress_monitorable_modules() { 
    global $DB; 
    $completedCheck = "SELECT id 
            FROM {scorm_scoes_track} 
            WHERE scormid = :eventid 
             AND userid = :userid 
             AND element = 'cmi.core.lesson_status' 
             AND {$DB->sql_compare_text('value')} = 'completed'" 



    if ($completedCheck == "completed") { 
    $link = html_writer::tag('a', $iomadcertificate->name, array('class' => 'dimmed', 
      'href' => $CFG->wwwroot . '/mod/iomadcertificate/view.php?id=' . $iomadcertificate->coursemodule));;  
    } else { 
     $link = html_writer::tag('a', $iomadcertificate->name, array('class' => 'dimmed', 
       'href' => $CFG->wwwroot . '/mod/iomadcertificate/view.php?id=' . $iomadcertificate->coursemodule)); 
    } 

C'est ce que j'ai réussi à trouver semblent à ce jour, mais il est toujours incorrect et je ne pas être aller nulle part. Je crois que c'est peut-être ma peau/mes spectacles. Quelqu'un peut-il pointer dans la bonne direction?

Répondre

0

S'il s'agit d'un code complet de votre fonction, il vous manque peu de choses. Tout d'abord, vous devez exécuter votre requête sur la base de données, car ce que vous faites maintenant dans si la condition compare la chaîne avec sql query à la chaîne différente "completed".

En supposant que vous le répariez. Je voudrais aborder de cette façon:

  • Modifier votre requête pour utiliser le nombre. (Ou utiliser la fonction Moodle DB- $> count_records_sql Moodle Docs Reference
  • Ensuite, si contrôle de condition que ce soit supérieur à zéro.

Vous pouvez le faire de plusieurs façons, mais sans logique supplémentaire écriture $ completedCheck == « terminé » ne fonctionnera pas.

0

Moodle a une fonction de base pour faire des activités interdépendantes les unes des autres.

La fonction est appelée « restreindre l'accès ».

Votre fonction requise est un accès restreint en référence à la fin de l'activité. Peut-être que l'accès restreint en ce qui concerne les notes fonctionnera également.

https://docs.moodle.org/33/en/Restrict_access_settings

Peut-être que vous n'avez pas besoin de votre propre développement?

Greetins