Compare commits

...

24 Commits

Author SHA1 Message Date
Maïeul a7ef787cdc build: v2.0.2 2 weeks ago
Maïeul bafbfa72bc chore: le debugage de #12 a montré que `_modalbox_retour` n'était plus nécessaire. 2 weeks ago
tcharlss a8c0d6cea8 fix(#13): exclure les modèles ignorés dans la barre d'édition également 2 weeks ago
jack31 b27a7d0eb2 [Salvatore] [source:lang/ inserer_modeles] Export depuis https://trad.spip.net de la langue en 9 months ago
Salvatore 95c25db5a6 [Salvatore] [source:lang/ inserer_modeles] Export depuis https://trad.spip.net de la langue en 9 months ago
Maïeul 02a1293686 oups, la suppression du .png ne permettait plus de retrouver le .svg 9 months ago
Maïeul b9760bf4e0 Un pipeline pour supprimer certains formulaires de modeles. 10 months ago
Maïeul 7a0346475a pouvoir configurer des modèles à ignorer 10 months ago
Maïeul f550ebed1b Pas d'article devant le modèle 10 months ago
Maïeul 79b84a7728 button plutot que input valide + formnovalidate, fix #10 10 months ago
Maïeul 09b2703250 fix bug d'appel dans modalbox, parfois 10 months ago
Maïeul 88d0bfef44 un logo svg 10 months ago
Maïeul 435056c30f plus de #DIV 10 months ago
Maïeul 120fb68871 plus besoin de ce style 10 months ago
Maïeul 0277933d87 Modele de doc : ne proposer que doc + proposer les nouvelles options. 10 months ago
Maïeul ab7c16b4ff un v2.0, pour SPIP 4++ seulement 10 months ago
Maïeul 0841aa3693 up de z 10 months ago
Maïeul eb33a8eb9c Fix #7 10 months ago
erational 98608e6aaa [ui] icone SVG. il reste les icones de porte plume à faire 1 year ago
Matthieu Marcillaud 03caf7fe7e Suppression du fichier .gitattributes inutile. 1 year ago
Jack31 bf61f8987c compat 4.0 2 years ago
Jack31 70ceba009c Règler deprecated en php8 2 years ago
Maïeul e3fcfc44f5 coquille sur test, sans grand importance 2 years ago
Maïeul c527c55498 Fix warning sur les formulaires _edit qui n'éditent pas un objet, mais 2 years ago
  1. 29
      .gitattributes
  2. 7
      CHANGELOG.md
  3. 13
      formulaires/configurer_inserer_modeles.php
  4. 24
      formulaires/inserer_modeles.html
  5. 22
      formulaires/inserer_modeles.php
  6. BIN
      icones_barre/inserer_modeles.png
  7. BIN
      icones_barre/media.png
  8. 103
      inc/inserer_modeles.php
  9. 18
      inserer_modeles_pipelines.php
  10. 9
      lang/inserer_modeles.xml
  11. 24
      lang/inserer_modeles_en.php
  12. 18
      lang/inserer_modeles_fr.php
  13. 9
      lang/inserer_modeles_nl.php
  14. 68
      modeles/media.yaml
  15. 15
      paquet.xml
  16. BIN
      prive/themes/spip/images/modele-16.png
  17. BIN
      prive/themes/spip/images/modele-24.png
  18. BIN
      prive/themes/spip/images/modele-32.png
  19. BIN
      prive/themes/spip/images/modele-add-16.png
  20. BIN
      prive/themes/spip/images/modele-add-24.png
  21. 1
      prive/themes/spip/images/modele-add-24.svg
  22. BIN
      prive/themes/spip/images/modele-add-32.png
  23. 1
      prive/themes/spip/images/modele-xx.svg

29
.gitattributes vendored

@ -1,29 +0,0 @@
* text=auto !eol
formulaires/configurer_inserer_modeles.html -text
formulaires/inserer_modeles.html -text
formulaires/inserer_modeles.php -text
icones_barre/inserer_modeles.png -text
icones_barre/media.png -text
inc/inserer_modeles.php -text
/inserer_modeles.html -text
/inserer_modeles_pipelines.php -text
javascript/autosize.min.js -text
lang/inserer_modeles.xml -text
lang/inserer_modeles_en.php -text
lang/inserer_modeles_fr.php -text
lang/inserer_modeles_nl.php -text
lang/paquet-inserer_modeles.xml -text
lang/paquet-inserer_modeles_en.php -text
lang/paquet-inserer_modeles_fr.php -text
lang/paquet-inserer_modeles_nl.php -text
modeles/media.yaml -text
/paquet.xml -text
prive/squelettes/contenu/configurer_inserer_modeles.html -text
prive/style_prive_plugin_inserer_modeles.html -text
prive/themes/spip/images/modele-16.png -text
prive/themes/spip/images/modele-24.png -text
prive/themes/spip/images/modele-32.png -text
prive/themes/spip/images/modele-add-16.png -text
prive/themes/spip/images/modele-add-24.png -text
prive/themes/spip/images/modele-add-32.png -text
saisies/param_modele.html -text

7
CHANGELOG.md

@ -0,0 +1,7 @@
# CHANGELOG
## [2.0.2] - 2022-11-20
### Fixed
- #13 : exclure également de la barre d'outils les modèles désactivés dans la config/en pipeline

13
formulaires/configurer_inserer_modeles.php

@ -5,6 +5,11 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function formulaires_configurer_inserer_modeles_saisies_dist() {
include_spip('inc/inserer_modeles');
$modeles_dispo = inserer_modeles_lister_formulaires_modeles();
$modeles_dispo = array_map(function($n) {
return $n['nom'];
},$modeles_dispo);
return array(
array(
'saisie' => 'choisir_objets',
@ -14,6 +19,14 @@ function formulaires_configurer_inserer_modeles_saisies_dist() {
'defaut' => array('spip_articles', 'spip_rubriques', 'spip_breves', 'spip_mots'),
'explication' => _T('inserer_modeles:choix_objets_editable_explication'),
)
),
array(
'saisie' => 'checkbox',
'options' => array(
'nom' => 'ignorer_modeles',
'label' => _T('inserer_modeles:ignorer_modeles'),
'data' => $modeles_dispo
)
)
);
}

24
formulaires/inserer_modeles.html

@ -1,10 +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">
<:inserer_modeles:titre_inserer{modele=#ENV{_nom}}:>
[(#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>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
@ -29,29 +29,29 @@
});</script>
]
<input type="hidden" name="formulaire_modele" value="#ENV{formulaire_modele}" />
<[(#DIV|sinon{ul})] class="editer-groupe">
<div class="editer-groupe">
#GENERER_SAISIES{#ENV{_saisies}}
</[(#DIV|sinon{ul})]>
</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:>" />]
<button type="submit" class="submit" name="inserer" value="1"><:inserer_modeles:bouton_inserer:></button>
[(#ENV{ne_pas_afficher_bouton_annuler}|non)<button type="submit" class="submit" value="1" name="annuler" formnovalidate><:bouton_annuler:></button>]
</p>
</BOUCLE_deja_choisi>
<B_choix>
<strong><:inserer_modeles:choisir_modele:></strong>
<[(#DIV|sinon{ul})] class="editer-groupe">
<[(#DIV|sinon{li})] class="editer">
<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" style="vertical-align:top;" />
<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|sinon{li})]>
</[(#DIV|sinon{ul})]>
</div>
</div>
<p class="boutons">
<input type="submit" class="submit" name="choisir" value="<:inserer_modeles:bouton_choisir:>" />
<button type="submit" class="submit" name="choisir" value="1" ><:inserer_modeles:bouton_choisir:></button>
</p>
</B_choix>
<//B_deja_choisi>

22
formulaires/inserer_modeles.php

@ -15,7 +15,8 @@ function formulaires_inserer_modeles_charger_dist($formulaire_modele, $modalbox,
}
}
if ((!_request('formulaire_modele') && $formulaire_modele=='') || _request('annuler')) {
$contexte['_liste_formulaires_modeles'] = inserer_modeles_lister_formulaires_modeles();
$modeles_dispo = inserer_modeles_lister_formulaires_modeles(true);
$contexte['_liste_formulaires_modeles'] = $modeles_dispo;
} else {
if ($formulaire_modele != '') {
$contexte['ne_pas_afficher_bouton_annuler'] = 'on';
@ -36,7 +37,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');
@ -48,21 +51,6 @@ function formulaires_inserer_modeles_charger_dist($formulaire_modele, $modalbox,
if ($modalbox!='') {
$contexte['modalbox'] = 'oui';
$_modalbox_retour = url_absolue(generer_url_public('inserer_modeles', '', true));
if (substr($formulaire_modele, -5) == '.yaml') {
$formulaire_modele = substr($formulaire_modele, 0, -5);
}
$_modalbox_retour = parametre_url($_modalbox_retour, 'formulaire_modele', $formulaire_modele, '&');
// Il faut aussi transmettre les id ici
foreach ($env as $var => $val) {
if (substr($var, 0, 3) == 'id_' && is_numeric($val)) {
$_modalbox_retour = parametre_url($_modalbox_retour, $var, $val, '&');
}
}
// Dans le cas où une saisie ouvre une nouvelle modalbox, il faut transmettre le param modalbox au retour
// sinon le bouton submit ne fermera pas la modalbox
$_modalbox_retour = parametre_url($_modalbox_retour, 'modalbox', 'oui', '&');
$contexte['_modalbox_retour'] = $_modalbox_retour;
}
return $contexte;

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

103
inc/inserer_modeles.php

@ -2,45 +2,73 @@
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/saisies');
/**
* Lister les formulaires de modeles disponibles dans les dossiers modeles/
* les trie par ordre alphabétique de nom
*
* Par défaut retourne les modèles ignorés dans la config,
* on peut optionnellement les exclure.
*
* @staticvar array $liste_formulaires_modeles
* @param bool $exclure_ignores
* pour exclure les modèles ignorés dans la config
* @return array
*/
function inserer_modeles_lister_formulaires_modeles() {
static $liste_formulaires_modeles = false;
function inserer_modeles_lister_formulaires_modeles(bool $exclure_ignores = false): array {
static $listes_memoire;
$hash = ($exclure_ignores ? 1 : 0);
if (isset($listes_memoire[$hash])) {
return $listes_memoire[$hash] ?: [];
}
if ($liste_formulaires_modeles === false) {
$liste_formulaires_modeles = array();
$match = '[^-]*[.]yaml$';
$liste = find_all_in_path('modeles/', $match);
$liste_formulaires_modeles = array();
$match = '[^-]*[.]yaml$';
$liste = find_all_in_path('modeles/', $match);
if (count($liste)) {
include_spip('inc/yaml');
foreach ($liste as $formulaire => $chemin) {
$yaml_data = yaml_charger_inclusions(yaml_decode_file($chemin));
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']) : ''
);
}
if (count($liste)) {
include_spip('inc/yaml');
foreach ($liste as $formulaire => $chemin) {
$formulaire = str_replace('.yaml', '', $formulaire);//
$yaml_data = yaml_charger_inclusions(yaml_decode_file($chemin));
if (is_array($yaml_data)) {
$liste_formulaires_modeles[$formulaire] = array(
'nom' => $yaml_data['nom'],
'icone_barre' => isset($yaml_data['icone_barre']) ? inserer_modeles_find_icone_barre_path($yaml_data['icone_barre']) : ''
);
}
}
}
// Traduire les chaines de langues des noms
$liste_formulaires_modeles = array_map(function($valeur) {
$valeur['nom'] = _T_ou_typo($valeur['nom']);
return $valeur;
}, $liste_formulaires_modeles);
// Traduire les chaines de langues des noms
$liste_formulaires_modeles = array_map(function($valeur) {
$valeur['nom'] = _T_ou_typo($valeur['nom']);
return $valeur;
}, $liste_formulaires_modeles);
// Puis les trier par ordre alphabétique
uasort($liste_formulaires_modeles, function($valeur1, $valeur2) {
if ($valeur1['nom'] > $valeur2['nom']) {
return 1;
} elseif ($valeur1['nom'] == $valeur2['nom']) {
return 0;
} else {
return -1;
}
});
$liste_formulaires_modeles = pipeline('inserer_modeles_lister_formulaires_modeles', $liste_formulaires_modeles);
// Puis les trier par ordre alphabétique
uasort($liste_formulaires_modeles, function($valeur1, $valeur2) {
return $valeur1['nom'] > $valeur2['nom'];
});
// Retirer les modèles désactivés dans la config
if ($exclure_ignores === true) {
include_spip('inc/config');
$config_ignorer = lire_config('inserer_modeles/ignorer_modeles') ?? [];
foreach ($config_ignorer as $ignorer) {
unset($liste_formulaires_modeles[$ignorer]);
}
}
$listes_memoire[$hash] = $liste_formulaires_modeles;
return $liste_formulaires_modeles;
}
@ -93,3 +121,26 @@ 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($nom) {
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');
$chemin = preg_replace('#\?.*$#', '', $chemin);//Au cas où find_in_theme nous return un truc genre gis-xx.svg?16px
return extraire_attribut(image_reduire($chemin, 16), 'src');//On force la reduction à 16px, pour le porteplume
}

18
inserer_modeles_pipelines.php

@ -24,7 +24,7 @@ function inserer_modeles_affiche_droite($flux) {
$objets = inserer_modeles_objets();
if (in_array($flux['args']['exec'], $objets)) {
include_spip('inc/inserer_modeles');
if (count(inserer_modeles_lister_formulaires_modeles()) > 0) {
if (count(inserer_modeles_lister_formulaires_modeles(true)) > 0) {
$flux['data'] .= recuperer_fond('inserer_modeles', $flux['args']);
}
}
@ -36,7 +36,7 @@ function inserer_modeles_affiche_droite($flux) {
function inserer_modeles_porte_plume_barre_pre_charger($barres) {
include_spip('inc/inserer_modeles');
$formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
$formulaires_modeles = inserer_modeles_lister_formulaires_modeles(true);
if (count($formulaires_modeles) > 0) {
$barre = &$barres['edition'];
$barre->ajouterApres('grpCaracteres', array(
@ -84,10 +84,10 @@ function inserer_modeles_porte_plume_barre_pre_charger($barres) {
function inserer_modeles_porte_plume_lien_classe_vers_icone($flux) {
include_spip('inc/inserer_modeles');
$formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
$formulaires_modeles = inserer_modeles_lister_formulaires_modeles(true);
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);
@ -129,9 +129,13 @@ function inserer_modeles_formulaire_fond($flux) {
}
if (substr($flux['args']['form'], 0, 7) === 'editer_') {
$objet = $flux['args']['args']['type'];
$id = $flux['args']['args']['id'];
$hidden = inserer_modele_generer_hidden_url_modalbox($objet, $id);
if (isset($flux['args']['args']['type']) and isset($flux['args']['args']['id'])) {
$objet = $flux['args']['args']['type'];
$id = $flux['args']['args']['id'];
$hidden = inserer_modele_generer_hidden_url_modalbox($objet, $id);
} else {
$hidden = inserer_modele_generer_hidden_url_modalbox();
}
} else {
$hidden = inserer_modele_generer_hidden_url_modalbox();
}

9
lang/inserer_modeles.xml

@ -5,12 +5,15 @@
url="https://trad.spip.net"
source="https://git.spip.net/spip-contrib-extensions/inserer_modeles.git"
reference="fr">
<langue code="en" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=en" total="20" traduits="17" relire="0" modifs="3" nouveaux="0" pourcent="85.00">
<langue code="en" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=en" total="30" traduits="29" relire="1" modifs="0" nouveaux="0" pourcent="96.67">
<traducteur nom="Benitron" lien="https://trad.spip.net/auteur/benitron" />
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
<traducteur nom="jack31" lien="https://trad.spip.net/auteur/jack31" />
<traducteur nom="raphael" lien="https://trad.spip.net/auteur/raphael-7042" />
<traducteur nom="stefdn" lien="https://trad.spip.net/auteur/stefdn" />
</langue>
<langue code="fr" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=fr" total="20" traduits="20" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
<langue code="nl" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=nl" total="20" traduits="17" relire="0" modifs="3" nouveaux="0" pourcent="85.00">
<langue code="fr" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=fr" total="30" traduits="30" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
<langue code="nl" url="https://trad.spip.net/tradlang_module/inserer_modeles?lang_cible=nl" total="30" traduits="15" relire="0" modifs="6" nouveaux="9" pourcent="50.00">
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
</langue>
</traduction>

24
lang/inserer_modeles_en.php

@ -15,21 +15,33 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// C
'choisir_modele' => 'What do you want to add?',
'choix_objets_editable' => 'Choose one or more object', # MODIF
'choix_objets_editable_explication' => 'Please select one or more objects in which you want the model insertion bloc to appear.', # MODIF
'choix_objets_editable' => 'Objects where you can propose the insertion of models.',
'choix_objets_editable_explication' => 'Please select one or more objects on which you want the template insertion block to appear. Please note that in all cases, the penholder (typographic bar) will propose the templates.',
// E
'erreur_choix_modele' => 'You must choose a template.',
'explication_alt' => 'If empty, the alternative text of the document will be used.
',
'explication_credits' => 'If empty, the document credits will be used.',
'explication_descriptif' => 'If empty, the document description will be used.
',
'explication_titre' => 'If empty, the document title will be used.',
// I
'ignorer_modeles' => 'Do not offer the following templates',
'item_center' => 'center',
'item_left' => 'left',
'item_right' => 'right',
// L
'label_alignement' => 'Alignment :',
'label_alignement' => 'Alignment:',
'label_alt' => 'Alternative text if the image is not visible',
'label_credits' => 'Credits',
'label_descriptif' => 'Description',
'label_hauteur' => 'Max height (px)',
'label_id_document' => 'Document number:',
'label_modele' => 'Template:',
'label_largeur' => 'Max width (px)',
'label_titre' => 'Title',
// M
'message_code_insere' => 'The tag has been inserted into the text.',
@ -43,7 +55,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'outil_inserer_modeles' => 'Insert a template',
// T
'titre_inserer' => 'Insrt @modele@',
'titre_inserer' => 'Insert @modele@',
'titre_inserer_modeles' => 'Insert a template',
'titre_page_configurer_inserer_modeles' => 'Configure plugin ’Model Insertion’' # MODIF
'titre_page_configurer_inserer_modeles' => 'Configure plugin ’Model Insertion’' # RELIRE
);

18
lang/inserer_modeles_fr.php

@ -18,16 +18,26 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// E
'erreur_choix_modele' => 'Vous devez choisir un modèle.',
'explication_alt' => 'Si vide, le texte alternatif du document sera utilisé.',
'explication_credits' => 'Si vide, les crédits du document seront utilisés.',
'explication_descriptif' => 'Si vide, le descriptif du document sera utilisé.',
'explication_titre' => 'Si vide, le titre du document sera utilisé.',
// I
'ignorer_modeles' => 'Ne pas proposer les modèles suivants',
'item_center' => 'au centre',
'item_left' => 'à gauche',
'item_right' => 'à droite',
// L
'label_alignement' => 'Alignement :',
'label_id_document' => 'Document numéro :',
'label_modele' => 'Modèle :',
'label_alignement' => 'Alignement',
'label_alt' => 'Texte alternatif si l’image n’est pas visible',
'label_credits' => 'Crédits',
'label_descriptif' => 'Descriptif',
'label_hauteur' => 'Hauteur max (px)',
'label_id_document' => 'Document numéro',
'label_largeur' => 'Largeur max (px)',
'label_titre' => 'Titre',
// M
'message_code_insere' => 'La balise a été insérée dans le texte.',
@ -35,7 +45,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'message_inserer_code' => 'Vous pouvez copier/coller le code du modèle dans votre texte. Un double-clic sur le code l’insérera automatiquement dans le champ Texte.',
// N
'nom_media' => 'un document',
'nom_media' => 'Document',
// O
'outil_inserer_modeles' => 'Insérer un modèle',

9
lang/inserer_modeles_nl.php

@ -27,9 +27,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'item_right' => 'rechts',
// L
'label_alignement' => 'Uitlijning:',
'label_id_document' => 'Documentnummer:',
'label_modele' => 'Model:',
'label_alignement' => 'Uitlijning:', # MODIF
'label_descriptif' => 'Omschrijving',
'label_id_document' => 'Documentnummer:', # MODIF
'label_titre' => 'Titel',
// M
'message_code_insere' => 'Het baken werd in de tekst geplaatst.',
@ -37,7 +38,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'message_inserer_code' => 'Je kont de code voor het model kopiëren en in je tektst plakken. Een dubbelklik op de code voegt hem automatisch in het tekstveld in.',
// N
'nom_media' => 'een document',
'nom_media' => 'een document', # MODIF
// O
'outil_inserer_modeles' => 'Een model invoegen',

68
modeles/media.yaml

@ -1,7 +1,11 @@
nom: '<:inserer_modeles:nom_media:>'
logo: 'images/media-24.png'
icone_barre: 'media.png'
icone_barre: 'document-xx.svg'
parametres:
-
saisie: 'hidden'
options:
nom: 'modele'
defaut: 'doc'
-
saisie: 'selecteur_document'
options:
@ -12,18 +16,6 @@ parametres:
obligatoire: 'oui'
verifier:
type: 'id_document'
-
saisie: 'selection'
options:
nom: 'modele'
label: '<:inserer_modeles:label_modele:>'
obligatoire: 'oui'
cacher_option_intro: 'oui'
defaut: 'doc'
data:
doc: 'doc'
img: 'img'
emb: 'emb'
-
saisie: 'selection'
options:
@ -34,3 +26,51 @@ parametres:
left: '<:inserer_modeles:item_left:>'
center: '<:inserer_modeles:item_center:>'
right: '<:inserer_modeles:item_right:>'
-
saisie: 'input'
options:
nom: 'largeur'
defaut: ''
label: '<:inserer_modeles:label_largeur:>'
verifier:
type: 'entier'
options:
min: 1
-
saisie: 'input'
options:
nom: 'hauteur'
defaut: ''
label: '<:inserer_modeles:label_hauteur:>'
verifier:
type: 'entier'
options:
min: 1
-
saisie: 'input'
options:
nom: 'titre'
defaut: ''
label: '<:inserer_modeles:label_titre:>'
explication: '<:inserer_modeles:explication_titre:>'
-
saisie: 'input'
options:
nom: 'descriptif'
defaut: ''
label: '<:inserer_modeles:label_descriptif:>'
explication: '<:inserer_modeles:explication_descriptif:>'
-
saisie: 'input'
options:
nom: 'credits'
defaut: ''
label: '<:inserer_modeles:label_credits:>'
explication: '<:inserer_modeles:explication_credits:>'
-
saisie: 'input'
options:
nom: 'alt'
defaut: ''
label: '<:inserer_modeles:label_alt:>'
explication: '<:inserer_modeles:explication_alt:>'

15
paquet.xml

@ -1,10 +1,10 @@
<paquet
prefix="inserer_modeles"
categorie="edition"
version="1.4.3"
version="2.0.2"
etat="stable"
compatibilite="[3.0.0;3.3.*]"
logo="prive/themes/spip/images/modele-32.png"
compatibilite="[4.0.0;4.1.*]"
logo="prive/themes/spip/images/modele-xx.svg"
documentation="https://contrib.spip.net/?article3631"
>
@ -22,10 +22,11 @@
<pipeline nom="porte_plume_lien_classe_vers_icone" inclure="inserer_modeles_pipelines.php" />
<pipeline nom="formulaire_fond" inclure="inserer_modeles_pipelines.php" />
<pipeline nom="recuperer_fond" inclure="inserer_modeles_pipelines.php" />
<pipeline nom="inserer_modeles_lister_formulaires_modeles" action="" />
<necessite nom="saisies" compatibilite="[3.50.2;[" />
<necessite nom="verifier" compatibilite="[0.1.10;[" />
<necessite nom="yaml" compatibilite="[1.5.1;[" />
<necessite nom="saisies" compatibilite="[4.0.0;[" />
<necessite nom="verifier" compatibilite="[2.0.0;[" />
<necessite nom="yaml" compatibilite="[3.0.0;[" />
<utilise nom="mediabox" compatibilite="[0.8.1;[" />
<utilise nom="mediabox" compatibilite="[2.0.0;[" />
</paquet>

BIN
prive/themes/spip/images/modele-16.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

BIN
prive/themes/spip/images/modele-24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

BIN
prive/themes/spip/images/modele-32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 889 B

BIN
prive/themes/spip/images/modele-add-16.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

BIN
prive/themes/spip/images/modele-add-24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 970 B

1
prive/themes/spip/images/modele-add-24.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path fill="#fff" d="M6 9h52v46H6z"/><path fill="#1d83d4" d="M22 22h20v20H22z"/><path fill="#fff" d="M28 28h8v8h-8z"/><path fill="#888" d="m50 16.878-4.242 4.243-2.829-2.828 4.243-4.243zM16.828 13.95l4.243 4.242-2.828 2.829L14 16.778zM14 47.222l4.242-4.243 2.829 2.828-4.243 4.243zM45.757 42.979 50 47.22l-2.828 2.829-4.243-4.243z"/><path fill="#666" d="M58.3 5.8c1.6 0 2.9 1.3 2.9 2.9v46.7c0 1.6-1.3 2.9-2.9 2.9H5.8c-1.6 0-2.9-1.3-2.9-2.9V8.7c0-1.6 1.3-2.9 2.9-2.9h52.5zm-3 5.8H8.7v40.8h46.7V11.6z"/><g transform="matrix(.5 0 0 .5 32 0)"><circle style="fill:#4caf50" cx="32" cy="32" r="32"/><path style="fill:#fff" d="M54.748 26.293c-.632-.633-1.4-.949-2.304-.949H38.352V11.252c0-.903-.316-1.671-.949-2.304C36.771 8.316 36.003 8 35.1 8h-6.503c-.903 0-1.671.316-2.303.948-.633.633-.949 1.4-.949 2.304v14.092H11.252a3.14 3.14 0 0 0-2.304.949c-.632.632-.948 1.4-.948 2.303v6.505c0 .903.316 1.67.948 2.303.633.632 1.4.948 2.304.948h14.092v14.093c0 .903.316 1.672.948 2.304.633.632 1.4.948 2.304.948H35.1c.904 0 1.671-.316 2.304-.948.632-.633.948-1.4.948-2.304V38.352h14.092c.904 0 1.672-.316 2.304-.948.632-.632.948-1.4.948-2.303v-6.505c0-.903-.315-1.671-.948-2.303z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
prive/themes/spip/images/modele-add-32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

1
prive/themes/spip/images/modele-xx.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path fill="#fff" d="M6 9h52v46H6z"/><path fill="#1d83d4" d="M22 22h20v20H22z"/><path fill="#fff" d="M28 28h8v8h-8z"/><path fill="#888" d="m50 16.878-4.242 4.243-2.829-2.828 4.243-4.243zM16.828 13.95l4.243 4.242-2.828 2.829L14 16.778zM14 47.222l4.242-4.243 2.829 2.828-4.243 4.243zM45.757 42.979 50 47.22l-2.828 2.829-4.243-4.243z"/><path fill="#666" d="M58.3 5.8c1.6 0 2.9 1.3 2.9 2.9v46.7c0 1.6-1.3 2.9-2.9 2.9H5.8c-1.6 0-2.9-1.3-2.9-2.9V8.7c0-1.6 1.3-2.9 2.9-2.9h52.5zm-3 5.8H8.7v40.8h46.7V11.6z"/></svg>

After

Width:  |  Height:  |  Size: 570 B

Loading…
Cancel
Save