diff --git a/classes/class.ilMultiVcConfig.php b/classes/class.ilMultiVcConfig.php index b5f59505..3ca25e77 100755 --- a/classes/class.ilMultiVcConfig.php +++ b/classes/class.ilMultiVcConfig.php @@ -1354,7 +1354,15 @@ public static function removeUnsafeChars(string $value): string return trim($value); } + public static function hasConnectionType(string $showcontent): bool + { + global $DIC; + $ilDB = $DIC->database(); + $result = $ilDB->query("SELECT showcontent FROM rep_robj_xmvc_conn where showcontent = " . $ilDB->quote($showcontent, 'text')); + $row = $ilDB->fetchAssoc($result); + return !(null === $row); + } diff --git a/classes/class.ilMultiVcPlugin.php b/classes/class.ilMultiVcPlugin.php index d4648754..3fa6bc46 100755 --- a/classes/class.ilMultiVcPlugin.php +++ b/classes/class.ilMultiVcPlugin.php @@ -68,7 +68,10 @@ public function handleEvent(string $a_component, string $a_event, array $a_param { global $DIC; + if (!ilMultiVcConfig::hasConnectionType('teams')) { return ; } + $logger = $DIC->logger()->root(); + $tree = $DIC->repositoryTree(); switch ($a_component) { case "Modules/Course": @@ -78,6 +81,8 @@ public function handleEvent(string $a_component, string $a_event, array $a_param foreach ($ref_ids as $ref_id) { $logger->debug('MultiVc: ' . $a_event . ' for RefId = ' . $ref_id . ' and UserId = ' . $a_parameter['usr_id']); + if ($tree->isDeleted($ref_id)) { continue; } + //todo cache? $xmvc_ref_ids = $DIC->repositoryTree()->getSubTree( $DIC->repositoryTree()->getNodeData($ref_id),