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:
2 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}
Note: See TracChangeset for help on using the changeset viewer.