[EDIT] Après avoir posté trop vite (et avec un code qui ne marchait que partiellement), j’ai pris un peu plus de temps pour réfléchir et j’ai enfin une solution qui marche (enfin on dirait

)[/EDIT]
Bonsoir,
M’étant un peu acharné sur le sujet, et après avoir parcouru un peu la doc sur les sessions et un bouquin sur PHP, j’ai vérifié ce que je disais sur un potentiel enregistrement des fichiers de session dans un dossier différent avec
<?php echo session_save_path(); ?>
=> erreur de ma part, MODx ne modifie pas le chemin d’enregistrement des fichiers de session.
J’ai alors cherché d’autres éléments qui pourraient être différents à partir du code du fichier config.inc.php, et la fonction session_name() (que je ne connaissais pas auparavant) m’a interpellé. Je fais alors un test avec
<?php echo session_name(); ?>
qui me confirme que les noms de session utilisés sont différents et que je n’ai alors pas accès à mes variables de session à travers la session courante de MODx.
NB: pour changer de nom de session en cours, il faut d’abord fermer la session courante, changer le nom de session à utiliser, et relancer une session.
Après avoir testé plusieurs pistes avec des session_destroy() (qui supprime totalement les variables de session et la rend irrécupérable), j’ai implémenté quelque chose de plus sage et plus réaliste :
<?php
$nomSessionExterne = "PHPSESSID"; // nom de la session a atteindre (PHPSESSID est le nom par defaut habituel)
// enregistrement de la session MODx, puis changement de session vers la session externe
if (session_name() != $nomSessionExterne) { // changement de session seulement si necessaire
session_write_close(); // fermeture de la session courante
$tmpSessName = session_name($nomSessionExterne); // retour a la session "externe"
if (isset($_COOKIE[session_name()])) { // la session externe est potentiellement ouverte
$tmpSessID = session_id($_COOKIE[session_name()]); // re-affectation de l'ID en consequence (IMPORTANT! c'est ce qui manquait a mon premier jais...)
session_start(); // restauration de la session externe
}
else { session_name($tmpSessName); } // si la session n'existe pas, on revient au nom precedent par securite
}
// traitements et operations avec les variables a faire ici
// arret de session externe, retour a la session MODx (= operation inverse)
if (isset($tmpSessID)) {
session_write_close(); // fermeture
session_name($tmpSessName); // changement de nom
session_id($tmpSessID); // retour a l'ID d'origine
session_start(); // restauration
}
?>
Je crois donc que je peux considérer mon problème comme résolu, et j’espère que ça pourra servir à d’autres développeurs qui seraient confrontés à ce genre de problème (qui j’imagine est assez peu courant

, tout le monde ne travaillant pas avec plusieurs sessions différentes !)