Uploaded image for project: 'Plugins'
  1. Plugins
  2. CONTRIB-9400

millionnaire (and maybe other) problem using question subcategories

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 4.1.6
    • Module: Game
    • None
    • MOODLE_401_STABLE

      using question categories with subcategories as sources lead to buggy query construction.

      Following patch fix it...at least for millionnaire

       

       

      diff --git a/locallib.php b/locallib.php
      index 595bbd3026d5396f93378a5c29850560ea55adca..89d9d7f046a80d8bddab307888d443b91505627a 100644
      --- a/locallib.php
      +++ b/locallib.php
      @@ -544,14 +544,16 @@ function game_questions_selectrandom( $game, $count=1) {
                   // Include subcategories.
                   if (game_get_moodle_version() >= '04.00') {
                       $table .= ",{$CFG->prefix}question_bank_entries qbe,{$CFG->prefix}question_versions qv ";
      -                $select = 'qbe.id=qv.questionbankentryid AND q.id=qv.questionid '.
      -                    ' AND qbe.questioncategoryid='.$game->questioncategoryid;
      +                $select = 'qbe.id=qv.questionbankentryid AND q.id=qv.questionid ';
                       if ($game->subcategories) {
                           $cats = question_categorylist( $game->questioncategoryid);
                           if (count( $cats) > 0) {
      -                        $select = 'qbe.questioncategoryid in ('.implode( ',', $cats).')';
      +                        $select .= 'AND qbe.questioncategoryid in ('.implode( ',', $cats).')';
                           }
                       }
      +                else {
      +                    $select .=' AND qbe.questioncategoryid='.$game->questioncategoryid;
      +                }
                   } else {
                       $select = 'category='.$game->questioncategoryid;
                       if ($game->subcategories) {
      diff --git a/millionaire/play.php b/millionaire/play.php
      index c7befff128f77b4f811de65971c26c615e423cd6..41598fcde88767cd902eb5f2708d07629caa1eef 100644
      --- a/millionaire/play.php
      +++ b/millionaire/play.php
      @@ -348,13 +348,16 @@ function game_millionaire_selectquestion( &$aanswer, $game, $attempt, &$milliona
               $select2 = '';
               if (game_get_moodle_version() >= '04.00') {
                   $table .= ",{$CFG->prefix}question_bank_entries qbe,{$CFG->prefix}question_versions qv ";
      -            $select2 = 'qbe.id=qv.questionbankentryid AND q.id=qv.questionid AND qbe.questioncategoryid='.$game->questioncategoryid;
      +            $select2 = 'qbe.id=qv.questionbankentryid AND q.id=qv.questionid';
                   if ($game->subcategories) {
                       $cats = question_categorylist( $game->questioncategoryid);
                       if (count( $cats) > 0) {
      -                    $select2 = ' qbe.questioncategoryid in ('.implode( ',', $cats).')';
      +                    $select2 .= ' AND qbe.questioncategoryid in ('.implode( ',', $cats).')';
                       }
                   }
      +            else {
      +                $select2 .= ' AND qbe.questioncategoryid='.$game->questioncategoryid;
      +            }
               } else {
                   $select2 = 'category='.$game->questioncategoryid;
                   if ($game->subcategories) {

       

            bdaloukas Vasilis Daloukas
            ak4t0sh Arnaud Trouvé
            Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.