Changeset 53918 in spip-zone


Ignore:
Timestamp:
Oct 31, 2011, 7:43:59 PM (8 years ago)
Author:
jp.GUIHARD@…
Message:

Prend en compte maintenant la version 2 et la version 3 de Spip de façon transparente.

Location:
_plugins_/apropos/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/apropos/trunk/apropos_fonctions.php

    r53805 r53918  
    11<?php
    22/*
    3  * Plugin A propos des plugins pour SPIP 2
     3 * Plugin A propos des plugins pour SPIP 3
    44 * Liste les plugins actifs avec affichage icon, nom, version, etat, short description
    55 * Utilisation intensive des fonctions faisant cela dans le code de SPIP
    66 * Auteur Jean-Philippe Guihard
    7  * version 0.2 du 06 janvier 2011, 23h40
     7 * version 0.3.0 du 06 novembre 2011, 13h40
    88 * ajout de la possibilite de n'afficher que le nombre de plugin et extension 
    99 * code emprunte dans le code source de SPIP
    1010 */
    11 /*
    12 include_spip('inc/texte');
    13 include_spip('inc/plugin');
    14 include_spip('exec/admin_plugin');
    15 include_spip('inc/charsets');
    16 */
    1711
    1812include_spip('inc/charsets');
     
    123117        }
    124118       
    125         // je trie cette liste par le nm de chacun
     119        // je trie cette liste par le nom de chacun
    126120        asort($liste_plugins);
    127121        $exposed = urldecode(_request('plugin'));
     
    135129       
    136130        // pour chaque plugin, je vais aller chercher les informations complementaires a afficher
    137         // en l'occurrence, nom, version, etat, slogan, description et logo.
     131        // en l'occurrence, nom, version, etat, slogan ou description et logo.
    138132        foreach($liste_plugins as $plug => $nom){
    139133                $block .= apropos_plugins_afficher_plugins($url_page, $plug, "item", $dir_plugins)."\n";
     
    161155
    162156// Extrait de Cartouche Resume a modifier pour l'affichage final
    163 /* Traite les infos a afficher */
     157// prend en compte si version 2 ou version 3 de Spip
    164158function apropos_plugin_resumer($info, $dir_plugins, $plug_file, $url_page) {
    165         //recherche la presence d'un fichier paquet.xml
    166         if (is_readable($file = "$dir_plugins$plug_file/" . ($desc = "paquet") . ".xml")) {
    167                 $lefichier = 'lepaquet';
     159        //recherche la version de Spip
     160        $laversion = spip_version();
     161        $version_de_spip = $laversion[0];
     162        //si version 3 de Spip
     163        if ($version_de_spip == '3'){
     164                //recherche la presence d'un fichier paquet.xml
     165                if (is_readable($file = "$dir_plugins$plug_file/" . ($desc = "paquet") . ".xml")) {
     166                        $lefichier = 'lepaquet';
     167                        }else{
     168                        if (is_readable($file = "$dir_plugins$plug_file/" . ($desc = "plugin") . ".xml"))
     169                        $lefichier = 'le pluginxml';
     170                }
     171               
     172                $prefix = $info['prefix'];
     173                $dir = "$dir_plugins$plug_file";
     174                $slogan = PtoBR(plugin_propre($info['slogan'], "$dir/lang/paquet-$prefix"));
     175                // test si slogan vide afin de prendre la description via le fichier plugin.xml le cas echeant
     176                if ($slogan!==''){
     177                        // une seule ligne dans le slogan : couper si besoin
     178                        if (($p=strpos($slogan, "<br />"))!==FALSE)
     179                                $slogan = substr($slogan, 0,$p);
     180                        // couper par securite
     181                        $slogan = couper($slogan, 180).".";
     182                        }else{
     183                        $get_desc = charger_fonction('afficher_plugin','plugins');
     184                        $slogan = couper(plugin_propre($info['description']), 180);
     185                }
     186               
     187                $url = parametre_url($url_page, "plugin", substr($dir,strlen(_DIR_RACINE)));
     188       
     189                // affiche l'icone du plugin ou une icone générique si absente
     190                if (isset($info['logo']) and $i = trim($info['logo'])) {
     191                        include_spip("inc/filtres_images_mini");
     192                        $i = inserer_attribut(image_reduire("$dir/$i", 32),'alt','Icone du plugin '.$info['nom']);
     193                        $i = "<span class='apropos-icon'>".$i."</span>";
     194                } else {
     195                        $generic = _DIR_PLUGIN_APROPOS."img/generique.png"; //mettre une icone generique si pas d'icone de defini
     196                        include_spip("inc/filtres_images_mini");
     197                        $i = inserer_attribut(image_reduire("$generic", 32),'alt','Icone g&eacute;n&eacute;rique pour le plugin '.$info['nom']);
     198                        $i = "<div class='apropos-icon'>$i</div>";
     199                }
     200               
     201                // grosse différence avec Spip 2 qui retournait une liste et non 1 array
     202                if (is_array($info['auteur'])) {
     203                $auteur = PtoBR(plugin_propre(implode($info['auteur'])));
    168204                }else{
    169                 if (is_readable($file = "$dir_plugins$plug_file/" . ($desc = "plugin") . ".xml"))
    170                 $lefichier = 'le pluginxml';
    171         }
    172        
    173         $prefix = $info['prefix'];
    174         $dir = "$dir_plugins$plug_file";
    175         $slogan = PtoBR(plugin_propre($info['slogan'], "$dir/lang/paquet-$prefix"));
    176         // test si slogan vide afin de prendre la description via le fichier plugin.xml le cas echeant
    177         if ($slogan!==''){
    178                 // une seule ligne dans le slogan : couper si besoin
    179                 if (($p=strpos($slogan, "<br />"))!==FALSE)
    180                         $slogan = substr($slogan, 0,$p);
    181                 // couper par securite
    182                 $slogan = couper($slogan, 180).".";
    183         }else{
     205                $auteur = plugin_propre($info['auteur']);
     206                }
     207                $leNom=PtoBR(plugin_propre($info['nom']));
     208        }
     209       
     210        //si version 2 de Spip
     211        if ($version_de_spip == '2'){
    184212        $get_desc = charger_fonction('afficher_plugin','plugins');
    185         $slogan = couper(plugin_propre($info['description']), 180);
    186         }
    187        
    188         $url = parametre_url($url_page, "plugin", substr($dir,strlen(_DIR_RACINE)));
    189 
    190         if (isset($info['logo']) and $i = trim($info['logo'])) {
    191                 include_spip("inc/filtres_images_mini");
    192                 $i = inserer_attribut(image_reduire("$dir/$i", 32),'alt','Icone du plugin '.$info['nom']);
    193                 $i = "<span class='apropos-icon'>".$i."</span>";
    194         } else {
    195                 $generic = _DIR_PLUGIN_APROPOS."img/generique.png"; //mettre une icone generique si pas d'icone de defini
    196                 include_spip("inc/filtres_images_mini");
    197                 $i = inserer_attribut(image_reduire("$generic", 32),'alt','Icone g&eacute;n&eacute;rique pour le plugin '.$info['nom']);
    198                 $i = "<div class='apropos-icon'>$i</div>";
    199         }
    200         $auteur = PtoBR(plugin_propre(implode($info['auteur'])));
    201 
     213        $desc = plugin_propre($info['description']);
     214        $dir = $dir_plugins.$plug_file;
     215        if (($p=strpos($desc, "<br />"))!==FALSE)
     216                $desc = substr($desc, 0,$p);
     217                $slogan = couper($desc,180);
     218                $url = parametre_url($url_page, "plugin", $dir);
     219                $leNom = typo($info['nom']);
     220                if (isset($info['icon']) and $i = trim($info['icon'])) {
     221                        include_spip("inc/filtres_images_mini");
     222                        $i = inserer_attribut(image_reduire("$dir/$i", 32),'alt','Icone du plugin '.$leNom);
     223                        $i = "<div class='apropos-icon'>$i</div>";
     224                } else {
     225                        $generic = _DIR_PLUGIN_APROPOS."img/generique.png"; //mettre une icone generique si pas d'icone de defini
     226                        include_spip("inc/filtres_images_mini");
     227                        $i = inserer_attribut(image_reduire("$generic", 32),'alt','Icone g&eacute;n&eacute;rique pour le plugin '.$leNom);
     228                        $i = "<div class='apropos-icon'>$i</div>";
     229                        //$i = '';
     230                }
     231                $auteur = plugin_propre($info['auteur']) ;
     232               
     233                        // on recherche la trace d'une arobase pour remplacer par 1 image
     234                        $lemail = strpos($auteur,'@') ;
     235                        if ($lemail !== false) {
     236                                $larobase = "<img src=\""._DIR_PLUGIN_APROPOS."img/arob.png\" alt=\"remplacant\" />";
     237                                $auteur = preg_replace('/@/', $larobase, $auteur);
     238                        }
     239                        // on recherche la trace d'un tag <br /> pour le supprimer
     240                        $lebr = strpos($auteur,'<br ') ;
     241                        if ($lebr !== false) {
     242                                $lepasbr = " ";
     243                                $auteur = preg_replace('/<br \/>/', $lepasbr, $auteur);
     244                        }
     245        }
     246       
    202247        return "<div class='resume'>"
    203248        . $i
    204249        . "<span class='apropos-nom'>"
    205         . PtoBR(plugin_propre($info['nom']))
     250        . $leNom
    206251        . "</span>"
    207252        . " <span class='apropos-version'>v ".$info['version']."</span>"
  • _plugins_/apropos/trunk/paquet.xml

    r53793 r53918  
    22        prefix="apropos"
    33        categorie="divers"
    4         version="0.2.2ß1"
     4        version="0.3.ß2"
    55        etat="test"
    66        compatibilite="[2.1.1;3.0.99]"
  • _plugins_/apropos/trunk/plugin.xml

    r53793 r53918  
    22    <nom>À propos des Plugins actifs</nom>
    33    <auteur>[Jean-Philippe Guihard|Se rendre sur le site de Jean-Philippe Guihard->http://www.jp.guihard.net/]</auteur>
    4     <version>0.2.2ß1</version>
     4    <version>0.3.ß2</version>
    55    <etat>Test</etat>
    66        <slogan>Liste les plugins actifs et affiche une description sommaire</slogan>
Note: See TracChangeset for help on using the changeset viewer.