[Résolu] Spip 3.2.19 à 4.4.19 + PHP 7.1.33 à 8.4 (infomaniak)

bonjour à vous,

je me tourne vers vous un peu désespérée.
10 jours que je galère à trouver la solution pour que mon site s’affiche normalement suite à plusieurs mises à jour :

de la version 3.2.19 de spip à la version 4.4.19 (via spiploader)
de PHP 7.1.33 à 8.4 (infomaniak)

mon site existe depuis 13 ans.
régulièrement les mises à jour ont été faites, la dernière remontait à 2021.

le problème aujourd’hui :
la page d’accueil s’affiche comme il faut, les CSS + contenus des boucles (rubrique+article) appelées s’affichent aussi, en revanche sur les autres pages du site, aucun des squelettes de rubriques personnalisées s’affichent normalement : il manque des liens images, les CSS sont appelés mais pas « exécutés » et pareil pr la majorité des boucles, elles ne renvoient aucun contenu.

coté back office, tout y est.
mise à jour pluging
actualisation de la balise #DOSSIER_SQUELETTE par #CHEMIN pour les fichiers du dossier (squelettes/inclure/)

quand les fichiers de squelettes-dist prennent le dessus (suppression temporaire du dossier squelettes), les boucles et CSS par défaut fonctionnent très bien.

quelqu’un à déjà rencontré ce problème ?

Salut,

bienvenue sur discuter :slight_smile:

Peux-tu nous donner l’adresse du site pour qu’on regarde ? Si tout fonctionne sans ton squelette personnalisé, c’est que ça se joue à ce niveau-là. Tu n’as aucun message d’erreur qui s’affiche quand tu consultes ou recalcules les pages ?

1 « J'aime »

Est-ce que par hasard tu utilisais « squelettes par rubrique » ? Ce plugin n’est plus fourni par défaut depuis SPIP 4. Si c’est ça tu pourrais l’ajouter à tes plugins.
(Sinon est-ce que tes plugins sont bien à jour, est-ce qu’il n’y en a pas qui ont « sauté » à la maj ?)

2 « J'aime »

Bonjour,

D’après ce que tu écris, il te manque le plugin squelettes par rubrique.

Migrer de SPIP 3.2 à SPIP 4.0 : le livre de cuisine pourra aussi t’aider pas mal.

1 « J'aime »

bonjour,

le site c’est : https://www.chativesle.fr

notons que les liens des images du menu sont "actif mais ne fonctionnent pas

et par exemple la rubrique=3 (à noter que rubrique=3 reprend la même archi de page/contenu que sommaire.html)
https://www.chativesle.fr/-VENTES-a-VENIR-.html

sans rien modifier, on a 2 messages d’erreur :
|2 Erreur(s) dans le squeletteNuméro|Message|squelette|boucle|Ligne|
|—|—|—|—|—|
|1 |Aucun squelette inc-head n’est disponible…|squelettes/rubrique.html| / |10|
|2 |Aucun squelette inc-entete n’est disponible…|squelettes/rubrique.html| / |32|

si l’emplacement des fichiers inc-head et inc-entete c’etait bien dans le dossier squelettes, je ne les y trouve plus.

@RealET @Jack31

je n’avais pas trouvé cette page d’infos, je regarde ça.
merci beaucoup

1 « J'aime »

les url de mon menu ne fonctionnent plus.
exemple :

<BOUCLE_calendrier(RUBRIQUES) {id_rubrique=2}>
      <div class="Item_A" id="u10799">
       <a href="#URL_RUBRIQUE"> #LOGO_RUBRIQUE_SURVOL  </a>
             </div>
  </BOUCLE_calendrier>

faut il à présent utiliser cette balise ci, à la place de #URL_RUBRIQUE ? :
#URL_RUBRIQUE{2}

J’ai édité ton message pour que le code de la boucle soit visible complètement. Quand tu mets du code il faut que tu le mettes entre backticks ou que tu te serves du bouton </> de la barre d’édition

1 « J'aime »

Bonsoir,

Il faudrait utiliser le bouton de formatage de code (qui encadre le code de 3 backticks).

Ceci dit, quand je regarde Châtivesle REIMS Enchères les urls sont bien là.

Ce qui ne marche pas, c’est le clic sur ces liens.

Mais, bouton droit, ouvrir le lien dans un nouvel onglet fonctionne.

Et la console affiche cette erreur :

lity.js?1786629906:557
 Uncaught TypeError: Cannot read properties of undefined (reading 'preventDefault')
    at lity (lity.js?1786629906:557:21)
    at Object.lityOpener (lity.mediabox.js?1786629905:436:5)
    at Object.elementOpener (lity.mediabox.js?1786629905:361:13)
    at HTMLDivElement.onClickOpener (lity.mediabox.js?1786629905:352:13)
    at HTMLDocument.dispatch (jquery.js?1786629571:5145:27)
    at jQuery.event.add.elemData.handle (jquery.js?1786629571:4949:28)

Donc, un conflit js avec la media box lity.

1 « J'aime »

Le script JS ajaxCallback.js semble mettre le bazar sur ton site.

Dans ton navigateur, avec l’outil de développement > réseau, bloque la requête https://www.chativesle.fr/prive/javascript/ajaxCallback.js?1786629567.

Puis recharge ta page : la navigation devrait fonctionner.

1 « J'aime »

salut @earlcino

Pour réparer tes erreurs JS, il te faut modifier ton fichier squelettes/rubrique.html (~L23) de manière à insérer #INSERT_HEAD_CSS avant #INSERT_HEAD.

Je n’ai pas vérifié si d’autres gabarits sont concernés ; mais celui là au moins.

1 « J'aime »

squelettes/sommaire.html est également concerné :

1 « J'aime »

Bonjour placido, modification effectuée sur tous les fichiers ‹ rubrique › du site + sommaire.
cache vidé+F5, le clic sur bouton du menu ne fonctionne pas.
j’ai loupé une modif ?

aussi, j’ai dû désactiver CKEditor qui chahute le site.

Le problème de rendu subsiste probablement à cause de la déclaration DOCTYPE en tête de fichier, qui date d’un autre temps.

Tente le remplacement suivant :

[(#REM)
	Un cache plus court, pour la boucle syndic_articles
]#CACHE{3600}
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
<head>

par

[(#REM)
	Un cache plus court, pour la boucle syndic_articles
]#CACHE{3600}
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!doctype html>
<html class="no-js[ (#LANG_DIR)][ (#LANG)]" lang="#LANG" dir="#LANG_DIR">
<head>
<script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

Merci.
Modification faite dans tous les fichiers RUBRIQUE…
Cache vidé. Le problème subsiste…

Re-vérifie ; la balise DOCTYPE est toujours incorrecte.

Il faut <!DOCTYPE html> et non pas <!DOCTYPE html PUBLIC>

1 « J'aime »

ça ne change rien :cold_sweat:

j’ai désactivé médiabox et ça règle le problème.
la class fancybox présente dans les squelettes, ne fonctionne pas, mais c’est un autre sujet…

merci en tous cas pour votre aide. bon weekend à vous