Bonjour,
Sur Objets virtuels 1.1.3, Spip 3.2.7 (et saisies 3.41.3 au cas où), lorsque je coche "Articles" puis clique Enregistrer, le formulaire n'enregistre pas la configuration et redécoche tout...
Des pistes ?
Merci
Bonjour,
Sur Objets virtuels 1.1.3, Spip 3.2.7 (et saisies 3.41.3 au cas où), lorsque je coche "Articles" puis clique Enregistrer, le formulaire n'enregistre pas la configuration et redécoche tout...
Des pistes ?
Merci
Bonjour,
J'ai trouvé le BUG, (mais pas capable de corriger). Pfiouuuu !
Spip 3.2.7 et tables avec préfixe personnalisé : bs4_ au lieu de spip_
Dans le fichier
objets_virtuels\v1.1.3\formulaires\configurer_objets_virtuels.php
function formulaires_configurer_objets_virtuels_traiter_dist() {
L44 : Le nom de table est récupéré sous le format 'spip_articles' et on fait un sql_showtable. Celui-ci renvoie un array $desc *VIDE*.
Donc
L45 : quand on teste la présence du champ 'virtuel', c'est négatif,
on lance la requête SQL
ALTER TABLE bs4_articles ADD virtuel text DEFAULT '' NOT NULL
qui déclenche une erreur
:Pri:ERREUR: Erreur mysql 1060
:Pri:ERREUR: Erreur 1060 de mysql: Duplicate column name 'virtuel'
[sql_alter(),formulaires_configurer_objets_virtuels_traiter_dist(),traiter_formulaires_dynamiques()]
ALTER TABLE `...`.bs4_articles ADD virtuel text DEFAULT '' NOT NULL
Si avant L44 (sql_showtable) j'insère
$table = str_replace( 'spip_', 'bs4_', $table);
ça marche bien !
DONC, je ne sais pas si c'est :
formulaires_configurer_objets_virtuels_charger_dist() {
qui ne charge pas les noms de tables avec préfixes pour les transmettre correctement à
formulaires_configurer_objets_virtuels_traiter_dist()
ou
sql_showtable($table) qui ne sait pas récupérer les infos des tables dont le préfixe n'est pas 'spip_'
Pour corriger, je passe la main aux pros.
Bonjour Stephane,
C’est très bien vu pour l’appel à sql_showtable().
En fait il faut remplacer `$desc = sql_showtable($table);` par `$desc = sql_showtable($table, true);`
Je suis assez étonné que ça ne soit pas le comportement par défaut en fait, et il semble que plusieurs plugins ont du coup la même erreur dans leur code, notamment :
- champs extras interface,
- couteau suisse (boite privée)
- date_creation
- identifiants
- inscription3 (les appels semblent incorrects)
- isocode
- rang
- saveauto (PHPStorm indique beaucoup d’indéfinis dans la fonction inc_saveauto_dist(), pas sûr que ce truc marche de toutes façons)
Même dans SPIP : certaines vieilles maj ne l’utilisent pas
- maj_11778()
- maj_1_938()
Probablement quelques corrections à faire donc.
MM.