Indiquez l’intérêt que vous portez à cette question
0

SVG Fonction embarquer

Bonjour,

Je me demandais si quelqu’un pouvait m’aider a concocter une fonction php pour utiliser un fichier "Sprite" au format SVG.

J’ai donc un fichier SVG ou se trouve plusieurs icônes avec différentes taille. Mon premier problème et que je ne peut pas définir dans l’attribut "viewbox" une taille statique. Car chacun de mes objets vectoriel a une taille différente. Et si je ne renseigne rien, mon fichier SVG fera 300x150 ce qui ne me convient pas.

l’idée serait de faire une fonction "embarquer_svg" et pouvoir y passer un paramètre pour récupérer un ID spécifique ainsi que le "viewbox" de celui-ci. Genre :

[({#CHEMIN{images/sprite.svg}|embarquer_svg{icon_id})]

et construire ceci :

<svg viewbox="0 0 40 80">
  <use xlink:href="squelettes/images/sprites.svg#icon_id"/>
</svg>

J’ai réussi a faire quelque chose avec la boucle "data" mais ce serait plus propre avec une fonction php :

[(#REM)
 
  - On définit le fichier SVG a explorer dans la variable "svg_sprite".
  - On stock dans le tableau "svg_viewbox" l'attribut "viewbox" pour chaque "id" d'après le fichier SVG passé dans "svg_sprite".
 
]
 
[(#SET{svg_sprite,#CHEMIN{css/images/sprite.svg}})]
[(#SET{svg_viewbox,#ARRAY})]
<BOUCLE_svg(DATA){source simplexml, #GET{svg_sprite}}>
<BOUCLE_data(DATA){source table, #VALEUR{children/symbol}}>
#SET_MERGE{svg_viewbox,#GET{svg_viewbox},#ARRAY{#VALEUR{attributes/id},#VALEUR{attributes/viewbox}}}
</BOUCLE_data>
</BOUCLE_svg>
 
[(#REM)
 
  - On récupère la taille du fichier SVG dans l'attribut "viewbox" d'après le ID.
  - On récupère le fichier SVG d'après le ID.
 
]
 
<svg viewbox="#GET{svg_viewbox/#VAL{#icon_id}}">
  <use xlink:href="[(#GET{svg_sprite})]#VAL{#icon_id}"/>
</svg>