Je déclare le script dans paquet.xml ainsi :
<script source="js/chessboard.js" />
J'utilise un modèle pour intégrer des échiquiers dans les articles et le script est bien intégré dans le privé ou le public.
Par contre les images ne passent pas. Elles sont appelées ainsi dans chessboard.js
// default piece theme is wikipedia
if (!config.hasOwnProperty('pieceTheme') ||
(!isString(config.pieceTheme) && !isFunction(config.pieceTheme))) {
config.pieceTheme = 'img/chesspieces/wikipedia/{piece}.png'
Par contre, ça veut dire que ton chessboard.js doit être un squelette, par ex chessboard.js.html, que tu appelles ensuite par le pipeline insert_head (à moins que la déclaration dans paquet.xml gère les squelettes?)
Merci pour la réponse, ça m'aide à y voir plus clair. Ca m'embêtait de mette tout le js en squelette juste pour changer le chemin... mais s'il n'y a pas d'autre solution ^^
Je vais donc essayer de faire ce chessboard_pipeline.php avec insert_head
Merci
Jacques
(la bonne pratique est d’insérer ce JS inline AVANT les CSS, donc en début de pipeline, pour de sombres histoires de cascade de chargement par les navigateurs, mais si tu le fait à la fin de insert_head_css c’est pas la mort - mais il faut alors insérer avant le script, et comme tous les scripts vont être regroupés/concaténés par le minifieur, il faut être sur que ton js inline sera bien avant le JS concaténé à la fin, donc dans insert_head ça risque de pas toujours marcher)
Dans ton cas tu initialisera cette variable avec le chemin vers le dossier img/chesspieces/wikipedia, que tu peux trouver avec un find_in_path()
- dans ton js, tu utilises cette variable globale à la place du chemin en dur https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/links/trunk/links.js#L9
Cela dit, dans ton cas, il y a déjà quelque chose de prévu, donc il faudrait réussir à initialiser config.pieceTheme (mais a voir d’où vient ce config, si c’est une variable globale ou quelque chose à passer quand tu appele les fonctions de ton js)
Et hop le tour est joué, tu as sauvé des écureuils
Je sais pas si il existe une méthode dans Spip pour le faire "proprement",
chaque plugin le fait un peu à sa façon il me semble.
En général Il suffit de déclarer la variable dans le squelette du head dans
des balises scripts. Faut pas chercher midi a 14H