Plugin pour déclarer et écrire sur une bdd externe 🛢️

Bonjour,

Quelques questions sur la mise en place d’un plugin qui permettrait de déployer un formulaire, et d’écrire en base les données soumises sur une base externe SPIP. J’ai le formulaire et la base externe en place, mais je me pose des questions sur la suite, à savoir déclarer/écrire sur la base externe depuis tous les sites qui disposent de ce plugin :

  1. La doc de l’API SQL admet souvent comme paramètre un « connecteur », s’agit-il bien du nom du fichier de connexion à une base de données externe déclarée ? ex : « mabddexterne » pour config/mabddexterne.php ?

  2. Est-il possible de déclarer de nouveaux connecteurs dans un plugin en les plaçant simplement dans monplugin/config/mabddexterne.php ?

  3. La doc indique qu’il n’est pas possible d’écrire dans une table externe :

« Actuellement, les bases secondaires déclarées sont correctement gérées en lecture. L’écriture par contre dans ces bases externes n’est pas encore correctement prise en compte par SPIP. »

Pourtant, l’option du connecteur est bien présente dans les paramètres de fonctions comme sql_insertq(), alors qui dit vrai ?

Merci pour votre aide !

  1. OUI
  2. A priori non, car
    a. Un plugin est générique, un connecteur dépend d’une install
    b. config n’existe que à la racine d’un site
    Mais tu pourrais par contre imaginer de dire qu’il faut créer un connecteur homonyme au plugin
  3. Je ne sais pas, mais probable que la doc n’ait pas été actualisé à temps. Tu teste et nous redis ?

Merci @maieul

L’idée d’un connecteur homonyme au plugin pourrait marcher.

Concrètement, tu proposes que le plugin aille directement écrire dans le filesystem du site sur lequel il est installé le connecteur en question, c’est bien ça ?

monsite/config/mon_plugin_de_connexion_exteren.php

Ok pour tester et faire ici le CR.

le plugin ne peut pas écrire, puisque par définition il n’aura pas accès aux information. Donc ca veut dire que dans tous les cas il faudra que la personne fasse manuellement la déclaration de la base via l’interface de spip.

Je pensais à une procédure à l’installation du plugin qui aille écrire dans le répertoire config du site le connecteur à la table. En php directement, via ecrire_fichier() ou quelque chose dans ce registre.

Mais je me dis que niveau sécurité c’est pas fou fou.

on n’a pas actuellement de moyen de poser des questions de config à l’activation d’un plugin…

Ça ferait un bon objet de plugin

Bonjour

De mon coté je fais un plugin avec un formulaire de connexion , pour saisir les bonnes informations de la bdd externe.
Le formulaire écrit le fichier de config qui va bien.

Le reste du plugin vérifie que le connecteur est bien présent (via une balise de test ou un filtre quand nécessaire)

1 « J'aime »
  1. La doc indique qu’il n’est pas possible d’écrire dans une table externe :
    « Actuellement, les bases secondaires déclarées sont correctement gérées en lecture. L’écriture par contre dans ces bases externes n’est pas encore correctement prise en compte par SPIP. »

je dirais que la doc n’est pas à jour parce qu’en SPIP 4.2 (dernière version) et en passant par la déclaration « standard » de SPIP de ?exec=admin_tech pour connecter une base externe, aucun problème pour écrire dedans les résultats d’un « Traiter » de CVT…