From 26dd535291e638d27868cfb2b7704d1895d88a82 Mon Sep 17 00:00:00 2001
From: SofianeLasri <alasri250@gmail.com>
Date: Wed, 11 Aug 2021 12:39:05 +0200
Subject: [PATCH] 12H38 - New init.php for extensions

---
 .../extensions/vbcms-filemanager/init.php     | 19 ++++---
 .../extensions/vbcms-loadingscreens/init.php  | 53 +++++++++----------
 .../extensions/vbcms-websiteSystem/init.php   | 17 +++---
 vbcms-core/classes.php                        | 13 +++--
 vbcms-core/defaultPages/404.php               | 15 +++---
 vbcms-core/defaultPages/ext404.php            | 15 +++---
 vbcms-core/defaultPages/index.php             | 15 +++---
 7 files changed, 72 insertions(+), 75 deletions(-)

diff --git a/vbcms-content/extensions/vbcms-filemanager/init.php b/vbcms-content/extensions/vbcms-filemanager/init.php
index 2f46705..c16c973 100644
--- a/vbcms-content/extensions/vbcms-filemanager/init.php
+++ b/vbcms-content/extensions/vbcms-filemanager/init.php
@@ -1,13 +1,12 @@
 <?php
-function enable($name, $path, $adminAccess, $clientAccess){
-    adminNavbarAddCategory($name, "gallery_medias");
-    adminNavbarAddItem($name, "fas fa-photo-video", "gallery_filemanager", "/browse");
-}
+if(isset($initCall)&&!empty($initCall)){
+    if($initCall[0]=="enable"){
+        adminNavbarAddCategory($this->name, "gallery_medias");
+        adminNavbarAddItem($this->name, "fas fa-photo-video", "gallery_filemanager", "/browse");
+    } elseif($initCall[0]=="disable"){
 
-function disable(){
-
-}
-
-function getSettingsHTML($params){
-    echo('<h5>C\'est bien la page du filemanager</h5>');
+    } elseif($initCall[0]=="getSettingsHTML"){
+        // $initCall[1] contient les paramètres
+        echo('<h5>C\'est bien la page du filemanager</h5>');
+    } 
 }
\ No newline at end of file
diff --git a/vbcms-content/extensions/vbcms-loadingscreens/init.php b/vbcms-content/extensions/vbcms-loadingscreens/init.php
index e9d5759..3071338 100644
--- a/vbcms-content/extensions/vbcms-loadingscreens/init.php
+++ b/vbcms-content/extensions/vbcms-loadingscreens/init.php
@@ -1,30 +1,29 @@
 <?php
-function enable($name, $path, $adminAccess, $clientAccess){
-    global $bdd;
-    adminNavbarAddCategory($name, "loadingscreens");
-    //adminNavbarAddItem($name, "fas fa-plus-circle", "create", "/create");
-    adminNavbarAddItem($name, "fas fa-list", "list", "/browse");
-    adminNavbarAddItem($name, "fas fa-brush", "themes", "/themes");
+if(isset($initCall)&&!empty($initCall)){
+    if($initCall[0]=="enable"){
+        adminNavbarAddCategory($name, "loadingscreens");
+        //adminNavbarAddItem($name, "fas fa-plus-circle", "create", "/create");
+        adminNavbarAddItem($name, "fas fa-list", "list", "/browse");
+        adminNavbarAddItem($name, "fas fa-brush", "themes", "/themes");
 
-    // On va créer les tables
-    if(!tableExist("vbcmsLoadingScreens_list")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_list` ( `identifier` VARCHAR(128) NOT NULL , `visibility` INT NOT NULL , `sequenceId` INT NULL DEFAULT NULL , `showName` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , PRIMARY KEY (`identifier`)) ENGINE = InnoDB;");
-    if(!tableExist("vbcmsLoadingScreens_themes")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_themes` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;");
-    if(!tableExist("vbcmsLoadingScreens_themesData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_themesData` ( `sequenceId` INT NOT NULL , `dataId` INT NOT NULL , `parentId` INT NULL DEFAULT NULL , `type` VARCHAR(128) NOT NULL , `data` JSON NOT NULL , PRIMARY KEY (`sequenceId`, `dataId`)) ENGINE = InnoDB;");
-    if(!tableExist("vbcmsLoadingScreens_tempThemesData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_tempThemesData` ( `sequenceId` INT NOT NULL , `dataId` INT NOT NULL , `parentId` INT NULL DEFAULT NULL , `type` VARCHAR(128) NOT NULL , `data` JSON NOT NULL , `date` DATETIME NOT NULL , PRIMARY KEY (`sequenceId`, `dataId`)) ENGINE = InnoDB;");
-    if(!tableExist("vbcmsLoadingScreens_clientsData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_clientsData` ( `identifier` VARCHAR(64) NOT NULL , `stringId` VARCHAR(32) NOT NULL , `data` JSON NOT NULL , PRIMARY KEY (`identifier`)) ENGINE = InnoDB;");
-    if(!tableExist("vbcmsLoadingScreens_previewTokens")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_previewTokens` ( `stringId` VARCHAR(32) NOT NULL , `lsId` INT NOT NULL , `expire` DATETIME NOT NULL , PRIMARY KEY (`stringId`)) ENGINE = InnoDB;");
-}
-
-function deleteData(){
-    global $bdd;
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_list');
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_themes');
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_themesData');
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_tempThemesData');
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_clientsData');
-    $bdd->query('DROP TABLE vbcmsLoadingScreens_previewTokens');
-}
-
-function getSettingsHTML($params){
-    echo('<h5>C\'est bien la page du créateur d\'écrans de chargement</h5>');
+        // On va créer les tables
+        if(!tableExist("vbcmsLoadingScreens_list")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_list` ( `identifier` VARCHAR(128) NOT NULL , `visibility` INT NOT NULL , `sequenceId` INT NULL DEFAULT NULL , `showName` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , PRIMARY KEY (`identifier`)) ENGINE = InnoDB;");
+        if(!tableExist("vbcmsLoadingScreens_themes")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_themes` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;");
+        if(!tableExist("vbcmsLoadingScreens_themesData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_themesData` ( `sequenceId` INT NOT NULL , `dataId` INT NOT NULL , `parentId` INT NULL DEFAULT NULL , `type` VARCHAR(128) NOT NULL , `data` JSON NOT NULL , PRIMARY KEY (`sequenceId`, `dataId`)) ENGINE = InnoDB;");
+        if(!tableExist("vbcmsLoadingScreens_tempThemesData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_tempThemesData` ( `sequenceId` INT NOT NULL , `dataId` INT NOT NULL , `parentId` INT NULL DEFAULT NULL , `type` VARCHAR(128) NOT NULL , `data` JSON NOT NULL , `date` DATETIME NOT NULL , PRIMARY KEY (`sequenceId`, `dataId`)) ENGINE = InnoDB;");
+        if(!tableExist("vbcmsLoadingScreens_clientsData")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_clientsData` ( `identifier` VARCHAR(64) NOT NULL , `stringId` VARCHAR(32) NOT NULL , `data` JSON NOT NULL , PRIMARY KEY (`identifier`)) ENGINE = InnoDB;");
+        if(!tableExist("vbcmsLoadingScreens_previewTokens")) $bdd->query("CREATE TABLE `vbcmsLoadingScreens_previewTokens` ( `stringId` VARCHAR(32) NOT NULL , `lsId` INT NOT NULL , `expire` DATETIME NOT NULL , PRIMARY KEY (`stringId`)) ENGINE = InnoDB;");
+    } elseif($initCall[0]=="disable"){
+        
+    } elseif($initCall[0]=="deleteData"){
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_list');
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_themes');
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_themesData');
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_tempThemesData');
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_clientsData');
+        $bdd->query('DROP TABLE vbcmsLoadingScreens_previewTokens');
+    } elseif($initCall[0]=="getSettingsHTML"){
+        // $initCall[1] contient les paramètres
+        echo('<h5>C\'est bien la page du créateur d\'écrans de chargement</h5>');
+    } 
 }
\ No newline at end of file
diff --git a/vbcms-content/extensions/vbcms-websiteSystem/init.php b/vbcms-content/extensions/vbcms-websiteSystem/init.php
index 90d3704..b8c9b63 100644
--- a/vbcms-content/extensions/vbcms-websiteSystem/init.php
+++ b/vbcms-content/extensions/vbcms-websiteSystem/init.php
@@ -1,12 +1,13 @@
 <?php
-function enable(){
+if(isset($initCall)&&!empty($initCall)){
+    if($initCall[0]=="enable"){
 
-}
+    } elseif($initCall[0]=="disable"){
 
-function disable($deleteData){
+    } elseif($initCall[0]=="deleteData"){
 
-}
-
-function getSettingsHTML($params){
-    echo('<h5>C\'est bien la page du module de site internet</h5>');
-}
+    } elseif($initCall[0]=="getSettingsHTML"){
+        // $initCall[1] contient les paramètres
+        echo('<h5>C\'est bien la page du module de site internet</h5>');
+    } 
+}
\ No newline at end of file
diff --git a/vbcms-core/classes.php b/vbcms-core/classes.php
index 7b25c8b..854f866 100644
--- a/vbcms-core/classes.php
+++ b/vbcms-core/classes.php
@@ -360,8 +360,8 @@ class module {
         else $this->workshopId = $workshopId;
 
         $bdd=$this->bdd;
+        $initCall[0] = "enable";
         include $GLOBALS['vbcmsRootPath'].'/vbcms-content/extensions/'.$this->path."/init.php"; // Le module appelé va se charger du reste
-        enable($name, $path, $adminAccess, $clientAccess);
         $query = $bdd->prepare("INSERT INTO `vbcms-activatedExtensions` (`name`, `type`, `path`, `adminAccess`, `clientAccess`, `vbcmsVerId`, `workshopId`) VALUES (?,?,?,?,?,?,?)");
         $query->execute([$name, "module", $path, $adminAccess, $clientAccess, $vbcmsVerId, $this->workshopId]);
     }
@@ -380,8 +380,8 @@ class module {
         }
 
         if($deleteData){ // L'utilisateur a demandé la suppression des données, on va alors demander à l'extension de le faire
+            $initCall[0] = "deleteData";
             include $GLOBALS['vbcmsRootPath'].'/vbcms-content/extensions/'.$this->path."/init.php";
-            deleteData();
         }
     }
 
@@ -396,8 +396,10 @@ class module {
 
     function getSettingsPage($parameters){
         $bdd=$this->bdd;
+        $initCall[0] = "getSettingsHTML";
+        $initCall[1] = $parameters;
         include $GLOBALS['vbcmsRootPath'].'/vbcms-content/extensions/'.$this->path."/init.php";
-        getSettingsHTML($parameters);
+        
     }
 
     function getTranslationFile($langCode){
@@ -433,4 +435,9 @@ class module {
             require $pageToInclude;
         }
     }
+
+    // Cette fonction permet de réucpérer la liste des permissions de l'extension
+    function getPermissions(){
+        echo 'test';
+    }
 }
diff --git a/vbcms-core/defaultPages/404.php b/vbcms-core/defaultPages/404.php
index 20e7b14..f2997d1 100644
--- a/vbcms-core/defaultPages/404.php
+++ b/vbcms-core/defaultPages/404.php
@@ -1,18 +1,15 @@
 <?php
-// Arrive si on charge la page seule, ce n'est pas censé arriver
-if(!isset(VBcmsGetSetting("websiteUrl"))){
-    if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
-    $url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
-    VBcmsGetSetting("websiteUrl") = $url["scheme"]."://".$url["host"]."/";
-} 
+if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
+$url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
+$websiteUrl = $url["scheme"]."://".$url["host"]."/";
 ?>
 <!DOCTYPE html>
 <html lang="fr">
 <head>
     <meta charset="utf-8">
 	<title>VBcms</title>
-    <link rel="icon" type="image/png" href="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png" />
-    <link rel="stylesheet" href="<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/fonts/fonts.css">
+    <link rel="icon" type="image/png" href="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png" />
+    <link rel="stylesheet" href="<?=$websiteUrl?>vbcms-admin/fonts/fonts.css">
 </head>
 <body>
     <style type="text/css">
@@ -60,7 +57,7 @@ if(!isset(VBcmsGetSetting("websiteUrl"))){
     </style>
     <div class="pageContent">
         <div class="vbcmsLogo">
-            <img src="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png">
+            <img src="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png">
             <div class="text">
                 <span>VBcms</span>
                 <span class="sub">Erreur 404: La page demandée n'existe pas</span>
diff --git a/vbcms-core/defaultPages/ext404.php b/vbcms-core/defaultPages/ext404.php
index 5e1fac7..a47864d 100644
--- a/vbcms-core/defaultPages/ext404.php
+++ b/vbcms-core/defaultPages/ext404.php
@@ -1,18 +1,15 @@
 <?php
-// Arrive si on charge la page seule, ce n'est pas censé arriver
-if(!isset(VBcmsGetSetting("websiteUrl"))){
-    if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
-    $url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
-    VBcmsGetSetting("websiteUrl") = $url["scheme"]."://".$url["host"]."/";
-} 
+if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
+$url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
+$websiteUrl = $url["scheme"]."://".$url["host"]."/";
 ?>
 <!DOCTYPE html>
 <html lang="fr">
 <head>
     <meta charset="utf-8">
 	<title>VBcms</title>
-    <link rel="icon" type="image/png" href="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png" />
-    <link rel="stylesheet" href="<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/fonts/fonts.css">
+    <link rel="icon" type="image/png" href="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png" />
+    <link rel="stylesheet" href="<?=$websiteUrl?>vbcms-admin/fonts/fonts.css">
 </head>
 <body>
     <style type="text/css">
@@ -60,7 +57,7 @@ if(!isset(VBcmsGetSetting("websiteUrl"))){
     </style>
     <div class="pageContent">
         <div class="vbcmsLogo">
-            <img src="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png">
+            <img src="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png">
             <div class="text">
                 <span>VBcms</span>
                 <span class="sub">Erreur 404: L'extension demandée n'existe pas</span>
diff --git a/vbcms-core/defaultPages/index.php b/vbcms-core/defaultPages/index.php
index fb5d325..4f424c7 100644
--- a/vbcms-core/defaultPages/index.php
+++ b/vbcms-core/defaultPages/index.php
@@ -1,18 +1,15 @@
 <?php
-// Arrive si on charge la page seule, ce n'est pas censé arriver
-if(!isset(VBcmsGetSetting("websiteUrl"))){
-    if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
-    $url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
-    VBcmsGetSetting("websiteUrl") = $url["scheme"]."://".$url["host"]."/";
-} 
+if(isset($_SERVER['HTTPS'])) $http = "https"; else $http = "http";
+$url = parse_url("$http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
+$websiteUrl = $url["scheme"]."://".$url["host"]."/";
 ?>
 <!DOCTYPE html>
 <html lang="fr">
 <head>
     <meta charset="utf-8">
 	<title>VBcms</title>
-    <link rel="icon" type="image/png" href="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png" />
-    <link rel="stylesheet" href="<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/fonts/fonts.css">
+    <link rel="icon" type="image/png" href="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png" />
+    <link rel="stylesheet" href="<?=$websiteUrl?>vbcms-admin/fonts/fonts.css">
 </head>
 <body>
     <style type="text/css">
@@ -60,7 +57,7 @@ if(!isset(VBcmsGetSetting("websiteUrl"))){
     </style>
     <div class="pageContent">
         <div class="vbcmsLogo">
-            <img src="https://vbcms.net/vbcms-content/uploads/vbcms-logo/raccoon-in-box-512x.png">
+            <img src="<?=$websiteUrl?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png">
             <div class="text">
                 <span>VBcms</span>
                 <span class="sub">Aucun index de configuré</span>
-- 
GitLab