New: Minor change to allow a new windows .exe setup wizard

This commit is contained in:
Laurent Destailleur 2008-03-14 18:43:37 +00:00
parent 1861876fe8
commit ed7772a673
5 changed files with 803 additions and 733 deletions

View File

@ -55,31 +55,31 @@ Source: "build\exe\doliwamp\install_services.bat.install"; DestDir: "{app}\"; Fl
Source: "build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; Source: "build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; Source: "build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
; PhpMyAdmin ; PhpMyAdmin
Source: "..\..\..\apps\phpmyadmin2.10.1\*.*"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "config.inc.php,wampserver.conf" Source: "..\..\..\apps\phpmyadmin2.10.1\*.*"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf"
; Apache ; Apache
Source: "..\..\..\bin\apache\apache2.2.6\*.*"; DestDir: "{app}\bin\apache\apache2.2.6"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "httpd.conf,wampserver.conf" Source: "..\..\..\bin\apache\apache2.2.6\*.*"; DestDir: "{app}\bin\apache\apache2.2.6"; Flags: ignoreversion recursesubdirs; Excludes: "httpd.conf,wampserver.conf"
; Php ; Php
Source: "..\..\..\bin\php\php5.2.5\*.*"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "php.ini,wampserver.conf" Source: "..\..\..\bin\php\php5.2.5\*.*"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,wampserver.conf"
; Mysql ; Mysql
Source: "..\..\..\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "my.ini,data\*,wampserver.conf" Source: "..\..\..\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf"
; Mysql database ; Mysql database
Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45\data\mysql"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45\data\mysql"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
; Dolibarr
Source: "external-libs\*.*"; DestDir: "{app}\www\dolibarr\external-libs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,telephonie\*,*\conf.php,*\install.forced.php"
Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*"
Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "mysql\*.*"; DestDir: "{app}\www\dolibarr\mysql"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
; Config files ; Config files
Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion; Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion;
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.2.6\conf"; Flags: ignoreversion; Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.2.6\conf"; Flags: ignoreversion;
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion; Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion; Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion;
Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion; Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
; Dolibarr Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
Source: "external-libs\*.*"; DestDir: "{app}\www\dolibarr\external-libs"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,telephonie\*,*\conf.php"
Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*"
Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "mysql\*.*"; DestDir: "{app}\www\dolibarr\mysql"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db"
; Licence ; Licence
Source: "COPYRIGHT"; DestDir: "{app}"; Source: "COPYRIGHT"; DestDir: "{app}";
@ -390,8 +390,8 @@ DeleteFile(SrcFile);
// Fichier dolibarr // Fichier dolibarr
//---------------------------------------------- //----------------------------------------------
destFile := pathWithSlashes+'/www/dolibarr/conf/conf.php'; destFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php';
srcFile := pathWithSlashes+'/www/dolibarr/conf/conf.php.example'; srcFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php.example';
if not FileExists (destFile) then if not FileExists (destFile) then
begin begin
@ -407,6 +407,18 @@ begin
SaveStringToFile(destFile,srcContents, False); SaveStringToFile(destFile,srcContents, False);
end end
destFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php';
srcFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php.install';
if not FileExists (destFile) then
begin
LoadStringFromFile (srcFile, srcContents);
StringChange (srcContents, 'WAMPMYSQLPORT', mysqlPort);
StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword);
SaveStringToFile(destFile,srcContents, False);
end

View File

@ -93,52 +93,120 @@ if (! $error)
$result=include_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php"); $result=include_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
if ($result) if ($result)
{ {
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") // If we ask database or user creation we need to connect as root
if (! empty($_POST["db_create_database"]) && ! $userroot)
{ {
$databasefortest=''; print '<div class="error">'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$_POST["db_name"]).'</div>';
if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli') print '<br>';
if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
if (! empty($_POST["db_create_user"]) && ! $userroot)
{
print '<div class="error">'.$langs->trans("YouAskLoginCreationSoDolibarrNeedToConnect",$_POST["db_user"]).'</div>';
print '<br>';
if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
// If we need root access
if (! $error && (! empty($_POST["db_create_database"]) || ! empty($_POST["db_create_user"])))
{
$databasefortest=$_POST["db_name"];
if (! empty($_POST["db_create_database"]))
{ {
$databasefortest='mysql'; if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli')
} {
elseif ($_POST["db_type"] == 'pgsql') $databasefortest='mysql';
{ }
$databasefortest='postgres'; elseif ($_POST["db_type"] == 'pgsql')
} {
else $databasefortest='postgres';
{ }
$databasefortest='mssql'; else
{
$databasefortest='mssql';
}
} }
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]); $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]);
dolibarr_syslog("databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected, LOG_DEBUG);
//print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected;
if (empty($_POST["db_create_database"]) && $db->connected && ! $db->database_selected)
{
print '<div class="error">'.$langs->trans("ErrorConnectedButDatabaseNotFound",$_POST["db_name"]).'</div>';
print '<br>';
if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
elseif ($db->error && ! (! empty($_POST["db_create_database"]) && $db->connected))
{
print '<div class="error">'.$db->error.'</div>';
if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
} }
else // If we need simple access
if (! $error && (empty($_POST["db_create_database"]) && empty($_POST["db_create_user"])))
{ {
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]); $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]);
} if ($db->error)
if ($db->error) {
{
print '<div class="error">'.$db->error.'</div>'; print '<div class="error">'.$db->error.'</div>';
if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++; $error++;
}
} }
} }
else else
{ {
print "<br>\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".lib.php\")<br>\n"; print "<br>\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".lib.php\")<br>\n";
print '<div class="error">'.$langs->trans("ErrorWrongValueForParameter",$langs->transnoentities("WebPagesDirectory")).'</div>'; print '<div class="error">'.$langs->trans("ErrorWrongValueForParameter",$langs->transnoentities("WebPagesDirectory")).'</div>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++; $error++;
} }
} }
else
{
if (isset($db)) print $db->lasterror();
if (! $db->connected) print '<br>'.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
/* /*
* Si creation database demandée, il est possible de faire un choix * Si creation database demandée, il est possible de faire un choix
*/ */
$disabled=""; $disabled="";
if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on")) if (! $error && ! empty($_POST["db_create_database"]))
{ {
$disabled=""; $disabled="";
}else{ }else{
$disabled="disabled"; $disabled="disabled";
} }
if (! $error && $db->connected)
{
if (! empty($_POST["db_create_database"]))
{
$result=$db->select_db($_POST["db_name"]);
if ($result)
{
print '<div class="error">'.$langs->trans("ErrorDatabaseAlreadyExists",$_POST["db_name"]).'</div>';
print $langs->trans("IfDatabaseExistsGoBackAndCheckCreate").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
}
}
if (! $error && $db->connected) if (! $error && $db->connected)
{ {
?> ?>
@ -253,24 +321,6 @@ if (! $error && $db->connected)
</table> </table>
<?php <?php
} }
else
{
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
{
print $langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$_POST["db_user"],$_POST["db_host"],($userroot?$userroot:'?'));
print '<br>';
print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
else
{
if (isset($db)) print $db->lasterror();
print '<br>'.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
}
}
pFooter($error,$setuplang); pFooter($error,$setuplang);

View File

@ -263,9 +263,9 @@ while (($file = readdir($handle))!==false)
</tr> </tr>
<tr> <tr>
<td valign="top" class="label"><b> <td valign="top" class="label">
<?php echo $langs->trans("Port"); ?> <?php echo $langs->trans("Port"); ?>
</b></td> </td>
<td valign="top" class="label"><input type="text" name="db_port" value="<?php print (isset($dolibarr_main_db_port) && $dolibarr_main_db_port)?$dolibarr_main_db_port:$force_install_port; ?>"> <td valign="top" class="label"><input type="text" name="db_port" value="<?php print (isset($dolibarr_main_db_port) && $dolibarr_main_db_port)?$dolibarr_main_db_port:$force_install_port; ?>">
<input type="hidden" name="base" value=""> <input type="hidden" name="base" value="">
</td> </td>

View File

@ -22,6 +22,9 @@ ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
ErrorFailedToCreateDatabase=Failed to create database '%s'. ErrorFailedToCreateDatabase=Failed to create database '%s'.
ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
ErrorPHPVersionTooLow=PHP version too old. Version %s is required. ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
ErrorDatabaseAlreadyExists=Database '%s' already exists.
IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
PHPVersion=PHP Version PHPVersion=PHP Version
YouCanContinue=You can continue... YouCanContinue=You can continue...
@ -112,7 +115,8 @@ CollationConnection=Character sorting order
CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists. CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists.
CharacterSetDatabase=Character set for database CharacterSetDatabase=Character set for database
CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists. CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists.
YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions. YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong. BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
OrphelinsPaymentsDetectedByMethod=Orphelins payment detected by method %s OrphelinsPaymentsDetectedByMethod=Orphelins payment detected by method %s
RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue. RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.

View File

@ -24,6 +24,9 @@ ErrorWrongValueForParameter=Vous avez peut-
ErrorFailedToCreateDatabase=Echec de création de la base '%s'. ErrorFailedToCreateDatabase=Echec de création de la base '%s'.
ErrorFailedToConnectToDatabase=Echec de connexion à la base '%s'. ErrorFailedToConnectToDatabase=Echec de connexion à la base '%s'.
ErrorPHPVersionTooLow=Version de PHP trop ancienne. La version %s est requise. ErrorPHPVersionTooLow=Version de PHP trop ancienne. La version %s est requise.
ErrorConnectedButDatabaseNotFound=Connection au serveur réussi mais base '%s' introuvable.
ErrorDatabaseAlreadyExists=La base de donnée '%s' existe déjà.
IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base n'existe pas, revenez en arrière et cochez l'option "Créer la base de donnée".
IfDatabaseExistsGoBackAndCheckCreate=Si la base existe déjà, revenez en arrière et désactiver l'option "Créer la base de donnée". IfDatabaseExistsGoBackAndCheckCreate=Si la base existe déjà, revenez en arrière et désactiver l'option "Créer la base de donnée".
PHPVersion=Version PHP PHPVersion=Version PHP
YouCanContinue=Vous pouvez continuer... YouCanContinue=Vous pouvez continuer...
@ -114,7 +117,8 @@ CollationConnection=Ordre de tri utilis
CollationConnectionComment=Veuillez choisir la page de code définissant l'ordre de tri des caractères utilisé par la base de donnée. Ce paramètre est aussi appelé 'collation' par certaines bases de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée. CollationConnectionComment=Veuillez choisir la page de code définissant l'ordre de tri des caractères utilisé par la base de donnée. Ce paramètre est aussi appelé 'collation' par certaines bases de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée.
CharacterSetDatabase=Codage utilisé pour la base de données CharacterSetDatabase=Codage utilisé pour la base de données
CharacterSetDatabaseComment=Veuillez choisir le codage que vous désirez choisir pour la création de la base de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée. CharacterSetDatabaseComment=Veuillez choisir le codage que vous désirez choisir pour la création de la base de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée.
YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création du login de base de donnée <b>%s</b>, mais pour cela, Dolibarr doit se connecter sur le serveur <b>%s</b> via le super utilisateur <b>%s</b>. YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création de la base de donnée <b>%s</b>, mais pour cela, Dolibarr doit se connecter sur le serveur <b>%s</b> via le super utilisateur <b>%s</b>.
YouAskLoginCreationSoDolibarrNeedToConnect=Vous avez demandé la création du login de base de donnée <b>%s</b>, mais pour cela, Dolibarr doit se connecter sur le serveur <b>%s</b> via le super utilisateur <b>%s</b>.
BecauseConnectionFailedParametersMayBeWrong=La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-etre incorrects. BecauseConnectionFailedParametersMayBeWrong=La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-etre incorrects.
OrphelinsPaymentsDetectedByMethod=Paiement orphelins detectés par la méthode %s OrphelinsPaymentsDetectedByMethod=Paiement orphelins detectés par la méthode %s
RemoveItManuallyAndPressF5ToContinue=Supprimer le manuellement et appuyez sur F5 pour continuer. RemoveItManuallyAndPressF5ToContinue=Supprimer le manuellement et appuyez sur F5 pour continuer.