Dotclear

Ticket #2160 (closed defect: fixed)

Opened 10 years ago

Last modified 9 years ago

Favoris cassés dans le tableau de bord

Reported by: philippe Owned by: team
Priority: normal Milestone:
Component: module:core Version: 2.8.2
Severity: normal Keywords:
Cc:

Description

Le message suivant s'affiche dans ErrorLogger? depuis la mise à jour de la r3148 à 2.9-dev-3161

Notice : array to string conversion in /srv/data/web/vhosts/www.domain.tld/htdocs/dotclear/inc/core/class.dc.workspace.php:258

Trace d'exécution

    [/srv/data/web/vhosts/www.domain.tld/htdocs/dotclear/inc/core/class.dc.workspace.php:258] : ::settype
    [/srv/data/web/vhosts/www.domain.tld/htdocs/dotclear/inc/admin/class.dc.favorites.php:273] : dcWorkspace::put
    [/srv/data/web/vhosts/www.domain.tld/htdocs/dotclear/admin/preferences.php:251] : dcFavorites::setFavoriteIDs

Les préférences pour les favoris affichés sur le tableau de bord ont été effacées et ne sont plus enregistrées. La liste des favoris dans Mes préférences > Mon tableau de bord est vide, il y a pourtant un favori sur le tableau de bord : Billets

Change History

comment:1 Changed 10 years ago by franck

Tu t'es déconnecté et reconnecté juste après la mise à jour ?

comment:2 Changed 10 years ago by philippe

Oui, plusieurs fois.

Si j'ajoute un favori dans le tableau de bord, malgré le message de succès, il n'apparaît pas. Aussi j'ai un warning sur la page Paramètres du blog :

Warning: Invalid argument supplied for foreach() in /srv/data/web/vhosts/www.dissitou.org/htdocs/dotclear/admin/blog_pref.php on line 72

comment:3 Changed 10 years ago by franck

Je testerai en partant d'une 2.8.2 pour voir.

comment:4 Changed 10 years ago by franck

Je viens de faire les tests suivants :

  • Install 2.8.2 (avec le loader), upgrade direct avec la version 'unstable' (2.9-dev) → Rien à signaler (aucun favoris perso)
  • Install 2.8.2 (avec le loader), création de favoris persos, upgrade avec la version 'unstable' (2.9-dev) → RAS, tout fonctionne
  • Install 2.8.2 (avec le loader), création de favoris persos, upgrade avec la version 'testing' (2.8.3-r3148), favoris OK, upgrade ensuite avec la version 'unstable' (2.9-dev) → RAS tout fonctionne

Du coup je suis un peu perplexe !

comment:5 Changed 10 years ago by philippe

En base, dans la table dc_prefs, j'ai 3 entrées pour les favoris :

favorites 	NULL	dashboard 	a:0:{} 	string 	User favorites
favorites 	Philippe 	dashboard 	Array 	string
favorites 	NULL	dashboard 	a:0:{} 	string 	User favorites

Avec un user_id NULL pour deux d'entre elles, ce qui ne me semble pas normal

Puis-je en supprimer 2, et lesquelles ?

comment:6 Changed 10 years ago by franck

Les favoris avec NULL en user_id sont celles par défaut, modifiables par un super-admin (voir le bouton "Définir comme favoris par défaut").

Par contre que tu en aies deux, spa normal, tu peux en virer une, et pour l'autre, modifier 'string' en 'array' pour le pref_type et mettre

["posts","new_post","newpage","comments","categories","media","blog_theme","widgets","simpleMenu","prefs","help"]

dans pref_value.

Par contre ça n'explique pas pourquoi ça n'a pas été converti à l'upgrade en 2.9-dev et ça m'ennuie un peu !

comment:7 follow-up: ↓ 8 Changed 10 years ago by philippe

Les favoris sont réparés avec un array à la place du string. Ça ne nous dit pas ce qui a cloché lors de la mise à jour toutefois.

Le warning signalé en #2 est toujours présent

comment:8 in reply to: ↑ 7 Changed 10 years ago by franck

Replying to philippe:

Les favoris sont réparés avec un array à la place du string. Ça ne nous dit pas ce qui a cloché lors de la mise à jour toutefois.

Le warning signalé en #2 est toujours présent

Ça c'est lié aux formats de date (et heure) par défaut, stockés dans les paramètres du blog, rien à voir avec les favoris.

Tu as quoi pour : date_formats et time_formats dans ta table setting (setting_ns = system) ?

J'ai l'impression qu'ils n'ont pas été convertis non plus !

comment:9 Changed 10 years ago by philippe

date_formats

a:21:{i:0;s:8:"%Y-%m-%d";i:1;s:8:"%m/%d/%Y";i:2;s:8:"%d/%m/%Y";i:3;s:8:"%Y/%m/%d";i:4;s:8:"%d.%m.%Y";i:5;s:8:"%b %e %Y";i:6;s:8:"%e %b %Y";i:7;s:8:"%Y %b %e";i:8;s:12:"%a, %Y-%m-%d";i:9;s:12:"%a, %m/%d/%Y";i:10;s:12:"%a, %d/%m/%Y";i:11;s:12:"%a, %Y/%m/%d";i:12;s:9:"%B %e, %Y";i:13;s:9:"%e %B, %Y";i:14;s:9:"%Y, %B %e";i:15;s:9:"%e. %B %Y";i:16;s:13:"%A, %B %e, %Y";i:17;s:13:"%A, %e %B, %Y";i:18;s:13:"%A, %Y, %B %e";i:19;s:13:"%A, %Y, %B %e";i:20;s:13:"%A, %e. %B %Y";}

Ce n'est pas un tableau mais un texte sérialisé, j'ai bon ?

comment:10 Changed 10 years ago by philippe

C'est peut-être lié au ticket #1425 chez Gandi Simple Hosting : une table temporaire n'est pas mise à jour (?). En tout cas le message d'erreur sur la page de connexion indique

Une erreur est survenue durant la mise à jour automatique : Can't create table 'dissitou.#sql-38_f93f' (errno: 121) (1005) Ce sql-38_f93f n'est le nom d'aucune table.

comment:11 Changed 10 years ago by franck

Ah oui, ça pourrait bien être la source du problème !

Et oui, c'est du sérialisé, donc qui n'a pas été converti, et du coup source du warning.

comment:12 follow-up: ↓ 13 Changed 9 years ago by lipki

j'ai personnellement régler le problème de cette manière.

htdocs/inc/admin/class.dc.favorites.php - L273

		$this->ws->put('favorites',$ids,nulll,null,true,$global);
		$this->ws->put('favorites',$ids,'array',null,true,$global);

rencontré après une mise à jour 7 -> 9

comment:13 in reply to: ↑ 12 Changed 9 years ago by franck

Replying to lipki:

j'ai personnellement régler le problème de cette manière.

htdocs/inc/admin/class.dc.favorites.php - L273

		$this->ws->put('favorites',$ids,nulll,null,true,$global);
		$this->ws->put('favorites',$ids,'array',null,true,$global);

rencontré après une mise à jour 7 -> 9

Look [3201] dude ;-)

comment:14 Changed 9 years ago by lipki

cool :D

comment:15 Changed 9 years ago by franck

  • Status changed from new to closed
  • Resolution set to fixed
  • Milestone A definir deleted

Pas eu de retours depuis la 2.9, on va dire que c'est réglé !

Note: See TracTickets for help on using tickets.

Sites map