Changeset 17796 in spip-zone


Ignore:
Timestamp:
Dec 31, 2007, 6:03:05 AM (13 years ago)
Author:
paladin@…
Message:

Corrections mineures + mise à jour lib

Location:
_plugins_/_test_/menu-navigation-depliant
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/menu-navigation-depliant/exec/menudep_configuration.php

    r17623 r17796  
    5353
    5454function exec_menudep_configuration () {
    55 
    56 spip_log("##"._MENUDEP_PREFIX."exec_menudep_configuration() --");
    5755
    5856        global $connect_statut
     
    269267
    270268        echo($page_result);
    271         echo __plugin_html_signature(_MENUDEP_PREFIX, true), fin_gauche(), fin_page();
     269        echo __plugin_html_signature(_MENUDEP_PREFIX, true, true, true), fin_gauche(), fin_page();
    272270        return(true);
    273271}
  • _plugins_/_test_/menu-navigation-depliant/inc/plugin_globales_lib.php

    r17623 r17796  
    1616
    1717if(defined("_PGL_PLUGIN_GLOBALES_LIB") && _PGL_PLUGIN_GLOBALES_LIB) return;
    18 define("_PGL_PLUGIN_GLOBALES_LIB", 20071222.1814); //date.heure
     18define("_PGL_PLUGIN_GLOBALES_LIB", 20071231.0646); //date.heure
    1919
    2020// HISTORY:
     21// CP-20071231: __plugin_current_version_base_get complète par lecture plugin.xml si vb manquant dans meta
     22// CP-20071224: ajout de __plugin_current_svnrevision_get() et modif __plugin_html_signature()
    2123// CP-20071222: optimisation __plugin_boite_meta_info() pour plugin en mode stable et mode dev
    2224
     
    111113                // qui s'appelle base_version en spip_meta %-}
    112114        function __plugin_current_version_base_get ($prefix) {
    113                 return(lire_meta($prefix."_base_version"));
     115                if(!($vb = lire_meta($prefix."_base_version"))) {
     116                        $vb = __plugin_real_version_base_get ($prefix);
     117                }
     118                return($vb);
    114119        }
    115120} // end if __plugin_current_version_base_get
     121
     122if(!function_exists('__plugin_current_svnrevision_get')) {
     123        // renvoie le dernier numero de révision svn
     124        function __plugin_current_svnrevision_get ($prefix, $verifier_svn) {
     125                static $svn_revision = false;
     126                if(!empty($prefix)) {
     127                        // lire directement dans plugin.xml (éviter le cache ?)
     128                        $dir_plugin = _DIR_PLUGINS.__plugin_get_meta_dir($prefix);
     129                        // cherche si sur version svn
     130                        if(!$result = version_svn_courante($dir_plugin)) {
     131                                // méfiance: il faut que svn/entries soit à jour (svn update sur le poste de travail/serveur !)
     132                                // si pas de svn/entries, lire l'attribut dans plugin.xml
     133                                $file = $dir_plugin."/"._FILE_PLUGIN_CONFIG;
     134                                $result = __plugin_svn_revision_read($file);
     135                        }
     136                        if($verifier_svn && !$svn_revision) {
     137                                // vérifier les fichiers inclus (gourmand et peut-être trompeur si fichier fantôme ?)
     138                                // ne vérifier que sur deux niveaux (PLUGIN_ROOT et ses répertoires directs, pas en dessous)
     139                                define("_PGL_SVN_LIRE_EXTENSIONS", "css|html|js|php|xml");
     140                                $script_files = array();
     141                                if(is_dir($dir_plugin) && ($dh = opendir($dir_plugin))) {
     142                                        while (($file = readdir($dh)) !== false) {
     143                                                if($file[0] == ".") continue;
     144                                                if(is_dir($dir_plugin_sub = $dir_plugin."/".$file) && ($dh_s = opendir($dir_plugin_sub))) {
     145                                                        while (($file = readdir($dh_s)) !== false) {
     146                                                                if($file[0] == ".") continue;
     147                                                                if(preg_match('=\.('._PGL_SVN_LIRE_EXTENSIONS.')$=i', $file)) $script_files[] = $dir_plugin_sub."/".$file;
     148                                                        }
     149                                                        closedir($dh_s);
     150                                                }
     151                                                else if(preg_match('=\.('._PGL_SVN_LIRE_EXTENSIONS.')$=i', $file)) $script_files[] = $dir_plugin."/".$file;
     152                                        }
     153                                        closedir($dh);
     154                                }
     155                                foreach($script_files as $file) {
     156                                        if(!$ii = __plugin_svn_revision_read ($file)) { continue; }
     157                                        $result = max($ii, $result);
     158                                }
     159                        }
     160                        if(!empty($result) && (intval($result) > 0)) return($result);
     161                }
     162                return(false);
     163        }
     164}
     165
     166/**/
     167// lire le fichier, en espérant trouver le mot clé svn dans les $buf_size premiers caractères
     168function __plugin_svn_revision_read ($filename, $buf_size = 2048) {
     169        if($fh = fopen($filename, "rb")) {
     170                $buf = fread($fh, $buf_size);
     171                fclose($fh);
     172                if($buf = strstr($buf, "$"."LastChanged"."Revision:")) {
     173                        $revision = preg_replace('=^\$LastChanged'.'Revision: ([0-9]+) \$.*$=s', '${1}', $buf, 1);
     174                        if(strval(intval($revision)) == $revision) {
     175                                return($revision);
     176                        }
     177                }
     178        }
     179        return (false);
     180}
    116181
    117182/**/
     
    253318        // petite signature de plugin
    254319        // du style "Dossier plugin [version]"
    255         function __plugin_html_signature ($prefix, $return = false, $html = true) {
    256        
     320        function __plugin_html_signature ($prefix, $return = false, $html = true, $verifier_svn = false) {
     321
    257322                $info = plugin_get_infos(__plugin_get_meta_dir($prefix));
    258323                $nom = typo($info['nom']);
     
    260325                //$base_version = typo($info['version_base']); // cache ?
    261326                $base_version = __plugin_current_version_base_get($prefix);
     327                $svnrevision = __plugin_current_svnrevision_get($prefix, $verifier_svn);
    262328                $revision = "";
    263329                if($html) {
    264                         $version = (($version) ? " <span style='color:gray;'>".$version."</span>" : "");
     330                        $version = (($version) ? " <span style='color:gray;'>".$version : "")
     331                                . (($svnrevision) ? "-".$svnrevision : "")
     332                                . "</span>"
     333                                ;
    265334                        $base_version = (($base_version) ? " <span style='color:#66c;'>&lt;".$base_version."&gt;</span>" : "");
    266335                }
  • _plugins_/_test_/menu-navigation-depliant/plugin.xml

    r17660 r17796  
    1111        <nom>Menu de navigation d&eacute;pliant (MenuDep)</nom>
    1212        <auteur>cpaulus@quesaco.org</auteur>
    13         <version>0.24</version>
     13        <version>0.25</version>
    1414        <version_base>0.01</version_base>
    1515        <icon>images/menudep-64.png</icon>
Note: See TracChangeset for help on using the changeset viewer.