From 4d65503352f00ac4a56600313af1b202c201edc3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 26 Jun 2011 18:53:16 +0000 Subject: [PATCH] New: Enhance form to post a new member --- htdocs/filefunc.inc.php | 6 +- htdocs/langs/en_US/members.lang | 2 + htdocs/langs/fr_FR/members.lang | 4 +- htdocs/lib/company.lib.php | 4 +- htdocs/public/members/new.php | 517 ++++++++++++++++++++------------ 5 files changed, 339 insertions(+), 194 deletions(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index a9357c6b8df..89d473db495 100755 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -28,7 +28,7 @@ * \file htdocs/filefunc.inc.php * \ingroup core * \brief File that include conf.php file and functions.lib.php - * \version $Id$ + * \version $Id: filefunc.inc.php,v 1.16 2011/06/26 18:53:16 eldy Exp $ */ define('DOL_VERSION','3.1.0-alpha'); // Also defined in htdocs/install/inc.php (Ex: x.y.z-alpha, x.y.z) @@ -125,9 +125,9 @@ $real_dolibarr_main_document_root=str_replace('\\','/',realpath($dolibarr_main_d $pathroot=$_SERVER["DOCUMENT_ROOT"]; $paths=explode('/',str_replace('\\','/',$_SERVER["SCRIPT_NAME"])); $concatpath=''; -foreach($paths as $path) +foreach($paths as $tmppath) { - if ($path) $concatpath.='/'.$path; + if ($tmppath) $concatpath.='/'.$tmppath; //print $real_$dolibarr_main_document_root.'-'.realpath($pathroot.$concatpath).'
'; if ($real_dolibarr_main_document_root == realpath($pathroot.$concatpath)) { diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index cf0bb020a66..ada92b09834 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -76,6 +76,7 @@ EditMember=Edit member SubscriptionEndDate=Subscription's end date MembersTypeSetup=Members type setup NewSubscription=New subscription +NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription being already a member, please contact foundation board instead. Subscription=Subscription Subscriptions=Subscriptions SubscriptionLate=Late @@ -182,3 +183,4 @@ NewMemberForm=New member form SubscriptionsStatistics=Statistics on subscriptions NbOfSubscriptions=Number of subscriptions AmountOfSubscriptions=Amount of subscriptions +TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation) \ No newline at end of file diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 75a4406ea45..82a83d39d36 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -77,6 +77,7 @@ EditMember=Édition adhérent SubscriptionEndDate=Date de fin adhésion MembersTypeSetup=Configuration des types d'adhérents NewSubscription=Nouvelle adhésion +NewSubscriptionDesc=Ce formulaire permet de vous enregistrer comme nouvel adhérent de l'association. Pour un renouvellement si vous êtes déjà adhérent, contacter plutôt l'association. Subscription=Adhésion/cotisation Subscriptions=Adhésions/cotisations SubscriptionLate=En retard @@ -182,4 +183,5 @@ NewMemberbyWeb=Nouvel Adherent ajoute. En attente de validation NewMemberForm=Nouvel Adherent form SubscriptionsStatistics=Statistiques sur les cotisations NbOfSubscriptions=Nombre de cotisations -AmountOfSubscriptions=Montant de cotisations \ No newline at end of file +AmountOfSubscriptions=Montant de cotisations +TurnoverOrBudget=Chiffre affaire (pour société) ou Budget (asso ou collectivité) \ No newline at end of file diff --git a/htdocs/lib/company.lib.php b/htdocs/lib/company.lib.php index e41af0b7c39..2f7ef32b660 100644 --- a/htdocs/lib/company.lib.php +++ b/htdocs/lib/company.lib.php @@ -24,7 +24,7 @@ * \file htdocs/lib/company.lib.php * \brief Ensemble de fonctions de base pour le module societe * \ingroup societe - * \version $Id$ + * \version $Id: company.lib.php,v 1.119 2011/06/26 18:53:16 eldy Exp $ */ /** @@ -208,7 +208,7 @@ function societe_admin_prepare_head($object) /** - * Return country translated from an id or a code + * Return country label, code or id from an id or a code * @param id Id or code of country * @param withcode 0=Return label, 1=Return code + label, 2=Return code from id * @param dbtouse Database handler (using in global way may fail because of conflicts with some autoload features) diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php index e216b11ad5c..0619c14342b 100644 --- a/htdocs/public/members/new.php +++ b/htdocs/public/members/new.php @@ -22,7 +22,7 @@ * \file htdocs/public/members/new.php * \ingroup member * \brief Example of form to add a new member - * \version $Id$ + * \version $Id: new.php,v 1.27 2011/06/26 18:54:23 eldy Exp $ */ define("NOLOGIN",1); // This means this output page does not require to be logged. @@ -32,6 +32,8 @@ require("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php"); +require_once(DOL_DOCUMENT_ROOT."/core/class/html.formcompany.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php"); // Security check if (empty($conf->adherent->enabled)) accessforbidden('',1,1,1); @@ -43,176 +45,206 @@ $langs->load("companies"); $langs->load("install"); $langs->load("other"); +// Init vars +$errmsg=''; +$num=0; +$error=0; +$backtopage=GETPOST('backtopage'); +$action=GETPOST('action'); + + // Function for page HTML header -function llxHeaderVierge($title, $head = "") +function llxHeaderVierge($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='') { - global $user, $conf, $langs; + global $user, $conf, $langs, $mysoc; + top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers + print ''; - header("Content-type: text/html; charset=".$conf->file->character_set_client); + // Print logo + $urllogo=DOL_URL_ROOT.'/theme/login_logo.png'; - print "\n"; - print "\n"; - print "".$title."\n"; - if ($head) print $head."\n"; - print "\n"; - print "\n"; + if (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) + { + $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=companylogo&file='.urlencode('thumbs/'.$mysoc->logo_small); + } + elseif (! empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) + { + $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=companylogo&file='.urlencode($mysoc->logo); + $width=128; + } + elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.png')) + { + $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo.png'; + } + print '
'; + print 'Logo'; + print '

'; + + print '
'; } // Function for page HTML footer function llxFooterVierge() { - print "\n"; - print "\n"; + print '
'; + + print "\n"; + print "\n"; } -$errmsg=''; -$num=0; -$error=0; - - /* * Actions */ // Action called when submited page -if ($_POST["action"] == 'add') +if ($action == 'add') { - // test si le login existe deja - $login=$_POST["login"]; - if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) - { - if(!isset($_POST["login"]) || $_POST["login"]='') - { - $error+=1; - $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Login"))."
\n"; - } - $sql = "SELECT login FROM ".MAIN_DB_PREFIX."adherent WHERE login='".$login."';"; - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - } - } - if (!isset($_POST["nom"]) || !isset($_POST["prenom"]) || $_POST["prenom"]=='' || $_POST["nom"]=='') - { - $error+=1; - $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name"))."
\n"; - } - if (!isset($_POST["email"]) || $_POST["email"] == '' || !preg_match('/@/',$_POST["email"])) - { - $error+=1; - $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("EMail"))."
\n"; - } - { - if ($num !=0) - { - $error+=1; - $errmsg .= $langs->trans("ErrorLoginAlreadyExists")."
\n"; - } - if (!isset($_POST["pass1"]) || !isset($_POST["pass2"]) || $_POST["pass1"] == '' || $_POST["pass2"] == '' || $_POST["pass1"]!=$_POST["pass2"]) - { - $error+=1; - $langs->load("errors"); - $errmsg .= $langs->trans("ErrorPasswordsMustMatch")."
\n"; - } - } - if (isset($_POST["naiss"]) && $_POST["naiss"] !='') - { - if (!preg_match("/^\d\d\d\d-\d\d-\d\d$/",$_POST["naiss"])) - { - $error+=1; - $errmsg .= $langs->trans("ErrorBadDateFormat")."
\n"; - } - } - if (isset($public)) - { - $public=1; - }else{ - $public=0; - } + // test si le login existe deja + if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) + { + if(! GETPOST('login')) + { + $error+=1; + $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Login"))."
\n"; + } + $sql = "SELECT login FROM ".MAIN_DB_PREFIX."adherent WHERE login='".$db->escape(GETPOST('login'))."'"; + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + } + if ($num !=0) + { + $error+=1; + $langs->load("errors"); + $errmsg .= $langs->trans("ErrorLoginAlreadyExists")."
\n"; + } + if (!isset($_POST["pass1"]) || !isset($_POST["pass2"]) || $_POST["pass1"] == '' || $_POST["pass2"] == '' || $_POST["pass1"]!=$_POST["pass2"]) + { + $error+=1; + $langs->load("errors"); + $errmsg .= $langs->trans("ErrorPasswordsMustMatch")."
\n"; + } + if (! GETPOST("email")) + { + $error+=1; + $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("EMail"))."
\n"; + } + } + if (!isset($_POST["nom"]) || !isset($_POST["prenom"]) || $_POST["prenom"]=='' || $_POST["nom"]=='') + { + $error+=1; + $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name"))."
\n"; + } + if (GETPOST("email") && ! isValidEmail(GETPOST("email"))) + { + $error+=1; + $langs->load("errors"); + $errmsg .= $langs->trans("ErrorBadEMail",GETPOST("email"))."
\n"; + } + $birthday=dol_mktime($_POST["birthhour"],$_POST["birthmin"],$_POST["birthsec"],$_POST["birthmonth"],$_POST["birthday"],$_POST["birthyear"]); + if ($_POST["birthmonth"] && empty($birthday)) + { + $error+=1; + $langs->load("errors"); + $errmsg .= $langs->trans("ErrorBadDateFormat")."
\n"; + } + if (isset($public)) + { + $public=1; + }else{ + $public=0; + } - if (! $error) - { - // email a peu pres correct et le login n'existe pas - $adh = new Adherent($db); - $adh->statut = -1; - $adh->public = $_POST["public"]; - $adh->prenom = $_POST["prenom"]; - $adh->nom = $_POST["nom"]; - $adh->societe = $_POST["societe"]; - $adh->adresse = $_POST["adresse"]; - $adh->cp = $_POST["cp"]; - $adh->ville = $_POST["ville"]; - $adh->email = $_POST["email"]; - if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) - { - $adh->login = $login; - $adh->pass = $_POST["pass1"]; - } - $adh->photo = $_POST["photo"]; - $adh->note = $_POST["note"]; - $adh->pays = $_POST["pays"]; - $adh->typeid = $_POST["type"]; - $adh->note = $_POST["comment"]; - $adh->morphy = $_POST["morphy"]; - if (preg_match('/-/',$_POST["naiss"])) $adh->naiss = dol_stringtotime($_POST["naiss"],1); - else $adh->naiss = $_POST["naiss"]; + if (! $error) + { + // email a peu pres correct et le login n'existe pas + $adh = new Adherent($db); + $adh->statut = -1; + $adh->public = $_POST["public"]; + $adh->prenom = $_POST["prenom"]; + $adh->nom = $_POST["nom"]; + $adh->civilite_id = $_POST["civilite_id"]; + $adh->societe = $_POST["societe"]; + $adh->adresse = $_POST["address"]; + $adh->cp = $_POST["zipcode"]; + $adh->ville = $_POST["town"]; + $adh->email = $_POST["email"]; + if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) + { + $adh->login = $_POST["login"]; + $adh->pass = $_POST["pass1"]; + } + $adh->photo = $_POST["photo"]; + $adh->note = $_POST["note"]; + $adh->pays_id = $_POST["pays_id"]; + $adh->typeid = $_POST["type"]; + $adh->note = $_POST["comment"]; + $adh->morphy = $_POST["morphy"]; + $adh->naiss = $birthday; - foreach($_POST as $key => $value){ - if (preg_match("/^options_/",$key)){ - $adh->array_options[$key]=$_POST[$key]; - } - } + foreach($_POST as $key => $value){ + if (preg_match("/^options_/",$key)){ + $adh->array_options[$key]=$_POST[$key]; + } + } - $result=$adh->create($user->id); - if ($result > 0) - { - if ($cotisation > 0) - { - $adh->cotisation(dol_mktime(12, 0 , 0, $remonth, $reday, $reyear), $cotisation); - } + $result=$adh->create($user->id); + if ($result > 0) + { + if ($cotisation > 0) + { + $adh->cotisation(dol_mktime(12, 0 , 0, $remonth, $reday, $reyear), $cotisation); + } - // Send email to say it has been created and will be validated soon... - if ($conf->global->ADHERENT_AUTOREGISTER_MAIL && $conf->global->ADHERENT_AUTOREGISTER_MAIL_SUBJECT) - { - $result=$adh->send_an_email($conf->global->ADHERENT_AUTOREGISTER_MAIL,$conf->global->ADHERENT_AUTOREGISTER_MAIL_SUBJECT,array(),array(),array(),"","",0,-1); - } + // Send email to say it has been created and will be validated soon... + if ($conf->global->ADHERENT_AUTOREGISTER_MAIL && $conf->global->ADHERENT_AUTOREGISTER_MAIL_SUBJECT) + { + $result=$adh->send_an_email($conf->global->ADHERENT_AUTOREGISTER_MAIL,$conf->global->ADHERENT_AUTOREGISTER_MAIL_SUBJECT,array(),array(),array(),"","",0,-1); + } - Header("Location: new.php?action=added"); - exit; - } - else - { - $errmsg .= join('
',$adh->errors); - } - } + if ($backtopage) + { + Header("Location: ".$backtopage); + exit; + } + else if ($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION) + { + // Si conf->global->MEMBER_URL_REDIRECT_SBUSCRIPTION defini, faire redirect sur page. + Header("Location: ".$conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION); + exit; + } + else + { + Header("Location: ".$_SERVER["PHP_SELF"]."?action=added"); + exit; + } + } + else + { + $errmsg .= join('
',$adh->errors); + } + } } // Action called after a submited was send and member created succesfully -if (isset($_GET["action"]) && $_GET["action"] == 'added') +// If MEMBER_URL_REDIRECT_SUBSCRIPTION is set to url we never go here because a redirect was done to this url. +// backtopage parameter with an url was set on member submit page, we never go here because a redirect was done to this url. +if ($action == 'added') { - if ($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION) - { - // Si conf->global->MEMBER_URL_REDIRECT_SBUSCRIPTION defini, faire redirect sur page. - Header("Location: ".$conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION); - exit; - } - else - { - llxHeaderVierge($langs->trans("NewMemberForm")); + llxHeaderVierge($langs->trans("NewMemberForm")); - // Si on a pas ete redirige - print '
'; - print ''; - print "\n"; - print '
".$langs->trans("NewMemberbyWeb")."
'; + // Si on a pas ete redirige + print '
'; + print '
'; + print $langs->trans("NewMemberbyWeb"); + print '
'; - llxFooterVierge('$Date$ - $Revision$'); - exit; - } + llxFooterVierge('$Date: 2011/06/26 18:54:23 $ - $Revision: 1.27 $'); + exit; } @@ -222,85 +254,194 @@ if (isset($_GET["action"]) && $_GET["action"] == 'added') */ $html = new Form($db); - +$formcompany = new FormCompany($db); $adht = new AdherentType($db); -$adho = new ExtraFields($db); +$extrafields = new ExtraFields($db); +$extrafields->fetch_name_optionals_label('member'); // fetch optionals attributes and labels + llxHeaderVierge($langs->trans("NewSubscription")); print_titre($langs->trans("NewSubscription")); -// fetch optionals attributes and labels -$adho->fetch_name_optionals_label(); +print $langs->trans("NewSubscriptionDesc").'
'; +if (! empty($conf->global->MEMBER_NEWFORM_TEXT)) print $langs->trans($conf->global->MEMBER_NEWFORM_TEXT)."
\n"; -if ($errmsg != '') -{ - print '
'; - print ''; - print ''; - print ''."\n"; - // print "$errmsg\n"; - print '
'.$langs->trans("Error").'
'.$errmsg.'
'; -} +dol_htmloutput_errors($errmsg); -if (defined("ADH_TEXT_NEW_ADH") && ADH_TEXT_NEW_ADH !='') -{ - print ADH_TEXT_NEW_ADH; - print "
\n"; -} print '
'.$langs->trans("FieldsWithAreMandatory",'*').'
'; print $langs->trans("FieldsWithIsForPublic",'**').'
'; -print "
\n"; +print ''; + +// Print form +print ''."\n"; print ''; print ''; -print ''."\n"; - -print '\n"; -print ''."\n"; +print '
'.$langs->trans("Type").''; -print $html->selectarray("type", $adht->liste_array()); -print "
'."\n"; +// Type +if (empty($conf->global->MEMBER_NEWFORM_FORCETYPE)) +{ + print ''."\n"; +} +else +{ + $adht->fetch($conf->global->MEMBER_NEWFORM_FORCETYPE); + print $adht->libelle; + print ''; +} +// Moral/Physic attribute $morphys["phy"] = $langs->trans("Physical"); $morphys["mor"] = $langs->trans("Moral"); -print '\n"; -print ''; - -print ''."\n"; -print ''."\n"; -print ''."\n"; +if (empty($conf->global->MEMBER_NEWFORM_FORCEMORPHY)) +{ + print ''."\n"; +} +else +{ + print $morphys[$conf->global->MEMBER_NEWFORM_FORCEMORPHY]; + print ''; +} +// Civility +print ''."\n"; +// Lastname +print ''."\n"; +// Firstname +print ''."\n"; +// Company +print ''."\n"; +// Address print ''."\n"; -print ''."\n"; -print ''."\n"; -print ''."\n"; +print ''."\n"; +// Zip / Town +print ''; +// Country +print ''; +// State +if (empty($conf->global->SOCIETE_DISABLE_STATE)) +{ + print ''; +} +// EMail +print ''."\n"; +// Login if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { - print ''."\n"; - print ''."\n"; - print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; } -print ''."\n"; -print ''."\n"; +// Birthday +print ''."\n"; +// Photo +print ''."\n"; +// Public print ''."\n"; -foreach($adho->attribute_label as $key=>$value){ - print ""."\n"; +// Extrafields +foreach($extrafields->attribute_label as $key=>$value) +{ + print ""."\n"; } +// Comments print ''; print ''; -print ''; +print ''; print ''."\n"; -print ''."\n"; +// Add specific fields used by Dolibarr foundation for example +if (! empty($conf->global->MEMBER_DOLIBARR)) +{ + $arraybudget=array('50'=>'<= 100 000','100'=>'<= 200 000','200'=>'<= 500 000','400'=>'<= 1 500 000','750'=>'<= 3 000 000','1500'=>'<= 5 000 000','2000'=>'5 000 000+'); + print ''."\n"; + + print ''; +} print "
'.$langs->trans("Type").' * **'; + print $html->selectarray("type", $adht->liste_array(), GETPOST('type'), 1); + print '
'.$langs->trans("MorPhy")."\n"; -print $html->selectarray("morphy", $morphys); -print "
* ** '.$langs->trans("Lastname").'
* ** '.$langs->trans("Firstname").'
'.$langs->trans("Company").'
'.$langs->trans("MorPhy").' * ** '."\n"; + print $html->selectarray("morphy", $morphys, GETPOST('morphy'), 1); + print '
'.$langs->trans("Civility").''; +print $formcompany->select_civilite(GETPOST('civilite_id'),'civilite_id').'
'.$langs->trans("Lastname").' * **
'.$langs->trans("Firstname").' * **
'.$langs->trans("Company").'
'.$langs->trans("Address").''."\n"; -print '
'.$langs->trans("Zip").'/'.$langs->trans("Town").'
'.$langs->trans("Country").'
* ** Email
'.$langs->trans('Zip').' / '.$langs->trans('Town').''; +print $formcompany->select_ziptown(GETPOST('zipcode'),'zipcode',array('town','selectpays_id','departement_id'),6); +print ' / '; +print $formcompany->select_ziptown(GETPOST('town'),'town',array('zipcode','selectpays_id','departement_id')); +print '
'.$langs->trans('Country').''; +$pays_id=GETPOST('pays_id'); +if (! GETPOST('pays_id') && ! empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) $pays_id=getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE,2,$db,$langs); +if (! GETPOST('pays_id') && ! empty($conf->geoip->enabled)) $pays_id=$pays_id; // TODO +$pays_code=getCountry($pays_id,2,$db,$langs); +print $html->select_country($pays_id,'pays_id'); +print '
'.$langs->trans('State').''; + if ($pays_id) print $formcompany->select_state(GETPOST("departement_id"),$pays_code); + else print ''; + print '
'.$langs->trans("Email").' * **
* '.$langs->trans("Login").'
* '.$langs->trans("Password").'
* '.$langs->trans("PasswordAgain").'
'.$langs->trans("Login").' *
'.$langs->trans("Password").' *
'.$langs->trans("PasswordAgain").' *
'.$langs->trans("Birthday").'
Format AAAA-MM-JJ
** URL Photo
'.$langs->trans("Birthday").''; +print $html->select_date($birthday,'birth',0,0,1,"newmember"); +print '
'.$langs->trans("URLPhoto").' **
'.$langs->trans("Public").' ?
$value
".$value.""; + print $extrafields->showInputField($key,GETPOST('options_'.$key)); + print "
'.$langs->trans("Comments").' :
'.$langs->trans("TurnoverOrBudget").''; + print $html->select_array('budget', $arraybudget, GETPOST('budget'), 1); + print ' € or $'; + + print ''; + print '
'.$langs->trans("AmountOfSubscriptions").''; + print ''; + print ' € or $'; + print '
\n"; -print "
\n"; +// Save +print '
'; +print ''; +if ($backtopage) +{ + print '     '; +} +print '
'; + +print "
\n"; $db->close(); -llxFooterVierge('$Date$ - $Revision$'); +llxFooterVierge('$Date: 2011/06/26 18:54:23 $ - $Revision: 1.27 $'); ?>