Changeset 47550 in spip-zone


Ignore:
Timestamp:
May 8, 2011, 10:54:27 AM (10 years ago)
Author:
eric@…
Message:

La compatibilité spip est aussi mise à jour correctement si on a qu'une balise plugin.
On n'écrase plus les compatibilités spip spécifiques.
Amélioration des détections auteurs, licences et chemin.

File:
1 edited

Legend:

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

    r47523 r47550  
    114114                if (!$plugins[$cle_min_min]['compatible'])
    115115                        $plugins[$cle_min_min]['compatible'] = '[1.9.0;)';
     116                $plugins[$cle_min_min]['compatibilite_paquet'] = $plugins[$cle_min_min]['compatible'];
    116117        }
    117118        else {
     
    156157                $plugins[$cle_min_min]['licence'] = $plugins[$cle_min_max]['licence'];
    157158                // On initialise la compatibilite avec la fusion des intervalles de compatibilite SPIP
    158                 $plugins[$cle_min_min]['compatible'] = $compatibilite_paquet;
     159                $plugins[$cle_min_min]['compatibilite_paquet'] = $compatibilite_paquet;
    159160
    160161                // Le bloc de compatibilite la moins elevee correspond aux attributs et sous-balises primaires
     
    187188// Construction d'une balise paquet ou spip
    188189function plugin2balise($D, $balise, $balises_spip='') {
    189         // Si le tableau provient de infos_plugin la compatibilite SPIP est directement accessible
    190         $compatible = '';
    191         if (isset($D['compatible']))
    192                 $compatible =  plugin2intervalle(extraire_bornes($D['compatible']));
    193        
     190
    194191        // Constrution des balises englobantes
    195192        if ($balise == 'paquet') {
     
    204201                $version = $D['version'];
    205202                $version_base = $D['version_base'];
     203                $compatible =  plugin2intervalle(extraire_bornes($D['compatibilite_paquet']));
    206204
    207205                $attributs =
     
    226224        else {
    227225                // Balise spip
     226                $compatible =  plugin2intervalle(extraire_bornes($D['compatible']));
    228227                $attributs =
    229228                        ($compatible ? " compatibilite=\"$compatible\"" : '');
     
    308307
    309308        $res = $resa = $resl = $resc = '';
    310         foreach(preg_split('@(<br */?>)|<li>|,|\s-|\n_*\s*|&amp;| & @', $t['fr']) as $v) {
     309        foreach(preg_split('@(<br */?>)|<li>|,|\s-|\n_*\s*|&amp;| & | et @', $t['fr']) as $v) {
    311310                // On detecte d'abord si le bloc texte en cours contient un eventuel copyright
    312311                // -- cela generera une balise copyright et non auteur
     
    321320                // -- soit sous la forme d'une href d'une ancre
    322321                // -- soit sous la forme d'un raccourci SPIP
    323                 // Dans les deux cas on garde preferentiellement le contenu de de l'ancre ou du raccourci
     322                // Dans les deux cas on garde preferentiellement le contenu de l'ancre ou du raccourci
    324323                // si il existe
    325324                if (preg_match('@<a[^>]*href=(\W)(.*?)\1[^>]*>(.*?)</a>@', $v, $r)) {
     
    348347                // On detecte aussi si le bloc texte en cours contient une eventuelle licence
    349348                // -- cela generera une balise licence et non auteur
    350                 //    cette heuristique b'est pas deterministe car la phrase de licence n'est pas connue
     349                //    cette heuristique n'est pas deterministe car la phrase de licence n'est pas connue
    351350                $licnom = $licurl ='';
    352                 if (preg_match('/(lgpl|gnu\/gpl|gpl\s*v*\d*)/i', $v, $r)) {
     351                if (preg_match('/(apache|lgpl|gnu\/gpl|gpl\s*v*\d*)/i', $v, $r)) {
    353352                        $licnom = strtoupper(trim($r[1]));
    354                         $licurl = ($licnom=='LGPL') ? 'http://www.gnu.org/licenses/lgpl-3.0.html' : 'http://www.gnu.org/licenses/gpl-3.0.html';
     353                        if (strtolower($licnom) == 'apache') {
     354                                $licnom = 'Apache Licence, Version 2.0';
     355                                $licurl = 'http://www.apache.org/licenses/LICENSE-2.0';
     356                        }
     357                        else
     358                                $licurl = ($licnom=='LGPL') ? 'http://www.gnu.org/licenses/lgpl-3.0.html' : 'http://www.gnu.org/licenses/gpl-3.0.html';
    355359                        $licurl = " lien=\"$licurl\"";
    356360                        $resl .= "\n\t<licence$licurl>$licnom</licence>";
     
    409413function plugin2balise_chemin($D) {
    410414        $res = '';
     415        $chemin_vide_trouve = false;
    411416        foreach($D['path'] as $i) {
    412417                $t = empty($i['type']) ? '' : (" type=\"" . $i['type'] . "\"");
    413418                $p = $i['dir'];
    414                 if (!$t AND (!$p OR $p==='.' OR $p==='./'))
     419                if (!$t AND (!$p OR $p==='.' OR $p==='./')) {
     420                        if (!$p) $chemin_vide_trouve = true;
    415421                        continue;
     422                }
    416423                $res .="\n\t<chemin path=\"$p\"$t />";
    417424        }
    418425
    419         return $res ? "\n$res" : '';
     426        return $res ? "\n$res" . ($chemin_vide_trouve ? "\n\t<chemin path=\"\" />" : '') : '';
    420427}
    421428
Note: See TracChangeset for help on using the changeset viewer.