You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
501 lines
24 KiB
501 lines
24 KiB
<?php
|
|
|
|
// This file is part of the Certificate module for Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* This file keeps track of upgrades to the certificate module
|
|
*
|
|
* @package mod_certificate
|
|
* @copyright Mark Nelson <markn@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
function xmldb_certificate_upgrade($oldversion=0) {
|
|
|
|
global $CFG, $THEME, $DB;
|
|
$dbman = $DB->get_manager();
|
|
|
|
// ===== 1.9.0 or older upgrade line ======//
|
|
if ($oldversion < 2007061300) {
|
|
// Add new fields to certificate table
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('emailothers');
|
|
$field->set_attributes(XMLDB_TYPE_TEXT, 'small', null, null, null, null, 'emailteachers');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('printhours');
|
|
$field->set_attributes(XMLDB_TYPE_TEXT, 'small', null, null, null, null, 'gradefmt');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('lockgrade');
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'printhours');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('requiredgrade');
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, '0', 'lockgrade');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Rename field save to savecert
|
|
$field = new xmldb_field('save');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'emailothers');
|
|
// Launch rename field savecert
|
|
$dbman->rename_field($table, $field, 'savecert');
|
|
} else {
|
|
$field = new xmldb_field('savecert');
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'emailothers');
|
|
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2007061300, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2007061301) {
|
|
$table = new xmldb_table('certificate_linked_modules');
|
|
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null);
|
|
$table->add_field('certificate_id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'id');
|
|
$table->add_field('linkid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'certificate_id');
|
|
$table->add_field('linkgrade', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'linkid');
|
|
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'linkgrade');
|
|
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'), null, null);
|
|
$table->add_index('certificate_id', XMLDB_INDEX_NOTUNIQUE, array('certificate_id'));
|
|
$table->add_index('linkid', XMLDB_INDEX_NOTUNIQUE, array('linkid'));
|
|
if (!$dbman->table_exists($table)) {
|
|
$dbman->create_table($table);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2007061301, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2007102800) {
|
|
// Add new fields to certificate table
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('reportcert');
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'savecert');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$table = new xmldb_table('certificate_issues');
|
|
$field = new xmldb_field('reportgrade');
|
|
$field->set_attributes(XMLDB_TYPE_CHAR, '10', null, null, null, null, 'certdate');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2007102800, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2007102806) {
|
|
// Add new fields to certificate table
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('printoutcome');
|
|
$field->set_attributes(XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'gradefmt');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2007102806, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2008080904) {
|
|
// Add new fields to certificate table if they dont already exist
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('intro');
|
|
$field->set_attributes(XMLDB_TYPE_TEXT, 'small', null, null, null, null, 'name');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2008080904, 'certificate');
|
|
}
|
|
|
|
//===== 2.0 or older upgrade line ======//
|
|
|
|
// Note, fresh 1.9 installs add the version 2009080900, so they miss this when upgrading from 1.9 -> 2.0.
|
|
if ($oldversion < 2009062900) {
|
|
// Add new field to certificate table
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('introformat', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, '0', 'intro');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$field = new xmldb_field('orientation', XMLDB_TYPE_CHAR, '10', null, XMLDB_NOTNULL, null, ' ', 'certificatetype');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
$field = new xmldb_field('reissuecert', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'reportcert');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Set default orientation accordingly
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'letter_portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'unicode_portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'landscape'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'letter_landscape'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'unicode_landscape'));
|
|
|
|
// Update all the certificate types
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_non_embedded', array('certificatetype' => 'landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_non_embedded', array('certificatetype' => 'portrait'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_embedded', array('certificatetype' => 'unicode_landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_embedded', array('certificatetype' => 'unicode_portrait'));
|
|
$DB->set_field('certificate', 'certificatetype', 'letter_non_embedded', array('certificatetype' => 'letter_landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'letter_non_embedded', array('certificatetype' => 'letter_portrait'));
|
|
|
|
// savepoint reached
|
|
upgrade_mod_savepoint(true, 2009062900, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2011030105) {
|
|
|
|
// Define field id to be added to certificate
|
|
$table = new xmldb_table('certificate');
|
|
$field = new xmldb_field('introformat', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, 0, 'intro');
|
|
|
|
// Conditionally launch add field id
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2011030105, 'certificate');
|
|
}
|
|
|
|
// The Moodle 2.0 CVS certificate version sets it to 2011110101, if the user performed an upgrade
|
|
// then this upgrade will take care of several issues, if it's a fresh install then nothing is done.
|
|
if ($oldversion < 2011110102) {
|
|
require_once($CFG->libdir.'/conditionlib.php');
|
|
|
|
$table = new xmldb_table('certificate');
|
|
|
|
// It is possible for these fields not to be added, ever, it is included in the upgrade
|
|
// process but fresh certificate 1.9 install from CVS MOODLE_19_STABLE set the Moodle version
|
|
// to 2009080900, which means it missed all the earlier code written for upgrading to 2.0.
|
|
$reissuefield = new xmldb_field('reissuecert', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'reportcert');
|
|
$orientationfield = new xmldb_field('orientation', XMLDB_TYPE_CHAR, '10', null, XMLDB_NOTNULL, null, ' ', 'certificatetype');
|
|
|
|
// Have to check, may be added during earlier upgrade, or may be missing due to not being included in install.xml
|
|
if (!$dbman->field_exists($table, $reissuefield)) {
|
|
$dbman->add_field($table, $reissuefield);
|
|
}
|
|
|
|
if (!$dbman->field_exists($table, $orientationfield)) {
|
|
$dbman->add_field($table, $orientationfield);
|
|
}
|
|
|
|
// Fresh 2.0 installs won't have this table, but upgrades from 1.9 will
|
|
if ($dbman->table_exists('certificate_linked_modules')) {
|
|
// No longer need lock grade, or required grade, but first need to
|
|
// convert so that the restrictions are still in place for Moodle 2.0
|
|
if ($certs = $DB->get_records('certificate')) {
|
|
foreach ($certs as $cert) {
|
|
if ($cert->lockgrade == 0) {
|
|
// Can skip this certificate, no course grade required
|
|
continue;
|
|
}
|
|
if (!$cm = get_coursemodule_from_instance('certificate', $cert->id)) {
|
|
// Not valid skip it
|
|
continue;
|
|
}
|
|
if (!$gradeitem = $DB->get_record('grade_items', array('courseid' => $cm->course, 'itemtype' => 'course'))) {
|
|
// Not valid skip it
|
|
continue;
|
|
}
|
|
$condition_info = new condition_info($cm, CONDITION_MISSING_EVERYTHING);
|
|
$condition_info->add_grade_condition($gradeitem->id, $cert->requiredgrade, '110');
|
|
}
|
|
}
|
|
// Fresh installs won't have this table, but upgrades will
|
|
// Lock grade and required grade field are not needed anymore
|
|
if ($dbman->field_exists($table, 'lockgrade')) {
|
|
$field = new xmldb_field('lockgrade');
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
if ($dbman->field_exists($table, 'requiredgrade')) {
|
|
$field = new xmldb_field('requiredgrade');
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
// Now we need to loop through the restrictions in the certificate_linked_modules
|
|
// table and convert it into the new Moodle 2.0 restrictions
|
|
if ($certlinks = $DB->get_records('certificate_linked_modules')) {
|
|
foreach ($certlinks as $link) {
|
|
// If the link id is '-1' then the setting applies to the time spent in the course and is not
|
|
// related to a module, meaning we can skip it for this section
|
|
if ($link->linkid == '-1') {
|
|
continue;
|
|
}
|
|
// Get the course module
|
|
if (!$cm = get_coursemodule_from_instance('certificate', $link->certificate_id)) {
|
|
// Not valid skip it
|
|
continue;
|
|
}
|
|
// Get grade item for module specified - is there an API function for this ??
|
|
$sql = "SELECT gi.id
|
|
FROM {course_modules} cm
|
|
INNER JOIN {modules} m
|
|
ON cm.module = m.id
|
|
INNER JOIN {grade_items} gi
|
|
ON m.name = gi.itemmodule
|
|
WHERE cm.id = :cmid
|
|
AND cm.course = :courseid
|
|
AND cm.instance = gi.iteminstance";
|
|
if (!$gradeitem = $DB->get_record_sql($sql, array('cmid'=>$link->linkid, 'courseid'=>$cm->course))) {
|
|
// Not valid skip it
|
|
continue;
|
|
}
|
|
$condition_info = new condition_info($cm, CONDITION_MISSING_EVERYTHING);
|
|
$condition_info->add_grade_condition($gradeitem->id, $link->linkgrade, '110', true);
|
|
}
|
|
}
|
|
}
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2011110102, 'certificate');
|
|
}
|
|
|
|
// Note - the date has not changed as it has been set in the future, so I am incrementing
|
|
// last digits. Actual date - 15/09/11
|
|
if ($oldversion < 2011110103) {
|
|
// New orientation field needs a value in order to view the cert, otherwise you get
|
|
// an issue with FPDF and invalid orientation. This should be done during the upgrade,
|
|
// but due to version number issues it is possible it was not executed, so do it now.
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'letter_portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'P', array('certificatetype' => 'unicode_portrait'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'landscape'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'letter_landscape'));
|
|
$DB->set_field('certificate', 'orientation', 'L', array('certificatetype' => 'unicode_landscape'));
|
|
|
|
// If the certificate type does not match any of the orientations in the above then set to 'L'
|
|
$sql = "UPDATE {certificate}
|
|
SET orientation = 'L'
|
|
WHERE orientation = ''";
|
|
$DB->execute($sql);
|
|
|
|
// Update all the certificate types
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_non_embedded', array('certificatetype' => 'landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_non_embedded', array('certificatetype' => 'portrait'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_embedded', array('certificatetype' => 'unicode_landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'A4_embedded', array('certificatetype' => 'unicode_portrait'));
|
|
$DB->set_field('certificate', 'certificatetype', 'letter_non_embedded', array('certificatetype' => 'letter_landscape'));
|
|
$DB->set_field('certificate', 'certificatetype', 'letter_non_embedded', array('certificatetype' => 'letter_portrait'));
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2011110103, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2012022001) {
|
|
// CONTRIB-3470 - certdate remaining 0 on issued certificates, need to update
|
|
$sql = "UPDATE {certificate_issues}
|
|
SET certdate = timecreated
|
|
WHERE certdate = 0";
|
|
$DB->execute($sql);
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2012022001, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2012060901) {
|
|
// Editing this table
|
|
$table = new xmldb_table('certificate');
|
|
|
|
// Get rid of the reissue cert column, this was a hack introduced later
|
|
// in 1.9 when the bug was brought up that grades were not refreshing
|
|
// since they were being stored in the issues table.
|
|
// The certificate will now always return the current grade, student name
|
|
// and course name.
|
|
$field = new xmldb_field('reissuecert');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
|
|
// The poor certificate_issues table is going to have a lot of
|
|
// duplicates, we don't need that now, just keep the latest one
|
|
$sql = "SELECT MAX(id) id1, MAX(id) as id2
|
|
FROM {certificate_issues}
|
|
GROUP BY certificateid, userid";
|
|
if ($arrids = $DB->get_records_sql_menu($sql)) {
|
|
$idstokeep = implode(",", $arrids);
|
|
$sql = "DELETE
|
|
FROM {certificate_issues}
|
|
WHERE id NOT IN ($idstokeep)";
|
|
$DB->execute($sql);
|
|
}
|
|
|
|
// Going to be editing this table
|
|
$table = new xmldb_table('certificate_issues');
|
|
|
|
// Conditionally remove columns no longer needed
|
|
$field = new xmldb_field('studentname');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
$field = new xmldb_field('classname');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
$field = new xmldb_field('certdate');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
$field = new xmldb_field('reportgrade');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
$field = new xmldb_field('mailed');
|
|
if ($dbman->field_exists($table, $field)) {
|
|
$dbman->drop_field($table, $field);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2012060901, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2012072501) {
|
|
// Add a column to store the required grade
|
|
$table = new xmldb_table('certificate');
|
|
$requiredtimefield = new xmldb_field('requiredtime', XMLDB_TYPE_INTEGER, '10', null,
|
|
XMLDB_NOTNULL, null, '0', 'delivery');
|
|
|
|
if (!$dbman->field_exists($table, $requiredtimefield)) {
|
|
$dbman->add_field($table, $requiredtimefield);
|
|
}
|
|
|
|
// If this table still exists, then the install was from a 1.9 version
|
|
if ($dbman->table_exists('certificate_linked_modules')) {
|
|
// Now we need to loop through the restrictions in the certificate_linked_modules
|
|
// table and check if there were any required time conditions
|
|
if ($certlinks = $DB->get_records('certificate_linked_modules')) {
|
|
foreach ($certlinks as $link) {
|
|
// If the link id is '-1' then the setting applies to the time spent in the course
|
|
if ($link->linkid == '-1') {
|
|
// Make sure the certificate exists
|
|
if ($certificate = $DB->get_record('certificate', array('id' => $link->certificate_id))) {
|
|
$certificate->requiredtime = $link->linkgrade;
|
|
$DB->update_record('certificate', $certificate);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// We can now get rid of this table
|
|
$table = new xmldb_table('certificate_linked_modules');
|
|
$dbman->drop_table($table);
|
|
}
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2012072501, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2012082401) {
|
|
$table = new xmldb_table('certificate');
|
|
|
|
// Change length of the fields that store images, so longer image names can be stored
|
|
$field = new xmldb_field('borderstyle', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('printwmark', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('printsignature', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('printseal', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
// Change length of fields that are unnecessarily large
|
|
$field = new xmldb_field('printnumber', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, 0, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('printhours', XMLDB_TYPE_CHAR, '255', null, false, 0, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('emailteachers', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, 0, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('savecert', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, 0, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
$field = new xmldb_field('reportcert', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, 0, 0);
|
|
$dbman->change_field_precision($table, $field);
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2012082401, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2012090901) {
|
|
$table = new xmldb_table('certificate');
|
|
|
|
$field = new xmldb_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, 0, 0, 'printseal');
|
|
if (!$dbman->field_exists($table, $field)) {
|
|
$dbman->add_field($table, $field);
|
|
}
|
|
|
|
// Set the time created to the time modified
|
|
$sql = "UPDATE {certificate}
|
|
SET timecreated = timemodified";
|
|
$DB->execute($sql);
|
|
|
|
// Certificate savepoint reached
|
|
upgrade_mod_savepoint(true, 2012090901, 'certificate');
|
|
}
|
|
|
|
if ($oldversion < 2014081901) {
|
|
// Fix previous upgrades.
|
|
|
|
$table = new xmldb_table('certificate');
|
|
|
|
$field = new xmldb_field('borderstyle', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0, '0');
|
|
$dbman->change_field_default($table, $field);
|
|
|
|
$field = new xmldb_field('printwmark', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0, '0');
|
|
$dbman->change_field_default($table, $field);
|
|
|
|
$field = new xmldb_field('printhours', XMLDB_TYPE_CHAR, '255', null, false, 0, null);
|
|
$dbman->change_field_default($table, $field);
|
|
|
|
$field = new xmldb_field('printsignature', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0, '0');
|
|
$dbman->change_field_default($table, $field);
|
|
|
|
$field = new xmldb_field('printseal', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, 0, '0');
|
|
$dbman->change_field_default($table, $field);
|
|
|
|
// Certificate savepoint reached.
|
|
upgrade_mod_savepoint(true, 2014081901, 'certificate');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|