mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Splitted scoes optional data in a new table
This commit is contained in:
parent
9c03bbaa04
commit
b3659259fd
19 changed files with 633 additions and 378 deletions
|
@ -63,7 +63,6 @@ $mod_scorm_capabilities = array(
|
|||
'teacher' => CAP_ALLOW,
|
||||
'editingteacher' => CAP_ALLOW,
|
||||
'coursecreator' => CAP_ALLOW,
|
||||
'admin' => CAP_ALLOW
|
||||
)
|
||||
),
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<XMLDB PATH="mod/scorm/db" VERSION="20060926" COMMENT="XMLDB file for Moodle mod/scorm"
|
||||
<XMLDB PATH="mod/scorm/db" VERSION="20061121" COMMENT="XMLDB file for Moodle mod/scorm"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
|
||||
>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<INDEX NAME="course" UNIQUE="false" FIELDS="course"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
<TABLE NAME="scorm_scoes" COMMENT="each SCO part of the SCORM module" PREVIOUS="scorm" NEXT="scorm_scoes_track">
|
||||
<TABLE NAME="scorm_scoes" COMMENT="each SCO part of the SCORM module" PREVIOUS="scorm" NEXT="scorm_scoes_data">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="scorm"/>
|
||||
<FIELD NAME="scorm" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="manifest"/>
|
||||
|
@ -42,24 +42,30 @@
|
|||
<FIELD NAME="organization" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="manifest" NEXT="parent"/>
|
||||
<FIELD NAME="parent" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="organization" NEXT="identifier"/>
|
||||
<FIELD NAME="identifier" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="parent" NEXT="launch"/>
|
||||
<FIELD NAME="launch" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="identifier" NEXT="parameters"/>
|
||||
<FIELD NAME="parameters" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="launch" NEXT="scormtype"/>
|
||||
<FIELD NAME="scormtype" TYPE="char" LENGTH="5" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="parameters" NEXT="title"/>
|
||||
<FIELD NAME="title" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="scormtype" NEXT="prerequisites"/>
|
||||
<FIELD NAME="prerequisites" TYPE="char" LENGTH="200" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="title" NEXT="maxtimeallowed"/>
|
||||
<FIELD NAME="maxtimeallowed" TYPE="char" LENGTH="19" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="prerequisites" NEXT="timelimitaction"/>
|
||||
<FIELD NAME="timelimitaction" TYPE="char" LENGTH="19" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="maxtimeallowed" NEXT="datafromlms"/>
|
||||
<FIELD NAME="datafromlms" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="timelimitaction" NEXT="masteryscore"/>
|
||||
<FIELD NAME="masteryscore" TYPE="char" LENGTH="200" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="datafromlms" NEXT="next"/>
|
||||
<FIELD NAME="next" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="masteryscore" NEXT="previous"/>
|
||||
<FIELD NAME="previous" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="next"/>
|
||||
<FIELD NAME="launch" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="identifier" NEXT="scormtype"/>
|
||||
<FIELD NAME="scormtype" TYPE="char" LENGTH="5" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="launch" NEXT="title"/>
|
||||
<FIELD NAME="title" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="scormtype"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for scorm_scoes" NEXT="scorm"/>
|
||||
<KEY NAME="scorm" TYPE="foreign" FIELDS="scorm" REFTABLE="scorm" REFFIELDS="id" PREVIOUS="primary"/>
|
||||
</KEYS>
|
||||
</TABLE>
|
||||
<TABLE NAME="scorm_scoes_track" COMMENT="to track SCOes" PREVIOUS="scorm_scoes">
|
||||
<TABLE NAME="scorm_scoes_data" COMMENT="Contains variable data get from packages" PREVIOUS="scorm_scoes" NEXT="scorm_scoes_track">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="scoid"/>
|
||||
<FIELD NAME="scoid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="name"/>
|
||||
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="scoid" NEXT="value"/>
|
||||
<FIELD NAME="value" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="name"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for scorm_scoes_data"/>
|
||||
</KEYS>
|
||||
<INDEXES>
|
||||
<INDEX NAME="dev_scorscoedata_sco_ix" UNIQUE="false" FIELDS="scoid"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
<TABLE NAME="scorm_scoes_track" COMMENT="to track SCOes" PREVIOUS="scorm_scoes_data">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="userid"/>
|
||||
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="scormid"/>
|
||||
|
|
|
@ -6,6 +6,7 @@ CREATE TABLE prefix_scorm (
|
|||
id int(10) unsigned NOT NULL auto_increment,
|
||||
course int(10) unsigned NOT NULL default '0',
|
||||
name varchar(255) NOT NULL default '',
|
||||
summary text NOT NULL default '',
|
||||
reference varchar(255) NOT NULL default '',
|
||||
version varchar(9) NOT NULL default '',
|
||||
maxgrade float(3) NOT NULL default '0',
|
||||
|
@ -13,8 +14,9 @@ CREATE TABLE prefix_scorm (
|
|||
maxattempt int(10) NOT NULL default '1',
|
||||
launch int(10) unsigned NOT NULL default '0',
|
||||
skipview tinyint(1) unsigned NOT NULL default '1',
|
||||
summary text NOT NULL default '',
|
||||
hidebrowse tinyint(1) NOT NULL default '0',
|
||||
hideexit tinyint(1) NOT NULL default '0',
|
||||
hideabandon tinyint(1) NOT NULL default '0',
|
||||
hidetoc tinyint(1) NOT NULL default '0',
|
||||
hidenav tinyint(1) NOT NULL default '0',
|
||||
auto tinyint(1) unsigned NOT NULL default '0',
|
||||
|
@ -24,7 +26,6 @@ CREATE TABLE prefix_scorm (
|
|||
height int(10) unsigned NOT NULL default '600',
|
||||
timemodified int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY id (id),
|
||||
KEY course (course)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
|
@ -35,22 +36,31 @@ CREATE TABLE prefix_scorm_scoes (
|
|||
organization varchar(255) NOT NULL default '',
|
||||
parent varchar(255) NOT NULL default '',
|
||||
identifier varchar(255) NOT NULL default '',
|
||||
launch varchar(255) NOT NULL default '',
|
||||
parameters varchar(255) NOT NULL default '',
|
||||
/* launch varchar(255) NOT NULL default '', */
|
||||
launch int(10) NOT NULL default '0',
|
||||
scormtype varchar(5) NOT NULL default '',
|
||||
title varchar(255) NOT NULL default '',
|
||||
/* parameters varchar(255) NOT NULL default '',
|
||||
prerequisites varchar(200) NOT NULL default '',
|
||||
maxtimeallowed varchar(19) NOT NULL default '',
|
||||
timelimitaction varchar(19) NOT NULL default '',
|
||||
datafromlms varchar(255) NOT NULL default '',
|
||||
masteryscore varchar(200) NOT NULL default '',
|
||||
next tinyint(1) unsigned NOT NULL default '0',
|
||||
previous tinyint(1) unsigned NOT NULL default '0',
|
||||
previous tinyint(1) unsigned NOT NULL default '0', */
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY id (id),
|
||||
KEY scorm (scorm)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_scoes_data (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
name varchar(255) NOT NULL default '',
|
||||
value text NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_scoes_track (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
userid int(10) unsigned NOT NULL default '0',
|
||||
|
@ -60,7 +70,7 @@ CREATE TABLE prefix_scorm_scoes_track (
|
|||
element varchar(255) NOT NULL default '',
|
||||
value longtext NOT NULL default '',
|
||||
timemodified int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (id),
|
||||
PRIMARY KEY (id),
|
||||
KEY userid (userid),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid),
|
||||
|
@ -68,6 +78,106 @@ CREATE TABLE prefix_scorm_scoes_track (
|
|||
UNIQUE track (userid, scormid, scoid, attempt, element)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_ruleconditions (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
conditioncombination varchar(3) NOT NULL default 'all',
|
||||
ruletype tinyint(2) unsigned NOT NULL default '0',
|
||||
action varchar(25) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid,id),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_rulecondition (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
ruleconditionsid int(10) unsigned NOT NULL default '0',
|
||||
refrencedobjective varchar(255) NOT NULL default '',
|
||||
measurethreshold float(11,4) NOT NULL default '0.0000',
|
||||
operator varchar(5) NOT NULL default 'noOp',
|
||||
condition varchar(30) NOT NULL default 'always',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid,id,ruleconditionsid),
|
||||
KEY ruleconditionsid (ruleconditionsid),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_rolluprules (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
rollupobjectivesatisfied TINYINT(1) unsigned NOT NULL default '1',
|
||||
rollupprogresscompletion TINYINT(1) unsigned NOT NULL default '1',
|
||||
objectivemeasureweight float(11,4) NOT NULL default '1.0000',
|
||||
PRIMARY KEY (id),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_rolluprule (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
rolluprulesid int(10) unsigned NOT NULL default '0',
|
||||
childactivityset varchar(15) NOT NULL default '',
|
||||
minimumcount int(10) unsigned NOT NULL default '0',
|
||||
minimumpercent float(11,4) unsigned NOT NULL default '0.0000',
|
||||
conditioncombination varchar(3) NOT NULL default 'all',
|
||||
action varchar(15) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid, rolluprulesid, id),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_rolluprulecondition (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
rollupruleid int(10) unsigned NOT NULL default '0',
|
||||
operator varchar(5) NOT NULL default 'noOp',
|
||||
condition varchar(25) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid, rollupruleid, id),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_objectives (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
primary tinyint(1) NOT NULL default '0',
|
||||
objectiveid int(10) unsigned NOT NULL default '0',
|
||||
satisfiedbymeasure tinyint(1) NOT NULL default '1',
|
||||
minnormalizedmeasure float(11,4) unsigned NOT NULL default '1.0',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid, id),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE prefix_scorm_sequencing_objective (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
scormid int(10) unsigned NOT NULL default '0',
|
||||
scoid int(10) unsigned NOT NULL default '0',
|
||||
objectiveid int(10) unsigned NOT NULL default '0',
|
||||
targetobjectiveid int(10) unsigned NOT NULL default '0',
|
||||
readsatisfiedstatus tinyint(1) NOT NULL default '1',
|
||||
readnormalizedmeasure tinyint(1) NOT NULL default '1',
|
||||
writesatisfiedstatus tinyint(1) NOT NULL default '0',
|
||||
writenormalizedmeasure tinyint(1) NOT NULL default '0',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (scormid, scoid, id, objectiveid),
|
||||
KEY scormid (scormid),
|
||||
KEY scoid (scoid)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
#
|
||||
# Dumping data for table log_display
|
||||
#
|
||||
|
|
|
@ -23,14 +23,61 @@ function xmldb_scorm_upgrade($oldversion=0) {
|
|||
|
||||
$result = true;
|
||||
|
||||
/// And upgrade begins here. For each one, you'll need one
|
||||
/// block of code similar to the next one. Please, delete
|
||||
/// this comment lines once this file start handling proper
|
||||
/// upgrade code.
|
||||
if ($result && $oldversion < 2006103100) {
|
||||
/// Create the new sco optionals data table
|
||||
|
||||
/// if ($result && $oldversion < YYYYMMDD00) { //New version in version.php
|
||||
/// $result = result of "/lib/ddllib.php" function calls
|
||||
/// }
|
||||
/// Define table scorm_scoes_data to be created
|
||||
$table = new XMLDBTable('scorm_scoes_data');
|
||||
|
||||
/// Adding fields to table scorm_scoes_data
|
||||
$table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->addFieldInfo('scoid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->addFieldInfo('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->addFieldInfo('value', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
|
||||
/// Adding keys to table scorm_scoes_data
|
||||
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
|
||||
/// Adding indexes to table scorm_scoes_data
|
||||
$table->addIndexInfo('scoid', XMLDB_INDEX_NOTUNIQUE, array('scoid'));
|
||||
|
||||
/// Launch create table for scorm_scoes_data
|
||||
$result = $result && create_table($table);
|
||||
|
||||
/// The old fields used in scorm_scoes
|
||||
$fields = array('parameters' => '',
|
||||
'prerequisites' => '',
|
||||
'maxtimeallowed' => '',
|
||||
'timelimitaction' => '',
|
||||
'datafromlms' => '',
|
||||
'masteryscore' => '',
|
||||
'next' => '0',
|
||||
'previous' => '0');
|
||||
|
||||
/// Retrieve old datas
|
||||
if ($olddatas = get_records('scorm_scoes')) {
|
||||
foreach ($olddatas as $olddata) {
|
||||
$newdata = new stdClass();
|
||||
$newdata->scoid = $olddata->id;
|
||||
foreach ($fields as $field => $value) {
|
||||
if ($olddata->$field != $value) {
|
||||
$newdata->name = addslashes($field);
|
||||
$newdata->value = addslashes($olddata->$field);
|
||||
$id = insert_record('scorm_scoes_data', $newdata);
|
||||
$result = $result && ($id != 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Remove no more used fields
|
||||
$table = new XMLDBTable('scorm_scoes');
|
||||
|
||||
foreach ($fields as $field => $value) {
|
||||
$field = new XMLDBField($field);
|
||||
$result = $result && drop_field($table, $field);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue