Changeset 90491 in spip-zone


Ignore:
Timestamp:
Jun 24, 2015, 4:42:26 PM (6 years ago)
Author:
teddy.spip@…
Message:
  • Le plugin est maintenant configurable. On peut sélectionner les objets éditoriaux sur lesquels on désire avoir le bloc d'insertion de modèles. On n'est plus limité aux articles, rubriques, brèves et mots-clés. Attention. Cette version nécessite la version 2.5 de saisies.
  • Up de y.
Location:
_plugins_/inserer_modeles
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/inserer_modeles

    • Property svn:ignore set to
      .phpintel
  • _plugins_/inserer_modeles/trunk/inserer_modeles_pipelines.php

    r68842 r90491  
    11<?php
    2 if (!defined("_ECRIRE_INC_VERSION")) return;
    32
    4 function inserer_modeles_affiche_droite($flux){
    5         if (in_array($flux['args']['exec'],array('article_edit','breve_edit','rubrique_edit','mot_edit'))) {
    6                 include_spip('inc/inserer_modeles');
    7                 if (count(inserer_modeles_lister_formulaires_modeles())>0)
    8                         $flux['data'] .= recuperer_fond('inserer_modeles',$flux['args']);
    9         }
    10         return $flux;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4    return;
     5}
     6
     7function inserer_modeles_affiche_droite($flux)
     8{
     9    $config_meta = inserer_modeles_configuration();
     10    if (in_array($flux['args']['exec'], $config_meta['objets'])) {
     11        include_spip('inc/inserer_modeles');
     12        if (count(inserer_modeles_lister_formulaires_modeles()) > 0) {
     13            $flux['data'] .= recuperer_fond('inserer_modeles', $flux['args']);
     14        }
     15    }
     16
     17    return $flux;
    1118}
    1219
    1320// Insertion dans le porte-plume
    1421
    15 function inserer_modeles_porte_plume_barre_pre_charger($barres) {
    16         include_spip('inc/inserer_modeles');
    17         $formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
    18        
    19         if (count($formulaires_modeles)>0) {
    20                 $barre = &$barres['edition'];
    21                 $barre->ajouterApres('grpCaracteres', array(
    22                                         "id" => "sepInsMod",
    23                                         "separator" => "---------------",
    24                                         "display"   => true,
    25                 ));
    26                
    27                 $sous_menu = array();
    28                 foreach ($formulaires_modeles as $nom => $formulaire) {
    29                         if (substr($nom,-5)=='.yaml')
    30                                 $nom = substr($nom,0,-5);
    31                         $sous_menu[] = array(
    32                                 "id" => 'inserer_modele_'.$nom,
    33                                 "name" => _T_ou_typo($formulaire['nom']),
    34                                 "className" => 'outil_inserer_modele_'.$nom,
    35                                 "beforeInsert" => "function() {jQuery.modalboxload('".url_absolue(generer_url_public(
    36                                         'inserer_modeles',
    37                                         "modalbox=oui&formulaire_modele=$nom&id_article='+$(\"[name='id_article']\").val()+'&id_rubrique='+$(\"[name='id_rubrique']\").val()+'&id_breve='+$(\"[name='id_breve']\").val()"
    38                                 )).",{minHeight: '90%'});}",
    39                                 "display" => true
    40                         );
    41                 }
    42                
    43                 $barre->ajouterApres('sepInsMod', array(
    44                         //groupe inserer_modeles et bouton inserer_modeles
    45                         "id"          => 'inserer_modeles',
    46                         "name"        => _T('inserer_modeles:outil_inserer_modeles'),
    47                         "key"         => "M",
    48                         "className"   => 'outil_inserer_modeles',
    49                         "beforeInsert" => "function() {jQuery.modalboxload('".url_absolue(generer_url_public(
    50                                 'inserer_modeles',
    51                                 "modalbox=oui&id_article='+$(\"[name='id_article']\").val()+'&id_rubrique='+$(\"[name='id_rubrique']\").val()+'&id_breve='+$(\"[name='id_breve']\").val()"
    52                         )).",{minHeight: '90%'});}",
    53                         "display"     => true,
    54                         "dropMenu"    => $sous_menu
    55                  ));
    56         }
    57        
    58         return $barres;
     22function inserer_modeles_porte_plume_barre_pre_charger($barres)
     23{
     24    include_spip('inc/inserer_modeles');
     25    $formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
     26
     27    if (count($formulaires_modeles) > 0) {
     28        $barre = &$barres['edition'];
     29        $barre->ajouterApres('grpCaracteres', array(
     30                    'id' => 'sepInsMod',
     31                    'separator' => '---------------',
     32                    'display' => true,
     33        ));
     34
     35        $sous_menu = array();
     36        foreach ($formulaires_modeles as $nom => $formulaire) {
     37            if (substr($nom, -5) == '.yaml') {
     38                $nom = substr($nom, 0, -5);
     39            }
     40            $sous_menu[] = array(
     41                'id' => 'inserer_modele_'.$nom,
     42                'name' => _T_ou_typo($formulaire['nom']),
     43                'className' => 'outil_inserer_modele_'.$nom,
     44                'beforeInsert' => "function() {jQuery.modalboxload('".url_absolue(generer_url_public(
     45                    'inserer_modeles',
     46                    "modalbox=oui&formulaire_modele=$nom&id_article='+$(\"[name='id_article']\").val()+'&id_rubrique='+$(\"[name='id_rubrique']\").val()+'&id_breve='+$(\"[name='id_breve']\").val()"
     47                )).",{minHeight: '90%'});}",
     48                'display' => true,
     49            );
     50        }
     51
     52        $barre->ajouterApres('sepInsMod', array(
     53            //groupe inserer_modeles et bouton inserer_modeles
     54            'id' => 'inserer_modeles',
     55            'name' => _T('inserer_modeles:outil_inserer_modeles'),
     56            'key' => 'M',
     57            'className' => 'outil_inserer_modeles',
     58            'beforeInsert' => "function() {jQuery.modalboxload('".url_absolue(generer_url_public(
     59                'inserer_modeles',
     60                "modalbox=oui&id_article='+$(\"[name='id_article']\").val()+'&id_rubrique='+$(\"[name='id_rubrique']\").val()+'&id_breve='+$(\"[name='id_breve']\").val()"
     61            )).",{minHeight: '90%'});}",
     62            'display' => true,
     63            'dropMenu' => $sous_menu,
     64         ));
     65    }
     66
     67    return $barres;
    5968}
    6069
    6170// Icônes pour le porte-plume
    6271
    63 function inserer_modeles_porte_plume_lien_classe_vers_icone($flux) {
    64         include_spip('inc/inserer_modeles');
    65         $formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
    66         if (count($formulaires_modeles)>0) {
    67                 $icones = array();
    68                 $icones['outil_inserer_modeles'] = 'inserer_modeles.png';
    69                 foreach ($formulaires_modeles as $nom => $formulaire) {
    70                         if (substr($nom,-5)=='.yaml')
    71                                 $nom = substr($nom,0,-5);
    72                         $icones['outil_inserer_modele_'.$nom] = $formulaire['icone_barre'];
    73                 }
    74                 return array_merge($flux, $icones);
    75         } else
    76                 return $flux;
     72function inserer_modeles_porte_plume_lien_classe_vers_icone($flux)
     73{
     74    include_spip('inc/inserer_modeles');
     75    $formulaires_modeles = inserer_modeles_lister_formulaires_modeles();
     76    if (count($formulaires_modeles) > 0) {
     77        $icones = array();
     78        $icones['outil_inserer_modeles'] = 'inserer_modeles.png';
     79        foreach ($formulaires_modeles as $nom => $formulaire) {
     80            if (substr($nom, -5) == '.yaml') {
     81                $nom = substr($nom, 0, -5);
     82            }
     83            $icones['outil_inserer_modele_'.$nom] = $formulaire['icone_barre'];
     84        }
     85
     86        return array_merge($flux, $icones);
     87    } else {
     88        return $flux;
     89    }
    7790}
    7891
    79 ?>
     92/*
     93 Merci marcimat pour l'astuce (cf. plugin links z90425)
     94 */
     95function inserer_modeles_configuration()
     96{
     97    $inserer_modeles = isset($GLOBALS['meta']['inserer_modeles']) ? unserialize($GLOBALS['meta']['inserer_modeles']) : array(
     98        'objets' => array('article_edit', 'breve_edit', 'rubrique_edit', 'mot_edit'),
     99    );
     100    $inserer_modeles = array_map('array_filter', $inserer_modeles);
     101
     102    return $inserer_modeles;
     103}
  • _plugins_/inserer_modeles/trunk/lang/inserer_modeles_fr.php

    r84627 r90491  
    11<?php
     2
    23// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    34// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/inserer_modeles/trunk/lang/
    4 if (!defined('_ECRIRE_INC_VERSION')) return;
     5if (!defined('_ECRIRE_INC_VERSION')) {
     6    return;
     7}
    58
    69$GLOBALS[$GLOBALS['idx_lang']] = array(
    710
    8         // B
    9         'bouton_choisir' => 'Choisir',
    10         'bouton_inserer' => 'Insérer',
     11    // B
     12    'bouton_choisir' => 'Choisir',
     13    'bouton_inserer' => 'Insérer',
    1114
    12         // C
    13         'choisir_modele' => 'Que souhaitez-vous insérer ?',
     15    // C
     16    'cfg_titre_parametrages' => 'Paramètres',
     17    'choisir_modele' => 'Que souhaitez-vous insérer ?',
     18    'choix_objets_editable' => 'Choisir un ou plusieurs objets',
     19    'choix_objets_editable_explication' => 'Veuillez sélectionner un ou plusieurs objets sur lesquels vous désirez que le bloc d\'insertion des modèles apparaissent.',
    1420
    15         // E
    16         'erreur_choix_modele' => 'Vous devez choisir un modèle.',
     21    // E
     22    'erreur_choix_modele' => 'Vous devez choisir un modèle.',
    1723
    18         // I
    19         'item_center' => 'au centre',
    20         'item_left' => 'à gauche',
    21         'item_right' => 'à droite',
     24    // I
     25    'item_center' => 'au centre',
     26    'item_left' => 'à gauche',
     27    'item_right' => 'à droite',
    2228
    23         // L
    24         'label_alignement' => 'Alignement :',
    25         'label_id_document' => 'Document numéro :',
    26         'label_modele' => 'Modèle :',
     29    // L
     30    'label_alignement' => 'Alignement :',
     31    'label_id_document' => 'Document numéro :',
     32    'label_modele' => 'Modèle :',
    2733
    28         // M
    29         'message_code_insere' => 'La balise a été insérée dans le texte.',
    30         'message_double_clic' => 'Double-cliquez pour insérer le modèle dans le texte.',
    31         '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.',
     34    // M
     35    'message_code_insere' => 'La balise a été insérée dans le texte.',
     36    'message_double_clic' => 'Double-cliquez pour insérer le modèle dans le texte.',
     37    '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.',
    3238
    33         // N
    34         'nom_media' => 'un document',
     39    // N
     40    'nom_media' => 'un document',
    3541
    36         // O
    37         'outil_inserer_modeles' => 'Insérer un modèle',
     42    // O
     43    'outil_inserer_modeles' => 'Insérer un modèle',
    3844
    39         // T
    40         'titre_inserer' => 'Insérer @modele@',
    41         'titre_inserer_modeles' => 'Insérer un modèle'
     45    // T
     46    'titre_inserer' => 'Insérer @modele@',
     47    'titre_inserer_modeles' => 'Insérer un modèle',
     48    'titre_page_configurer_inserer_modeles' => 'Configurer le plugin \'Insérer un modèle\'',
    4249);
    43 
    44 ?>
  • _plugins_/inserer_modeles/trunk/paquet.xml

    r90477 r90491  
    22        prefix="inserer_modeles"
    33        categorie="edition"
    4         version="1.1.11"
     4        version="1.2.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
    77        logo="prive/themes/spip/images/modele-32.png"
    88        documentation="http://contrib.spip.net/?article3631"
    9 >       
     9>
    1010
    1111        <nom>Ins&#233;rer Mod&#232;les</nom>
     
    2020        <pipeline nom="porte_plume_lien_classe_vers_icone" inclure="inserer_modeles_pipelines.php" />
    2121
    22         <necessite nom="saisies" compatibilite="[1.25.4;[" />
     22        <necessite nom="saisies" compatibilite="[2.5.0;[" />
    2323        <necessite nom="verifier" compatibilite="[0.1.1;[" />
    2424        <necessite nom="yaml" compatibilite="[1.4.1;[" />
Note: See TracChangeset for help on using the changeset viewer.