本文整理汇总了PHP中xmldb_table::addField方法的典型用法代码示例。如果您正苦于以下问题:PHP xmldb_table::addField方法的具体用法?PHP xmldb_table::addField怎么用?PHP xmldb_table::addField使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xmldb_table
的用法示例。
在下文中一共展示了xmldb_table::addField方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: invoke
/**
* Invoke method, every class will have its own
* returns true/false on completion, setting both
* errormsg and output as necessary
*/
function invoke()
{
parent::invoke();
$result = true;
// Set own core attributes
$this->does_generate = ACTION_GENERATE_HTML;
// These are always here
global $CFG, $XMLDB, $DB, $OUTPUT;
// Do the job, setting result as needed
// Get the dir containing the file
$dirpath = required_param('dir', PARAM_PATH);
$dirpath = $CFG->dirroot . $dirpath;
// Get the correct dirs
if (!empty($XMLDB->dbdirs)) {
$dbdir = $XMLDB->dbdirs[$dirpath];
} else {
return false;
}
if (!empty($XMLDB->editeddirs)) {
$editeddir = $XMLDB->editeddirs[$dirpath];
$structure = $editeddir->xml_file->getStructure();
}
$tableparam = optional_param('table', NULL, PARAM_CLEAN);
// If no table, show form
if (!$tableparam) {
// No postaction here
$this->postaction = NULL;
// Get list of tables
$dbtables = $DB->get_tables();
$selecttables = array();
foreach ($dbtables as $dbtable) {
$i = $structure->findTableInArray($dbtable);
if ($i === NULL) {
$selecttables[$dbtable] = $dbtable;
}
}
// Get list of after tables
$aftertables = array();
if ($tables = $structure->getTables()) {
foreach ($tables as $aftertable) {
$aftertables[$aftertable->getName()] = $aftertable->getName();
}
}
if (!$selecttables) {
$this->errormsg = 'No tables available to be retrofitted';
return false;
}
// Now build the form
$o = '<form id="form" action="index.php" method="post">';
$o .= '<div>';
$o .= ' <input type="hidden" name ="dir" value="' . str_replace($CFG->dirroot, '', $dirpath) . '" />';
$o .= ' <input type="hidden" name ="action" value="new_table_from_mysql" />';
$o .= ' <input type="hidden" name ="postaction" value="edit_table" />';
$o .= ' <input type="hidden" name ="sesskey" value="' . sesskey() . '" />';
$o .= ' <table id="formelements" class="boxaligncenter" cellpadding="5">';
$o .= ' <tr><td><label for="menutable" accesskey="t">' . $this->str['createtable'] . ' </label>' . html_writer::select($selecttables, 'table') . '<label for="menuafter" accesskey="a">' . $this->str['aftertable'] . ' </label>' . html_writer::select($aftertables, 'after') . '</td></tr>';
$o .= ' <tr><td colspan="2" align="center"><input type="submit" value="' . $this->str['create'] . '" /></td></tr>';
$o .= ' <tr><td colspan="2" align="center"><a href="index.php?action=edit_xml_file&dir=' . urlencode(str_replace($CFG->dirroot, '', $dirpath)) . '">[' . $this->str['back'] . ']</a></td></tr>';
$o .= ' </table>';
$o .= '</div></form>';
$this->output = $o;
// If table, retrofit information and, if everything works,
// go to the table edit action
} else {
// Get some params (table is mandatory here)
$tableparam = required_param('table', PARAM_CLEAN);
$afterparam = required_param('after', PARAM_CLEAN);
// Create one new xmldb_table
$table = new xmldb_table(strtolower(trim($tableparam)));
$table->setComment($table->getName() . ' table retrofitted from MySQL');
// Get fields info from ADODb
$dbfields = $DB->get_columns($tableparam);
if ($dbfields) {
foreach ($dbfields as $dbfield) {
// Create new XMLDB field
$field = new xmldb_field($dbfield->name);
// Set field with info retrofitted
$field->setFromADOField($dbfield);
// Add field to the table
$table->addField($field);
}
}
// Get PK, UK and indexes info from ADODb
$dbindexes = $DB->get_indexes($tableparam);
if ($dbindexes) {
$lastkey = NULL;
//To temp store the last key processed
foreach ($dbindexes as $indexname => $dbindex) {
// Add the indexname to the array
$dbindex['name'] = $indexname;
// We are handling one xmldb_key (primaries + uniques)
if ($dbindex['unique']) {
$key = new xmldb_key(strtolower($dbindex['name']));
// Set key with info retrofitted
$key->setFromADOKey($dbindex);
//.........这里部分代码省略.........
示例2: invoke
/**
* Invoke method, every class will have its own
* returns true/false on completion, setting both
* errormsg and output as necessary
*/
function invoke()
{
parent::invoke();
$result = true;
// Set own core attributes
$this->does_generate = ACTION_NONE;
//$this->does_generate = ACTION_GENERATE_HTML;
// These are always here
global $CFG, $XMLDB;
// Do the job, setting result as needed
// Get the dir containing the file
$dirpath = required_param('dir', PARAM_PATH);
$dirpath = $CFG->dirroot . $dirpath;
// Get the correct dirs
if (!empty($XMLDB->dbdirs)) {
$dbdir = $XMLDB->dbdirs[$dirpath];
} else {
return false;
}
if (!empty($XMLDB->editeddirs)) {
$editeddir = $XMLDB->editeddirs[$dirpath];
$structure = $editeddir->xml_file->getStructure();
}
// If the changeme table exists, just get it and continue
$changeme_exists = false;
if ($tables = $structure->getTables()) {
if ($table = $structure->getTable('changeme')) {
$changeme_exists = true;
}
}
if (!$changeme_exists) {
// Lets create the table
$field = new xmldb_field('id');
$field->setType(XMLDB_TYPE_INTEGER);
$field->setLength(10);
$field->setNotNull(true);
$field->setSequence(true);
$field->setLoaded(true);
$field->setChanged(true);
$key = new xmldb_key('primary');
$key->setType(XMLDB_KEY_PRIMARY);
$key->setFields(array('id'));
$key->setLoaded(true);
$key->setChanged(true);
$table = new xmldb_table('changeme');
$table->setComment('Default comment for the table, please edit me');
$table->addField($field);
$table->addKey($key);
// Finally, add the whole retrofitted table to the structure
// in the place specified
$structure->addTable($table);
}
// Launch postaction if exists (leave this here!)
if ($this->getPostAction() && $result) {
return $this->launch($this->getPostAction());
}
// Return ok if arrived here
return $result;
}
示例3: xmldb_block_quickmail_upgrade
function xmldb_block_quickmail_upgrade($oldversion)
{
global $DB;
$result = true;
$dbman = $DB->get_manager();
// 1.9 to 2.0 upgrade
if ($oldversion < 2011021812) {
// Changing type of field attachment on table block_quickmail_log to text
$table = new xmldb_table('block_quickmail_log');
$field = new xmldb_field('attachment', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, 'message');
// Launch change of type for field attachment
$dbman->change_field_type($table, $field);
// Rename field timesent on table block_quickmail_log to time
$table = new xmldb_table('block_quickmail_log');
$field = new xmldb_field('timesent', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0', 'format');
// Conditionally launch rename field timesent
if ($dbman->field_exists($table, $field)) {
$dbman->rename_field($table, $field, 'time');
}
// Define table block_quickmail_signatures to be created
$table = new xmldb_table('block_quickmail_signatures');
// Adding fields to table block_quickmail_signatures
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('userid', XMLDB_TYPE_INTEGER, '11', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
$table->add_field('title', XMLDB_TYPE_CHAR, '125', null, null, null, null);
$table->add_field('signature', XMLDB_TYPE_TEXT, 'medium', null, null, null, null);
$table->add_field('default_flag', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '1');
// Adding keys to table block_quickmail_signatures
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
// Conditionally launch create table for block_quickmail_signatures
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table block_quickmail_drafts to be created
$table = new xmldb_table('block_quickmail_drafts');
// Adding fields to table block_quickmail_drafts
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '11', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
$table->add_field('userid', XMLDB_TYPE_INTEGER, '11', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
$table->add_field('mailto', XMLDB_TYPE_TEXT, 'medium', null, null, null, null);
$table->add_field('subject', XMLDB_TYPE_TEXT, 'small', null, null, null, null);
$table->add_field('message', XMLDB_TYPE_TEXT, 'medium', null, null, null, null);
$table->add_field('attachment', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null);
$table->add_field('format', XMLDB_TYPE_INTEGER, '3', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '1');
$table->add_field('time', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null);
// Adding keys to table block_quickmail_drafts
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
// Conditionally launch create table for block_quickmail_drafts
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table block_quickmail_config to be created
$table = new xmldb_table('block_quickmail_config');
// Adding fields to table block_quickmail_config
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('coursesid', XMLDB_TYPE_INTEGER, '11', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
$table->add_field('name', XMLDB_TYPE_CHAR, '25', null, XMLDB_NOTNULL, null, null);
$table->add_field('value', XMLDB_TYPE_CHAR, '125', null, null, null, null);
// Adding keys to table block_quickmail_config
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
// Conditionally launch create table for block_quickmail_config
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// quickmail savepoint reached
upgrade_block_savepoint($result, 2011021812, 'quickmail');
}
if ($oldversion < 2012021014) {
$table = new xmldb_table('block_quickmail_alternate');
$field = new xmldb_field('id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, true, null, null);
$table->addField($field);
$field = new xmldb_field('courseid');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, null, 'id');
$table->addField($field);
$field = new xmldb_field('address');
$field->set_attributes(XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, false, null, 'courseid');
$table->addField($field);
$field = new xmldb_field('valid');
$field->set_attributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', 'address');
$table->addField($field);
$key = new xmldb_key('PRIMARY');
$key->set_attributes(XMLDB_KEY_PRIMARY, array('id'));
$table->addKey($key);
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
foreach (array('log', 'drafts') as $table) {
// Define field alternateid to be added to block_quickmail_log
$table = new xmldb_table('block_quickmail_' . $table);
$field = new xmldb_field('alternateid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, 'userid');
// Conditionally launch add field alternateid
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
}
// quickmail savepoint reached
upgrade_block_savepoint($result, 2012021014, 'quickmail');
}
if ($oldversion < 2012061112) {
//.........这里部分代码省略.........
示例4: test_drop_enum_from_field
/**
* Test behaviour of drop_enum_from_field() and related functions (find_check_constraint_name
* and check_constraint_exists). Needed to be able to drop existing "enum" fields in the upgrade
* from 1.9 to 2.0, will be completely deleted for Moodle 2.1
*
* Because we already have dropped support for creation of enum fields in 2.0, we are going to
* create them here "manually" (hardcoded DB-dependent SQL). Just to be able to test the
* find and drop functions properly.
*
* TODO: Drop this tests completely from Moodle 2.1
*/
public function test_drop_enum_from_field() {
$DB = $this->tdb; // do not use global $DB!
$dbman = $this->tdb->get_manager();
// Create normal table, no enums.
$table = new xmldb_table('test_table_cust0');
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('course', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
$field = new xmldb_field('type');
$field->set_attributes(XMLDB_TYPE_CHAR, '20', null, XMLDB_NOTNULL, null, 'general');
$table->addField($field);
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$dbman->create_table($table);
$this->assertTrue($dbman->table_exists($table));
$this->assertTrue($dbman->field_exists($table, $field));
// Check table hasn't enums at all
$this->assertFalse($dbman->check_constraint_exists($table, $field));
$this->assertFalse($dbman->find_check_constraint_name($table, $field));
ob_start();
$this->assertFalse($dbman->drop_enum_from_field($table, $field)); // This just outputs debug warning if field hasn't enums
ob_end_clean();
// Insert some info
$record = new stdClass();
$record->course = 666;
$record->type = 'qanda';
$this->assertTrue($DB->insert_record('test_table_cust0', $record, false));
// Hackery starts here, depending of the db family we are testing... execute
// the needed SQL statements to get the "type" field defined as enum
$stmt = '';
switch ($DB->get_dbfamily()) {
case 'mysql': // It's ENUM field for mysql
$stmt = "ALTER TABLE {$DB->get_prefix()}test_table_cust0 MODIFY type ENUM ('general', 'qanda', 'moodle') NOT NULL DEFAULT 'general'";
break;
default: // It's check constraint for "normal" DBs
$stmt = "ALTER TABLE {$DB->get_prefix()}test_table_cust0 ADD CONSTRAINT ttcu0_ck CHECK (type IN ('general', 'qanda', 'moodle'))";
}
$DB->change_database_structure($stmt);
// Check table has enums now
$this->assertTrue($dbman->check_constraint_exists($table, $field));
$this->assertTrue($dbman->find_check_constraint_name($table, $field));
// Removing an enum value
$dbman->drop_enum_from_field($table, $field);
// Chech table hasn't enum anymore
$this->assertFalse($dbman->check_constraint_exists($table, $field));
$this->assertFalse($dbman->find_check_constraint_name($table, $field));
$dbman->drop_table($table);
}
示例5: xmldb_feedback_upgrade
function xmldb_feedback_upgrade($oldversion)
{
global $CFG, $DB;
$dbman = $DB->get_manager();
if ($oldversion < 2007012310) {
//create a new table feedback_completedtmp and the field-definition
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, true, null, null);
$table->addField($field);
$field = new xmldb_field('feedback');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('userid');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('guestid');
$field->set_attributes(XMLDB_TYPE_CHAR, '255', null, null, false, '', null);
$table->addField($field);
$field = new xmldb_field('timemodified');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$key = new xmldb_key('PRIMARY');
$key->set_attributes(XMLDB_KEY_PRIMARY, array('id'));
$table->addKey($key);
$key = new xmldb_key('feedback');
$key->set_attributes(XMLDB_KEY_FOREIGN, array('feedback'), 'feedback', 'id');
$table->addKey($key);
$dbman->create_table($table);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//create a new table feedback_valuetmp and the field-definition
$table = new xmldb_table('feedback_valuetmp');
$field = new xmldb_field('id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, true, null, null);
$table->addField($field);
$field = new xmldb_field('course_id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('item');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('completed');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('tmp_completed');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('value');
$field->set_attributes(XMLDB_TYPE_TEXT, null, null, null, false, '', null);
$table->addField($field);
$key = new xmldb_key('PRIMARY');
$key->set_attributes(XMLDB_KEY_PRIMARY, array('id'));
$table->addKey($key);
$key = new xmldb_key('feedback');
$key->set_attributes(XMLDB_KEY_FOREIGN, array('item'), 'feedback_item', 'id');
$table->addKey($key);
$dbman->create_table($table);
////////////////////////////////////////////////////////////
upgrade_mod_savepoint(true, 2007012310, 'feedback');
}
if ($oldversion < 2007050504) {
/// Define field random_response to be added to feedback_completed
$table = new xmldb_table('feedback_completed');
$field = new xmldb_field('random_response', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
/// Launch add field1
$dbman->add_field($table, $field);
/// Define field anonymous_response to be added to feedback_completed
$table = new xmldb_table('feedback_completed');
$field = new xmldb_field('anonymous_response', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
/// Launch add field2
$dbman->add_field($table, $field);
/// Define field random_response to be added to feedback_completed
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('random_response', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
/// Launch add field1
$dbman->add_field($table, $field);
/// Define field anonymous_response to be added to feedback_completed
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('anonymous_response', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
/// Launch add field2
$dbman->add_field($table, $field);
////////////////////////////////////////////////////////////
upgrade_mod_savepoint(true, 2007050504, 'feedback');
}
if ($oldversion < 2007102600) {
// public is a reserved word on Oracle
$table = new xmldb_table('feedback_template');
$field = new xmldb_field('ispublic', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
upgrade_mod_savepoint(true, 2007102600, 'feedback');
}
if ($oldversion < 2008042400) {
//New version in version.php
if ($all_nonanonymous_feedbacks = $DB->get_records('feedback', array('anonymous' => 2))) {
$update_sql = 'UPDATE {feedback_completed}
SET anonymous_response = 2
WHERE feedback = ';
//.........这里部分代码省略.........
示例6: xmldb_feedback_upgrade
function xmldb_feedback_upgrade($oldversion)
{
global $CFG, $DB;
$dbman = $DB->get_manager();
$result = true;
if ($result && $oldversion < 2007012310) {
//create a new table feedback_completedtmp and the field-definition
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, true, null, null);
$table->addField($field);
$field = new xmldb_field('feedback');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('userid');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('guestid');
$field->set_attributes(XMLDB_TYPE_CHAR, '255', null, null, false, '', null);
$table->addField($field);
$field = new xmldb_field('timemodified');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$key = new xmldb_key('PRIMARY');
$key->set_attributes(XMLDB_KEY_PRIMARY, array('id'));
$table->addKey($key);
$key = new xmldb_key('feedback');
$key->set_attributes(XMLDB_KEY_FOREIGN, array('feedback'), 'feedback', 'id');
$table->addKey($key);
$dbman->create_table($table);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//create a new table feedback_valuetmp and the field-definition
$table = new xmldb_table('feedback_valuetmp');
$field = new xmldb_field('id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, true, null, null);
$table->addField($field);
$field = new xmldb_field('course_id');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('item');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('completed');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('tmp_completed');
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
$table->addField($field);
$field = new xmldb_field('value');
$field->set_attributes(XMLDB_TYPE_TEXT, null, null, null, false, '', null);
$table->addField($field);
$key = new xmldb_key('PRIMARY');
$key->set_attributes(XMLDB_KEY_PRIMARY, array('id'));
$table->addKey($key);
$key = new xmldb_key('feedback');
$key->set_attributes(XMLDB_KEY_FOREIGN, array('item'), 'feedback_item', 'id');
$table->addKey($key);
$dbman->create_table($table);
////////////////////////////////////////////////////////////
upgrade_mod_savepoint($result, 2007012310, 'feedback');
}
if ($result && $oldversion < 2007050504) {
/// Define field random_response to be added to feedback_completed
$table = new xmldb_table('feedback_completed');
$field = new xmldb_field('random_response', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
/// Launch add field1
$dbman->add_field($table, $field);
/// Define field anonymous_response to be added to feedback_completed
$table = new xmldb_table('feedback_completed');
$field = new xmldb_field('anonymous_response', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
/// Launch add field2
$dbman->add_field($table, $field);
/// Define field random_response to be added to feedback_completed
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('random_response', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '0', null);
/// Launch add field1
$dbman->add_field($table, $field);
/// Define field anonymous_response to be added to feedback_completed
$table = new xmldb_table('feedback_completedtmp');
$field = new xmldb_field('anonymous_response', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
/// Launch add field2
$dbman->add_field($table, $field);
////////////////////////////////////////////////////////////
upgrade_mod_savepoint($result, 2007050504, 'feedback');
}
if ($result && $oldversion < 2007102600) {
// public is a reserved word on Oracle
$table = new xmldb_table('feedback_template');
$field = new xmldb_field('ispublic', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, false, '1', null);
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
upgrade_mod_savepoint($result, 2007102600, 'feedback');
}
if ($result && $oldversion < 2008042400) {
//New version in version.php
if ($all_nonanonymous_feedbacks = $DB->get_records('feedback', 'anonymous', 2)) {
$update_sql = 'UPDATE {feedback_completed} SET anonymous_response = 2 WHERE feedback = ';
foreach ($all_nonanonymous_feedbacks as $fb) {
//.........这里部分代码省略.........