Drupal, scripter en dehors du CMS

Un post très succinct qui fera office de pense-bête.

Si comme moi vous devez scripter en dehors des outils Drupal mais que vous avez besoin des données générées via le CMS (session, données de l'utilisateurs, etc), vous aurez besoin de 3, voir 4 lignes de code supplémentaires.

En effet, Drupal modifie le comportement de PHP "standard" et il est impossible de récupérer une session php générée dans le CMS en utilisant ce code :

<?php
session_start();
var_dump($_SESSION); // affiche array(0) { }

Du fait de cette restriction et on ne peut absolument rien faire de potable.

Les 3 lignes de code "magiques" sont les suivantes :

<?php
define("DRUPAL_ROOT", getcwd() );
require_once('./includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

Ici, on admet que le script est à la racine du CMS. Si vous êtes dans une autre arborescence, il faudra ajouter un chdir avant le define :

<?php
chdir('/chemin/vers/drupal');
define("DRUPAL_ROOT", getcwd() );
require_once('./includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

Vous pourrez constater que ça fonctionne bien avec un var_dump de $user ou $_SESSION.

Matrix-Synapse : migrer de SQLite à PostgreSQL

Matrix-Synapse : migrer de SQLite à PostgreSQL

Matrix-Synapse est un service de messagerie décentralisé et interopérable avec d'autres mess…

Détecter les vulnérabilités dans les dépendances de son projet

Détecter les vulnérabilités dans les dépendances de son projet

La gestion des dépendances dans un projet est quelque chose de complexe. Il y a autant de ge…

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)

En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint…


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler