Ajout test sur version PHP dans prrequis module

This commit is contained in:
Laurent Destailleur 2005-10-18 21:29:45 +00:00
parent aa86135c9c
commit 47b1e6f5a2
4 changed files with 75 additions and 21 deletions

View File

@ -33,20 +33,24 @@ require("./pre.inc.php");
if (!$user->admin)
accessforbidden();
/*
* Actions
*/
if ($_GET["action"] == 'set' && $user->admin)
{
Activate($_GET["value"]);
Header("Location: modules.php?spe=".$_GET["spe"]);
$result=Activate($_GET["value"]);
$mesg='';
if ($result) $mesg=$result;
Header("Location: modules.php?spe=".$_GET["spe"]."&mesg=".urlencode($mesg));
}
if ($_GET["action"] == 'reset' && $user->admin)
{
UnActivate($_GET["value"]);
Header("Location: modules.php?spe=".$_GET["spe"]);
$result=UnActivate($_GET["value"]);
$mesg='';
if ($result) $mesg=$result;
Header("Location: modules.php?spe=".$_GET["spe"]."&mesg=".urlencode($mesg));
}
@ -55,7 +59,7 @@ if ($_GET["action"] == 'reset' && $user->admin)
*/
function Activate($value)
{
global $db, $modules;
global $db, $modules, $langs;
$modName = $value;
@ -65,6 +69,15 @@ function Activate($value)
$file = $modName . ".class.php";
include_once("../includes/modules/$file");
$objMod = new $modName($db);
// Test si version PHP ok
$verphp=versionphp();
$vermin=$objMod->phpmin;
if (is_array($vermin) && versioncompare($verphp,$vermin) < 0)
{
return $langs->trans("ErrorModuleRequirePHPVersion",versiontostring($vermin));
}
$objMod->init();
}
@ -80,6 +93,7 @@ function Activate($value)
UnActivate($objMod->conflictwith[$i],0);
}
return 0;
}
@ -111,30 +125,26 @@ function UnActivate($value,$requiredby=1)
}
}
Header("Location: modules.php");
return 0;
}
/*
* Affichage page
*/
llxHeader("","");
if (!$_GET["spe"])
{
$hselected = 0;
}
else
{
$hselected = 1;
}
$h = 0;
$head[$h][0] = DOL_URL_ROOT."/admin/modules.php?spe=0";
$head[$h][1] = $langs->trans("ModulesCommon");
if (!$_GET["spe"]) $hselected=$h;
$h++;
$head[$h][0] = DOL_URL_ROOT."/admin/modules.php?spe=1";
$head[$h][1] = $langs->trans("ModulesSpecial");
if ($_GET["spe"]) $hselected=$h;
$h++;
dolibarr_fiche_head($head, $hselected, $langs->trans("Modules"));
@ -149,7 +159,11 @@ else
print $langs->trans("ModulesSpecialDesc")."<br>\n";
}
if ($_GET["mesg"])
{
$mesg=urldecode($_GET["mesg"]);
print '<div class="error">'.$mesg.'</div>';
}
print "<br>\n";
print "<table class=\"noborder\" width=\"100%\">\n";

View File

@ -11,6 +11,7 @@ InternalUsers=Internal users
ExternalUsers=External users
GlobalSetup=Global setup
GUISetup=GUI setup
ErrorModuleRequirePHPVersion=Error, this module require PHP version %s or higher
DictionnarySetup=Dictionnary setup
DisableJavascript=Disable javascript functions
NextValue=Next value

View File

@ -11,6 +11,7 @@ InternalUsers=Utilisateurs internes
ExternalUsers=Utilisateurs externes
GlobalSetup=Général
GUISetup=Interface
ErrorModuleRequirePHPVersion=Erreur, ce module requiert une version %s ou supérieure de PHP
DictionnarySetup=Dictionnaires
DisableJavascript=Désactiver les fonctions javascript
NextValue=Prochaine valeur

View File

@ -39,6 +39,44 @@
*/
/**
\brief Renvoi une version en chaine depuis une version en tableau
\param versionarray Tableau de version (vermajeur,vermineur,autre)
\return string Chaine version
*/
function versiontostring($versionarray)
{
$string='?';
if (isset($versionarray[0])) $string=$versionarray[0];
if (isset($versionarray[1])) $string.='.'.$versionarray[1];
if (isset($versionarray[2])) $string.='.'.$versionarray[2];
return $string;
}
/**
\brief Compare 2 versions
\param versionarray1 Tableau de version (vermajeur,vermineur,autre)
\param versionarray2 Tableau de version (vermajeur,vermineur,autre)
\return int <0 si versionarray1>versionarray2, 0 si =, >0 si versionarray1>versionarray2
*/
function versioncompare($versionarray1,$versionarray2)
{
// \todo
return 0;
}
/**
\brief Compare 2 versions
\return array Tableau de version (vermajeur,vermineur,autre)
*/
function versionphp()
{
return split('\.',PHP_VERSION);
}
/**
\brief Renvoi vrai si l'email est syntaxiquement valide
\param address adresse email (Ex: "toto@titi.com", "John Do <johndo@titi.com>")