Select Git revision
functions.php 9.77 KiB
<?php
function loadModule($type, $moduleAlias, $moduleParams){
global $bdd, $http, $websiteUrl, $translation;
// On va enregistrer l'évènement
$response = $bdd->prepare("INSERT INTO `vbcms-events` (id,date,module,content,url,ip) VALUES (?,?,?,?,?,?)");
$response->execute([null, date("Y-m-d H:i:s"), $moduleAlias, "loadModule($type, $moduleAlias, ".json_encode($moduleParams).")", $GLOBALS['http']."://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", $GLOBALS['ip']]);
if ($type=="client") {
// On cherche le module correspondant à l'alias clientAccess dans la liste des modules activés
$response = $bdd->prepare("SELECT * FROM `vbcms-activatedExtensions` WHERE clientAccess=? AND type='module'");
$response->execute([$moduleAlias]);
$response = $response->fetch(PDO::FETCH_ASSOC);
if (!empty($response)) {
//include $GLOBALS['vbcmsRootPath'].'/vbcms-content/modules'.$response["path"]."/pageHandler.php"; // Le module appelé va se charger du reste
$calledmodule = new module($response["name"]);
$calledmodule->call($moduleParams, $type);
} else {
// Aucun module d'activé ne se charge de ce chemin
if (empty($moduleAlias)) {
// Ici on est donc sur l'index du site
// Si aucun module ne s'en charge, on va afficher la page par défaut
include $GLOBALS['vbcmsRootPath'].'/vbcms-core/defaultPages/index.php';
} else {
// Il s'agit peut-être d'une page du module gérant l'index du site Internet
// Nous allons donc vérifier si un module gère l'index, puis on va l'éxecuter
$response = $bdd->query("SELECT * FROM `vbcms-activatedExtensions` WHERE clientAccess='' AND type='module'")->fetch(PDO::FETCH_ASSOC);
if (!empty($response)) {
// On a trouvé un module qui gère l'index, au cas où cet alias n'existe pas, ce sera ce module qui gérera la page 404
$calledmodule = new module($response["name"]);
$calledmodule->call($moduleParams, $type);
//include $GLOBALS['vbcmsRootPath'].'/vbcms-content/modules'.$response["path"]."/pageHandler.php"; // Le module appelé va se charger du reste
} else {
// Si on arrive ici c'est qu'il n'y a vraiment aucun module qui gère cet alias
show404($type);
}
}
}
} elseif($type=="admin") {
// On cherche le module correspondant à l'alias adminAccess dans la liste des modules activés
$response = $bdd->prepare("SELECT * FROM `vbcms-activatedExtensions` WHERE adminAccess=? AND type='module'");
$response->execute([$moduleAlias]);
$response = $response->fetch(PDO::FETCH_ASSOC);
if (!empty($response)) {
//include $GLOBALS['vbcmsRootPath'].'/vbcms-content/modules'.$response["path"]."/pageHandler.php"; // Le module appelé va se charger du reste
$calledmodule = new module($response["name"]);
$calledmodule->call($moduleParams, $type);
} else {
show404($type);
}
}
}
// Cette fonction est appelée par les modules afin de créer des pages selon 3 modes (pas vraiment besoin de l'appeler pour le 3ème)
function extensionCreatePage($panelMode, $creationMode, $pageToInclude, $title, $description, $depedencies){
// Le mode 0 correspond à l'inclusion d'une page qui retourne du code HTML
// Le mode 1 correspond à l'inclusion d'une page qui ne fait que passer des paramètres
// Le mode 2 correspond à l'inclusion d'une page qui n'utilise pas la maquette du thème, qui renvoie sa propre page
global $bdd, $http, $websiteUrl, $translation, $websiteName, $websiteMetaColor, $websiteDescription, $websiteLogo, $paths;
if($creationMode == 0){
if($panelMode == "admin"){
$vbcmsRequest = true;
require $GLOBALS['vbcmsRootPath']."/vbcms-admin/includes/emptyPage.php";