]> git.mjollnir.org Git - moodle.git/commitdiff
Adding tables for customisable user profile fields. See MDL-474
authorikawhero <ikawhero>
Wed, 20 Sep 2006 14:17:21 +0000 (14:17 +0000)
committerikawhero <ikawhero>
Wed, 20 Sep 2006 14:17:21 +0000 (14:17 +0000)
lib/db/install.xml
lib/db/mysql.php
lib/db/mysql.sql
lib/db/postgres7.php
lib/db/postgres7.sql

index a4885dc4dd70fad36825750f210b9ea4f58a499e..44da08c6eaae0924eafcddb5b931cc6dff9ce9f1 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="lib/db" VERSION="20060918" COMMENT="XMLDB file for core Moodle tables"
+<XMLDB PATH="lib/db" VERSION="20060920" COMMENT="XMLDB file for core Moodle tables"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
 >
         <INDEX NAME="roleid-contextid-capability" UNIQUE="true" FIELDS="roleid, contextid, capability"/>
       </INDEXES>
     </TABLE>
-    <TABLE NAME="role_names" COMMENT="role names in native strings" PREVIOUS="role_capabilities">
+    <TABLE NAME="role_names" COMMENT="role names in native strings" PREVIOUS="role_capabilities" NEXT="user_info_field">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="roleid"/>
         <FIELD NAME="roleid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="contextid"/>
         <INDEX NAME="roleid-contextid" UNIQUE="true" FIELDS="roleid, contextid"/>
       </INDEXES>
     </TABLE>
+    <TABLE NAME="user_info_field" COMMENT="Customisable user profile fields" PREVIOUS="role_names" NEXT="user_info_category">
+      <FIELDS>
+        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="false" SEQUENCE="true" ENUM="false" COMMENT="id of the table, please edit me" NEXT="name"/>
+        <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" COMMENT="field name" PREVIOUS="id" NEXT="datatype"/>
+        <FIELD NAME="datatype" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" COMMENT="Type of data held in this field" PREVIOUS="name" NEXT="categoryid"/>
+        <FIELD NAME="categoryid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="id from category table" PREVIOUS="datatype" NEXT="sortorder"/>
+        <FIELD NAME="sortorder" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="order within the category" PREVIOUS="categoryid" NEXT="required"/>
+        <FIELD NAME="required" TYPE="int" LENGTH="2" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Field required" PREVIOUS="sortorder" NEXT="locked"/>
+        <FIELD NAME="locked" TYPE="int" LENGTH="2" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Field locked" PREVIOUS="required" NEXT="visible"/>
+        <FIELD NAME="visible" TYPE="int" LENGTH="4" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Visibility: private, public, hidden" PREVIOUS="locked" NEXT="defaultdata"/>
+        <FIELD NAME="defaultdata" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" ENUM="false" COMMENT="Default value for this field" PREVIOUS="visible"/>
+      </FIELDS>
+      <KEYS>
+        <KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="primary key of the table, please edit me"/>
+      </KEYS>
+    </TABLE>
+    <TABLE NAME="user_info_category" COMMENT="Customisable fields categories" PREVIOUS="user_info_field" NEXT="user_info_data">
+      <FIELDS>
+        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="false" SEQUENCE="true" ENUM="false" COMMENT="id of the table, please edit me" NEXT="name"/>
+        <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" COMMENT="Category name" PREVIOUS="id" NEXT="sortorder"/>
+        <FIELD NAME="sortorder" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Display order" PREVIOUS="name"/>
+      </FIELDS>
+      <KEYS>
+        <KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="primary key of the table, please edit me"/>
+      </KEYS>
+    </TABLE>
+    <TABLE NAME="user_info_data" COMMENT="Data for the customisable user fields" PREVIOUS="user_info_category">
+      <FIELDS>
+        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="false" SEQUENCE="true" ENUM="false" COMMENT="id of the table, please edit me" NEXT="userid"/>
+        <FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="id from the user table" PREVIOUS="id" NEXT="fieldid"/>
+        <FIELD NAME="fieldid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="id from the field table" PREVIOUS="userid" NEXT="data"/>
+        <FIELD NAME="data" TYPE="text" LENGTH="big" NOTNULL="true" SEQUENCE="false" ENUM="false" COMMENT="Field data" PREVIOUS="fieldid"/>
+      </FIELDS>
+      <KEYS>
+        <KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="primary key of the table, please edit me"/>
+      </KEYS>
+    </TABLE>
   </TABLES>
   <STATEMENTS>
     <STATEMENT NAME="insert log_display" TYPE="insert" TABLE="log_display" COMMENT="Initial insert of records on table log_display">
index ca97e574b2148c6f3ece10be506bfc6c3c9b2635..775fbe6946646746e05c9bb1e7c2ffdb999f33d3 100644 (file)
@@ -2249,6 +2249,43 @@ function main_upgrade($oldversion=0) {
         }
     }
 
+    /// Tables for customisable user profile fields
+    if ($oldversion < 2006092000) {
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_field (
+                        id BIGINT(10) NOT NULL auto_increment,
+                        name VARCHAR(255) NOT NULL default '',
+                        datatype VARCHAR(255) NOT NULL default '',
+                        categoryid BIGINT(10) unsigned NOT NULL default 0,
+                        sortorder BIGINT(10) unsigned NOT NULL default 0,
+                        required TINYINT(2) unsigned NOT NULL default 0,
+                        locked TINYINT(2) unsigned NOT NULL default 0,
+                        visible SMALLINT(4) unsigned NOT NULL default 0,
+                        defaultdata LONGTEXT,
+                        CONSTRAINT  PRIMARY KEY (id));", true);
+
+        execute_sql("ALTER TABLE {$CFG->prefix}user_info_field COMMENT='Customisable user profile fields';", true);
+
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_category (
+                        id BIGINT(10) NOT NULL auto_increment,
+                        name VARCHAR(255) NOT NULL default '',
+                        sortorder BIGINT(10) unsigned NOT NULL default 0,
+                        CONSTRAINT  PRIMARY KEY (id));", true);
+
+        execute_sql("ALTER TABLE {$CFG->prefix}user_info_category COMMENT='Customisable fields categories';", true);
+
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_data (
+                        id BIGINT(10) NOT NULL auto_increment,
+                        userid BIGINT(10) unsigned NOT NULL default 0,
+                        fieldid BIGINT(10) unsigned NOT NULL default 0,
+                        data LONGTEXT NOT NULL,
+                        CONSTRAINT  PRIMARY KEY (id));", true);
+
+        execute_sql("ALTER TABLE {$CFG->prefix}user_info_data COMMENT='Data for the customisable user fields';", true);
+
+
+    }
+
+
     return $result;
 }
 
index ba379b86907583049d2a872933e1f82510e02866..9cbeee2b5284be0103ceb02e2bfbf55fe6c9c44c 100644 (file)
@@ -1030,3 +1030,37 @@ INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message'
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'remove contact', 'user', 'CONCAT(firstname," ",lastname)');
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'block contact', 'user', 'CONCAT(firstname," ",lastname)');
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'unblock contact', 'user', 'CONCAT(firstname," ",lastname)');
+
+CREATE TABLE prefix_user_info_field (
+    id BIGINT(10) NOT NULL auto_increment,
+    name VARCHAR(255) NOT NULL default '',
+    datatype VARCHAR(255) NOT NULL default '',
+    categoryid BIGINT(10) unsigned NOT NULL default 0,
+    sortorder BIGINT(10) unsigned NOT NULL default 0,
+    required TINYINT(2) unsigned NOT NULL default 0,
+    locked TINYINT(2) unsigned NOT NULL default 0,
+    visible SMALLINT(4) unsigned NOT NULL default 0,
+    defaultdata LONGTEXT,
+CONSTRAINT  PRIMARY KEY (id)
+);
+
+ALTER TABLE prefix_user_info_field COMMENT='Customisable user profile fields';
+
+CREATE TABLE prefix_user_info_category (
+    id BIGINT(10) NOT NULL auto_increment,
+    name VARCHAR(255) NOT NULL default '',
+    sortorder BIGINT(10) unsigned NOT NULL default 0,
+CONSTRAINT  PRIMARY KEY (id)
+);
+
+ALTER TABLE prefix_user_info_category COMMENT='Customisable fields categories';
+
+CREATE TABLE prefix_user_info_data (
+    id BIGINT(10) NOT NULL auto_increment,
+    userid BIGINT(10) unsigned NOT NULL default 0,
+    fieldid BIGINT(10) unsigned NOT NULL default 0,
+    data LONGTEXT NOT NULL,
+CONSTRAINT  PRIMARY KEY (id)
+);
+
+ALTER TABLE prefix_user_info_data COMMENT='Data for the customisable user fields';
index 17de9708c3cbcf6715d4194b1942026c605b3a42..9a1fafe3b3214fc64ba2de84d3d1bf95746c2183 100644 (file)
@@ -1849,6 +1849,42 @@ function main_upgrade($oldversion=0) {
         }
     }
 
+    /// Tables for customisable user profile fields
+    if ($oldversion < 2006092000) {
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_field (
+                        id BIGSERIAL,
+                        name VARCHAR(255) NOT NULL default '',
+                        datatype VARCHAR(255) NOT NULL default '',
+                        categoryid BIGINT NOT NULL default 0,
+                        sortorder BIGINT NOT NULL default 0,
+                        required SMALLINT NOT NULL default 0,
+                        locked SMALLINT NOT NULL default 0,
+                        visible SMALLINT NOT NULL default 0,
+                        defaultdata TEXT,
+                        CONSTRAINT {$CFG->prefix}userinfofiel_id_pk PRIMARY KEY (id));", true);
+
+        execute_sql("COMMENT ON TABLE {$CFG->prefix}user_info_field IS 'Customisable user profile fields';", true);
+
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_category (
+                        id BIGSERIAL,
+                        name VARCHAR(255) NOT NULL default '',
+                        sortorder BIGINT NOT NULL default 0,
+                        CONSTRAINT {$CFG->prefix}userinfocate_id_pk PRIMARY KEY (id));", true);
+
+        execute_sql("COMMENT ON TABLE {$CFG->prefix}user_info_category IS 'Customisable fields categories';", true);
+
+        execute_sql("CREATE TABLE {$CFG->prefix}user_info_data (
+                        id BIGSERIAL,
+                        userid BIGINT NOT NULL default 0,
+                        fieldid BIGINT NOT NULL default 0,
+                        data TEXT NOT NULL,
+                        CONSTRAINT {$CFG->prefix}userinfodata_id_pk PRIMARY KEY (id));", true);
+
+        execute_sql("COMMENT ON TABLE {$CFG->prefix}user_info_data IS 'Data for the customisable user fields';", true);
+
+    }
+
+
     return $result;
 }
 
index f4dd5694ae65813dd6f579f3727508088db2a14b..e9985ecafb6a26248f81367a8bc3cda96f367369 100644 (file)
@@ -793,3 +793,38 @@ INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message'
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'remove contact', 'user', 'firstname||\' \'||lastname');
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'block contact', 'user', 'firstname||\' \'||lastname');
 INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('message', 'unblock contact', 'user', 'firstname||\' \'||lastname');
+
+
+CREATE TABLE prefix_user_info_field (
+    id BIGSERIAL,
+    name VARCHAR(255) NOT NULL default '',
+    datatype VARCHAR(255) NOT NULL default '',
+    categoryid BIGINT NOT NULL default 0,
+    sortorder BIGINT NOT NULL default 0,
+    required SMALLINT NOT NULL default 0,
+    locked SMALLINT NOT NULL default 0,
+    visible SMALLINT NOT NULL default 0,
+    defaultdata TEXT,
+CONSTRAINT prefix_userinfofiel_id_pk PRIMARY KEY (id)
+);
+
+COMMENT ON TABLE prefix_user_info_field IS 'Customisable user profile fields';
+
+CREATE TABLE prefix_user_info_category (
+    id BIGSERIAL,
+    name VARCHAR(255) NOT NULL default '',
+    sortorder BIGINT NOT NULL default 0,
+CONSTRAINT prefix_userinfocate_id_pk PRIMARY KEY (id)
+);
+
+COMMENT ON TABLE prefix_user_info_category IS 'Customisable fields categories';
+
+CREATE TABLE prefix_user_info_data (
+    id BIGSERIAL,
+    userid BIGINT NOT NULL default 0,
+    fieldid BIGINT NOT NULL default 0,
+    data TEXT NOT NULL,
+CONSTRAINT prefix_userinfodata_id_pk PRIMARY KEY (id)
+);
+
+COMMENT ON TABLE prefix_user_info_data IS 'Data for the customisable user fields';