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.

De Xorg à Wayland, de i3 à sway

De Xorg à Wayland, de i3 à sway

Quelques jours après avoir mise en ligne la nouvelle infrastructure structure d'hébergement,…

Nouvelle infrastructure d'hébergement

Nouvelle infrastructure d'hébergement

Pour celles et ceux qui ne connaissent pas mon histoire : j’ai commencé à héberger du conten…

Streaming Owncast et Twitch

Streaming Owncast et Twitch

Il y a quelques années de cela, j'avais commencé à streamer des sessions de développement su…


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler