Browse Source

Ticket #3819 : On affiche les erreurs à des dépendances d'extension PHP.

On en profite pour améliorer l'affichage les textes d'erreurs de dépendances en évitant de montrer directement l'intervalle "[1.0.0;2.3.0]", mais
en écrivant un peu plus joliment avec des ≥ ≤ > ou < 

Des chaînes de langue en plus pour gérer ces nouveautés.
master v1.2.0
marcimat@rezo.net 6 years ago
parent
commit
d93e61e686
  1. 66
      inc/svp_decider.php
  2. 6
      lang/svp_fr.php
  3. 2
      paquet.xml

66
inc/svp_decider.php

@ -1123,11 +1123,7 @@ class Decideur {
$this->log("-- !erreur : $p");
// on ne trouve pas la dependance !
$this->invalider($info);
$this->erreur($id, $v ? _T('svp:message_dependance_plugin_version', array(
'plugin' => $info['n'],
'dependance' => $p,
'version' => $v
)) : _T('svp:message_dependance_plugin', array('plugin' => $info['n'], 'dependance' => $p)));
$this->erreur($id, $this->presenter_erreur_dependance($info, $p, $v));
}
unset($new, $vieux);
break;
@ -1155,11 +1151,7 @@ class Decideur {
$this->log("-- !erreur : $p");
// on ne trouve pas la dependance !
$this->invalider($info);
$this->erreur($id, $v ? _T('svp:message_dependance_plugin_version', array(
'plugin' => $info['n'],
'dependance' => $p,
'version' => $v
)) : _T('svp:message_dependance_plugin', array('plugin' => $info['n'], 'dependance' => $p)));
$this->erreur($id, $this->presenter_erreur_dependance($info, $p, $v));
}
break;
}
@ -1188,6 +1180,60 @@ class Decideur {
return true;
}
/**
* Retourne le texte d'erreur adapté à une dépendance donnée
*/
public function presenter_erreur_dependance($info, $dependance, $intervalle) {
// prendre en compte les erreurs de dépendances à PHP
// ou à une extension PHP avec des messages d'erreurs dédiés.
$type = 'plugin';
if ($dependance === 'PHP') {
$type = 'php';
} elseif (strncmp($dependance, 'PHP:', 4) === 0) {
$type = 'extension_php';
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 ? ' &ge; ' : '&gt') . $minimum;
}
if (strlen($maximum)) {
$version_max = ($maximum_inclus ? ' &le; ' : '&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,
));
} else {
$err = _T('svp:message_dependance_' . $type, array(
'plugin' => $info['n'],
'dependance' => $dependance,
));
}
return $err;
}
/**
* Retourne un tableau des différentes actions qui seront faites
*

6
lang/svp_fr.php

@ -211,8 +211,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'message_action_stop' => 'Désinstaller le plugin « @plugin@ » (version : @version@)',
'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_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.1.9"
version="1.2.0"
etat="stable"
compatibilite="[3.2.0-dev;]"
logo="svp-64.png"

Loading…
Cancel
Save