2025 août 13
Par Franck - News - Lien permanent
Attention La mise à jour depuis la version 2.34 provoquera une erreur pendant le processus. Il suffit de recharger la page actuelle dans votre navigateur pour terminer la mise à jour. Cela n'endommagera rien.
Ah aussi, si vos widgets ont soudain disparu, installez le plugin suivant (installation manuelle) : blogrollLinkStatus, puis une fois l'installation effectuée retournez sur la page d'accueil du tableau de bord. Vous devriez alors avoir une notification de la mise à jour du plugin blogroll. Vous pouvez alors désinstaller le plugin blogrollLinkStatus.
Pensez à vider le cache des templates (plugin Entretien) une fois les mises à jour effectuées.
Pour rappel si vous avez besoin d'aide, un salon Matrix vous tend les bras : https://matrix.to/#/#dotclear:matrix.org
Une nouvelle version de votre logiciel de blog préféré avec au menu :
- Une nouvelle façon de modifier les thèmes (voir ci-dessous les explications détaillées).
- Une proposition de réinitialiser l'URL de l'entrée en cours d'édition si vous changez sa date de publication (seulement si l'entrée n'a pas déjà été publiée).
- L'ajout d'une option pour publier immédiatement un commentaire reconnu comme non-spam même si les commentaires sont modérés a priori.
- Quelques optimisations (mises à jour des plugins, affichage de la médiathèque, …).
- L'ajout d'une entête pour empêcher l'indexation de vos contenus par les IA (aucune garantie cela dit qu'elles respectent ce réglage).
- La gestion des thèmes sombres/clairs dans l'administration a été revue.
- Ajout d'un champ dans le panneau de don sur le tableau de bord pour enregistrer la date de votre dernier don de soutien à Dotclear, d'ailleurs, … :-).
- Ajout d'une page qui fournit la liste de tous les plugins installés (et actifs) avec leurs liens de réglage respectif.
- Suppression d'une étape inutile à la fin de la mise à jour (vous verrez ça à la mise à jour suivante).
Le détail est décrit dans le fichier CHANGELOG fourni avec la version.
Adaptation des thèmes
Cette version apporte un changement significatif dans la gestion des thèmes.
En effet, à partir de cette version, les modifications apportées via l'éditeur de thème seront stockées dans un répertoire spécifique associé au blog courant et au thème sélectionné1.
Avantages :
- Plus besoin de se poser la question de savoir si on peut mettre à jour un thème, qui je le rappelle, écrase entièrement le précédent, modifications comprises.
- Retour de la « modification », qui devient une surcharge plutôt qu'une modification, des thèmes livrés nativement avec Dotclear.
Inconvénients :
- Les anciens thèmes ne seront plus modifiables avec l'éditeur de thème, et resteront figés dans l'état où ils se trouvent.
- Les thèmes qui pourront être dorénavant modifiables devront être adaptés de la manière décrite ci-dessous.
Pour résumer, plus de liberté avec les nouveaux thèmes fournis ou adaptés et les anciens thèmes continueront à fonctionner comme avant.
La suite concerne les développeuses et développeurs de thèmes ou les personnes averties qui voudraient s'en charger.
Pour les autres vous pouvez ignorer la suite.
Maintenant que faire pour adapter un thème pour Dotclear 2.35 ?
Premièrement, ajouter une ligne dans le fichier _define.php
. Je prends l'exemple du thème Berlin, son fichier _define.php
est maintenant le suivant (j'ai volontairement omis les commentaires) :
<?php
$this->registerModule(
'Berlin', // Name
'Dotclear 2.7+ default theme', // Description
'Dotclear Team', // Author
'2.0', // Version
[ // Properties
'type' => 'theme',
'tplset' => 'dotty',
'overload' => true,
]
);
La nouvelle ligne est celle qui contient 'overload' => true,
. Avec cette ligne vous permettez la modification (surcharge) des fichiers de votre thème.
De plus, si dans votre ou vos feuilles de style vous utilisez la fonction url(...)
, en utilisant un chemin vers un fichier (image, police de caractère, autre feuille de style, …) il faudra alors modifier le paramètre en le faisant précéder de index.php?tf=
.
Deux exemples :
.header {
background-image: url(images/header.jpg);
}
Deviendra :
.header {
background-image: url(index.php?tf=images/header.jpg);
}
Autre exemple (celui-ci utilise des quotes, qui sont optionnelles) :
@import url('layout.css');
Deviendra :
@import url('index.php?tf=layout.css');
Notez que la forme index.php?tf=
se réfère au « dossier racine » du thème et que vous pouvez utiliser des chemins relatifs par rapport à cette « base », comme dans le 1er exemple.
Enfin du côté du rendu, la priorité est donnée, pour la fourniture des fichiers, à ce qui se trouve dans le dossier de surcharge, puis ensuite dans celui du thème, puis ensuite, s'il en est défini un, dans celui du parent du thème et finalement dans celui du jeu de template associé au thème.
Dit plus simplement : surcharge > thème > thème parent > jeu de template.
Si vous surchargez un des fichiers PHP du répertoire src
du thème, veillez à surcharger aussi le fichier Frontend.php
, même sans le modifier ; il sera nécessaire pour ça fonctionne correctement.
En ce qui concerne les fichiers template, les balises {{tpl:BlogThemeURL}}
et {{tpl:BlogParentThemeURL}}
utiliseront dorénavant la forme index.php?tf=
dans le cas des thèmes adaptés au lieu d'une URL directe comme précédemment.
-
Ces surcharges seront stockées dans le répertoire var sous l'arborescence themes/blog_id/theme_id, blog_id étant remplacé par l'identificateur du blog et theme_id par celui du thème sélectionné pour ce blog. ↩
Commentaires
Bonjour.
Effectivement, mes widgets ont disparu.
"si vos widgets ont soudain disparu, allez faire un tour sur la page de gestion des plugins" :
1/ ne serait-ce sur la page de gestion de widgets qu'il faudrait aller faire un tour ?
2/ en allant "faire un tour" sur la page des plugins, mes widgets ne réapparaissent pas, même en actualisant.
3/ en revanche, en allant sur la page de gestion de widgets, j'ai un message d'erreur : "Erreur 1054, site temporairement indisponible : unknown column 'link status' in 'field list'.
L'URL de mon seul site sur lequel j'ai fait la mise à jour : https://omarlatuee.fr (si besoin)
Le reste à l'air de fonstionner.
Merci.
Non, c'est bien sur la page de gestion des plugins, éventuellement en se déconnectant auparavant.
"Non, c'est bien sur la page de gestion des plugins, éventuellement en se déconnectant auparavant."
OK.
Déconnexion. Reconnection. Visite de la page des plugins donc. Désactivation du plugin "widgets" (oui oui, une initiative comme ça en passant). Déconnection. Reconnection. Re-visite de la page de gestion des plugins. Réactivation du plugin "widgets".
...toujours pas de retour de mes widgets, même à grand renforts de "CTRL+F5" ;)
Ai-je loupé une virgule ?
Merci Franck (Si tu dois aller faire un tour comme annoncé sur "Open-Time", pas de souci. Rien ne presse.)
PS : La page /admin/index.php?process=Settings est également en erreur 1054 comme je le décrivais dans mon 1er post :/
J'ai modifié le paragraphe à ce sujet dans le billet (voir ci-dessus).
Faire la manipulation et ensuite retester.
Hello, j'ai aussi eu les widgets qui ont disparus, sauf spécifiquement sur les posts, les tags, et les archives, où ils sont bien là, mais ils ont disparu de l'accueil et des pages. J'ai fait les manips indiquées, y compris la mise à jour du thème et du CSS, mais sans surprise vu le comportement, *c'est finalement d'aller vider le cache des templates qui a réglé le problème*.
En revanche, j'ai aussi une erreur 503 sur la page "Widgets" de l'admin, et même chose sur la page de "Réglage des plugins" (Dotclear\Plugin\widgets\WidgetsStack::create(): Argument #3 ($callback) must be of type ?callable, array given, called in /.../plugins/archiveWidget/_widgets.php on line 13).
C'est pas forcément gênant pour les lecteurices du blog, ni même vraiment pour moi du moment qu'un correctif arrive à un moment, rien d'urgent :).
Merci encore pour le taff !
Hello,
J'ai tenté d'installer blogrollLinkStatus mais je n'ai pas de mise à jour du plugin blogroll, et pas d'amélioration sur la barre de widget.
En désactivant le plugin blogroll et en nettoyant le cache, je n'ai qu'une partie de la barre de widget (bizarrement, du contenu qui devrait provenir du plugin blogroll, dont je me sert pour afficher des liens si ma mémoire est bonne, et le widget d'abonnement).
J'utilise le thème Fallseason, pas forcément le plus à jour, mais le problème semble se poser aussi pour les autres thèmes que j'ai pu tester.
Une idée ?
Pardon le contenu dont je parlais ne provenait pas du plugin blogroll, mais d'un widget affichant des flux RSS/Atom.
Pas d'urgence non plus, je suis revenu sur la version 2.34 en attendant ;)
« J'ai tenté d'installer blogrollLinkStatus mais je n'ai pas de mise à jour du plugin blogroll »
Ça n'est pas normal de ne pas avoir eu de notification de mise à jour du plugin en revenant sur la page d'accueil.
Désinstaller complètement blogrollLinkStatus, puis le réinstaller et revenir sur la p age d'accueil pour confirmer/infirmer le souci.
Quelle version de BlogRoll devons nous avoir après mis à jour avec ou sans plugin blogrollLinkStatus ?
Je suis en version BlogRoll 2.1 et pas de notif. non plus avec "blogrollLinkStatus" alors que tout semble fonctionner de mon côté.
La dernière version de blogroll est la 2.1 (elle inclut l'ajout d'un champ supplémentaire dans sa table de données, champ nommé link_status).
Dans certains cas, l'ajout de ce champ n'a pas été effectué à la mise à jour de Dotclear. Le plugin blogrollLinkStatus, une fois installé, remet la version de blogroll à 2.0, ce qui permet, en revenant sur le tableau de bord, de "forcer" une nouvelle fois l'ajout de ce champs. La version de blogroll est alors à nouveau 2.1.
MAJ effectuée.
Tout semble marcher parfaitement (après un nouveau clonage ainsi qu'un nouveau paramétrage du fichier _define.php pour récupérer mon "ancien" thème et pouvoir utiliser l'éditeur de thème du blog).
Merci pour cette nouvelle version.
Après maj et manip à propos widgets :
- coté admin widgets ok
- coté public : pas de widgets affichés
J'ai été voir Paramètres du blog...Méthode de lecture de l'URL c'était en QUERYSTRING: pas de mon fait ?
En repassant en PATHINFO c'est retombé en marche coté publi: widgets affichés ;-)
Effectivement le champ link_status était manquant, après pas mal de tâtonnements pour changer les versions il a fini par apparaître, tout est rentré dans l'ordre.
merci pour le support et pour tout le travail accompli :)
J'ai effectué la mise à jour, j'ai un résultat bizarre, c'est l'apparence de mon interface admin : le fond est uniformément blanc.
Mise à jour effectuée ; j'ai perdu les widgets dans la bataille. L'installation de blogrollLinkStatus n'a pas permis la mise à jour du plugin blogroll dont j'avais modifié le numéro de version dans le fichier _define.php. Après quelques essais infructueux, j'ai chargé le zip de la version et me suis contenté de repousser le plugin blogroll.
J'ai eu le bug de l'erreur 503 (pas grave) et du blogroll (plus embêtant). Le plugin blogrollLinkStatus ne fait rien.
Ce que j'ai fait :
- Dans la table "dc2_version" changer la version du module "blogroll" en "2.0" (était "2.1", si j'ai bien compris le code du blogrollLinkStatus c'est ce qu'il est sensé faire)
- Là il ne faut pas accéder aux autres pages de mises à jour sinon cela remet "2.1" sans corriger le soucis. (c'est à priori pour cela que le blogrollLinkStatus est inopérant, la mise à "2.0" est tout de suite défaite).
- Il faut aller sur le Tableau de bord normal (pas MàJ) là il dira que le module à été mis à jour.
- Je constate que dans la table "dc2_version" le "blogroll" est à nouveau en "2.1" mais cela ne corrige pas immédiatement le problème. J'ai été sur les pages "Liste des liens" et "Widgets" qui fonctionnent et semblent normales. Je ne crois pas qu'aller sur lesdites pages ait un quelconque intéret pour la résolution du problème.
- Dans entretien : Vider le répertoire de cache des « templates »
- Le problème est maintenant corrigé.
- Je désinstalle le plugin "blogrollLinkStatus".
Le changement dans la base de données est effectivement ce qu'il faut faire, et normalement l'affichage du tableau de bord (standard) suffit à créer le champ manquant pour le plugin blogroll.
Pour vérifier, ouvrir la table dc_blogroll et vérifier que le champ link_status est bien présent.
Heuu ... j'ai pas de table *_blogroll.
Par contre dc2_link à bien :
link_status smallint non null default 1
Le site fonctionne pourtant normalement.
Oui c'est bien dc_link qu'il fallait lire.
Ca semble s'être bien passé pour moi. Je n'ai pas encore tout regardé mais ça semble bon. Il est vrai que par précaution, je fais à chaque fois une install parallèle "neuve", J'y fais suivre mes images, le contenu de mes bases de données, mes propres thèmes et mes widgets. Quand tout est bon je change le chemin de mon nom de domaine. Cela peut paraître un peu fastidieux mais c'est sécure. Je fais demi-tour en cas de problème et au bout d'un moment, je retire l'ancienne version...
Merci pour toutes ces évolutions
@Franck : ok, donc tout va bien de mon coté.
@MCManu : à priori c'est au niveau de la BdD que cela coince donc si elle est reprise de l'ancienne version, c'est à vérifier. À priori c'est assez visible pour que cela se voit rapidement, lorsque l'on a plus ses widgets. Au pire vérifie que la table dc_link ait bien le champ link_status.
@Franck : merci