]> _ Git - cubeextranet.git/commitdiff
wip #4945 @1
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 7 Dec 2021 14:36:19 +0000 (14:36 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 7 Dec 2021 14:36:19 +0000 (14:36 +0000)
inc/ws/Metier/class.ws.book.parametres.php
inc/ws/Util/html5/master/class.ws.html5.compiler.php

index 8a2740488d8c9e457f9675320235a2db81cc123b..45c0446a46ccaa170f6bec905043089c70d77d40 100644 (file)
@@ -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'];
index 8e6b0e9922242fa9238b0c1e463b24691ff0e41b..186040fa905b5bc3af4bdfa45c4a1ae834e0c826 100644 (file)
@@ -2242,6 +2242,16 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
             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;
     }