Re: chemin d'images dans le js d'un plugin
Cerdic <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <c9164549-dfeb-4277-a3d6-bf8561f0ea66__29948.1949581363$1576486948$gmane$org@Spark> |
Never ever ! Jamais, ô grand jamais ! Chaque fois qu’on fait un squelette pour du JS ou du CSS un troupeau d’écureuil meurt en tombant d’un arbre. (aka c’est totalement non écologique). Pour ce genre de cas il faut faire comme dans le plugin links par exemple : - Dans le pipeline insert_head_css tu insère un tout petit bout de JS inline qui initialise une variable JS https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/links/trunk/links_fonctions.php#L89 (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 :) -- Cédric Le 15 déc. 2019 à 21:03 +0100, Jean Marie Grall <[email protected]>, a écrit : > En js, je sais pas, mais avec #CHEMIN > https://www.spip.net/fr_article4332.html tu peux le faire. > > 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?) > > jeanmarie > > Le 15/12/2019 à 18:08, Jacques B a écrit : > > Bonjour, > > Je cherche à faire un plugin utilisant le script > > https://chessboardjs.com/ > > > > 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' > > > > Mais ça donne par exemple dans le privé > > http://localhost/chessboard/ecrire/img/chesspieces/wikipedia/wK.png ou > > dans le public > > http://localhost/chessboard/img/chesspieces/wikipedia/wK.png > > Comment faire pour que le chemin des images soit bien le le dossier > > img du plugin ? Y aurait-il une instruction find_in_path qui serait > > applicable en js ? Ou ... ? > > > > Merci de votre aide ! > > Jacques > > _______________________________________________ > > liste: https://listes.rezo.net/mailman/listinfo/spip-dev > > doc: http://www.spip.net/ > > dev: http://trac.rezo.net/trac/spip/ > > irc://irc.freenode.net/spip > _______________________________________________ > liste: https://listes.rezo.net/mailman/listinfo/spip-dev > doc: http://www.spip.net/ > dev: http://trac.rezo.net/trac/spip/ > irc://irc.freenode.net/spip