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.


Le 30/06/2020 à 15:38, Stephane Santon a écrit :
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...


--
Stéphane
17 Charente-Maritime
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip

Répondre à