Browse Source

Mutualiser du code pour l'affichage du message de dépendance requise pour un plugin qu'on tente d'activer. (_Eric_)

master v1.2.2
marcimat@rezo.net 6 years ago
parent
commit
8540ef091e
  1. 42
      inc/svp_decider.php
  2. 11
      lang/svp_fr.php
  3. 2
      paquet.xml
  4. 26
      svp_fonctions.php

42
inc/svp_decider.php

@ -1194,43 +1194,17 @@ class Decideur {
list(,$dependance) = explode(':', $dependance, 2);
}
$version_min = $version_max = '';
if (preg_match(_EXTRAIRE_INTERVALLE, $intervalle, $regs)) {
$minimum = $regs[1];
$maximum = $regs[2];
$minimum_inclus = $intervalle{0} == "[";
$maximum_inclus = substr($intervalle, -1) == "]";
if (strlen($minimum)) {
$version_min = ($minimum_inclus ? ' ≥ ' : '&gt') . $minimum;
}
if (strlen($maximum)) {
$version_max = ($maximum_inclus ? ' ≤ ' : '&lt') . $maximum;
}
}
if ($version_min xor $version_max) {
$err = _T('svp:message_dependance_' . $type . '_version', array(
'plugin' => $info['n'],
'dependance' => $dependance,
'version' => ($version_min ? $version_min : $version_max)
));
} elseif ($version_min and $version_max) {
$err = _T('svp:message_dependance_' . $type . '_versions_min_max', array(
'plugin' => $info['n'],
'dependance' => $dependance,
'version_min' => $version_min,
'version_max' => $version_max,
));
if ($intervalle) {
$info_dependance = svp_afficher_intervalle($intervalle, $dependance);
} else {
$err = _T('svp:message_dependance_' . $type, array(
'plugin' => $info['n'],
'dependance' => $dependance,
));
$info_dependance = $dependance;
}
$err = _T('svp:message_dependance_' . $type, array(
'plugin' => $info['n'],
'dependance' => $info_dependance,
));
return $err;
}

11
lang/svp_fr.php

@ -129,6 +129,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_critere_phrase' => 'Saisissez les mots-clés à chercher dans le préfixe, le nom, le slogan, la description et les auteurs des plugins',
'info_depots_disponibles' => '@total_depots@ dépôt(s)',
'info_fichier_depot' => 'Saisissez l’url du fichier de description du dépôt à ajouter.<br />Pour ajouter le dépôt « SPIP-Zone - Plugins » cliquez sur ce lien : ',
'info_logiciel_version' => '@logiciel@ @signe@ @version@',
'info_logiciel_version_intervalle' => '@logiciel@ @signe_min@ @version_min@ et @signe_max@ @version_max@',
'info_nb_depots' => '@nb@ dépôts',
'info_nb_paquets' => '@nb@ paquets',
'info_nb_plugins' => '@nb@ plugins',
@ -212,13 +214,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'message_action_up' => 'Mise à jour du plugin « @plugin@ » (de la version @version@ à @version_maj@)',
'message_action_upon' => 'Mise à jour et activation du plugin « @plugin@ » (version : @version@)',
'message_dependance_extension_php' => 'Le plugin @plugin@ nécessite l’extension PHP @dependance@.',
'message_dependance_extension_php_version' => 'Le plugin @plugin@ nécessite l’extension PHP @dependance@ @version@',
'message_dependance_extension_php_versions_min_max' => 'Le plugin @plugin@ nécessite l’extension PHP @dependance@ @version_min@ et @version_max@',
'message_dependance_php_version' => 'Le plugin @plugin@ nécessite @dependance@ @version@',
'message_dependance_php_versions_min_max' => 'Le plugin @plugin@ nécessite @dependance@ @version_min@ et @version_max@',
'message_dependance_plugin' => 'Le plugin @plugin@ dépend de @dependance@.',
'message_dependance_plugin_version' => 'Le plugin @plugin@ dépend de @dependance@ @version@',
'message_dependance_plugin_versions_min_max' => 'Le plugin @plugin@ dépend de @dependance@ @version_min@ et @version_max@',
'message_dependance_php' => 'Le plugin @plugin@ nécessite @dependance@',
'message_dependance_plugin' => 'Le plugin @plugin@ dépend du plugin @dependance@.',
'message_erreur_aucun_plugin_selectionne' => 'Aucun plugin sélectionné.',
'message_erreur_ecriture_lib' => '@plugin@ a besoin de la bibliothèque <a href="@lib_url@">@lib@</a> placée dans le répertoire <var>lib/</var> à la racine de votre site. Cependant, ce répertoire n’existe pas ou n’est pas accessible en écriture. Vous devez installer manuellement cette bibliothèque ou créer ce répertoire en lui donnant des permissions d’écriture.',
'message_erreur_maj_inconnu' => 'Mise à jour impossible d’un plugin inconnu.',

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="svp"
categorie="maintenance"
version="1.2.1"
version="1.2.2"
etat="stable"
compatibilite="[3.2.0-dev;]"
logo="svp-64.png"

26
svp_fonctions.php

@ -32,24 +32,42 @@ function svp_afficher_intervalle($intervalle, $logiciel) {
if (!strlen($intervalle)) {
return '';
}
if (!preg_match(',^[\[\(\]]([0-9.a-zRC\s\-]*)[;]([0-9.a-zRC\s\-\*]*)[\]\)\[]$,Uis', $intervalle, $regs)) {
if (!defined('_EXTRAIRE_INTERVALLE')) {
include_spip('inc/plugin');
}
if (!preg_match(_EXTRAIRE_INTERVALLE . 'Uis', $intervalle, $regs)) {
return false;
}
$mineure = $regs[1];
$majeure = preg_replace(',\.99$,', '.*', $regs[2]);
$mineure_inc = $intervalle{0} == "[";
$majeure_inc = substr($intervalle, -1) == "]";
if (strlen($mineure)) {
if (!strlen($majeure)) {
$version = $logiciel . ($mineure_inc ? ' &ge; ' : ' &gt; ') . $mineure;
$version = _T('svp:info_logiciel_version', array(
'logiciel' => $logiciel,
'signe' => ($mineure_inc ? ' &ge; ' : ' &gt; '),
'version' => $mineure,
));
} else {
$version = $mineure . ($mineure_inc ? ' &le; ' : ' &lt; ') . $logiciel . ($majeure_inc ? ' &le; ' : ' &lt; ') . $majeure;
$version = _T('svp:info_logiciel_version_intervalle', array(
'logiciel' => $logiciel,
'signe_min' => ($mineure_inc ? ' &ge; ' : ' &gt; '),
'version_min' => $mineure,
'signe_max' => ($majeure_inc ? ' &le; ' : ' &lt; '),
'version_max' => $majeure,
));
}
} else {
if (!strlen($majeure)) {
$version = $logiciel;
} else {
$version = $logiciel . ($majeure_inc ? ' &le; ' : ' &lt; ') . $majeure;
$version = _T('svp:info_logiciel_version', array(
'logiciel' => $logiciel,
'signe' => ($majeure_inc ? ' &le; ' : ' &lt; '),
'version' => $majeure,
));
}
}

Loading…
Cancel
Save