You are here

class CourseObjectQuizFulfillment in Course 7.2

Same name and namespace in other branches
  1. 7 modules/course_quiz/course_quiz.classes.inc \CourseObjectQuizFulfillment

Course fulfillment class for quizzes.

Hierarchy

Expanded class hierarchy of CourseObjectQuizFulfillment

1 string reference to 'CourseObjectQuizFulfillment'
course_quiz_course_handlers in modules/course_quiz/course_quiz.module
Implements hook_course_handlers().

File

modules/course_quiz/CourseObjectQuizFulfillment.php, line 6

View source
class CourseObjectQuizFulfillment extends CourseObjectNodeFulfillment {

  /**
   * Define storage for quiz result IDs.
   */
  function optionsDefinition() {
    return array(
      'quiz_result_ids' => array(),
    );
  }

  /**
   * Remove all quiz attempts associated with this fulfillment.
   */
  function delete() {
    parent::delete();
    $result_ids = (array) $this
      ->getOption('quiz_result_ids');
    if (course_quiz_quiz_version() >= 5) {
      entity_delete_multiple('quiz_result', $result_ids);
    }
    else {
      quiz_delete_results($result_ids);
    }
  }

  /**
   * Marks a user's fulfillment record for this object complete if the user
   * passed the quiz.
   */
  function grade($rid) {
    $result = quiz_result_load($rid);

    // Store the result ID.
    $result_ids = (array) $this
      ->getOption('quiz_result_ids');
    $result_ids[] = $rid;
    $this
      ->setOption('instance', $rid);
    $this
      ->setOption('quiz_result_ids', $result_ids);
    if ($result && $result->score >= $this
      ->getCourseObject()
      ->getOption('passing_grade')) {
      $this
        ->setGrade($result->score)
        ->setComplete()
        ->save();
    }
    else {
      $this
        ->setGrade($result->score)
        ->save();
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CourseHandler::addOptions final public function Merge an array of options onto the existing options.
CourseHandler::getAccessMessages public function Get an array of access messages.
CourseHandler::getDatabaseFields protected function Return an array of database fields. This determines what fields should be serialized instead of stored.
CourseHandler::getId function
CourseHandler::getOption public function Get an handler option's value.
CourseHandler::getOptions public function Get an object's configuration. 1
CourseHandler::getOptionsSummary public function Get the summary of an object's options. 1
CourseHandler::getWarnings public function Return a list of warning strings about this handler. 1
CourseHandler::optionsForm public function Handlers can declare a form. 1
CourseHandler::optionsMerge private function Merge arrays with replace, not append.
CourseHandler::optionsSubmit public function Save data somewhere. 1
CourseHandler::optionsValidate public function Validate? 1
CourseHandler::setAccessMessage public function Set an access message to be displayed along with the course object when it is in the outline. For example, "This activity will open on XYZ" or "Please complete Step 1 to take this activity."
CourseHandler::setOption public function Set an option for this handler. 1
CourseHandler::setOptions final public function Set this entire handler's options.
CourseHandler::__construct function Overrides Entity::__construct 1
CourseObjectFulfillment::getAccount function Get the user of this fulfillment.
CourseObjectFulfillment::getCourseObject function Get this fulfillment's course object.
CourseObjectFulfillment::getGrade function Get this fulfillment's grade.
CourseObjectFulfillment::getInstanceId function Get the instance ID. This could be the external component ID, a Node ID...
CourseObjectFulfillment::isComplete function Is this fulfillment complete?
CourseObjectFulfillment::save public function Track course after saving fulfillment. Overrides CourseHandler::save
CourseObjectFulfillment::setComplete function Set this fulfillment complete.
CourseObjectFulfillment::setGrade function Set this fulfillment's grade.
CourseObjectNodeFulfillment::grant function Grant access to course content before going to it. Overrides CourseObjectFulfillment::grant
CourseObjectNodeFulfillment::revoke function Revoke access to the external course object. Overrides CourseObjectFulfillment::revoke
CourseObjectQuizFulfillment::delete function Remove all quiz attempts associated with this fulfillment. Overrides CourseObjectNodeFulfillment::delete
CourseObjectQuizFulfillment::grade function Marks a user's fulfillment record for this object complete if the user passed the quiz.
CourseObjectQuizFulfillment::optionsDefinition function Define storage for quiz result IDs. Overrides CourseObjectFulfillment::optionsDefinition
Entity::$defaultLabel protected property 1
Entity::$entityInfo protected property
Entity::$entityType protected property
Entity::$idKey protected property
Entity::$wrapper protected property
Entity::buildContent public function Builds a structured array representing the entity's content. Overrides EntityInterface::buildContent 1
Entity::bundle public function Returns the bundle of the entity. Overrides EntityInterface::bundle
Entity::defaultLabel protected function Defines the entity label if the 'entity_class_label' callback is used. 1
Entity::defaultUri protected function Override this in order to implement a custom default URI and specify 'entity_class_uri' as 'uri callback' hook_entity_info().
Entity::entityInfo public function Returns the info of the type of the entity. Overrides EntityInterface::entityInfo
Entity::entityType public function Returns the type of the entity. Overrides EntityInterface::entityType
Entity::export public function Exports the entity. Overrides EntityInterface::export
Entity::getTranslation public function Gets the raw, translated value of a property or field. Overrides EntityInterface::getTranslation
Entity::hasStatus public function Checks if the entity has a certain exportable status. Overrides EntityInterface::hasStatus
Entity::identifier public function Returns the entity identifier, i.e. the entities name or numeric id. Overrides EntityInterface::identifier
Entity::internalIdentifier public function Returns the internal, numeric identifier. Overrides EntityInterface::internalIdentifier
Entity::isDefaultRevision public function Checks whether the entity is the default revision. Overrides EntityInterface::isDefaultRevision
Entity::label public function Returns the label of the entity. Overrides EntityInterface::label
Entity::setUp protected function Set up the object instance on construction or unserializiation.
Entity::uri public function Returns the uri of the entity just as entity_uri(). Overrides EntityInterface::uri
Entity::view public function Generate an array for rendering the entity. Overrides EntityInterface::view
Entity::wrapper public function Returns the EntityMetadataWrapper of the entity. Overrides EntityInterface::wrapper
Entity::__sleep public function Magic method to only serialize what's necessary.
Entity::__wakeup public function Magic method to invoke setUp() on unserialization.