From bf75f652ea30d02c4aeef36b650bf127fd589ebb Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Tue, 7 Dec 2021 14:36:19 +0000 Subject: [PATCH] wip #4945 @1 --- inc/ws/Metier/class.ws.book.parametres.php | 8 +++++++- inc/ws/Util/html5/master/class.ws.html5.compiler.php | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/inc/ws/Metier/class.ws.book.parametres.php b/inc/ws/Metier/class.ws.book.parametres.php index 8a2740488..45c0446a4 100644 --- a/inc/ws/Metier/class.ws.book.parametres.php +++ b/inc/ws/Metier/class.ws.book.parametres.php @@ -809,6 +809,11 @@ class wsBookParametres extends wsParametres 'fieldsnames' => array('disableDemo', 'redirectDemo')); + $this->fields['gamify_coins_pages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Attribuer des coins lors de la visite des pages')); + $this->forms['gamify'] = ['label' => __('Gamification'), + 'fieldsnames' => ['gamify_coins_pages']]; + + $this->fields['scorm_enable'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer SCORM'), 'grade' => 5); $this->fields['scorm_version'] = array('type' => 'combo', 'default' => '1.2', 'editable' => true, 'label' => __('Version du standard SCORM'), 'grade' => 5, 'datas' => array(__('SCORM 1.2') => '1.2', @@ -822,6 +827,7 @@ class wsBookParametres extends wsParametres $this->fields['scorm_score_min'] = array('type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 50, 'editable' => true, 'label' => __('Score minimal pour marquer le contenu comme réussi'), 'grade' => 5); $this->fields['scorm_quiz_as_questionnaire'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Traiter les quiz comme des questionnaires (toutes les réponses sont considérées comme correctes)'), 'grade' => 5); $this->fields['scorm_quizdata'] = array('type' => 'freefile', 'editable' => true, 'default' => '', 'label' => __('Données de quiz')); + $this->fields['scorm_complete_coins'] = ['type' => 'integer', 'default' => 0, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur accumule X coins', 'editable' => true]; $this->fields['scorm_complete_on_exit'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" à la fermeture de la fenêtre', 'editable' => true]; $this->fields['scorm_complete_on_last_page'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur atteint la dernière page', 'editable' => true]; $this->fields['scorm_force_attempts'] = ['type' => 'boolean', 'default' => false, 'label' => __('Forcer la création d\'un "attempt" à chaque ouverture'), 'editable' => true]; @@ -830,7 +836,7 @@ class wsBookParametres extends wsParametres $this->fields['scorm_commit_immediately'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Envoyer les données immédiatement au LMS") . ' (' . __('Peut provoquer des ralentissement sur certains LMS') . ')']; $this->forms['scorm'] = array('label' => __('SCORM'), - 'fieldsnames' => array('scorm_enable', 'scorm_version', 'scorm_id', 'scorm_org', 'scorm_title', 'scorm_variables', '|', 'scorm_complete_on_exit', 'scorm_complete_on_last_page', '|', 'scorm_pass_on_complete', 'scorm_score100_on_complete', '|', 'scorm_quizdata', 'scorm_score', 'scorm_score_min', 'scorm_quiz_as_questionnaire', '|', 'scorm_force_attempts', 'scorm_commit_immediately')); + 'fieldsnames' => array('scorm_enable', 'scorm_version', 'scorm_id', 'scorm_org', 'scorm_title', 'scorm_variables', '|', 'scorm_complete_on_exit', 'scorm_complete_on_last_page', 'scorm_complete_coins', '|', 'scorm_pass_on_complete', 'scorm_score100_on_complete', '|', 'scorm_quizdata', 'scorm_score', 'scorm_score_min', 'scorm_quiz_as_questionnaire', '|', 'scorm_force_attempts', 'scorm_commit_immediately')); $versions = wsUrl::getFluidbookVersions(false); $ignore = ['v1', 'v2', 'phonegap']; diff --git a/inc/ws/Util/html5/master/class.ws.html5.compiler.php b/inc/ws/Util/html5/master/class.ws.html5.compiler.php index 8e6b0e992..186040fa9 100644 --- a/inc/ws/Util/html5/master/class.ws.html5.compiler.php +++ b/inc/ws/Util/html5/master/class.ws.html5.compiler.php @@ -2242,6 +2242,16 @@ height="0" width="0" style="display:none;visibility:hidden"> return $a['page'] - $b['page']; }); + // Gamify + $p = $this->parseVariables($this->book->parametres->gamify_coins_pages); + foreach ($p as $range => $coins) { + $pages = cubeArray::parseRange($range); + foreach ($pages as $page) { + $dbc[$page] = (int)$coins; + } + } + $this->config->gamify_coins_pages = $dbc; + $this->config->content_lock = $this->content_lock; } -- 2.39.5