Après avoir passé plusieurs heures à chercher la solution à un problème d’ajout de documents [et l’avoir en partie trouvée sur le post de forum de Cyril sur le forum Ajout de documents joints impossible et parce qu’alzheimer me guette, tentative de synthèse sous forme de checklist.
NB : ces problèmes d’upload de documents ont souvent lieu suite à une install mais surtout d’une réinstall (changement de serveur, nouvelle version, mise à jour).
0. Tout d’abord, je crois qu’il est important de préciser qu’il faut être sur de bien avoir lu la doc, notamment les consignes liées aux mises à jour de version (par exemple Mise à jour 1 .9 .x vers 2 .0 .9) et d’une manière générale les consignes d’installation.
Si le problème demeure :
1. Vérifier que le transfert de fichiers, notamment du dossier ecrire, s’est bien effectué. Avez-vous le bon nombre de repertoires, en prenant un dossier au hasard, avez vous le bon nombre de fichiers ? Qu’indique le message de votre logiciel FTP quand au nombre de fichiers transférés ?
Si vous utilisez le spip_loader.php et l’installation automatique, il peut arriver qu’il y ait aussi un problème de transfert de fichiers au cours de la manœuvre.
Par exemple dans mon problème du jour, en allant dans la section de configuration avancée j’obtenais ce message d’erreur.
Fatal error: Cannot redeclare retirer_marqueurs_url_propre()
(previously declared in
/xx/aaa/www/spip/ecrire/urls/propres.php:61) in
/xx/aawww/spip/ecrire/urls/propres.php on line 61Le problème a été résolu en ré-uploadant correctement le dossier ecrire dans son ensemble
2. Tous vos fichiers sont correctement transférés. Le problème subsiste. Il faut maintenant vérifier que les dossiers IMG, local et tmp ont les droits de lecture, d’exécution et d’écriture correctement fixés. J’ai remarqué que parfois lors de l’installation via le loader les droits étaient totalement en vrac.
Les droits pour les dossiers IMG, tmp, local, config doivent être au moins 0775. (Voir ce tutoriel en anglais FTP and CHMOD tutorial for beginners et )
Il est possible que vous n’arriviez pas à changer ces droits via votre logiciel ftp après une install via le loader si le propriétaire est www-data. Il vous faudra alors créer un script php pour faire cette modification.
3. Vous avez tous les droits. Mais ça ne marche toujours pas. Le problème est peut-être du côté de mysql.
Allez - via phpmyadmin par exemple, vérifier que la table spip_types_document est bien remplie.
Pour ce faire après avoir sélectionné votre table, cliquez sur

Vous devriez voir quelque chose de ce type.

Si phpmyadmin vous renvoie un résultat nul, il y a de fortes chances pour que vous ayez trouvé la source de vos problèmes.
Deux solutions s’offrent alors à vous :
virer le fichier connect.php du dossier config et relancer la configuration de votre site en allant sur urlsite.com/ecrire
ou si vous être un aventurier, exporter d’une base saine le contenu de la table spip_types_document et le réimporter via un INSERT.
4. Dans le forum cité précédemment, il est suggéré d’ajouter
define('_MYSQL_SQL_MODE_TEXT_NOT_NULL',1);dans le fichier mes_options.php, mais ça n’a pas eu d’effet dans mon cas. Cependant, cette constante peut-être efficace si vous êtes sur un serveur MYSQL 5 avec une version 1.9.xx . Il me semble qu’un bugfix a été intégré depuis dans les versions suivantes.
Merci de me signaler si il y a des erreurs.