Skip to content
Snippets Groups Projects
Select Git revision
  • b4f939b5c7e36dcd9cab4b1f17cc34959521672e
  • master default protected
2 results

views.py

Blame
  • 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";