Laboratoire
Statique 002 Laboratoire
# plxMultiSite — prototype 0.1 (PluXml 5.8.23)
Une seule installation PluXml, une seule administration, plusieurs sites :
chaque nom d'hôte (sous-domaine) affiche son propre contenu, son thème et ses textes.
**Aucun fichier du core n'est modifié** : tout passe par un plugin.
## Contenu de l'archive
- `plugins/plxMultiSite/` : le plugin (à copier dans le dossier `plugins/` de ton PluXml)
- `data/multisite/sites.exemple.json` : exemple de configuration
- `data/multisite/.htaccess` : empêche la lecture de la configuration depuis le web
## Installation (à essayer d'abord sur une copie !)
1. Copie `plugins/plxMultiSite/` dans `plugins/` et `data/multisite/` dans `data/`.
2. Copie `sites.exemple.json` en `sites.json` et adapte-le (voir plus bas).
3. Dans l'administration (page Plugins), active **plxMultiSite**.
4. Chez O2switch (cPanel), fais pointer chaque sous-domaine vers le **même dossier** que le PluXml.
Le sous-domaine d'administration (`admin_host`) pointe aussi vers ce dossier.
Tant que `sites.json` n'existe pas, le plugin ne fait rien et PluXml fonctionne normalement.
## Fonctionnement
- Chaque site a une ou plusieurs **catégories**. Un article appartient au site dont il porte une catégorie.
Tu choisis donc le site en cochant la catégorie du site dans l'éditeur d'article, comme d'habitude.
- Les articles sans catégorie (« non classé ») vont au site qui a `"unclassified": true` (un seul site à la fois).
- Pages statiques : liste d'identifiants dans `"statics"` (aucune par défaut, pour ne rien laisser fuiter).
- `theme`, `title`, `description`, `meta_description`, `meta_keywords` : par site, facultatifs sauf l'hôte.
- Hôte inconnu : réponse 404. Hôte d'administration : 404 côté public, avec `X-Robots-Tag: noindex`.
- L'administration (`core/admin/`) n'est accessible que depuis `admin_host` ; les autres hôtes reçoivent une 404.
- Si tu laisses `admin_host` vide, l'admin reste accessible partout (utile le temps de tester).
## Ce qui a été testé
Sur PluXml 5.8.23 (PHP 8.3 en local), avec deux hôtes de test :
page d'accueil, catégories, articles, tags et nuage de tags, pages statiques, flux RSS, plan du site,
thème et titre propres à chaque site, URL des liens propres à chaque hôte, 404 sur les contenus d'un autre site,
blocage de l'admin sur les hôtes publics, hôte inconnu.
## Limites connues du prototype
- La recherche interne n'a pas pu être validée par mon test ; le filtrage la couvre en principe, à vérifier chez toi.
- Les commentaires, les médias et les plugins tiers n'ont pas été testés.
- Un article qui porte les catégories de deux sites s'affiche sur les deux. Ta règle « un article = un site »
n'est pas encore imposée dans l'éditeur (étape suivante : refus à l'enregistrement).
- Pas encore de `robots.txt` propre à chaque hôte (l'en-tête noindex est déjà envoyé).
- Pas d'écran d'administration : la configuration se fait dans `sites.json`.
- Certificats HTTPS des sous-domaines : à vérifier chez O2switch.
## Étapes suivantes proposées
1. Valider ce prototype sur une copie de ton PluXml.
2. Écran d'administration du plugin : liste des sites, création d'un site, réglages.
3. En-têtes, pieds de page et sidebars par site.
4. Règle « un article = un site » dans l'éditeur, et `robots.txt` par hôte.