appels ajax plugin

Bonjour,
Je suis en train de développer un plugin afin de permettre la génération d’audio pour des articles. L’idée est de nettoyer le contenu de la page, d’afficher des blocs de x caractères et de permettra à l’utilisateur de modifier ces blocs puis de générer des mp3 à partir d’une api tts.
J’ai déjà bien avancé et j’ai un script fonctionnel « hors spip » mais je voudrais maintenant l’intégrer comme un plugin au cms.
J’ai une page de config dans lequelle j’entre différentes paramètres comme la clef api tts par exemple.
J’ai également un script php que je charge dans l’interface avec l’url
ecrire/?exec=article_link_audio&id_article=5341
Jusque là ça marche.

Maintenant j’aimerais que ce script fasse appel en ajax à d’autres scripts php qui vont faire des appels curl auprès de l’api et générer des fichiers mp3.
Ma question est comment faire pour que ces scripts auxilliaires aient accès à « l’environnement spip »? çàd les variables de configurations du plugin, le chemin vers le répertoire tmp et autre… Car ces scripts ne sont pas chargés via la fonction exec mais ils sont « autonome ».
Ou alors je m’y prends mal?

Merci d’avance pour votre aide j’espère avoir été assez clair dans mes explications…

Pas sûr d’avoir bien en tête tout ce que tu souhaites.

Si c’est connaître la manière d’organiser le code au sein du plugin, que tu cherches, …

audiolink/
├── paquet.xml
├── lang/                    # Fichiers de langues
│   ├── audiolink_fr.php
│   └── audiolink_en.php
├── prive/                   # Interface privée
│   └── squelettes/
│       └── contenu
│       │   └── configurer_audiolink.html
│       └── style_prive_plugin_audiolink.css.html
├── formulaires/             # Formulaires CVT
│   ├── configurer_audiolink.html
│   └── configurer_audiolink.php
├── inc/                     
│   └── audiolink.php        # Code métier
├── action/
│   └── audiolink.php        # Actions sécurisées via  #URL_ACTION_AUTEUR
└── base/                    # Définitions de tables

Regarde le plugin La fabrique pour t’assister à la mise en place.

Et cette page pour les boutons d’action.

Je pense que la façon de le faire proprement serait de transformer ces scripts autonomes en actions SPIP.

Sachant que les actions ne seraient bien sûr pas dans /ecrire/action mais dans /plugins/ton_plugin/action, mais le mécanisme est le même.

Tu génères leurs urls depuis SPIP avec #URL_ACTION_AUTEUR, qui inclut les mécanismes de sécurité si besoin.

Sachant qu’il y a aussi une rewrite rule pratique (si tu as activé le .htaccess) qui redirige de /bidule.api vers exec=api_bidule.php

Mais peut être j’ai pas compris et je fais fausse route.

Bonsoir et merci pour vos retours!

Il est vrai qu’il n’est pas super simple d’expliquer ce que je veux faire… mais il semble bien que les actions soient la solution!
Il semble en effet qu’un script « text_to_speech2.php » placé dans le répertoire « action » du plugin et appelé par l’url « /ecrire/?action=text_to_speech2 » arrive bien a accéder à « l’environnement » spip comme « lire_config » par exemple.

Maintenant je suis bloqué par le fait que quand j’utilise #URL_ACTION_AUTEUR{text_to_speech2,toto} dans le squelette de mon plugin ça me renvoie une url comme :
/ecrire/?exec=article_link_audio&action=text_to_speech2&arg=toto&hash=23—a360e
et non juste :
/ecrire/?action=text_to_speech2&arg=toto&hash=23—a360e
Une idée de pourquoi ça fait ça?