Bonjour,
J’ai un site sur lequel certains de mes articles sont des présentations de livres. Pour ces livres, nous avons une référence de livre (un identifiant interne), et j’aimerai pouvoir ajouter une balise spécifique, par exemple <livre12345> et un bout de code irait vérifier sur un webservice de notre boutique si le livre est disponible et afficherait une phrase si c’est le cas et une autre si ce n’est pas le cas (par exemple “Voyage au centre de la terre de Jules Verne est disponible dans notre boutique” / “Voyage au centre de la terre a été écrit par Jules Verne”).
Il me semble me souvenir d’avoir fait un truc similaire il y a une dizaine (quinzaine) d’années, il s’agissait peut être d’une ancienne version de spip. Mais je ne retrouve pas de documentation pour faire ça. Est-ce qu’il faut que je recherche des infos sur le développement de “balise”, de “plugin”, ou de “fonction” ?
Avez vous des liens à me donner pour savoir comment faire ça ?
Je ne suis pas un spécialiste de spip, mais je suis développeur de métier… C’est donc plutôt le jargon et la documentation qui me manque. Pour le reste, je suis plutôt rédacteur sur notre spip.
Si tu parles de permettre d'ajouter ça dans un contenu depuis l'admin (le texte d'un article par ex), il s'agit de modèles. C'est tout simplement un squelette SPIP dans le dossier modeles/. Donc là modeles/livre.html
Merci beaucoup, les modèles semblent correspondre à mon besoin.
Mais du coup, si je veux mettre du code php pour faire un appel à un webservice extérieur (ou faire une requête à une base de données), je dois créer un plugin que mon modèle va appeler, c’est ça ?
Mais du coup, si je veux mettre du code php pour faire un appel à un webservice extérieur (ou faire une requête à une base de données), je dois créer un plugin que mon modèle va appeler, c'est ça ?
J'ai fait ça assez très exactement avec un filtre php et plusieurs modèles spécialisés
Ici je présente le code pour la revue mais c'est pareil pour les livres :
- Un modele api_revue sert pour toutes les interrogations du "webservice extérieur"
en ce qui concerne les revues.
Ce modèle contient seulement ça :
[(#NUMERO|api_interrogation_info_revue{#CODE})]
#CODE c'est ce qu'on veut savoir.
L'api interroge, reçoit les infos et les met en cache et renvoie ce qu'on veut.
La fonction api_interrogation_info_revue utilise recuperer_url_cache pour interroger le webservice.
- un modele pour les boutons : b_si_dispo dont voici la partie centrale :
#SET{dispo,#MODELE{api_revue,numero=#NUMERO,code=disponible}}
[(#GET{dispo}|!={non}|oui)
[<b>(#TITRE)</b><br>]
Prix port compris : #GET{prix}€<br> #MODELE{b_commande,what=#GET{what},prix=#GET{prix}}
]
[(#GET{dispo}|!={non}|non)
<span class="ouvrage_pas_dispo"><b>INDISPONIBLE</b><br>
Ce numéro est épuisé.
</span>
]
b_commande c'est un autre bouton qui se pose pas la question de la disponibilité lui.