Changeset 4581 in spip-zone


Ignore:
Timestamp:
Aug 16, 2006, 5:33:39 PM (13 years ago)
Author:
fil@…
Message:

integration du code de modeles dans le plugin spiip

Location:
_plugins_/_ze_laboratoire_/spiip
Files:
3 edited
2 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html

    r4575 r4581  
    99<span class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'><img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)'  title='#TITRE' /></span>
    1010</BOUCLE_vignette>
     11
     12<//B_document>
  • _plugins_/_ze_laboratoire_/spiip/plugin.xml

    r4449 r4581  
    2929        <inclure>spiip_pipelines.php</inclure>
    3030  </pipeline>
     31        <pipeline>
     32                <nom>pre_propre</nom>
     33                <action>traiter_modeles</action>
     34                <inclure>spiip_pipelines.php</inclure>
     35        </pipeline>
    3136</plugin>
  • _plugins_/_ze_laboratoire_/spiip/spiip_pipelines.php

    r4454 r4581  
    2525        return $flux;
    2626}
     27
     28
     29/*
     30 * Code repris du plugin modeles/
     31 */
     32
     33        // Calcule le modele et retourne la mini-page ainsi calculee
     34        function spiip_inclure_modele($squelette, $type, $id, $default) {
     35        static $compteur;
     36
     37                if (++$compteur>4) return ''; # ne pas boucler indefiniment
     38
     39                $fond = 'modeles/'.$type;
     40                if ($squelette)
     41                        $fond .= "_$squelette";
     42
     43                // en cas d'echec on passe la main au suivant
     44                if (!find_in_path($fond.'.html'))
     45                        return $default;
     46
     47                include_spip('public/assembler');
     48
     49                if (in_array($type, array('img', 'doc', 'emb')))
     50                        $type = 'document';
     51
     52                $contexte = array('id_'.$type => $id);
     53
     54                $page = recuperer_fond($fond, $contexte);
     55
     56                $compteur--;
     57
     58                return $page;
     59        }
     60
     61        /* static public */
     62        function spiip_traiter_modeles($texte) {
     63
     64                $regexp = ',<([a-z_-]+)([0-9]+)([|]([a-z_0-9]+))?'.'>,';
     65                if (preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER))
     66                        foreach ($matches as $regs) {
     67                                $modele = spiip_inclure_modele($regs[4], $regs[1], $regs[2], $regs[0]);
     68                                $texte = str_replace($regs[0], code_echappement($modele), $texte);
     69                        }
     70
     71                return $texte;
     72        }
     73
     74
    2775?>
Note: See TracChangeset for help on using the changeset viewer.