From f169f4fd21a76784b55344b1b920885e2c46d634 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 9 Nov 2017 12:53:07 +0800 Subject: [PATCH] MDL-60752 lti: Compare text in types_config properly --- mod/lti/backup/moodle1/lib.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/mod/lti/backup/moodle1/lib.php b/mod/lti/backup/moodle1/lib.php index ce7f46688d1..841eb28ca7d 100644 --- a/mod/lti/backup/moodle1/lib.php +++ b/mod/lti/backup/moodle1/lib.php @@ -85,10 +85,20 @@ class moodle1_mod_lti_handler extends moodle1_mod_handler { $ignorefields = array('id', 'modtype'); if (!$DB->record_exists('lti_types', array('id' => $data['typeid']))) { - $ntypeid = $DB->get_field('lti_types_config', - 'typeid', - array('name' => 'toolurl', 'value' => $data['toolurl']), - IGNORE_MULTIPLE); + $ntypeid = false; + $toolurls = $DB->get_records_select( + 'lti_types_config', + "name = 'toolurl' AND " . $DB->sql_compare_text('value', 256) . ' = ' . $DB->sql_compare_text('?', 256), + [$data['toolurl']], + '', + 'id, value' + ); + foreach ($toolurls as $id => $value) { + if ($value == $data['toolurl']) { + $ntypeid = $id; + break; + } + } if ($ntypeid === false) { $ntypeid = $DB->get_field('lti_types_config', 'typeid',