Changeset 54359 in spip-zone


Ignore:
Timestamp:
Nov 12, 2011, 9:48:00 PM (8 years ago)
Author:
eric@…
Message:

Utilisation de la nouvelle version d'identification de la licence développée sur SVP.
Renommage de fonctions dans la foulée.
Incrément de version et nécessite la beta de spip, plus la alpha.

Location:
_plugins_/plugonet
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/plugonet/inc/plugonet_traiter.php

    r54172 r54359  
    120120                        if (!$_plugin['compatibilite'])
    121121                                $borne_min = _PLUGONET_VERSION_SPIP_MIN;
    122                         $bornes_spip = extraire_bornes($_plugin['compatibilite']);
     122                        $bornes_spip = intervalle2bornes($_plugin['compatibilite']);
    123123                        $borne_min = ($bornes_spip['min']['valeur']) ? $bornes_spip['min']['valeur'] : _PLUGONET_VERSION_SPIP_MIN;
    124124                        if (spip_version_compare($borne_min_max, $borne_min, '<=')) {
     
    195195                $version = $D['version'];
    196196                $version_base = $D['schema'];
    197                 $compatible =  plugin2intervalle(extraire_bornes($D['compatibilite_paquet']));
     197                $compatible =  bornes2intervalle(intervalle2bornes($D['compatibilite_paquet']));
    198198
    199199                $attributs =
     
    218218        else {
    219219                // Balise spip
    220                 $compatible =  plugin2intervalle(extraire_bornes($D['compatibilite']));
     220                $compatible =  bornes2intervalle(intervalle2bornes($D['compatibilite']));
    221221                $attributs =
    222222                        ($compatible ? " compatibilite=\"$compatible\"" : '');
     
    350350                //    cette heuristique n'est pas deterministe car la phrase de licence n'est pas connue
    351351                $licnom = $licurl ='';
    352                 if (preg_match('/\b(apache|mit|bsd|lgpl|gnu\/gpl|gpl\s*v*\d*|cc-by-nc-sa|Creative\s*Commons\s*Attribution\s*2\.5)\b/i', $v, $r)) {
    353                         $licnom = strtoupper(trim($r[1]));
    354                         if (strtolower($licnom) == 'apache') {
    355                                 $licnom = 'Apache Licence, Version 2.0';
    356                                 $licurl = 'http://www.apache.org/licenses/LICENSE-2.0';
     352                if (preg_match('/\b((gnu|free|creative\s+common|cc)*[\/|\s|-]*(apache|lgpl|agpl|gpl|fdl|mit|bsd|art|attribution|by)(\s+licence|\-sharealike|-nc-nd|-nc-sa|-sa|-nc|-nd)*\s*v*(\d*[\.\d+]*))\b/i', $v, $r)) {
     353                        if ($licence = balise2licence($r[2], $r[3], $r[4], $r[5])) {
     354                                $licnom = $licence['nom'];
     355                                $licurl = $licence['url'];
     356                                $licurl = " lien=\"$licurl\"";
     357                                $resl .= "\n\t<licence$licurl>$licnom</licence>";
    357358                        }
    358                         else if (strtolower($licnom) == 'creative commons attribution 2.5') {
    359                                 $licnom = 'Creative Commons Attribution 2.5';
    360                                 $licurl = 'http://creativecommons.org/licenses/by/2.5';
    361                         }
    362                         else if (strtolower($licnom) == 'cc-by-nc-sa') {
    363                                 $licnom = 'CC-BY-NC-SA 2.0';
    364                                 $licurl = 'http://creativecommons.org/licenses/by-nc-sa/2.0';
    365                         }
    366                         else if (strtolower($licnom) == 'mit')
    367                                 $licurl = 'http://opensource.org/licenses/mit-license.php';
    368                         else if (strtolower($licnom) == 'bsd')
    369                                 $licurl = 'http://www.freebsd.org/copyright/license.html';
    370                         else if (strtolower($licnom) == 'lgpl')
    371                                 $licurl = 'http://www.gnu.org/licenses/lgpl-3.0.html';
    372                         else
    373                                 $licurl = (substr($licnom, -1) =='2') ? 'http://www.gnu.org/licenses/gpl-2.0.html' : 'http://www.gnu.org/licenses/gpl-3.0.html';
    374                         $licurl = " lien=\"$licurl\"";
    375                         $resl .= "\n\t<licence$licurl>$licnom</licence>";
    376                 }
    377                
     359                }
     360
    378361                // On finalise la balise auteur ou licence si on a pas trouve de licence prioritaire
    379362                $v = trim(textebrut($v));
     
    450433                        $nom = isset($i['id']) ? $i['id'] : $i['nom'];
    451434                        $src = plugin2balise_lien($i['src'], 'lien', ' ');
    452                         $version = empty($i['version']) ? '' : (" compatibilite=\"" . plugin2intervalle(extraire_bornes($i['version'])) . "\"");
     435                        $version = empty($i['version']) ? '' : (" compatibilite=\"" . bornes2intervalle(intervalle2bornes($i['version'])) . "\"");
    453436                        if (preg_match('/^lib:(.*)$/', $nom, $r))
    454437                                $lib .= "\n\t<lib nom=\"" . $r[1] . "\"$src />";
     
    476459                $nom = isset($i['id']) ? $i['id'] : $i['nom'];
    477460                $att = " nom=\"$nom\"" .
    478                                 (!empty($i['version']) ? (" compatibilite=\"" . plugin2intervalle(extraire_bornes($i['version'])) . "\"") : '') .
     461                                (!empty($i['version']) ? (" compatibilite=\"" . bornes2intervalle(intervalle2bornes($i['version'])) . "\"") : '') .
    479462                                plugin2balise_lien($i['src']);
    480463                $res .="\n\t<utilise$att />";
     
    676659}
    677660
    678 function extraire_bornes($intervalle) {
     661function intervalle2bornes($intervalle) {
    679662        include_spip('inc/plugin');
    680663
     
    698681
    699682
    700 function plugin2intervalle($bornes, $dtd='paquet') {
     683function bornes2intervalle($bornes, $dtd='paquet') {
    701684        return ($bornes['min']['incluse'] ? '[' : ($dtd=='paquet' ? ']' : '('))
    702685                        . $bornes['min']['valeur'] . ';' . $bornes['max']['valeur']
     
    708691
    709692        // On recupere les bornes de chaque intervalle
    710         $borne_a = extraire_bornes($intervalle_a);
    711         $borne_b = extraire_bornes($intervalle_b);
     693        $borne_a = intervalle2bornes($intervalle_a);
     694        $borne_b = intervalle2bornes($intervalle_b);
    712695
    713696        // On initialise la borne min de chaque intervalle a 1.9.0 si vide
     
    730713        }
    731714
    732         return plugin2intervalle($bornes_fusionnees, 'plugin');
     715        return bornes2intervalle($bornes_fusionnees, 'plugin');
    733716}
    734717
     
    738721}
    739722
     723
     724// Determiner la licence exacte avec un nom et un lien de doc standardise
     725function balise2licence($prefixe, $nom, $suffixe, $version) {
     726        global $licences_plugin;
     727        $licence = array();
     728
     729        $prefixe = strtolower($prefixe);
     730        $nom = strtolower($nom);
     731        $suffixe = strtolower($suffixe);
     732
     733        if (((trim($prefixe) == 'creative common') AND ($nom == 'attribution'))
     734        OR (($prefixe == 'cc') AND ($nom == 'by')))
     735                $nom = 'ccby';
     736
     737        if (array_key_exists($nom, $licences_plugin)) {
     738                if (!$licences_plugin[$nom]['versions']) {
     739                        // La licence n'est pas versionnee : on affecte donc directement le nom et l'url
     740                        $licence['nom'] = $licences_plugin[$nom]['nom'];
     741                        $licence['url'] = $licences_plugin[$nom]['url'];
     742                }
     743                else {
     744                        // Si la version est pas bonne on prend la plus recente
     745                        if (!$version OR !in_array($version, $licences_plugin[$nom]['versions'], true))
     746                                $version = $licences_plugin[$nom]['versions'][0];
     747                        if (is_array($licences_plugin[$nom]['nom']))
     748                                $licence['nom'] = $licences_plugin[$nom]['nom'][$version];
     749                        else
     750                                $licence['nom'] = str_replace('@version@', $version, $licences_plugin[$nom]['nom']);
     751                        $licence['url'] = str_replace('@version@', $version, $licences_plugin[$nom]['url']);
     752
     753                        if ($nom == 'ccby') {
     754                                if ($suffixe == '-sharealike')
     755                                        $suffixe = '-sa';
     756                                if (!$suffixe OR !in_array($suffixe, $licences_plugin[$nom]['suffixes'], true))
     757                                        $suffixe = '';
     758                                $licence['nom'] = str_replace('@suffixe@', strtoupper($suffixe), $licence['nom']);
     759                                $licence['url'] = str_replace('@suffixe@', $suffixe, $licence['url']);
     760                        }
     761                }
     762        }
     763
     764        return $licence;
     765}
    740766?>
  • _plugins_/plugonet/plugin.xml

    r54172 r54359  
    22        <nom>PlugOnet</nom>
    33        <auteur>Eric Lupinacci, Emmanuel Saint-James</auteur>
    4         <version>0.5.3</version>
     4        <version>0.5.4</version>
    55        <etat>stable</etat>
    66        <licence>GNU/GPL v3</licence>
     
    4747        </onglet>
    4848
    49         <necessite id="SPIP" version="[3.0.0-alpha2;3.0.*]" />
     49        <necessite id="SPIP" version="[3.0.0-beta;3.0.*]" />
    5050        <necessite id="langonet" version="[0.6.3;]" />
    5151        <categorie>outil</categorie>
Note: See TracChangeset for help on using the changeset viewer.