source: spip-zone/_plugins_branche_stable_/_spip_1_9_1_/modeles_liste/modlist_filtres.php @ 5310

Last change on this file since 5310 was 5310, checked in by cedric@…, 15 years ago

toujours quand on l'enleve l'echelle qu'on fait une eraflure. retouche de derniere minute ...

File size: 3.1 KB
Line 
1<?php
2/*
3 * Modeles liste
4 *
5 * Auteur :
6 * Cedric MORIN
7 * © 2006 - Distribue sous licence GNU/GPL
8 *
9 */
10
11        function modlist_liste_modeles(){
12                $dir_modeles=array();
13                $liste_modeles=array();
14                $maxfiles = 100;
15               
16                // Parcourir le chemin
17                foreach (creer_chemin() as $dir)
18                        if (@is_dir($f = $dir."modeles/"))
19                                $dir_modeles[] = $f;
20                               
21                // retrouver chaque modele
22                // en tenant compte des modeles masques par une surcharge prioritaire ...
23                foreach($dir_modeles as $dir){
24                        if (@is_dir($dir) AND is_readable($dir) AND $d = @opendir($dir)) {
25                                while (($f = readdir($d)) !== false && (count($liste_modeles)<$maxfiles)) {
26                                        if ($f[0] != '.' # ignorer . .. .svn etc
27                                                AND $f != 'CVS'
28                                                AND $f != 'remove.txt'
29                                                AND is_readable("$dir$f")
30                                                AND is_file("$dir$f"))
31                                        if (!isset($liste_modeles[$f])) {
32                                                $liste_modeles[$f] = "$dir$f";
33                                        }
34                                }
35                        }
36                }
37                return $liste_modeles;
38        }
39        function documente_modele($nom,$chemin){
40               
41                $s = "";
42               
43                // ouvrir et lire le modele
44                $contenu = "";
45                lire_fichier ($chemin, &$contenu);
46                if (preg_match(",^\[\(#REM\)([^\]]*)\],Us",$contenu,$regs)){
47                        $doc = $regs[1];
48                        if (preg_match(",<template>(.*)</template>,Uims",$doc,$regs2)){
49                                $template = texte_backend($regs2[1]);
50                                $doc = str_replace($regs2[0],"",$doc);
51                        }
52                        else{
53                                // fabriquer un template par defaut
54                                $t=preg_replace(",\.html$,i","",$nom);
55                                $t = explode("_",$t);
56                                $template = "&lt;".array_shift($t)."2";
57                                if (count($t)) $template .= "|".implode("_",$t);
58                                $template .= "&gt;";
59                        }
60                        $template = "<span
61        ondblclick='barre_inserer(\"$template\", document.formulaire.texte);'
62        title=\""._T("double_clic_inserer_doc")."\">$template</span>";
63
64                        $s .= bouton_block_invisible($nom).$template;
65                        $s .= debut_block_invisible($nom).texte_backend($doc).fin_block();
66                }
67       
68                return $s;
69        }
70       
71        function affiche_boite_modeles($liste){
72                $s .= "\n<p>";
73                $s .= debut_cadre_relief("vignette-24.png", true);
74       
75                $s .= "<div style='padding: 2px; background-color: $couleur_claire; text-align: center; color: black;'>";
76                $s .= bouton_block_invisible("ajouter_modele");
77                $s .= "<strong class='verdana3' style='text-transform: uppercase;'>"
78                        ._T("modlist:article_inserer_un_modele")."</strong>";
79                $s .= "</div>\n";
80       
81                $s .= debut_block_invisible("ajouter_modele");
82                $s .= "<div class='verdana2'>";
83                $s .= _T("modlist:article_inserer_un_modele_detail");
84                $s .= "</div>";
85               
86                foreach($liste as $nom=>$doc){
87                        $s.="<div>$doc</div>";
88                }
89
90                $s .= fin_block();
91       
92                $s .= fin_cadre_relief(true);
93                return $s;
94        }
95
96        function modlist_affiche_droite($flux){
97                if (in_array($flux['args']['exec'],array('articles_edit','breves_edit','rubriques_edit','mots_edit'))){
98                       
99                        $liste_modeles = modlist_liste_modeles();
100                        foreach ($liste_modeles as $nom=>$chemin){
101                                $doc = documente_modele($nom,$chemin);
102                                if (strlen($doc))
103                                        $liste_modeles[$nom] = $doc;
104                                else
105                                        unset($liste_modeles[$nom]);
106                        }
107                        $flux['data'] .= affiche_boite_modeles($liste_modeles);
108               
109                }
110                return $flux;
111        }
112
113?>
Note: See TracBrowser for help on using the repository browser.