From 9ad5cff41f80b2ceb028fec754acc1f1cf847b63 Mon Sep 17 00:00:00 2001 From: Mihail Geshoski Date: Wed, 9 Oct 2019 11:15:28 +0800 Subject: [PATCH] MDL-65515 badges: Split install/upgrade Use badges/upgradelib.php for functions that only affect install/upgrade. All credit goes to Damyon Wiese. --- badges/upgradelib.php | 65 +++++++++++++++++++++++++++++++++++++++++++ lib/badgeslib.php | 39 -------------------------- lib/db/install.php | 2 +- lib/db/upgrade.php | 2 +- 4 files changed, 67 insertions(+), 41 deletions(-) create mode 100644 badges/upgradelib.php diff --git a/badges/upgradelib.php b/badges/upgradelib.php new file mode 100644 index 00000000000..d1acd8ba05b --- /dev/null +++ b/badges/upgradelib.php @@ -0,0 +1,65 @@ +. + +/** + * Contains upgrade and install functions for badges. + * + * @package core_badges + * @copyright 2019 Damyon Wiese + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Called on install or upgrade to create default list of backpacks a user can connect to. + * Don't use the global defines from badgeslib because this is for install/upgrade. + * + * @return void + */ +function badges_install_default_backpacks() { + global $DB; + + $record = new stdClass(); + $record->backpackweburl = 'https://backpack.openbadges.org'; + $record->backpackapiurl = 'https://backpack.openbadges.org'; + $record->apiversion = 1; + $record->sortorder = 0; + $record->password = ''; + + if (!($bp = $DB->get_record('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl)))) { + $bpid = $DB->insert_record('badge_external_backpack', $record); + } else { + $bpid = $bp->id; + } + set_config('badges_site_backpack', $bpid); + + // All existing backpacks default to V1. + $DB->set_field('badge_backpack', 'externalbackpackid', $bpid); + + $record = new stdClass(); + $record->backpackapiurl = 'https://api.badgr.io/v2'; + $record->backpackweburl = 'https://badgr.io'; + $record->apiversion = 2; + $record->sortorder = 1; + $record->password = ''; + + if (!$DB->record_exists('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl))) { + $DB->insert_record('badge_external_backpack', $record); + } + +} + diff --git a/lib/badgeslib.php b/lib/badgeslib.php index 986e503f80e..645062e0a58 100644 --- a/lib/badgeslib.php +++ b/lib/badgeslib.php @@ -856,45 +856,6 @@ function badges_get_badge_api_versions() { ]; } -/** - * Called on install or upgrade to create default list of backpacks a user can connect to. - * - * @return void - */ -function badges_install_default_backpacks() { - global $DB; - - $record = new stdClass(); - $record->backpackweburl = BADGE_BACKPACKWEBURL; - $record->backpackapiurl = BADGE_BACKPACKAPIURL; - $record->apiversion = OPEN_BADGES_V1; - $record->sortorder = 0; - $record->password = ''; - - $bpid = 0; - if (!($bp = $DB->get_record('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl)))) { - $bpid = $DB->insert_record('badge_external_backpack', $record); - } else { - $bpid = $bp->id; - } - set_config('badges_site_backpack', $bpid); - - // All existing backpacks default to V1. - $DB->set_field('badge_backpack', 'externalbackpackid', $bpid); - - $record = new stdClass(); - $record->backpackapiurl = BADGRIO_BACKPACKAPIURL; - $record->backpackweburl = BADGRIO_BACKPACKWEBURL; - $record->apiversion = OPEN_BADGES_V2; - $record->sortorder = 1; - $record->password = ''; - - if (!$DB->record_exists('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl))) { - $DB->insert_record('badge_external_backpack', $record); - } - -} - /** * Get the default issuer for a badge from this site. * diff --git a/lib/db/install.php b/lib/db/install.php index 71f216ee649..be9692da0f3 100644 --- a/lib/db/install.php +++ b/lib/db/install.php @@ -321,6 +321,6 @@ function xmldb_main_install() { make_default_scale(); make_competence_scale(); - require_once($CFG->libdir . '/badgeslib.php'); + require_once($CFG->dirroot . '/badges/upgradelib.php'); // Core install and upgrade related functions only for badges. badges_install_default_backpacks(); } diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 5ab80e90dd7..bdfec17d893 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3361,7 +3361,7 @@ function xmldb_main_upgrade($oldversion) { } // Add default backpacks. - require_once($CFG->libdir.'/badgeslib.php'); // Core Upgrade-related functions for badges only. + require_once($CFG->dirroot . '/badges/upgradelib.php'); // Core install and upgrade related functions only for badges. badges_install_default_backpacks(); // Main savepoint reached.