Bon, je renote juste quelques points qui m'ont causé du souci, il y a maintenant plein de tutos sur le net, et je doute que je doive mettre à jour un autre site Joomla 3.

Déjà, à la mise à jour par elle-même, quand le precheck indique ce qui peut poser problème, il faut l'écouter. Dans mon cas, c'étaient mes plugins fail2ban et avertissement cookie qui n'avaient pas d'informations sur leur compatibilité, ainsi que mes templates personnalisés forkés de Protostar. J'ai donc supprimé tout ça avant de lancer la mise à jour. J'avais tenté de mettre à jour mon site de test sans ces informations, et ça a résulté en erreur sur toutes les pages disant que la fonction isAdmin n'est pas définie... 😑

Une fois le site mis à jour par le module intégré, je me retrouve dans la nouvelle interface d'administration. Bien. Le site est dans le thème Cassiopeia par défaut. Tout aussi bien. Mais.

Le site ne présente plus aucun de ses menus... Ce qui est tout de suite embêtant pour se connecter par exemple. 🙄

En tatônnant, j'ai trouvé la source du problème. Avant, les éléments de l'interface étaient placés dans des emplacements de Protostar, nommés position-X, avec un nombre pour X. Mais dans Cassiopeia, les emplacements ont un nom explicite, comme menu ou sidebar-left...

Donc je suis allé dans Content / Site Modules, et j'ai changé la valeur Position des éléments, pour remplacer leurs valeurs position par le nouvel emplacement. Heureusement les nouveaux emplacements ont des noms explicites facile à associer aux éléments existants. En cas de doute, la prévisualisation d'un thème montre les divers emplacements.

Après, il me restait à refaire les templates personnalisés, donc forker Cassiopeia et modifier. Je ne vais pas expliquer comment dupliquer les templates (indice : il y a un bouton), il faut juste noter que le fichier CSS utilisateur est maintenant user.css et plus custom.css.

Je mets ici celui de Failsafe, parce qu'il a un twist intéressant à retenir par rapport à WWW et Next qui ne varient que par leur logo.

:root {
--cassiopeia-color-primary: #74ae0b;
--cassiopeia-color-link: #74ae0b;
--cassiopeia-color-hover: #002b41;
}
.container-header {
position: relative;
z-index: 10;
margin-bottom: 20px;
background-color: #74ae0b;
background-image: url(../images/newfond.png);
background-attachment: fixed;
box-shadow: 0 5px 5px rgba(0, 0, 0, 0.03) inset;
}
body {
/* Chrome, Safari */
-webkit-filter: grayscale(1);
/* Firefox */
filter: grayscale(1);

color: #22262a;
background-color: #fafbdc;
background-image: url(../images/newfond.png);
background-attachment: fixed;
}
.card-header {
color: white;
background-color: #74ae0b;
background-image: url(../images/newfond.png);
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
color: #74ae0b;
}
.card-body {
background-color: #fafbdc;
}

Je crois que j'ai fait le tour de ma journée de mise à jour Joomla 4. Juste se rappeler de vider ou désactiver le cache pour voir les modifications immédiatement. J'ai dû aussi écraser Failsafe avec une copie de WWW parce qu'il ne voulait pas prendre en compte le user.css de son template, peut-être une erreur dans la base ou les fichiers ?