function course_schema in Course 6
Same name and namespace in other branches
- 8.3 course.install \course_schema()
- 8.2 course.install \course_schema()
- 7.2 course.install \course_schema()
- 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;
}