Ajout aide sur notion interne/externe

This commit is contained in:
Laurent Destailleur 2006-08-30 23:19:35 +00:00
parent 87afc65232
commit 8ce483f2e6
4 changed files with 64 additions and 50 deletions

View File

@ -77,4 +77,6 @@ MyInformations=My informations
ExportDataset_user_1=Dolibarr's users and properties ExportDataset_user_1=Dolibarr's users and properties
DomainUser=Domain user DomainUser=Domain user
Reactivate=Reactivate Reactivate=Reactivate
ThirdParty=Third party ThirdParty=Third party
CreateInternalUserDesc=This form allows you to creat an user internal to your company/fundation. To creat an external user (customer, supplier, ...), use button 'Create Dolibarr user' from third party's contact card.
InternalExternalDesc=An <b>internal</b> user is a user that is part of your company/fundation.<br>An <b>external</b> user is a customer, supplier or other.<br><br>In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display)

View File

@ -77,4 +77,6 @@ MyInformations=Mes informations
ExportDataset_user_1=Utilisateurs Dolibarr et attributs ExportDataset_user_1=Utilisateurs Dolibarr et attributs
DomainUser=Utilisateur du domaine DomainUser=Utilisateur du domaine
Reactivate=Réactiver Reactivate=Réactiver
ThirdParty=Tiers ThirdParty=Tiers
CreateInternalUserDesc=Cet écran permet de créer un utilisateur interne à votre société/institution. Pour créer un utilisateur externe (client, fournisseur, ...), utiliser le bouton 'Créer utilisateur Dolibarr' qui se trouve sur la fiche contact du tiers en question.
InternalExternalDesc=Un utilisateur <b>interne</b> est un utilisateur appartenant à votre société/institution.<br>Un utilisateur <b>externe</b> est un utilisateur client, fournisseur ou autre.<br><br>Dans les 2 cas, les permissions utilisateurs définissent les droits d'accès mais l'utilisateur externe peut en plus avoir un gestionnaire de menu différent de l'utilisateur interne (Voir Accueil - Configuration - Affichage)

View File

@ -333,8 +333,12 @@ if ((($_POST["action"] == 'confirm_password' && $_POST["confirm"] == 'yes')
llxHeader('',$langs->trans("UserCard")); llxHeader('',$langs->trans("UserCard"));
$html = new Form($db);
if (($action == 'create') || ($action == 'adduserldap')) if (($action == 'create') || ($action == 'adduserldap'))
{ {
/* ************************************************************************** */ /* ************************************************************************** */
@ -344,8 +348,12 @@ if (($action == 'create') || ($action == 'adduserldap'))
/* ************************************************************************** */ /* ************************************************************************** */
print_titre($langs->trans("NewUser")); print_titre($langs->trans("NewUser"));
print "<br>"; print "<br>";
print $langs->trans("CreateInternalUserDesc");
print "<br>";
print "<br>";
if ($message) { print $message.'<br>'; } if ($message) { print $message.'<br>'; }
/* /*
@ -440,7 +448,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print "<tr>".'<td valign="top">'.$langs->trans("Lastname").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("Lastname").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_nom) if ($ldap_nom)
{ {
print '<input type="hidden" name="nom" value="'.$ldap_nom.'">'; print '<input type="hidden" name="nom" value="'.$ldap_nom.'">';
@ -453,7 +461,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top" width="20%">'.$langs->trans("Firstname").'</td>'; print '<tr><td valign="top" width="20%">'.$langs->trans("Firstname").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_prenom) if ($ldap_prenom)
{ {
print '<input type="hidden" name="prenom" value="'.$ldap_prenom.'">'; print '<input type="hidden" name="prenom" value="'.$ldap_prenom.'">';
@ -466,7 +474,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Login").'</td>'; print '<tr><td valign="top">'.$langs->trans("Login").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_login) if ($ldap_login)
{ {
print '<input type="hidden" name="login" value="'.$ldap_login.'">'; print '<input type="hidden" name="login" value="'.$ldap_login.'">';
@ -493,7 +501,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
print '<tr><td valign="top">'.$langs->trans("Password").'</td>'; print '<tr><td valign="top">'.$langs->trans("Password").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_SID) if ($ldap_SID)
{ {
print 'mot de passe du domaine'; print 'mot de passe du domaine';
@ -507,13 +515,19 @@ if (($action == 'create') || ($action == 'adduserldap'))
if ($user->admin) if ($user->admin)
{ {
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>'; print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>';
print '<td class="valeur">'; print '<td>';
$form->selectyesnonum('admin',0); $form->selectyesnonum('admin',0);
print "</td></tr>\n"; print "</td></tr>\n";
} }
print '<tr><td valign="top">'.$langs->trans("Type").'</td>';
print '<td>';
print $html->textwithhelp($langs->trans("Internal"),$langs->trans("InternalExternalDesc"));
print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Phone").'</td>'; print '<tr><td valign="top">'.$langs->trans("Phone").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_phone) if ($ldap_phone)
{ {
print '<input type="hidden" name="office_phone" value="'.$ldap_phone.'">'; print '<input type="hidden" name="office_phone" value="'.$ldap_phone.'">';
@ -526,7 +540,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Fax").'</td>'; print '<tr><td valign="top">'.$langs->trans("Fax").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_fax) if ($ldap_fax)
{ {
print '<input type="hidden" name="office_fax" value="'.$ldap_fax.'">'; print '<input type="hidden" name="office_fax" value="'.$ldap_fax.'">';
@ -539,7 +553,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Mobile").'</td>'; print '<tr><td valign="top">'.$langs->trans("Mobile").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_mobile) if ($ldap_mobile)
{ {
print '<input type="hidden" name="user_mobile" value="'.$ldap_mobile.'">'; print '<input type="hidden" name="user_mobile" value="'.$ldap_mobile.'">';
@ -552,7 +566,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("EMail").'</td>'; print '<tr><td valign="top">'.$langs->trans("EMail").'</td>';
print '<td class="valeur">'; print '<td>';
if ($ldap_mail) if ($ldap_mail)
{ {
print '<input type="hidden" name="email" value="'.$ldap_mail.'">'; print '<input type="hidden" name="email" value="'.$ldap_mail.'">';
@ -565,14 +579,14 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Note").'</td><td>'; print '<tr><td valign="top">'.$langs->trans("Note").'</td><td>';
print "<textarea name=\"note\" rows=\"6\" cols=\"40\">"; print "<textarea name=\"note\" rows=\"6\" cols=\"80\">";
print "</textarea></td></tr>\n"; print "</textarea></td></tr>\n";
// Autres caractéristiques issus des autres modules // Autres caractéristiques issus des autres modules
if ($conf->webcal->enabled) if ($conf->webcal->enabled)
{ {
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
print '<td class="valeur"><input size="30" type="text" name="webcal_login" value=""></td></tr>'; print '<td><input size="30" type="text" name="webcal_login" value=""></td></tr>';
} }
print "<tr>".'<td align="center" colspan="2"><input class="button" value="'.$langs->trans("CreateUser").'" type="submit"></td></tr>'; print "<tr>".'<td align="center" colspan="2"><input class="button" value="'.$langs->trans("CreateUser").'" type="submit"></td></tr>';
@ -661,7 +675,6 @@ else
*/ */
if ($action == 'password') if ($action == 'password')
{ {
$html = new Form($db);
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("ReinitPassword"),$langs->trans("ConfirmReinitPassword",$fuser->login),"confirm_password"); $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("ReinitPassword"),$langs->trans("ConfirmReinitPassword",$fuser->login),"confirm_password");
print '<br>'; print '<br>';
} }
@ -671,7 +684,6 @@ else
*/ */
if ($action == 'passwordsend') if ($action == 'passwordsend')
{ {
$html = new Form($db);
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("SendNewPassword"),$langs->trans("ConfirmSendNewPassword",$fuser->login),"confirm_passwordsend"); $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("SendNewPassword"),$langs->trans("ConfirmSendNewPassword",$fuser->login),"confirm_passwordsend");
print '<br>'; print '<br>';
} }
@ -681,7 +693,6 @@ else
*/ */
if ($action == 'disable') if ($action == 'disable')
{ {
$html = new Form($db);
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DisableAUser"),$langs->trans("ConfirmDisableUser",$fuser->login),"confirm_disable"); $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DisableAUser"),$langs->trans("ConfirmDisableUser",$fuser->login),"confirm_disable");
print '<br>'; print '<br>';
} }
@ -691,7 +702,6 @@ else
*/ */
if ($action == 'delete') if ($action == 'delete')
{ {
$html = new Form($db);
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DeleteAUser"),$langs->trans("ConfirmDeleteUser",$fuser->login),"confirm_delete"); $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DeleteAUser"),$langs->trans("ConfirmDeleteUser",$fuser->login),"confirm_delete");
print '<br>'; print '<br>';
} }
@ -705,7 +715,7 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
print '<td width="50%" class="valeur">'.$fuser->nom.'</td>'; print '<td width="50%">'.$fuser->nom.'</td>';
print '<td align="center" valign="middle" width="25%" rowspan="14">'; print '<td align="center" valign="middle" width="25%" rowspan="14">';
if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg")) if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg"))
{ {
@ -718,13 +728,13 @@ else
print '</td></tr>'; print '</td></tr>';
print '<tr><td width="25%" valign="top">'.$langs->trans("Firstname").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Firstname").'</td>';
print '<td width="50%" class="valeur">'.$fuser->prenom.'</td>'; print '<td width="50%">'.$fuser->prenom.'</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Login").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Login").'</td>';
if ($fuser->login) if ($fuser->login)
{ {
print '<td width="50%" class="valeur">'.$fuser->login; print '<td width="50%">'.$fuser->login;
} }
else if ($fuser->ldap_sid) else if ($fuser->ldap_sid)
{ {
@ -755,23 +765,23 @@ else
} }
else else
{ {
print '<td width="50%" class="valeur">'.eregi_replace('.','*',$fuser->pass); print '<td width="50%">'.eregi_replace('.','*',$fuser->pass);
} }
print "</td></tr>\n"; print "</td></tr>\n";
// Administrateur // Administrateur
print '<tr><td width="25%" valign="top">'.$langs->trans("Administrator").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Administrator").'</td>';
print '<td class="valeur">'.yn($fuser->admin); print '<td>'.yn($fuser->admin);
if ($fuser->admin) print ' '.img_picto($langs->trans("Administrator"),"star"); if ($fuser->admin) print ' '.img_picto($langs->trans("Administrator"),"star");
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// Source // Type
print '<tr><td width="25%" valign="top">'.$langs->trans("Source").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Type").'</td>';
print '<td class="valeur">'; print '<td>';
if ($fuser->societe_id) if ($fuser->societe_id)
{ {
print $langs->trans("External"); print $html->textwithhelp($langs->trans("External"),$langs->trans("InternalExternalDesc"));
} }
else if ($fuser->ldap_sid) else if ($fuser->ldap_sid)
{ {
@ -779,13 +789,13 @@ else
} }
else else
{ {
print $langs->trans("Internal"); print $html->textwithhelp($langs->trans("Internal"),$langs->trans("InternalExternalDesc"));
} }
print '</td></tr>'; print '</td></tr>';
// Company / Contact // Company / Contact
print '<tr><td width="25%" valign="top">'.$langs->trans("Company").' / '.$langs->trans("Contact").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Company").' / '.$langs->trans("Contact").'</td>';
print '<td class="valeur">'; print '<td>';
if ($fuser->societe_id > 0) if ($fuser->societe_id > 0)
{ {
$societe = new Societe($db); $societe = new Societe($db);
@ -807,34 +817,34 @@ else
// Tel, fax, portable // Tel, fax, portable
print '<tr><td width="25%" valign="top">'.$langs->trans("Phone").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Phone").'</td>';
print '<td width="50%" class="valeur">'.$fuser->office_phone.'</td>'; print '<td width="50%">'.$fuser->office_phone.'</td>';
print '<tr><td width="25%" valign="top">'.$langs->trans("Fax").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Fax").'</td>';
print '<td width="50%" class="valeur">'.$fuser->office_fax.'</td>'; print '<td width="50%">'.$fuser->office_fax.'</td>';
print '<tr><td width="25%" valign="top">'.$langs->trans("Mobile").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Mobile").'</td>';
print '<td width="50%" class="valeur">'.$fuser->user_mobile.'</td>'; print '<td width="50%">'.$fuser->user_mobile.'</td>';
print '<tr><td width="25%" valign="top">'.$langs->trans("EMail").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("EMail").'</td>';
print '<td width="50%" class="valeur"><a href="mailto:'.$fuser->email.'">'.$fuser->email.'</a></td>'; print '<td width="50%"><a href="mailto:'.$fuser->email.'">'.$fuser->email.'</a></td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("DateCreation").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("DateCreation").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datec,"%d/%m/%Y %H:%M:%S").'</td>'; print '<td>'.dolibarr_print_date($fuser->datec,"%d/%m/%Y %H:%M:%S").'</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("DateModification").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("DateModification").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datem,"%d/%m/%Y %H:%M:%S").'</td>'; print '<td>'.dolibarr_print_date($fuser->datem,"%d/%m/%Y %H:%M:%S").'</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("LastConnexion").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("LastConnexion").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datelastlogin,"%d/%m/%Y %H:%M:%S").'</td>'; print '<td>'.dolibarr_print_date($fuser->datelastlogin,"%d/%m/%Y %H:%M:%S").'</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("PreviousConnexion").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("PreviousConnexion").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datepreviouslogin,"%d/%m/%Y %H:%M:%S").'</td>'; print '<td>'.dolibarr_print_date($fuser->datepreviouslogin,"%d/%m/%Y %H:%M:%S").'</td>';
print "</tr>\n"; print "</tr>\n";
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Note").'</td>'; print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print '<td class="valeur">'.nl2br($fuser->note).'&nbsp;</td>'; print '<td>'.nl2br($fuser->note).'&nbsp;</td>';
print "</tr>\n"; print "</tr>\n";
// Autres caractéristiques issus des autres modules // Autres caractéristiques issus des autres modules
@ -1029,7 +1039,7 @@ else
$rowspan=12; $rowspan=12;
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
print '<td width="50%" class="valeur">'; print '<td width="50%">';
if ($caneditfield) print '<input class="flat" size="30" type="text" name="nom" value="'.$fuser->nom.'">'; if ($caneditfield) print '<input class="flat" size="30" type="text" name="nom" value="'.$fuser->nom.'">';
else print $fuser->nom; else print $fuser->nom;
print '</td>'; print '</td>';
@ -1076,7 +1086,7 @@ else
} }
else else
{ {
print '<td width="50%" class="valeur">'.eregi_replace('.','*',$fuser->pass); print '<td width="50%">'.eregi_replace('.','*',$fuser->pass);
} }
print "</td></tr>\n"; print "</td></tr>\n";
@ -1084,13 +1094,13 @@ else
print "<tr>".'<td valign="top">'.$langs->trans("Administrator").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("Administrator").'</td>';
if ($fuser->societe_id > 0) if ($fuser->societe_id > 0)
{ {
print '<td class="valeur">'; print '<td>';
print '<input type="hidden" name="admin" value="'.$fuser->admin.'">'.yn($fuser->admin); print '<input type="hidden" name="admin" value="'.$fuser->admin.'">'.yn($fuser->admin);
print '</td></tr>'; print '</td></tr>';
} }
else else
{ {
print '<td class="valeur">'; print '<td>';
if ($user->admin) if ($user->admin)
{ {
$form->selectyesnonum('admin',$fuser->admin); $form->selectyesnonum('admin',$fuser->admin);
@ -1102,9 +1112,9 @@ else
print '</td></tr>'; print '</td></tr>';
} }
// Source // Type
print '<tr><td width="25%" valign="top">'.$langs->trans("Source").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Type").'</td>';
print '<td class="valeur">'; print '<td>';
if ($fuser->societe_id) if ($fuser->societe_id)
{ {
print $langs->trans("External"); print $langs->trans("External");
@ -1121,7 +1131,7 @@ else
// Company / Contact // Company / Contact
print '<tr><td width="25%" valign="top">'.$langs->trans("Company").' / '.$langs->trans("Contact").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Company").' / '.$langs->trans("Contact").'</td>';
print '<td class="valeur">'; print '<td>';
if ($fuser->societe_id > 0) if ($fuser->societe_id > 0)
{ {
$societe = new Societe($db); $societe = new Societe($db);
@ -1169,7 +1179,7 @@ else
print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>'; print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>';
if ($caneditfield) if ($caneditfield)
{ {
print '<textarea class="flat" name="note" rows="'.ROWS_3.'" cols="70">'; print '<textarea class="flat" name="note" rows="'.ROWS_3.'" cols="80">';
print $fuser->note; print $fuser->note;
print '</textarea>'; print '</textarea>';
} }
@ -1184,7 +1194,7 @@ else
{ {
$langs->load("other"); $langs->load("other");
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
print '<td class="valeur" colspan="2">'; print '<td colspan="2">';
if ($caneditfield) print '<input size="30" type="text" class="flat" name="webcal_login" value="'.$fuser->webcal_login.'">'; if ($caneditfield) print '<input size="30" type="text" class="flat" name="webcal_login" value="'.$fuser->webcal_login.'">';
else print $fuser->webcal_login; else print $fuser->webcal_login;
print '</td></tr>'; print '</td></tr>';

View File

@ -159,7 +159,7 @@ if ($action == 'create')
print '<td class="valeur"><input size="30" type="text" name="nom" value=""></td></tr>'; print '<td class="valeur"><input size="30" type="text" name="nom" value=""></td></tr>';
print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>'; print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>';
print "<textarea name=\"note\" rows=\"12\" cols=\"40\">"; print "<textarea name=\"note\" rows=\"12\" cols=\"80\">";
print "</textarea></td></tr>\n"; print "</textarea></td></tr>\n";
print "<tr>".'<td align="center" colspan="2"><input class="button" value="'.$langs->trans("CreateGroup").'" type="submit"></td></tr>'; print "<tr>".'<td align="center" colspan="2"><input class="button" value="'.$langs->trans("CreateGroup").'" type="submit"></td></tr>';
@ -378,7 +378,7 @@ else
print '<td width="75%" class="valeur"><input size="12" maxlength="8" type="text" name="group" value="'.$group->nom.'"></td>'; print '<td width="75%" class="valeur"><input size="12" maxlength="8" type="text" name="group" value="'.$group->nom.'"></td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print '<td class="valeur"><textarea name="note" rows="12" cols="40">'.nl2br($group->note).'</textarea></td>'; print '<td class="valeur"><textarea name="note" rows="12" cols="80">'.nl2br($group->note).'</textarea></td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td align="center" colspan="2"><input value="'.$langs->trans("Save").'" type="submit"></td></tr>'; print '<tr><td align="center" colspan="2"><input value="'.$langs->trans("Save").'" type="submit"></td></tr>';
print "</table>\n"; print "</table>\n";