Browse Source

Fix #7

-  Le "logo" dans les `.yaml` ne servait en pratique pas -> on supprime
  -  En revanche on garde icone_barre
  -  On cherche dans:
    * dossier `barres_icones`
    * dossier `images du thème courant, et donc possibilité d'avoir une     alternance png/svg pour les vieux plugins
    * `find_in_path()`
  - On réduit à 16px l'icone pour s'assurer que cela passe dans la barre typo
  - On passe les icones en svg
  - Lorsqu'on a choisi le modèle qu'on veut insérer, on insère l'icone en titre de formulaire
Maïeul 10 months ago
parent
commit
2e7d10ce76
  1. 25
      formulaires/inserer_modeles.html
  2. 4
      formulaires/inserer_modeles.php
  3. BIN
      icones_barre/inserer_modeles.png
  4. BIN
      icones_barre/media.png
  5. 24
      inc/inserer_modeles.php
  6. 2
      inserer_modeles_pipelines.php
  7. 3
      modeles/media.yaml

25
formulaires/inserer_modeles.html

@ -1,9 +1,10 @@
<div class="ajax formulaire_spip formulaire_configurer formulaire_inserer_modeles">
[(#ENV{formulaire_modele}|non)<h3 class="titrem">
<img src="[(#CHEMIN_IMAGE{modele-add-24.png}|url_absolue)]" class="cadre-icone" />
<img src="[(#CHEMIN_IMAGE{modele-add-24.svg}|url_absolue)]" class="cadre-icone" />
<:inserer_modeles:titre_inserer_modeles:>
</h3>]
[(#ENV{formulaire_modele}|oui)<h3 class="titrem">
[(#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>]
@ -30,22 +31,22 @@
]
<input type="hidden" name="formulaire_modele" value="#ENV{formulaire_modele}" />
<div class="editer-groupe">
#GENERER_SAISIES{#ENV{_saisies}}
#GENERER_SAISIES{#ENV{_saisies}}
</div>
<p class="boutons">
<input type="submit" class="submit" name="inserer" value="<:inserer_modeles:bouton_inserer:>" />
[(#ENV{ne_pas_afficher_bouton_annuler}|non)<input type="submit" class="submit link" name="annuler" value="<:bouton_annuler:>" />]
<input type="submit" class="submit" name="inserer" value="<:inserer_modeles:bouton_inserer:>" />
[(#ENV{ne_pas_afficher_bouton_annuler}|non)<input type="submit" class="submit link" name="annuler" value="<:bouton_annuler:>" />]
</p>
</BOUCLE_deja_choisi>
<B_choix>
<strong><:inserer_modeles:choisir_modele:></strong>
<div class="editer-groupe">
<B_choix>
<strong><:inserer_modeles:choisir_modele:></strong>
<div class="editer-groupe">
<div class="editer">
<BOUCLE_choix(POUR){tableau #ENV{_liste_formulaires_modeles}}{par valeur}>
<div class="choix modele">
#SET{id,#CLE|concat{#ENV{modalbox}|?{'_modalbox',''}}}
<input type="radio" class="radio" name="formulaire_modele" id="#GET{id}" value="#CLE" />
<label for="#GET{id}">[(#VALEUR|table_valeur{icone_barre}|balise_img|liens_absolus)&nbsp;][(#VALEUR|table_valeur{nom})]</label>
<BOUCLE_choix(POUR){tableau #ENV{_liste_formulaires_modeles}}{par valeur}>
<div class="choix modele">
#SET{id,#CLE|concat{#ENV{modalbox}|?{'_modalbox',''}}}
<input type="radio" class="radio" name="formulaire_modele" id="#GET{id}" value="#CLE" />
<label for="#GET{id}">[(#VALEUR|table_valeur{icone_barre}|balise_img|liens_absolus)&nbsp;][(#VALEUR|table_valeur{nom})]</label>
</div>
</BOUCLE_choix>
</div>

4
formulaires/inserer_modeles.php

@ -36,7 +36,9 @@ function formulaires_inserer_modeles_charger_dist($formulaire_modele, $modalbox,
$contexte['formulaire_modele'] = $formulaire_modele;
$contexte['_nom'] = _T_ou_typo($infos_modele['nom']);
$contexte['logo'] = $infos_modele['logo'];
if (isset($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')) {
$contexte['_code_modele'] = _request('_code_modele');

BIN
icones_barre/inserer_modeles.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

BIN
icones_barre/media.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 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'] = 'inserer_modeles.png';
$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);

3
modeles/media.yaml

@ -1,6 +1,5 @@
nom: '<:inserer_modeles:nom_media:>'
logo: 'images/media-24.png'
icone_barre: 'media.png'
icone_barre: 'document-xx.svg'
parametres:
-
saisie: 'hidden'

Loading…
Cancel
Save