Syntaxe des tables de paramétrage

MantisBT forum for users who prefer to ask and answer questions in French.

Moderators: Developer, Contributor

Post Reply
OphyTe
Posts: 18
Joined: Nov 07, 2014 4:09 am

Syntaxe des tables de paramétrage

Post by OphyTe » Nov 13, 2014 5:44 am

Bonjour,

Je suis sur une migration d'une ancienne install de Mantis 1.0.2 --> 1.2.17 et je rencontre quelques soucis liés aux adaptations hasardeuses faite sur cette install.
En l'occurrence, là je me confronte à une valeur en erreur sur la page "Rapport de configuration" (.../adm_config_report.php). En effet, j'ai 3 valeurs (pour 2 projets différents et tous les projets) de l'option de configuration "status_enum_workflow" qui sont à "La configuration dans la base de données est corrompue." !

Dans la BDD, j'ai les valeurs suivantes que je ne sais pas interpréter :

Code: Select all

"status_enum_workflow","0","0","90","3","a:11:{i:10;s:161:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:20;s:147:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:40;s:149:""20:attente d'information,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:50;s:138:""20:attente d'information,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:60;s:113:""70:livré,50:affecté,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:70;s:115:""80:résolu et à mettre en production,50:affecté,60:corrigé,72:Livré en Qualif,74:Livré en Recette,76:Refusé,90:fermé"";i:72;s:85:""80:résolu et à mettre en production,50:affecté,74:Livré en Recette,76:Refusé,90:fermé"";i:74;s:65:""80:résolu et à mettre en production,50:affecté,76:Refusé,90:fermé"";i:76;s:30:""90:fermé,50:affecté,60:corrigé"";i:80;s:30:""50:affecté,10:nouveau,90:fermé"";i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";}"

"status_enum_workflow","63","0","90","3","a:8:{i:10;s:112:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";i:20;s:98:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";i:40;s:100:""20:attente d'information,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";i:50;s:89:""20:attente d'information,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";i:60;s:53:""70:livré,80:résolu et à mettre en production,90:fermé"";i:70;s:55:""80:résolu et à mettre en production,50:affecté,90:fermé"";i:80;s:30:""50:affecté,10:nouveau,90:fermé"";i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";}"

"status_enum_workflow","94","0","90","3","a:11:{i:10;s:161:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:20;s:147:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:40;s:149:""20:attente d'information,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:50;s:138:""20:attente d'information,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:60;s:92:""70:livré,72:Livré en Qualif,74:Livré en Recette,80:résolu et à mettre en production,90:fermé"";i:70;s:104:""74:Livré en Recette,50:affecté,72:Livré en Qualif,76:Refusé,80:résolu et à mettre en production,90:fermé"";i:72;s:85:""80:résolu et à mettre en production,50:affecté,74:Livré en Recette,76:Refusé,90:fermé"";i:74;s:65:""80:résolu et à mettre en production,50:affecté,76:Refusé,90:fermé"";i:76;s:19:""90:fermé,50:affecté"";i:80;s:30:""50:affecté,10:nouveau,90:fermé"";i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";}"
Mis en forme ça donne :

Code: Select all

tous les projets:
-----------------
	a:11:{
		i:10;s:161:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:20;s:147:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:40;s:149:""20:attente d'information,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:50;s:138:""20:attente d'information,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:60;s:113:""70:livré,50:affecté,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:70;s:115:""80:résolu et à mettre en production,50:affecté,60:corrigé,72:Livré en Qualif,74:Livré en Recette,76:Refusé,90:fermé"";
		i:72;s:85:""80:résolu et à mettre en production,50:affecté,74:Livré en Recette,76:Refusé,90:fermé"";
		i:74;s:65:""80:résolu et à mettre en production,50:affecté,76:Refusé,90:fermé"";
		i:76;s:30:""90:fermé,50:affecté,60:corrigé"";
		i:80;s:30:""50:affecté,10:nouveau,90:fermé"";
		i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";
	}

Projet 63 :
-----------	
	a:8:{
		i:10;s:112:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";
		i:20;s:98:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";
		i:40;s:100:""20:attente d'information,50:affecté,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";
		i:50;s:89:""20:attente d'information,60:corrigé,70:livré,80:résolu et à mettre en production,90:fermé"";
		i:60;s:53:""70:livré,80:résolu et à mettre en production,90:fermé"";
		i:70;s:55:""80:résolu et à mettre en production,50:affecté,90:fermé"";
		i:80;s:30:""50:affecté,10:nouveau,90:fermé"";
		i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";
	}
	
Projet 94 :
-----------
	a:11:{
		i:10;s:161:""20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:20;s:147:""40:confirmé,10:nouveau,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:40;s:149:""20:attente d'information,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:50;s:138:""20:attente d'information,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:60;s:92:""70:livré,72:Livré en Qualif,74:Livré en Recette,80:résolu et à mettre en production,90:fermé"";
		i:70;s:104:""74:Livré en Recette,50:affecté,72:Livré en Qualif,76:Refusé,80:résolu et à mettre en production,90:fermé"";
		i:72;s:85:""80:résolu et à mettre en production,50:affecté,74:Livré en Recette,76:Refusé,90:fermé"";
		i:74;s:65:""80:résolu et à mettre en production,50:affecté,76:Refusé,90:fermé"";
		i:76;s:19:""90:fermé,50:affecté"";
		i:80;s:30:""50:affecté,10:nouveau,90:fermé"";
		i:90;s:57:""10:nouveau,50:affecté,80:résolu et à mettre en production"";
	}
Je crois comprendre que les i:XX se rapportent à la variable $s_status_enum_string redéfinie dans mes fichiers config_inc.php (en anglais) et custom_string_inc.php (en français) par contre je ne sais pas interpréter les s:XXX !

Quelqu'un pourrait-il m'éclairer sur la syntaxe en BDD de ces tables de paramétrage ?

Merci

OphyTe
Posts: 18
Joined: Nov 07, 2014 4:09 am

Re: Syntaxe des tables de paramétrage

Post by OphyTe » Nov 14, 2014 9:05 am

J'apporte un peu d'eau à mon moulin :roll:
En recopiant une partie de mon workflow d'origine via l'interface dédiée, j'ai pu voir que l'enregistrement en base est quasi identique, seules les valeurs de ces s:XXX change :

Code: Select all

Version corrigée pour tous les projets :	
	a:11:{
		i:10;s:171:"20:attente d'information,40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé";
		i:20;s:146:"40:confirmé,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé";
		i:40;s:158:"20:attente d'information,50:affecté,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé";
		i:50;s:146:"20:attente d'information,60:corrigé,70:livré,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé";
		i:60;s:121:"70:livré,50:affecté,72:Livré en Qualif,74:Livré en Recette,76:Refusé,80:résolu et à mettre en production,90:fermé";
		i:70;s:123:"80:résolu et à mettre en production,50:affecté,60:corrigé,72:Livré en Qualif,74:Livré en Recette,76:Refusé,90:fermé";
		i:72;s:91:"80:résolu et à mettre en production,50:affecté,74:Livré en Recette,76:Refusé,90:fermé";
		i:74;s:70:"80:résolu et à mettre en production,50:affecté,76:Refusé,90:fermé";
		i:76;s:33:"90:fermé,50:affecté,60:corrigé";
		i:80;s:32:"50:affecté,10:nouveau,90:fermé";
		i:90;s:60:"10:nouveau,50:affecté,80:résolu et à mettre en production";
	}
D'après ce que j'ai pu comprendre sur ce ticket, le problème pourrait être lié à l'encodage des caractères en UTF8 et ce paramètre pourrait n'être en fait que la longueur de la chaîne ... mais ça ne semble pas coller ! Et en rajoutant la regex de remplacement suivante (qui recalcule la longueur de la chaîne si j'ai bien compris), ça ne colle pas + !

Code: Select all

$t_raw_value = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $t_raw_value ); 

Post Reply