// on va stocker nos modules dans l'objet request
$modules = $this->request->module;
je pense tu devrais plutôt poser:
// on va stocker nos modules dans l'objet request
$this->request->module = $modules;
mais je ne vois pas trop l’intérêt vu que non seulement tu le fait en plus dans le render c-à-d au moment d'afficher la sortie html, mais en plus tu continue à utiliser ta variable "$modules".
je ne suis pas sur non plus que la façon dont tu procède soit la bonne. pour mois tu ne peut pas arriver à qq chose d'abouti sans totalement repenser la structure de tes tables voire même sans en créer de nouvelles.
çà fait qq jours je travaille sur le même projet mais avec une autre approche;
-j'ai d'abords commencé par crée une classe gestionnaire de configuration qui est déjà fonctionnelle(supportant 4 format: php (array),ini,json,xml), de manière à pouvoir manager toute la configuration du site depuis le backoffice. Ainsi en plus de la configuration globale du site, chaque module, chaque Template pourra avoir son propre fichier de configuration; utile si je veux lire à la volée les differentes positions disponibles pour une Template par exemple.
- maintenant ma reflexion porte sur la maniere de mieux structurer les tables et leurs champs de sorte que le site soit le moins gourmand possible en terme de consommation de la mémoire allouée.
mais voici les grandes lignes de cette reflexion:
A/ LES TABLES
menus,
modules, //chaque module est kracterisé par sa position, son type (controller ou contenu), son action (controller=>vue, contents=>idcontent)
contentcategs,
contents(table posts mais avec ajout d'un nouveau type : module,post,page),
relations (menuid,postid)(etablie la relation entre les posts,les modules et les elements des menus; postid pouvant etre soit lid d'un post, soit celui d'un module)
B/ LE PRINCIPE
-à l'appel d'un elt de menu on recupere les modules et les posts qui sont rattachés à cette page.
-le tableau obtenu est réorganisé de maniere à les cles soient les different positions liées à chaque contenu.
-au niveau du template on crée des tag specifique avec un attribut "name" unique pour chaque position.
- au niveau du render, faire des preg_replace pour remplacer les tags de position par le contenu du tableau correspondant à cette position.