From 3fb989eebb7db40284cd8d9b023b1b2758260fd8 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 1 Jul 2022 15:02:02 +0000
Subject: [PATCH] make class ContentModule and method readData abstract (and
 fix constructor...

Closes #1252

Merge request studip/studip!767
---
 lib/elearning/ContentModule.class.php        |  9 +++++++--
 lib/elearning/Ilias3ContentModule.class.php  |  2 +-
 lib/elearning/LonCapaContentModule.class.php |  2 +-
 lib/elearning/PmWikiContentModule.class.php  | 14 +++++++-------
 4 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/lib/elearning/ContentModule.class.php b/lib/elearning/ContentModule.class.php
index 64ce29ba7fc..1b2921bdefb 100644
--- a/lib/elearning/ContentModule.class.php
+++ b/lib/elearning/ContentModule.class.php
@@ -15,8 +15,13 @@
 * @module       ContentModule
 * @package  ELearning-Interface
 */
-class ContentModule
+abstract class ContentModule
 {
+    /**
+     * Fetches data from conencted cms.
+     */
+    abstract function readData();
+
     var $id;
     var $title;
     var $module_type;
@@ -41,7 +46,7 @@ class ContentModule
     * @param string $module_type module-type
     * @param string $cms_type system-type
     */
-    function __construct($module_id = "", $module_type, $cms_type)
+    function __construct($module_id, $module_type, $cms_type)
     {
         global $connected_cms;
 
diff --git a/lib/elearning/Ilias3ContentModule.class.php b/lib/elearning/Ilias3ContentModule.class.php
index 1304c6cfd0b..95b2f8fd88f 100644
--- a/lib/elearning/Ilias3ContentModule.class.php
+++ b/lib/elearning/Ilias3ContentModule.class.php
@@ -28,7 +28,7 @@ class Ilias3ContentModule extends ContentModule
     * @param string $module_type module-type
     * @param string $cms_type system-type
     */
-    function __construct($module_id = "", $module_type, $cms_type)
+    function __construct($module_id, $module_type, $cms_type)
     {
         parent::__construct($module_id, $module_type, $cms_type);
         if ($module_id != "")
diff --git a/lib/elearning/LonCapaContentModule.class.php b/lib/elearning/LonCapaContentModule.class.php
index 70976cc6ab1..0f16cd09acf 100644
--- a/lib/elearning/LonCapaContentModule.class.php
+++ b/lib/elearning/LonCapaContentModule.class.php
@@ -25,7 +25,7 @@ class LonCapaContentModule extends ContentModule
      * @param string $module_type
      * @param string $cms_type
      */
-    public function __construct($module_id = "", $module_type, $cms_type)
+    public function __construct($module_id, $module_type, $cms_type)
     {
         $this->lcRequest = new LonCapaRequest();
         $this->cmsUrl = $GLOBALS['ELEARNING_INTERFACE_MODULES'][$cms_type]['ABSOLUTE_PATH_ELEARNINGMODULES'];
diff --git a/lib/elearning/PmWikiContentModule.class.php b/lib/elearning/PmWikiContentModule.class.php
index e16756a2d80..061dbd38b5e 100644
--- a/lib/elearning/PmWikiContentModule.class.php
+++ b/lib/elearning/PmWikiContentModule.class.php
@@ -17,7 +17,7 @@
 
 /**
 *
-* This class contains methods to handle PmWiki learning modules 
+* This class contains methods to handle PmWiki learning modules
 *
 * @author   Marco Diedrich <mdiedric@uos.de>
 * @access   public
@@ -32,19 +32,19 @@ class PmWikiContentModule extends ContentModule
     /**
     * constructor
     *
-    * init class. 
+    * init class.
     * @access public
     * @param string $module_id module-id
     * @param string $module_type module-type
     * @param string $cms_type system-type
-    */ 
+    */
 
-    function __construct($module_id = "", $module_type, $cms_type)
+    function __construct($module_id, $module_type, $cms_type)
     {
         parent::__construct($module_id, $module_type, $cms_type);
         $this->link = $GLOBALS['connected_cms'][$this->cms_type]->ABSOLUTE_PATH_ELEARNINGMODULES.$this->id."/";
-        $this->client = WebserviceClient::instance( $this->link. '?' . 
-                                                    $GLOBALS['ELEARNING_INTERFACE_MODULES'][$this->cms_type]['URL_PARAMS'], 
+        $this->client = WebserviceClient::instance( $this->link. '?' .
+                                                    $GLOBALS['ELEARNING_INTERFACE_MODULES'][$this->cms_type]['URL_PARAMS'],
                                                     $GLOBALS['ELEARNING_INTERFACE_MODULES'][$this->cms_type]['WEBSERVICE_CLASS']);
     }
 
@@ -98,7 +98,7 @@ class PmWikiContentModule extends ContentModule
         if ($authorized)
         {
             return true;
-        } else 
+        } else
         {
             # old authorization
             if (is_array($this->accepted_users) && in_array($username, $this->accepted_users))
-- 
GitLab