MDL-80950 external: Fix PHP deprecated error for explode()

This patch fixes the following error:
PHP Deprecated:  explode(): Passing null to parameter #2 ($string)
of type string is deprecated in lib/upgradelib.php on line 1299
This commit is contained in:
Sara Arjona 2024-02-15 10:13:02 +01:00
parent d3ad77e476
commit fc191c76c6
No known key found for this signature in database

View file

@ -1296,7 +1296,9 @@ function external_update_descriptions($component) {
if ($dbfunction->services != $functionservices) {
// Now, we need to check if services were removed, in that case we need to remove the function from them.
$servicesremoved = array_diff(explode(",", $dbfunction->services), explode(",", $functionservices));
$oldservices = $dbfunction->services ? explode(',', $dbfunction->services) : [];
$newservices = $functionservices ? explode(',', $functionservices) : [];
$servicesremoved = array_diff($oldservices, $newservices);
foreach ($servicesremoved as $removedshortname) {
if ($externalserviceid = $DB->get_field('external_services', 'id', array("shortname" => $removedshortname))) {
$DB->delete_records('external_services_functions', array('functionname' => $dbfunction->name,