Browse Source

Chercher l'icone à mettre dans le porte plume/formulaire dans l'ordre suivant

- dossier `barres_icones`
- dossier `images du thème courant
- `find_in_path()`

S'assure également que l'icone ne fait pas plus de 16px, pour ajustement
au porte plume.
Maïeul 12 months ago
parent
commit
772d2f21cd
  1. 2
      formulaires/inserer_modeles.html
  2. 2
      formulaires/inserer_modeles.php
  3. 1
      icones_barre/document-xx.svg
  4. 1
      icones_barre/modele-xx.svg
  5. 24
      inc/inserer_modeles.php
  6. 2
      inserer_modeles_pipelines.php

2
formulaires/inserer_modeles.html

@ -4,7 +4,7 @@
<:inserer_modeles:titre_inserer_modeles:>
</h3>]
[(#ENV{formulaire_modele}|oui)<h3 class="titrem">
[(#ENV{icone_barre}|balise_img)&nbsp;]
[(#ENV{icone_barre}|balise_img|liens_absolus)&nbsp;]
<:inserer_modeles:titre_inserer{modele=#ENV{_nom}}:>
</h3>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]

2
formulaires/inserer_modeles.php

@ -37,7 +37,7 @@ function formulaires_inserer_modeles_charger_dist($formulaire_modele, $modalbox,
$contexte['formulaire_modele'] = $formulaire_modele;
$contexte['_nom'] = _T_ou_typo($infos_modele['nom']);
if (isset($infos_modele['icone_barre'])) {
$contexte['icone_barre'] = find_in_path('icones_barre/'.$infos_modele['icone_barre']);
$contexte['icone_barre'] = inserer_modeles_find_icone_barre_path($infos_modele['icone_barre']);
}
$contexte['_saisies'] = $infos_modele['parametres'];
if (_request('_code_modele')) {

1
icones_barre/document-xx.svg

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 0 111.408 128" width="13.926"><path d="M100.972 10.411c-13.881-13.881-36.467-13.881-50.349 0L1.83 59.205a6.245 6.245 0 0 0 8.832 8.832l48.795-48.794c9.011-9.012 23.673-9.012 32.684 0 9.034 9.033 9.033 23.652 0 32.684L31.018 113.05c-3.288 3.289-8.639 3.289-11.927 0-3.288-3.288-3.288-8.638 0-11.927l58.287-58.286a6.245 6.245 0 0 0-8.832-8.832L10.259 92.29c-8.158 8.158-8.158 21.433 0 29.591 8.159 8.159 21.433 8.158 29.591 0l61.122-61.121c13.916-13.915 13.914-36.436 0-50.349z" style="fill:#555;stroke-width:.25000048"/></svg>

Before

Width:  |  Height:  |  Size: 588 B

1
icones_barre/modele-xx.svg

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M14.994.85v14.272H.975V.85Z" style="fill:#fff;stroke-width:.28920519"/><path d="M11.032 5.242v5.489H4.937V5.24Z" style="fill:#1d83d4;stroke-width:.28920519"/><path d="M9.204 6.889v2.195H6.766V6.889Z" style="fill:#fff;stroke-width:.28920519"/><path d="m12.609 5-1.293-1.164.862-.776 1.293 1.164zM4.654 3.809 3.361 4.973l-.862-.776 1.293-1.165ZM3.36 11l1.294 1.164-.862.776-1.293-1.164zM13.47 11.776l-1.293 1.164-.862-.776 1.293-1.165z" style="fill:#888;stroke-width:.28920519"/><path d="M16 15.204c0 .44-.396.796-.884.796H.884C.396 16 0 15.643 0 15.204V.796C0 .356.396 0 .884 0h14.232c.488 0 .884.357.884.796Zm-1.768-.823V1.59H1.798v12.817h12.434Z" style="fill:#666;stroke-width:.28920519"/></svg>

Before

Width:  |  Height:  |  Size: 768 B

24
inc/inserer_modeles.php

@ -24,7 +24,7 @@ function inserer_modeles_lister_formulaires_modeles() {
if (is_array($yaml_data)) {
$liste_formulaires_modeles[$formulaire] = array(
'nom' => $yaml_data['nom'],
'icone_barre' => isset($yaml_data['icone_barre']) ? find_in_path('icones_barre/'.$yaml_data['icone_barre']) : ''
'icone_barre' => isset($yaml_data['icone_barre']) ? inserer_modeles_find_icone_barre_path($yaml_data['icone_barre']) : ''
);
}
}
@ -99,3 +99,25 @@ function inserer_modeles_definir_defaut($saisies) {
}
return $saisies;
}
/**
* Retrouver l'icone :
* - d'abord dans icones_barre
* - sinon dans le thème / images (et du coup on peut jouer avec png/svg)
* - à défaut dans find_in_path
* S'assure que l'icone ne fait pas plus de 16 px, pour tenir dans la barre du porte plume.
* @param string $nom
* @return string chemin
**/
function inserer_modeles_find_icone_barre_path(string $nom): string {
if (!$chemin = find_in_path("icones_barre/$nom")) {
if (!$chemin = find_in_theme("images/$nom")) {
if(!$chemin = find_in_path($nom)) {
return '';
}
}
}
include_spip('inc/filtres');
include_spip('inc/filtres_images_mini');
return extraire_attribut(image_reduire($chemin, 16), 'src');
}

2
inserer_modeles_pipelines.php

@ -87,7 +87,7 @@ function inserer_modeles_porte_plume_lien_classe_vers_icone($flux) {
$formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
if (count($formulaires_modeles) > 0) {
$icones = array();
$icones['outil_inserer_modeles'] = 'modele-xx.svg';
$icones['outil_inserer_modeles'] = inserer_modeles_find_icone_barre_path('modele-xx.svg');
foreach ($formulaires_modeles as $nom => $formulaire) {
if (substr($nom, -5) == '.yaml') {
$nom = substr($nom, 0, -5);

Loading…
Cancel
Save