Ticket #2177 (closed defect: wontfix)
DC2.9, warning et pas de liste dates dans admin\blog_pref.php
Reported by: | Mirovinben | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | module:admin | Version: | 2.9 |
Severity: | minor | Keywords: | |
Cc: |
Description
Bonjour,
Depuis Dotclear 2.9, dans l'écran "Paramètres du blog", un double message d'erreur
Warning: Invalid argument supplied for foreach() in (dotclear)\admin\blog_pref.php on line 72 Warning: Invalid argument supplied for foreach() in (dotclear)\admin\blog_pref.php on line 76
qui bloque l'affichage des listes déroulantes concernant les formats date et heure de la section "Présentation du blog".
Avant que ça déconne (DC2.8.2, lignes 72 et 76) :
$date_formats = unserialize($blog_settings->system->date_formats); $time_formats = unserialize($blog_settings->system->time_formats);
Depuis DC2.9., les mêmes lignes 72 et 76 :
$date_formats = $blog_settings->system->date_formats; $time_formats = $blog_settings->system->time_formats;
Constaté avec PHP 5.2 et PHP 5.5 tant sur une mise à jour de DC qu'une installation ex-nihilo.
Change History
comment:2 Changed 9 years ago by Mirovinben
Merci Philippe pour ton aide.
Si je suis bien parti d'une base vierge lors de la création, je l'ai remplie ensuite avec un import total issu d'un export total fait avec DC2.8.2... Donc avec des contenus "serializés".
J'ai recopié tes date_formats et time_formats (de [ à ] inclus) là où il faut, tant du côté réglages généraux que du côté réglages du blog et... Pareil mêmes messages, mêmes lignes... caches vidés, relance admin Dotclear.
comment:3 Changed 9 years ago by franck
L'import entre deux versions 2.8 et 2.9 ne fonctionne en effet pas pour les settings passés de string à array. Il faut d'abord mettre à niveau côté 2.8 et ensuite exporter.
Un coup de plugin growUp ( http://open-time.net/public/dc2/plugin-growUp-0.1.zip) devrait remédier au problème. Plugin à désinstaller une fois installé et revenu au dahsboard.
comment:4 Changed 9 years ago by Mirovinben
Argh...
Si après ça j'installe et je lance one-shot le plugin "growUp" proposé par Franck, je n'ai plus de warning... Mais pas de contenu dans ce qui devrait être les deux listes déroulantes. Un petit copier/coller des date_formats et time_formats et c'est impec...
Comme le dit Franck alors que je suis en train d'écrire ce commentaire. C'est bien ça. Mais la manip n'est pas triviale pour l'utilisateur lambda.
comment:5 Changed 9 years ago by Mirovinben
Allons bon, ce qui fonctionne en local (Wamp - PHP 5.5.12) ne fonctionne pas en ligne avec pourtant les mêmes manips mais un PHP un poil plus récent (5.5.32)...
??!!
comment:6 Changed 9 years ago by Mirovinben
Bé non... Là le bug est entre la chaise et le clavier (je me suis planté dans la séquence d'installation/désinstallation de "growUp".
Donc, beaucoup de bruit pour rien. C'est bon à présent.
Par contre quid des utilisateurs qui feront des imports/exports depuis 2.8.2 pour mettre à jour en 2.9 ? Faudra qu'ils fassent pareil et passent par growUp ou bien la 2.9.1 réparera tout ça ? Sinon, ça va tanguer sur le forum.
comment:7 Changed 9 years ago by franck
On peut prévoir une nouvelle passe de conversion à la mise à jour de la 2.9.1, mais ça ne règlera pas le problème d'import entre une 2.8.n et une 2.9.n
Maintenant, faire une mise à jour en faisant un export/import, je n'en connais pas beaucoup qui opèrent de cette manière ou alors ils ne se manifestent guère sur le forum. Et puis de toute façon le forum est super calme, ça fera un peu d'animation.
comment:9 Changed 9 years ago by Mirovinben
Franck, ce n'est pas qu'une mise à jour en la circonstance mais aussi un déménagement. Changement de serveur nécessité par le nouveau pré-requis PHP5.3 minimum. Certains hébergeurs comme OVH proposent un mécanisme pour choisir son PHP, d'autres effectuent une migration automatique après avoir prévenu leurs hébergés, pas le mien.
Par contre, ne serait-ce pas intéressant de faire en sorte que le module d'import fourni avec la dernière version prenne en compte les incompatibilités apparues depuis les versions précédentes. Données en format tableau versus données serializées, par exemple. Non ?
comment:10 Changed 9 years ago by franck
Where is your patch Mirovinben ?
comment:11 Changed 9 years ago by Mirovinben
C'est m'attribuer des talents que je ne pense pas avoir. Sinon, j'aurais proposé ça dans la foulée.
Je verrais bien un truc à implémenter dans la partie du plugin importExport qui traite de l'import total en mode texte du genre...
-1- détecter la version de Dotclear qui va recevoir l'import
-2- détecter la version de Dotclear qui a construit l'export
-3a- si export et import >= 2.9 alors tout va bien, rien à modifier
-3b- si export < 2.9 et import >= 2.9 alors identifier les settings serializés pouvant poser pb et les transformer en array juste avant l'import.
N'étant pas très à l'aise avec les serialization et tableaux, j'ignore si cette transformation est triviale à coder et/ou si elle est chronophage.
comment:12 Changed 8 years ago by franck
- Status changed from new to closed
- Resolution set to wontfix
- Milestone A definir deleted
Est-ce une installation sur une ancienne base ? Cela ressemble à un bug de conversion des paramètres de dates et d'heures. Essaie de mettre dans about:config
date_formats :
time_formats
tu pourras ensuite remettre tes paramètres personnalisés