diff --git a/vbcms-content/modules/vbcms-loadingscreen/admin/create.php b/vbcms-content/modules/vbcms-loadingscreen/admin/create.php
new file mode 100644
index 0000000000000000000000000000000000000000..c8f4de7fc44b8a9869ec26076bda08c750515cd7
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/admin/create.php
@@ -0,0 +1,117 @@
+<?php
+$loadingScreenId = $bdd->query("SELECT COUNT(*) FROM `vbcms-loadingscreeens`")->fetchColumn() + 1;
+?>
+<!-- Contenu -->
+<div class="page-content" leftSidebar="240" rightSidebar="0">
+	<h3><?=$translation["loadingscreen_create"]?></h3>
+	<p>Vous pouvez créer plusieurs écrans de chargement.</p>
+	<div class="d-flex flex-column width-50em" id="page-content">
+		<h5>Prévisualisation</h5>
+		<div class="loadsingScreenPreviewTop rounded d-flex p-2 justify-content-center">
+				<div class="loadingScreenPreview rounded" style="background-image: url('https://api.apiflash.com/v1/urltoimage?access_key=65e037cb81b44087ba537b58dd19e4ff&format=jpeg&height=1080&quality=80&response_type=image&url=<?php echo urlencode($websiteUrl."loadingscreen/".$loadingScreenId."?preview"); ?>&width=1920');"></div>
+		</div>
+
+		<h5 class="mt-5">Paramètres</h5>
+		
+		<form class="needs-validation" novalidate>
+			<div class="form-group">
+				<label>Nom de l'écran de chargement</label>
+				<input type="text" name="name" class="form-control" value="<?= $_GET["name"] ?? '' ?>" placeholder="Un super écran de chargement" required>
+				<div class="valid-feedback">
+					Nickel!
+				</div>
+				<div class="invalid-feedback">
+					Veuillez donner un nom à l'écran de chargement.
+				</div>
+			</div>
+
+			<label>Images de fond</label>
+
+			<div class="form-row">
+
+				<div class="col-md-6 mb-3">
+					<input type="text" id="backgroundPics" name="backgroundPics" class="form-control" value="<?= $_GET["backgroundPics"] ?? '[]' ?>" required readonly>
+					<div class="valid-feedback">
+						Nickel!
+					</div>
+					<div class="invalid-feedback">
+						Veuillez choisir des images de fond
+					</div>
+				</div>
+				<div class="col-md-6 mb-3">
+					<button type="button" onclick="openGallery('backgroundPics')" id="chooseBackgroundPics" class="btn btn-brown">Choisir des images</button>
+				</div>
+					
+				
+			</div>
+			<button type="submit" name="submit" class="btn btn-brown">Créer l'écran de chargement</button>
+		</form>
+
+	</div>
+</div>
+
+<div class="modal fade" id="galleryModal" tabindex="-1">
+		<div class="modal-dialog galleryIncludeModal">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="exampleModalLabel">Choisir une image</h5>
+					<button type="button" class="close" data-dismiss="modal" aria-label="Close">
+						<span aria-hidden="true">&times;</span>
+					</button>
+				</div>
+
+				<!-- C'est ici que la galerie est incluse -->
+				<div class="modal-body">
+					<div id="alertContainer">
+						
+					</div>
+					<div id="includeGallery"></div>
+				</div>
+			</div>
+		</div>
+	</div>
+
+<script type="text/javascript">
+	var element = "";
+	(function() {
+		'use strict';
+		window.addEventListener('load', function() {
+		    // Fetch all the forms we want to apply custom Bootstrap validation styles to
+		    var forms = document.getElementsByClassName('needs-validation');
+		    // Loop over them and prevent submission
+		    var validation = Array.prototype.filter.call(forms, function(form) {
+		    	form.addEventListener('submit', function(event) {
+		    		if (form.checkValidity() === false) {
+		    			event.preventDefault();
+		          		event.stopPropagation();
+		       		}
+		        	form.classList.add('was-validated');
+		      	}, false);
+		    });
+	  	}, false);
+	})();
+
+	function openGallery(element){
+		$('#galleryModal').modal('toggle');
+		if ($('#includeGallery').html()=="")
+			$('#includeGallery').load('<?=$websiteUrl?>vbcms-content/modules/vbcms-filemanager/admin/gallery-include.php');
+		element = this.element;
+	}
+
+	// Contournement pour ne sélectionner que les images
+	function openViewer(path){
+		$("#websiteLogoPreview").css("background", "url(\"<?=$websiteUrl?>vbcms-content/uploads"+path+"\"),linear-gradient(180deg, rgba(65,65,65,1) 0%, rgba(1,1,1,1) 100%)");
+		$("#websiteLogo").val("<?=$websiteUrl?>vbcms-content/uploads"+path);
+		$('#galleryModal').modal('hide');
+	}
+	function openVideo(path){
+		$('#alertContainer').html("\
+			<div id=\"fileChooseAlert\" class=\"alert alert-warning alert-dismissible fade show\" role=\"alert\">\
+						<strong>Désolé,</strong> mais le fichier sélectionné ne semble pas être une image. :/\
+						<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\
+							<span aria-hidden=\"true\">&times;</span>\
+						</button>\
+					</div>\
+			");
+	}
+</script>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/admin/list.php b/vbcms-content/modules/vbcms-loadingscreen/admin/list.php
new file mode 100644
index 0000000000000000000000000000000000000000..ce024c56ca3c898008d0339549b6c85ee62c1405
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/admin/list.php
@@ -0,0 +1,36 @@
+<!-- Contenu -->
+<div class="page-content" leftSidebar="240" rightSidebar="0">
+	<h3><?=$translation["loadingscreens_list"]?></h3>
+	<p></p>
+	<div class="d-flex flex-column" id="page-content">
+		<div class="d-flex flex-wrap">
+			<div class="ld-card border rounded mx-1 my-1" style="background-image: url('https://sofianelasri.mtxserv.com/vbcms-content/uploads/stayonline.jpg');">
+				<div class="ld-card-content p-2">
+					<span><strong>Un super loading screen</strong></span>
+					<a href="#" class="btn btn-sm btn-brown float-right">Modifier</a>
+				</div>
+			</div>
+
+			<div class="ld-card border rounded mx-1 my-1" style="background-image: url('https://sofianelasri.mtxserv.com/vbcms-content/uploads/doubleload.jpg');">
+				<div class="ld-card-content p-2">
+					<span><strong>Un super loading screen</strong></span>
+					<a href="#" class="btn btn-sm btn-brown float-right">Modifier</a>
+				</div>
+			</div>
+
+			<div class="ld-card border rounded mx-1 my-1" style="background-image: url('https://sofianelasri.mtxserv.com/vbcms-content/uploads/themeTopImage.jpg');">
+				<div class="ld-card-content p-2">
+					<span><strong>Un super loading screen</strong></span>
+					<a href="#" class="btn btn-sm btn-brown float-right">Modifier</a>
+				</div>
+			</div>
+
+			<div class="ld-card border rounded mx-1 my-1" style="background-image: url('https://sofianelasri.mtxserv.com/vbcms-content/uploads/scp2.jpg');">
+				<div class="ld-card-content p-2">
+					<span><strong>Un super loading screen</strong></span>
+					<a href="#" class="btn btn-sm btn-brown float-right">Modifier</a>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/admin/themes.php b/vbcms-content/modules/vbcms-loadingscreen/admin/themes.php
new file mode 100644
index 0000000000000000000000000000000000000000..88662a70d6902039cdad8c90f447b32742630f3c
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/admin/themes.php
@@ -0,0 +1,24 @@
+<!-- Contenu -->
+<div class="page-content" leftSidebar="240" rightSidebar="0">
+	<h3><?=$translation["loadingscreens_themes"]?></h3>
+	<p>Les thèmes de VBcms 1 ont été portés.</p>
+	<div class="d-flex flex-column" id="page-content">
+		<div class="d-flex flex-wrap">
+			<?php
+			$themes = $bdd->query("SELECT * FROM `vbcms-themes` WHERE designedFor = 6")->fetchAll(PDO::FETCH_ASSOC);
+			foreach ($themes as $theme) {
+				$themePath = $GLOBALS['vbcmsRootPath']."/vbcms-content/themes".$theme['path'];
+				$themeInfos = json_decode(file_get_contents($themePath."/theme.json") ,true);
+				echo '
+				<div class="ld-card border rounded" style="background-image: url(\''.$GLOBALS['websiteUrl']."/vbcms-content/themes".$theme['path'].'/themeLargePic.jpg\');">
+					<div class="ld-card-content p-2">
+						<span><strong>'.$themeInfos['showname'].'</strong></span>
+						<a href="/create?themeId='.$themeInfos['workshopId'].'" class="btn btn-sm btn-brown float-right">Choisir</a>
+					</div>
+				</div>';
+			}
+			?>
+		</div>
+		
+	</div>
+</div>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/assets/css/admin.css b/vbcms-content/modules/vbcms-loadingscreen/assets/css/admin.css
new file mode 100644
index 0000000000000000000000000000000000000000..dcc09c42b28fe65e747b0d9a49ca65d71571caca
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/assets/css/admin.css
@@ -0,0 +1,25 @@
+.ld-card{
+	position: relative;
+	width: 27em;
+	height: 15em;
+	background-color: #dadada;
+	overflow: hidden;
+	background-size: cover;
+}
+.ld-card-content{
+	position: absolute;
+	width: 100%;
+	bottom: 0;
+	background: linear-gradient(0deg, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75));
+	color: white;
+}
+.loadsingScreenPreviewTop {
+	width: 100%;
+	background-color: var(--mainBrown);
+}
+.loadingScreenPreview{
+	position: relative;
+	width: 34em;
+	height: 19em;
+	background-size: cover;
+}
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/back.php b/vbcms-content/modules/vbcms-loadingscreen/back.php
new file mode 100644
index 0000000000000000000000000000000000000000..b54924098c58e1f032e58eadec16a54a7c535ddb
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/back.php
@@ -0,0 +1,13 @@
+<?php
+switch ($language) {
+    case "FR":
+        include $_SERVER['DOCUMENT_ROOT'].'/vbcms-content/modules/vbcms-loadingscreen/includes/translations/FR.php';
+        break;
+    case "EN":
+        include $_SERVER['DOCUMENT_ROOT'].'/vbcms-content/modules/vbcms-loadingscreen/includes/translations/EN.php';
+        break;
+    default:
+    	include $_SERVER['DOCUMENT_ROOT'].'/vbcms-content/modules/vbcms-loadingscreen/includes/translations/FR.php';
+        break;
+}
+?>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/client/index.php b/vbcms-content/modules/vbcms-loadingscreen/client/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..9d38d56350233b21bad73e57c281ec08fa0699d9
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/client/index.php
@@ -0,0 +1,3 @@
+<?php
+print_r($GLOBALS['params']);
+echo "string";
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/includes/admin-functions.php b/vbcms-content/modules/vbcms-loadingscreen/includes/admin-functions.php
new file mode 100644
index 0000000000000000000000000000000000000000..b7ec8abb378cdaf6b2f82fdfda7a15a4ef4d72cf
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/includes/admin-functions.php
@@ -0,0 +1,359 @@
+<?php
+function getSizeName($numOctets){
+    // Array contenant les differents unités 
+    $unite = array('octet','ko','mo','go');
+    
+    if ($numOctets < 1000){
+        return $numOctets.$unite[0];
+    } else {
+        if ($numOctets < 1000000){
+            $ko = round($numOctets/1024,2);
+            return $ko.$unite[1];
+        } else {
+            if ($numOctets < 1000000000){
+                $mo = round($numOctets/(1024*1024),2);
+                return $mo.$unite[2];
+            } else{ //Normalement on est pas censé attendre le Gigaoctet sur VBcms -> /!\ int 32bit = 2Go
+                $go = round($numOctets/(1024*1024*1024),2);
+                return $go.$unite[3];    
+            }
+        }
+    }
+}
+
+function getFolderContent($dir, $type) {
+    global $uploadFolderPath, $bdd;
+
+    if (substr($dir, -1)=="/") {
+        $dir=substr($dir, 0, -1);
+    }
+
+    $results = array();
+
+    $response = $bdd->prepare("SELECT * FROM `vbcms-folders` WHERE fullpath = ?");
+    $response->execute([$dir]);
+    if (empty($response->fetch())) {
+        $response = $bdd->prepare("INSERT INTO `vbcms-folders` (id, name, fullpath) VALUES (?,?,?)");
+        $response->execute([null, basename($dir), $dir]);
+    }
+
+    if (strpos($dir, $uploadFolderPath)===false){ //Si le chemin complet n'est pas déjà indiqué
+        $fullDir = $uploadFolderPath.$dir;
+    } else {
+        $fullDir = $dir;
+    }
+
+    if (substr($dir, -1)=="/") {// Permet de check si le dossier a un / à la fin
+                                // A MODIFIER CAR CA SERT A RIEN
+        $directorySeparator="";
+    }else{
+        $directorySeparator="/";
+    }
+
+    $files = scandir($fullDir);
+    if ($type == 0){ // Liste tout récursivement
+        foreach ($files as $key => $value) {
+            $path = $fullDir.$directorySeparator.$value;
+            if (!is_dir($path)) {
+                $results[] = $path;
+            } else if ($value != "." && $value != "..") {
+                $results[] = $path;
+                $results=array_merge($results, getFolderContent($path, 0));
+            }
+        }
+    } elseif ($type == 1) { // liste les fichiers et dossiers
+        foreach ($files as $key => $value) {
+            $path = $fullDir.$directorySeparator.$value;
+            if (!is_dir($path)) {
+                $securePath = str_replace($uploadFolderPath, "", $path);
+                $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+                $response->execute([$dir]);
+                $parentId = $response->fetch();
+
+                //Cherche si le fichier est déjà indexé
+                $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du dossier parent
+                $response->execute([$parentId[0], basename($securePath)]);
+
+                if (empty($response->fetch())){
+                    $response = $bdd->prepare("INSERT INTO `vbcms-files` (id, name, parentFolder, size, title, description, articles) VALUES (?,?,?,?,?,?,?)");
+                    $response->execute([null, basename($securePath), $parentId[0], filesize($path), "", "", "[]"]);
+                }
+
+                $results[] = $path;
+            } else if ($value != "." && $value != "..") {
+                $results[] = $path;
+            }
+        }
+    } elseif ($type == 2) { //Liste uniquement les dossiers
+        foreach ($files as $key => $value) {
+            $path = $fullDir.$directorySeparator.$value;
+            if (is_dir($path) && $value != "." && $value != "..") {
+                $results[] = $path;
+            }
+        }
+    } elseif ($type == 3) { //Liste uniquement les fichiers
+        foreach ($files as $key => $value) {
+            $path = $fullDir.$directorySeparator.$value;
+            if (!is_dir($path)) {
+                $securePath = str_replace($uploadFolderPath, "", $path);
+                $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+                $response->execute([$dir]);
+                $parentId = $response->fetch();
+
+                //Cherche si le fichier est déjà indexé
+                $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du dossier parent
+                $response->execute([$parentId[0], basename($securePath)]);
+
+                if (empty($response->fetch())){
+                    $response = $bdd->prepare("INSERT INTO `vbcms-files` (id, name, parentFolder, size, title, description, articles) VALUES (?,?,?,?,?,?,?)");
+                    $response->execute([null, basename($securePath), $parentId[0], filesize($path), "", "", "[]"]);
+                }
+
+                $results[] = $path;
+            }
+        }
+    }
+
+    for ($i=0;$i<count($results);$i++) { 
+        $results[$i]=str_replace($uploadFolderPath, "", $results[$i]);
+    }
+    
+    return $results;
+}
+
+function deleteContent($path, $alreadyFullPath){
+    global $uploadFolderPath, $bdd;
+    if ($alreadyFullPath) {
+        $fullPath = $path;
+    } else {
+        $fullPath = $uploadFolderPath.$path;
+    }
+    
+    $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier
+    $response->execute([$path]);
+    $folderId = $response->fetch();
+
+    if (is_dir($fullPath)) {
+        //echo "Suppression du dossier";
+        $scan = getFolderContent($path, 0);
+        foreach ($scan as $element) {
+            if (strpos($element, $uploadFolderPath)===false) { //S'il ne s'agit pas du chemin d'accès complet
+                $element = $uploadFolderPath.$element; //Je le créé
+            }
+            
+            if (is_dir($element)) {
+                deleteContent($element, true);
+            } else {
+                if (unlink($element)) { //Supprime le fichier et vérifie que c'est bon
+                    $response = $bdd->prepare("DELETE FROM `vbcms-files` WHERE parentFolder = ?");
+                    $response->execute([$folderId[0]]);
+                } else {
+                    echo "Impossible de supprimer le fichier";
+                }
+            }
+        }
+
+        if (rmdir($fullPath)) { //Supprime le dossier et vérifie que c'est bon
+            $response = $bdd->prepare("DELETE FROM `vbcms-folders` WHERE id = ?");
+            $response->execute([$folderId[0]]);
+        } else {
+            echo "Impossible de supprimer le dossier";
+        }
+    } else {
+        //echo "Suppression du fichier";
+        if (unlink($fullPath)) { //Supprime le fichier et vérifie que c'est bon
+            $response = $bdd->prepare("DELETE FROM `vbcms-files` WHERE parentFolder = ?");
+            $response->execute([$folderId[0]]);
+        } else {
+            echo "Impossible de supprimer le fichier";
+        }
+    }
+}
+
+function getFileDetails($filePath){ //string ou id
+    global $uploadFolderPath, $bdd;
+    $details = array();
+    if (!is_numeric($filePath)) {
+        array_push($details, basename($filePath)); //Ajoute le nom du fichier
+        array_push($details, getSizeName(filesize($uploadFolderPath.$filePath))); //Ajoute la taille du fichier en questions
+
+        if (filemtime($uploadFolderPath.$filePath)!=false) {
+            array_push($details, date("F d Y H:i:s.", filemtime($uploadFolderPath.$filePath))); //Ajout de la date de modification
+        }else{
+            array_push($details, "Date inconnue");
+        }
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+        $response->execute([dirname($filePath)]);
+        $parentId = $response->fetch();
+
+        $response = $bdd->prepare("SELECT * FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du dossier parent
+        $response->execute([$parentId[0], basename($filePath)]);
+        $response = $response->fetch(PDO::FETCH_ASSOC);
+        array_push($details, $response["title"]);
+        array_push($details, $response["description"]);
+        array_push($details, $response["id"]);
+        array_push($details, $filePath);
+    }else{
+        $response = $bdd->prepare("SELECT * FROM `vbcms-files` WHERE id = ?"); // Je récupère l'id du dossier parent
+        $response->execute([$filePath]);
+        $response = $response->fetch(PDO::FETCH_ASSOC);
+        $parentId = $response["parentFolder"];
+        $filename = $response["name"];
+        array_push($details, $response["name"]); //Ajoute le nom du fichier
+        array_push($details, getSizeName($response["size"])); //Ajoute la taille du fichier en questions
+
+        $response2 = $bdd->prepare("SELECT * FROM `vbcms-folders` WHERE id = ?"); // Je récupère le fullpath
+        $response2->execute([$parentId]);
+        $response2 = $response2->fetch(PDO::FETCH_ASSOC);
+
+        if (filemtime($uploadFolderPath.$response2["fullpath"]."/".$filename)!=false) {
+            array_push($details, date("F d Y H:i:s.", filemtime($uploadFolderPath.$response2["fullpath"]."/".$filename))); //Ajout de la date de modification
+        }else{
+            array_push($details, "Date inconnue");
+        }
+        array_push($details, $response["title"]);
+        array_push($details, $response["description"]);
+        array_push($details, $response["id"]);
+
+        $response = $bdd->prepare("SELECT * FROM `vbcms-folders` WHERE id = ?"); // Je récupère le fullpath
+        $response->execute([$parentId]);
+        $response = $response->fetch(PDO::FETCH_ASSOC);
+        array_push($details, $response2["fullpath"]."/".$filename);
+    }
+    
+    return $details;
+}
+
+function getFolderDetails($folderPath){
+    global $uploadFolderPath, $bdd;
+    $details = array();
+    if (!is_numeric($folderPath)) {
+        array_push($details, basename($folderPath)); //Ajoute le nom du fichier
+        array_push($details, getSizeName(filesize($uploadFolderPath.$folderPath))); //Ajoute la taille du fichier en questions
+
+        if (filemtime($uploadFolderPath.$folderPath)!=false) {
+            array_push($details, date("F d Y H:i:s.", filemtime($uploadFolderPath.$folderPath))); //Ajout de la date de modification
+        }else{
+            array_push($details, "Date inconnue");
+        }
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+        $response->execute([$folderPath]);
+        $response = $response->fetch(PDO::FETCH_ASSOC);
+        array_push($details, $response["id"]);
+        array_push($details, $folderPath);
+    }else{
+        $response = $bdd->prepare("SELECT * FROM `vbcms-folders` WHERE id = ?"); // Je récupère l'id du dossier parent
+        $response->execute([$folderPath]);
+        $response = $response->fetch(PDO::FETCH_ASSOC);
+        array_push($details, $response["name"]); //Ajoute le nom du fichier
+        array_push($details, getSizeName(filesize($uploadFolderPath.$response["fullpath"]))); //Ajoute la taille du fichier en questions
+
+        if (filemtime($uploadFolderPath.$response["fullpath"])!=false) {
+            array_push($details, date("F d Y H:i:s.", filemtime($uploadFolderPath.$response["fullpath"]))); //Ajout de la date de modification
+        }else{
+            array_push($details, "Date inconnue");
+        }
+        array_push($details, $response["id"]);
+        array_push($details, $response["fullpath"]);
+    }
+    
+    return $details;
+}
+
+function updateFileDetails($path, $title, $description){
+    global $bdd;
+    $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+    $response->execute([dirname($path)]);
+    $parentId = $response->fetch();
+
+    $filename = basename($path);
+    $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du dossier parent
+    $response->execute([$parentId[0], basename($path)]);
+    $fileId = $response->fetch();
+
+    $response = $bdd->prepare("UPDATE `vbcms-files` SET title= ?, description=? WHERE id = ?");
+    $response->execute([$title, $description, $fileId[0]]);
+}
+
+function renameFile($path, $name){
+    global $uploadFolderPath, $bdd;
+    $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+    $response->execute([dirname($path)]);
+    $parentId = $response->fetch();
+
+    $filename = basename($path);
+    $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du dossier parent
+    $response->execute([$parentId[0], basename($path)]);
+    $fileId = $response->fetch();
+
+    rename($uploadFolderPath.$path, $uploadFolderPath.dirname($path)."/".$name);
+
+    $response = $bdd->prepare("UPDATE `vbcms-files` SET name= ? WHERE id = ?");
+    $response->execute([$name, $fileId[0]]);
+}
+
+function copyMove($path, $destination, $action){
+    global $uploadFolderPath, $bdd;
+    if ($action == "copy") {
+        copy($uploadFolderPath.$path, $uploadFolderPath.$destination);
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent original
+        $response->execute([dirname($path)]);
+        $parentId = $response->fetch();
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent de destination
+        $response->execute([dirname($destination)]);
+        $parentDestId = $response->fetch();
+
+        $response = $bdd->prepare("INSERT INTO `vbcms-files` (id, name, parentFolder, size, title, description, articles) VALUES (?,?,?,?,?,?,?)"); // Je créé la ligne du nouveau fichier
+        $response->execute([null, basename($destination), $parentDestId[0], filesize($uploadFolderPath.$destination), "", "", "[]"]);
+    } elseif($action == "move"){
+        copy($uploadFolderPath.$path, $uploadFolderPath.$destination);
+        unlink($uploadFolderPath.$path);
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent original
+        $response->execute([dirname($path)]);
+        $parentId = $response->fetch();
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent de destination
+        $response->execute([dirname($destination)]);
+        $parentDestId = $response->fetch();
+
+        $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du fichier à délacer
+        $response->execute([$parentId[0], basename($path)]);
+        $fileId = $response->fetch();
+
+        $response = $bdd->prepare("UPDATE `vbcms-files` SET name= ?, parentFolder= ? WHERE parentFolder = ? AND name = ?"); // Je modifie les données en question
+        $response->execute([basename($destination),$parentDestId[0] ,$parentId[0], basename($path)]);
+    }
+}
+
+function deleteFileFolder($path){
+    global $uploadFolderPath, $bdd;
+    if (is_dir($uploadFolderPath.$path)) { // Si c'est un dossier
+        $filesFolders=getFolderContent($path, 1); // Alors je scan le contenu du dossier
+        foreach ($filesFolders as $object) { // Et je supprime tous les éléments 1 par 1
+            deleteFileFolder($object);
+        }
+        $response = $bdd->prepare("DELETE FROM `vbcms-folders` WHERE fullpath = ?"); // Je supprime le dossier
+        $response->execute([$path]);
+        rmdir($uploadFolderPath.$path);
+    } else {
+        unlink($uploadFolderPath.$path);
+        $response = $bdd->prepare("SELECT id FROM `vbcms-folders` WHERE fullpath = ?"); // Je récupère l'id du dossier parent
+        $response->execute([dirname($path)]);
+        $parentId = $response->fetch();
+
+        $filename = basename($path);
+        $response = $bdd->prepare("SELECT id FROM `vbcms-files` WHERE parentFolder = ? AND name = ?"); // Je récupère l'id du fichier
+        $response->execute([$parentId[0], basename($path)]);
+        $fileId = $response->fetch();
+
+        $response = $bdd->prepare("DELETE FROM `vbcms-files` WHERE id = ?"); // Je supprime le fichier
+        $response->execute([$fileId[0]]);
+    }
+}
+
+function createFolder($path){
+    global $uploadFolderPath, $bdd;
+    mkdir($uploadFolderPath.$path, 0755);
+    $response = $bdd->prepare("INSERT INTO `vbcms-folders` (id, name, fullpath) VALUES (?,?,?)");
+    $response->execute([null, basename($path), $path]);
+}
+?>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/includes/translations/FR.php b/vbcms-content/modules/vbcms-loadingscreen/includes/translations/FR.php
new file mode 100644
index 0000000000000000000000000000000000000000..33ad0d0ab68b129d1deedb18bccefa6f6bf62cd4
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/includes/translations/FR.php
@@ -0,0 +1,13 @@
+<?php
+// Traduction module de site internet
+
+$translation["loadingscreen"] = "Écran de chargement";
+$translation["loadingscreens"] = "Écrans de chargement";
+$translation["loadingscreen_create"] = "Créer un loadingscreen";
+$translation["loadingscreen_modify"] = "Modifier un loadingscreen";
+$translation["loadingscreens_list"] = "Liste des loadingscreens";
+$translation["loadingscreens_themes"] = "Thèmes";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+?>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/init.php b/vbcms-content/modules/vbcms-loadingscreen/init.php
new file mode 100644
index 0000000000000000000000000000000000000000..84c30a5fa5fbf6ee5db0fbcb03917696774c9410
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/init.php
@@ -0,0 +1,30 @@
+<?php
+// Page d'initialisation
+adminNavbarAddCategory("vbcms-loadingscreen-system", "loadingscreen");
+adminNavbarAddItem("vbcms-loadingscreen-system", "fa-plus-circle", "loadingscreen_create", "/vbcms-admin/loadingscreen/create");
+adminNavbarAddItem("vbcms-loadingscreen-system", "fa-list", "loadingscreens_list", "/vbcms-admin/loadingscreen/list");
+adminNavbarAddItem("vbcms-loadingscreen-system", "fa-brush", "loadingscreens_themes", "/vbcms-admin/loadingscreen/themes");
+
+
+//Création des tables
+$bdd->query("CREATE TABLE IF NOT EXISTS `vbcms-loadingscreeens` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`themeId` INT(11) NOT NULL,
+`name` INT(255) NOT NULL,
+PRIMARY KEY (`id`)
+) ENGINE = InnoDB;");
+
+$bdd->query("CREATE TABLE IF NOT EXISTS `vbcms-tempLoadingscreeens` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`themeId` INT(11) NOT NULL,
+`name` INT(255) NOT NULL,
+PRIMARY KEY (`id`)
+) ENGINE = InnoDB;");
+
+$bdd->query("CREATE TABLE IF NOT EXISTS `vbcms-loadingscreensParameters` (
+`loadingScreenId` INT(11) NOT NULL,
+`name` VARCHAR(128) NOT NULL,
+`value` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+PRIMARY KEY (`loadingScreenId`, `name`)
+) ENGINE = InnoDB;");
+?>
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/module-logo.jpg b/vbcms-content/modules/vbcms-loadingscreen/module-logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5d61327ec5aff4aec0b54d3fd681fd304dfa2e9e
Binary files /dev/null and b/vbcms-content/modules/vbcms-loadingscreen/module-logo.jpg differ
diff --git a/vbcms-content/modules/vbcms-loadingscreen/module.json b/vbcms-content/modules/vbcms-loadingscreen/module.json
new file mode 100644
index 0000000000000000000000000000000000000000..818a4830670a02c5d95debc4c930332d8e52da23
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/module.json
@@ -0,0 +1,12 @@
+{
+  "workshopId" : "6",
+  "requiredModules" : "[3]",
+  "name": "vbcms-loadingscreen-system",
+  "showname": "Système d'écran de chargement",
+  "version": "1.0",
+  "compatible": "2.0",
+  "author": "76561198148455403",
+  "description": "Il s'agit du système d'écran de chargement de base de VBcms.",
+  "clientAccess": "loadingscreen",
+  "adminAccess": "loadingscreen"
+}
\ No newline at end of file
diff --git a/vbcms-content/modules/vbcms-loadingscreen/moduleLoadPage.php b/vbcms-content/modules/vbcms-loadingscreen/moduleLoadPage.php
new file mode 100644
index 0000000000000000000000000000000000000000..f3cd05bd7b534340f24550a2900ce456fa784cf0
--- /dev/null
+++ b/vbcms-content/modules/vbcms-loadingscreen/moduleLoadPage.php
@@ -0,0 +1,41 @@
+<?php
+// Je rappel qu'on a $type et $params
+$params = $moduleParams;
+$uploadFolderPath = $GLOBALS['vbcmsRootPath'].'/vbcms-content/uploads';
+
+
+if($type=="admin") {
+	// Variables nécessaire à création d'une page
+	$pageDepedencies = '<link href="'.$websiteUrl.'vbcms-content/modules/vbcms-loadingscreen/assets/css/admin.css" rel="stylesheet">';
+
+	if ($params[1]=="create") {
+		
+		// Variables Modifier la navbar à création d'une page
+		$pageTitle = $translation["loadingscreen_create"];
+		$pageToInclude = $GLOBALS['vbcmsRootPath']."/vbcms-content/modules/vbcms-loadingscreen/admin/create.php";
+		createModulePage($pageTitle, "", $pageDepedencies, $pageToInclude, 0);
+	}elseif ($params[1]=="list") {
+		
+		// Variables Modifier la navbar à création d'une page
+		$pageTitle = $translation["loadingscreens_list"];
+		$pageToInclude = $GLOBALS['vbcmsRootPath']."/vbcms-content/modules/vbcms-loadingscreen/admin/list.php";
+		createModulePage($pageTitle, "", $pageDepedencies, $pageToInclude, 0);
+	}elseif ($params[1]=="themes") {
+		
+		// Variables Modifier la navbar à création d'une page
+		$pageTitle = $translation["loadingscreens_themes"];
+		$pageToInclude = $GLOBALS['vbcmsRootPath']."/vbcms-content/modules/vbcms-loadingscreen/admin/themes.php";
+		createModulePage($pageTitle, "", $pageDepedencies, $pageToInclude, 0);
+	}
+	
+}elseif($type=="client"){
+	if (!empty($params[0])) {
+		
+		echo $params[0];
+	}
+}
+
+// Fonctions publiques
+
+
+?>
\ No newline at end of file