当前位置: 首页>>代码示例>>PHP>>正文


PHP question_usage_by_activity::add_question方法代码示例

本文整理汇总了PHP中question_usage_by_activity::add_question方法的典型用法代码示例。如果您正苦于以下问题:PHP question_usage_by_activity::add_question方法的具体用法?PHP question_usage_by_activity::add_question怎么用?PHP question_usage_by_activity::add_question使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在question_usage_by_activity的用法示例。


在下文中一共展示了question_usage_by_activity::add_question方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: test_question

 /**
  * Run this test against a particular question.
  * @param question_usage_by_activity $quba the useage to use when running the test.
  * @param qtype_stack_question $question the question to test.
  * @param int $seed the random seed to use.
  * @return stack_question_test_result the test results.
  */
 public function test_question(question_usage_by_activity $quba, qtype_stack_question $question, $seed)
 {
     $slot = $quba->add_question($question, $question->defaultmark);
     $quba->start_question($slot, $seed);
     $response = self::compute_response($question, $this->inputs);
     $quba->process_action($slot, $response);
     $results = new stack_question_test_result($this);
     foreach ($this->inputs as $inputname => $notused) {
         $inputstate = $question->get_input_state($inputname, $response);
         // The _val below is a hack.  Not all inputnames exist explicitly in
         // the response, but the _val does. Some inputs, e.g. matrices have
         // many entries in the response so none match $response[$inputname].
         if (array_key_exists($inputname, $response)) {
             $inputresponse = $response[$inputname];
         } else {
             $inputresponse = $response[$inputname . '_val'];
         }
         $results->set_input_state($inputname, $inputresponse, $inputstate->contentsdisplayed, $inputstate->status, $inputstate->errors);
     }
     foreach ($this->expectedresults as $prtname => $expectedresult) {
         $result = $question->get_prt_result($prtname, $response, false);
         $results->set_prt_result($prtname, $result);
     }
     return $results;
 }
开发者ID:sowirepo,项目名称:moodle-qtype_stack,代码行数:32,代码来源:questiontest.php

示例2: start_attempt_at_question

 protected function start_attempt_at_question($question, $preferredbehaviour, $maxmark = null, $variant = 1)
 {
     $this->quba->set_preferred_behaviour($preferredbehaviour);
     $this->slot = $this->quba->add_question($question, $maxmark);
     $this->quba->start_question($this->slot, $variant);
 }
开发者ID:gabrielrosset,项目名称:moodle,代码行数:6,代码来源:helpers.php

示例3: quiz_start_attempt_built_on_last

/**
 * Start a subsequent new attempt, in each attempt builds on last mode.
 *
 * @param question_usage_by_activity    $quba         this question usage
 * @param object                        $attempt      this attempt
 * @param object                        $lastattempt  last attempt
 * @return object                       modified attempt object
 *
 */
function quiz_start_attempt_built_on_last($quba, $attempt, $lastattempt) {
    $oldquba = question_engine::load_questions_usage_by_activity($lastattempt->uniqueid);

    $oldnumberstonew = array();
    foreach ($oldquba->get_attempt_iterator() as $oldslot => $oldqa) {
        $newslot = $quba->add_question($oldqa->get_question(), $oldqa->get_max_mark());

        $quba->start_question_based_on($newslot, $oldqa);

        $oldnumberstonew[$oldslot] = $newslot;
    }

    // Update attempt layout.
    $newlayout = array();
    foreach (explode(',', $lastattempt->layout) as $oldslot) {
        if ($oldslot != 0) {
            $newlayout[] = $oldnumberstonew[$oldslot];
        } else {
            $newlayout[] = 0;
        }
    }
    $attempt->layout = implode(',', $newlayout);
    return $attempt;
}
开发者ID:rwijaya,项目名称:moodle,代码行数:33,代码来源:locallib.php

示例4: add_questions_to_quba

 /**
  * add the questions to the question usage
  * This is called by the question_attmept class on construct of a new attempt
  *
  * @param \question_usage_by_activity $quba
  *
  * @return array
  */
 public function add_questions_to_quba(\question_usage_by_activity $quba)
 {
     // we need the questionids of our questions
     $questionids = array();
     foreach ($this->qbankOrderedQuestions as $qbankquestion) {
         /** @var activequiz_question $qbankquestion */
         if (!in_array($qbankquestion->getQuestion()->id, $questionids)) {
             $questionids[] = $qbankquestion->getQuestion()->id;
         }
     }
     $questions = question_load_questions($questionids);
     // loop through the ordered question bank questions and add them to the quba
     // object
     $attemptlayout = array();
     foreach ($this->qbankOrderedQuestions as $qbankquestion) {
         $questionid = $qbankquestion->getQuestion()->id;
         $q = \question_bank::make_question($questions[$questionid]);
         $attemptlayout[$qbankquestion->getId()] = $quba->add_question($q, $qbankquestion->getPoints());
     }
     // start the questions in the quba
     $quba->start_all_questions();
     /**
      * return the attempt layout which is a set of ids that are the slot ids from the question engine usage by activity instance
      * these are what are used during an actual attempt rather than the questionid themselves, since the question engine will handle
      * the translation
      */
     return $attemptlayout;
 }
开发者ID:agarnav,项目名称:moodle-mod_activequiz,代码行数:36,代码来源:questionmanager.php


注:本文中的question_usage_by_activity::add_question方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。