You are here

function course_schema in Course 6

Same name and namespace in other branches
  1. 8.3 course.install \course_schema()
  2. 8.2 course.install \course_schema()
  3. 7.2 course.install \course_schema()
  4. 7 course.install \course_schema()

Implements hook_schema().

3 calls to course_schema()
course_token_list in ./course.module
Implements hook_token_list().
course_update_6133 in ./course.install
Change schema, so all literal date fields can be NULL with no default.
course_views_data in views/course.views.inc
Implements hook_views_data().

File

./course.install, line 52
course.install Install and update functions for Courses.

Code

function course_schema() {
  $schema = array();
  $schema['course_report'] = array(
    'description' => "Stores users' course reports.",
    'fields' => array(
      'crid' => array(
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'description' => 'Course report record ID.',
      ),
      'nid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Drupal course node.',
      ),
      'uid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Drupal user ID.',
      ),
      'date_completed' => array(
        'type' => 'int',
        'not null' => FALSE,
        'unsigned' => TRUE,
        'default' => NULL,
        'description' => 'Date completed.',
      ),
      'updated' => array(
        'type' => 'int',
        'not null' => FALSE,
        'unsigned' => TRUE,
        'default' => NULL,
        'description' => 'Date this record was updated.',
      ),
      'grade_result' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Course grade received.',
      ),
      'section' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "Key of current section.",
      ),
      'section_name' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "Name of current section.",
      ),
      'complete' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Flag to mark this course as complete.',
      ),
      'data' => array(
        'serialize' => TRUE,
        'type' => 'text',
        'description' => "Serialized snapshot data.",
        'size' => 'medium',
      ),
    ),
    'primary key' => array(
      'crid',
    ),
    'unique keys' => array(
      'uk' => array(
        'nid',
        'uid',
      ),
    ),
    'indexes' => array(
      'nid' => array(
        'nid',
      ),
      'uid' => array(
        'uid',
      ),
    ),
  );
  $schema['course_enrolment'] = array(
    'description' => 'Stores enrolment records.',
    'fields' => array(
      'eid' => array(
        'description' => 'Primary Key: The eid of the enrolment.',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'nid' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The nid of the course node',
      ),
      'uid' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The uid of the user',
      ),
      'enrollmenttype' => array(
        'type' => 'varchar',
        'length' => '128',
        'not null' => FALSE,
        'default' => '',
        'description' => 'The type of enrollment, if applicable',
      ),
      'status' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The enrolment status.',
      ),
      'created' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The time this enrolment was created.',
      ),
      'timestamp' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The time the user started the course.',
      ),
      'enrol_end' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Date enrolment ends.',
      ),
      'code' => array(
        'type' => 'varchar',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
        'description' => 'The access code used to enroll.',
      ),
      'user_type' => array(
        'type' => 'varchar',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
        'description' => 'The user type while in the context of this enrollment.',
      ),
    ),
    'primary key' => array(
      'eid',
    ),
    'unique keys' => array(
      'nid_uid' => array(
        'nid',
        'uid',
      ),
    ),
    'indexes' => array(
      'nid' => array(
        'nid',
      ),
      'uid' => array(
        'uid',
      ),
    ),
  );
  $schema['course_node'] = array(
    'description' => 'Stores course node settings.',
    'fields' => array(
      'nid' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'description' => 'Course node ID.',
      ),
      'outline' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => 'Course outline display handler.',
      ),
      'credits' => array(
        'type' => 'float',
        'description' => 'Course credit.',
        'precision' => 6,
        'scale' => 2,
      ),
      'open' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'description' => 'Date course opens.',
      ),
      'close' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'description' => 'Date course closes.',
      ),
      'duration' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Amount of time a user has to access this course.',
      ),
      'external_id' => array(
        'type' => 'varchar',
        'length' => 128,
        'not null' => FALSE,
        'default' => NULL,
        'description' => 'External ID of the course.',
      ),
    ),
    'primary key' => array(
      'nid',
    ),
  );
  $schema['course_outline'] = array(
    'description' => "Stores users' course reports",
    'fields' => array(
      'coid' => array(
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'description' => 'Unique identifier for the course object record.',
      ),
      'nid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'nid.',
      ),
      'module' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "The implementing module name (course_quiz etc)",
      ),
      'title' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "The item title",
      ),
      'object_type' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "The course object key as defined by hook_course_handlers()",
      ),
      'enabled' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'is this item enabled?',
      ),
      'info' => array(
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => "The item info",
      ),
      'instance' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'The item instance',
      ),
      'required' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'is this item required?',
      ),
      'weight' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => FALSE,
        'default' => 0,
        'description' => 'Order in course outline.',
      ),
      'hidden' => array(
        'type' => 'int',
        'size' => 'tiny',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Visibility in course utline',
      ),
      'duration' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Amount of time in seconds a user has to access this object.',
      ),
      'uuid' => array(
        'type' => 'char',
        'length' => 36,
        'not null' => TRUE,
        'default' => '',
        'description' => 'The Universally Unique Identifier.',
      ),
      'data' => array(
        'description' => 'Serialized data',
        'type' => 'text',
        'serialize' => TRUE,
      ),
    ),
    'primary key' => array(
      'coid',
    ),
    'indexes' => array(
      'nid' => array(
        'nid',
      ),
    ),
    'unique keys' => array(
      'uuid' => array(
        'uuid',
      ),
    ),
  );
  $schema['course_outline_fulfillment'] = array(
    'description' => "Stores users' course reports",
    'fields' => array(
      'cofid' => array(
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'description' => 'Unique identifier for the course object fufillment record.',
      ),
      'coid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Identifier for the course object.',
      ),
      'uid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'uid of {user}.',
      ),
      'complete' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
        'description' => 'Is this item complete?',
      ),
      'grade_result' => array(
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => FALSE,
        'default' => 0,
        'description' => 'grade_result',
      ),
      'date_started' => array(
        'type' => 'int',
        'not null' => FALSE,
        'unsigned' => TRUE,
        'default' => NULL,
        'description' => 'Date object was started.',
      ),
      'date_completed' => array(
        'type' => 'int',
        'not null' => FALSE,
        'unsigned' => TRUE,
        'default' => NULL,
        'description' => 'Date object was completed.',
      ),
      'info' => array(
        'type' => 'text',
        'serialize' => TRUE,
        'description' => "Description of fulfillment event",
      ),
      'uuid' => array(
        'type' => 'char',
        'length' => 36,
        'not null' => TRUE,
        'default' => '',
        'description' => 'The Universally Unique Identifier.',
      ),
    ),
    'primary key' => array(
      'cofid',
    ),
    'unique keys' => array(
      'coid_uid' => array(
        'coid',
        'uid',
      ),
      'uuid' => array(
        'uuid',
      ),
    ),
    'indexes' => array(
      'coid' => array(
        'coid',
      ),
    ),
  );
  return $schema;
}