Plan : rendre les ploxions accessibles sur mobile
Étude + plan, pas encore implémenté
Résumé
Étude du pourquoi les ploxions sont cassés sur mobile : deux types (à URL vs écran client-side), deux registres de nav (apps.php vs ploxions.php), et trois causes (Calendrier absent d'apps.php, ploxions écran bloqués par isDesktop() et masqués en CSS). Plan en phases shippables : Phase 1 surfacer les ploxions à URL dans le menu mobile en respectant le gating (priorité Calendrier), Phase 2 monter les ploxions écran en plein écran mobile, Phase 3 un launchpad mobile. Décisions en attente de José.
§1Plan — rendre les ploxions accessibles sur MOBILE
Bion posé le 2026-06-17 (lane seo). Étude + plan, PAS encore implémenté. Besoin déclencheur (José) : « je peux pas voir Calendar etc. sur mobile ».
§2👉 Décisions qui t'attendent (José)
- Phase 1 — source des liens ploxions dans le menu :
- (A) Reco — faire lire au menu une passe sur
config/ploxions.php(les ploxions qui ont uneconfig['url']), source unique, auto-surface les futurs ploxions URL. - (B) Plus simple — juste ajouter
Calendrier(et vérifierFinance) comme items dansconfig/apps.php. Mais apps.php ne connaît que public vs admin : il faudrait y ajouter la notion auth-only (Calendrier = connectés, pas admin).
- (A) Reco — faire lire au menu une passe sur
- Phase 2 — quels ploxions « écran » on veut sur mobile : RepoVerse + Ideas-Map = oui ? Labo (terminal VPS admin) = on le laisse desktop-only (chill/sécu) ou mobile aussi ?
- Forme du plein écran mobile (Phase 2) : une feuille qui monte du bas (comme les
panneaux
.mcd-panelactuels) ou un overlay full-page ? (la feuille = plus cohérent avec le dock mobile existant.)
§3Constat — pourquoi c'est cassé sur mobile
§4Deux types de ploxions
- À URL (page server-rendered, vraie route) :
finance→/finance,calendar→/calendrier. Ouvrable de partout (juste un lien). - « Écran » client-side (pas d'URL, app JS montée dans une fenêtre) :
repoverse,ideas-map,labo. S'ouvrent uniquement via le window-managerjOS.openPloxion().
§5Deux registres de nav
config/apps.php→ construit le menu du cube mobile ($mcdLinks+$mcdAdmin) ET le launchpad desktop. Consommé dansresources/views/partials/_mobile_nav.blade.php(~l.39-55).config/ploxions.php→ construitwindow.__PLOXIONS__(window-manager) + les tuiles ploxion du launcher. Consommé dansresources/views/ploxions/_manifest.blade.php.
§6Les 3 causes imbriquées
- Calendrier n'est PAS dans
config/apps.php→ il n'entre jamais dans le menu mobile (qui se bâtit seulement depuisapps.php), alors que la route/calendrierexiste (routes/web.php, groupecalendar., middlewareauth). → invisible sur mobile. - Finance / Notes SONT dans
apps.php(groupe « Système »,admin => true) → ils tombent dans$mcdAdmin→ déjà atteignables via le panneau Admin du cube mobile (José ne le sait peut-être pas — à confirmer). - Ploxions « écran » (
repoverse,ideas-map,labo) :jOS.openPloxion(id)faitif (!isDesktop()) return null;(_window_manager.blade.php~l.354 ;isDesktop()=min-width: 769px) → ne fait rien sur mobile.- Les tuiles sont masquées en CSS sur mobile :
.app-group--px { display:none }(_app_launcher.blade.php~l.103,@media (max-width:768px)). → totalement injoignables sur téléphone.
§7Objectif
Sur mobile, pouvoir atteindre tout ploxion auquel j'ai droit, en respectant le gating
(admin / auth) et le « droit au silence » §4.4 (rien rendu au client pour un ploxion
non autorisé). Priorité immédiate : Calendrier.
§8Plan en phases shippables (du plus chill au plus gros)
§9Phase 1 — Ploxions à URL dans le menu mobile ⟵ règle le besoin « Calendar »
Quoi : surfacer les ploxions qui ont une config['url'] (Calendrier, Finance) dans le
menu du cube mobile (et le launchpad desktop, même source).
Où : resources/views/partials/_mobile_nav.blade.php, là où se bâtissent $mcdLinks /
$mcdAdmin (~l.39-55). Ajouter une passe sur config('ploxions.ploxions') filtrée
enabled === true && !empty(config['url']), en rangeant chaque item selon son gating :
admin => true→ dans$mcdAdmin(panneau Admin).auth => true→ dans$mcdLinksmais seulement siauth()->check()(sinon rien).- ni l'un ni l'autre → public, dans
$mcdLinks. Item construit :[routeOrUrl, href=config['url'], icon, name](l'icône ploxion est un emoji ; le menu mobile attend une classe FA → soit on mappe, soit on autorise l'emoji).
Pourquoi (A) plutôt que (B) : source unique = pas de drift, et tout futur ploxion à URL
apparaît automatiquement partout. (B) marche aussi mais duplique l'info et oblige à inventer
un flag auth dans apps.php.
Résultat : Calendrier apparaît dans le menu mobile (pour un connecté) → ouvre
/calendrier en pleine page. Finance reste dans le panneau Admin (déjà le cas).
CSS/Blade only, routes déjà déployées → deploy-safe (pas impacté par le bug route:cache).
§10Phase 2 — Ploxions « écran » en plein écran sur mobile
Quoi : les ploxions client-side (RepoVerse, Ideas-Map, [Labo ?]) doivent pouvoir s'ouvrir sur mobile. Pas de fenêtres flottantes sur téléphone → on les monte en plein écran (feuille mobile / overlay), comme une vraie app de tel.
Où :
_window_manager.blade.phpopenPloxion(id)(~l.351-366) : au lieu dereturn nullquand!isDesktop(), monter l'app cliente (window.jOSApps[ploxion.app]) dans un conteneur plein écran avec une barre minimale (titre + ✕ fermer), sans le chrome du site (réutiliser le modeis-embedded/ la mécanique des panneaux.mcd-panel).- Lanceur mobile : lever / remplacer
.app-group--px { display:none }(_app_launcher~l.103) par des entrées ploxion cliquables dans le menu du cube (section « Ploxions »).
Décisions : cf. #2 et #3 ci-dessus.
Note : plus gros (JS window-manager + nouvelle UI plein écran mobile) → à faire après la Phase 1 et après checkpoint avec José.
§11Phase 3 (option, spéculatif) — un vrai « launchpad mobile »
Une grille d'apps plein écran sur mobile (home façon iPhone) regroupant Espaces + Ploxions + Admin, au lieu du seul menu-liste du cube. Plus « OS ». À valider, pas prioritaire.
§12Contraintes & notes deploy
/calendrieret/finance= routes déjà déployées → Phase 1 n'ajoute aucune route → pas bloquée par le bugroute:cacheprod (§4 roadmap).- Calendar & Finance ont besoin de leurs tables DB en prod (
php artisan migrate --force- cache vidé via hook post-merge). À vérifier : sinon
/calendrierrenvoie 500 (mobile ET desktop, indépendamment de ce plan).
- cache vidé via hook post-merge). À vérifier : sinon
- Gating à respecter dans le menu : Calendrier =
auth(connecté), Finance/Labo =admin. Ne jamais exposer un lien à qui n'y a pas droit (« ne pas nuire » + silence §4.4). - Icônes :
config/ploxions.phputilise des emojis ; le menu mobile ($mcdLinks) rend des classes Font Awesome (fa-solid …). Phase 1 doit gérer ce mismatch (autoriser l'emoji dans le rendu, ou mapper).
§13Fichiers concernés (pour l'implémentation)
config/apps.php— registre nav (menu/launchpad).config/ploxions.php— registre ploxions (manifeste/écrans).resources/views/partials/_mobile_nav.blade.php— menu cube mobile + dock desktop (build$mcdLinks/$mcdAdmin).resources/views/partials/_app_launcher.blade.php— tuiles du launchpad (dont.app-group--pxmasqué mobile).resources/views/partials/_window_manager.blade.php—jOS.openPloxion()/isDesktop().resources/views/ploxions/_manifest.blade.php— émissionwindow.__PLOXIONS__.public/css/mobile-chill.css— styles dock/menu mobile (Phase 2 : plein écran).
Statut : draft · Licence : AGPL-3.0
· 17.06.2026 · ploxions-mobile