source: spip-zone/_plugins_/inserer_modeles/trunk/inserer_modeles_pipelines.php @ 90491

Last change on this file since 90491 was 90491, checked in by teddy.spip@…, 6 years ago
  • 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.
File size: 3.6 KB
Line 
1<?php
2
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;
18}
19
20// Insertion dans le porte-plume
21
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;
68}
69
70// Icônes pour le porte-plume
71
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    }
90}
91
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 TracBrowser for help on using the repository browser.