diff --git a/README-FR.md b/README-FR.md index 19d4ae25df9..4feb27893e0 100644 --- a/README-FR.md +++ b/README-FR.md @@ -15,37 +15,43 @@ Dolibarr est distribué sous les termes de la licence GNU General Public License ## INSTALLER DOLIBARR -Si vous n'avez pas de connaissances techniques, et que vous recherchez -un programme d'installation qui installe Dolibarr ERP/CRM en quelques clics, -vous devez vous ré-orienter vers DoliWamp (la version tout-en-un -de Dolibarr pour Windows), DoliDeb (la version tout-en-un pour Debian ou -Ubuntu) ou DoliRpm (la version tout-en-un de Dolibarr pour Fedora, Redhat, -OpenSuse, Mandriva ou Mageia). +### Configuration simple -Vous pouvez les télécharger depuis la rubrique *download* du portail officiel: -https://www.dolibarr.org/ +Si vous avez peu de compétences techniques et que vous souhaitez installer Dolibarr ERP/CRM en quelques clics, vous pouvez utiliser l'une des versions pré-packagées avec les prérequis: -Si vous avez déjà installé un serveur Web avec PHP et une base de données (MariaDb/MySql/PostgreSql), -vous pouvez installer Dolibarr avec cette version de la manière suivante: +- DoliWamp pour Windows +- DoliDeb pour Debian ou Ubuntu +- DoliRpm pour Redhat, Fedora, OpenSuse, Mandriva ou Mageia -- Copiez le répertoire "dolibarr" et son contenu dans la racine de votre serveur - web, ou bien copiez le répertoire sur le serveur et configurez ce serveur pour - utiliser "dolibarr/htdocs" comme racine d'un nouveau virtual host (ce second - choix requiert des compétences et habilitations en administration du serveur - web). - -- Créez un fichier vide "htdocs/conf/conf.php" et attribuez les permissions - en lecture et écriture pour le user du serveur web (les permissions en - écriture seront supprimées une fois l'installation terminée). +Les packages peuvent être téléchargés à partir de [site web officiel] (https://www.dolibarr.org/). -- Depuis votre navigateur, appelez la page "install/" de dolibarr. L'url dépend - du choix fait à la première étape: - http://localhost/dolibarr/htdocs/install/ - ou - http://yourdolibarrvirtualhost/install/ - -- Suivez les instructions fournies par l'installateur... +### Configuration avancée +Vous pouvez aussi utiliser un serveur Web et une base de données prise en charge (MariaDB, MySQL ou PostgreSQL) pour installer la version standard. + +- Décompressez l'archive .zip téléchargée pour copier le répertoire "dolibarr/htdocs" et tous ses fichiers à la racine du serveur Web ou récupérez-les directement à partir de GitHub (recommandé si vous connaissez git): + + git clone https://github.com/dolibarr/dolibarr -b x.y (où x.y est la version principale comme 3.6, 9.0, ...) + +- Configurez votre serveur Web pour qu'il utilise "*dolibarr/htdocs*" en tant que racine si votre serveur Web ne possède pas déjà de répertoire défini vers lequel pointer. + +- Créez un fichier `htdocs/conf/conf.php` vide et définissez les autorisations d'*écrire* pour l'utilisateur de votre serveur Web (l'autorisation *écrire* sera supprimée une fois l'installation terminée) + +- Depuis votre navigateur, allez à la page "install/" de dolibarr + + L’URL dépendra de la façon dont votre configuration Web a été configurée pour pointer vers votre installation de dolibarr. Cela peut ressembler à: + + http://localhost/dolibarr/htdocs/install/ + + ou + + http://localhost/dolibarr/install/ + + ou + + http://yourdolibarrvirtualhost/install/ + +- Suivez les instructions de l'installateur ## METTRE A JOUR DOLIBARR diff --git a/README.md b/README.md index bcff409035f..6cb38b4bb1d 100644 --- a/README.md +++ b/README.md @@ -29,27 +29,6 @@ Other licenses apply for some included dependencies. See [COPYRIGHT](https://git ## INSTALLING -### Download - -Releases can be downloaded from [official website](https://www.dolibarr.org/). - -### Install from composer - -If you do not already have Composer installed, you may do so by following the instructions at [getcomposer.org](https://getcomposer.org/). On Linux and macOS, you may run the following commands: - -```bash -curl -sS https://getcomposer.org/installer | php -mv composer.phar /usr/local/bin/composer -``` - -On Windows, you can download and run https://getcomposer.org/Composer-Setup.exe - -You can then create a new project - -```bash -composer create-project dolibarr/dolibarr erp -``` - ### Simple setup If you have low technical skills and you're looking to install Dolibarr ERP/CRM in just a few clicks, you can use one of the packaged versions: @@ -58,16 +37,23 @@ If you have low technical skills and you're looking to install Dolibarr ERP/CRM - DoliDeb for Debian or Ubuntu - DoliRpm for Redhat, Fedora, OpenSuse, Mandriva or Mageia +Releases can be downloaded from [official website](https://www.dolibarr.org/). + ### Advanced setup You can use a Web server and a supported database (MariaDB, MySQL or PostgreSQL) to install the standard version. -- Uncompress the downloaded archive -- Copy the "dolibarr" directory and all its files inside your web server root or anywhere you'd like and set up your web server to use "*dolibarr/htdocs*" as root for a new web server virtual host (second choice need to be server administrator) -- Create an empty `htdocs/conf/conf.php` file and set permissions for your web server user (*write* permissions will be removed once install is finished) +- Uncompress the downloaded .zip archive to copy the "dolibarr/htdocs" directory and all its files inside your web server root or get the files directly from GitHub (recommanded if you known git): + + git clone https://github.com/dolibarr/dolibarr -b x.y (where x.y is main version like 3.6, 9.0, ...) + +- Set up your web server to use "*dolibarr/htdocs*" as root if you'r web server does not have directory to point to already defined. + +- Create an empty `htdocs/conf/conf.php` file and set *write* permissions for your web server user (*write* permission will be removed once install is finished) + - From your browser, go to the dolibarr "install/" page - The URL will depends on choices made in the first step: + The URL will depends on how you web setup was setup to point to your dolibarr installation. It may looks like: http://localhost/dolibarr/htdocs/install/ diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 14f28a71edc..bbdfa564183 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -589,7 +589,8 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.md`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/dav/tests`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/tests`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/LICENSE`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`; diff --git a/htdocs/adherents/admin/adherent_emails.php b/htdocs/adherents/admin/adherent_emails.php index 9ee06cd3fa7..33d42986256 100644 --- a/htdocs/adherents/admin/adherent_emails.php +++ b/htdocs/adherents/admin/adherent_emails.php @@ -43,6 +43,22 @@ $oldtypetonewone=array('texte'=>'text','chaine'=>'string'); // old type to new o $action = GETPOST('action','alpha'); +$error = 0; + +// Editing global variables not related to a specific theme +$constantes=array( + 'MEMBER_REMINDER_EMAIL'=>array('type'=>'yesno', 'label'=>$langs->trans('MEMBER_REMINDER_EMAIL', $langs->transnoentities("Module2300Name"))), + 'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member', + 'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER' =>'emailtemplate:member', /* old was ADHERENT_AUTOREGISTER_MAIL */ + 'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_VALID */ + 'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_COTIS */ + 'ADHERENT_EMAIL_TEMPLATE_CANCELATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_RESIL */ + 'ADHERENT_MAIL_FROM'=>'string', + 'ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT'=>'string', + 'ADHERENT_AUTOREGISTER_NOTIF_MAIL'=>'html', +); + + /* * Actions @@ -133,24 +149,10 @@ $head = member_admin_prepare_head(); dol_fiche_head($head, 'emails', $langs->trans("Members"), -1, 'user'); -print '
'; + dol_fiche_end(); // End of page diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 26094c4cc49..4f1d1d21c02 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6355,10 +6355,13 @@ abstract class CommonObject // Show only the key field in params if (is_array($params) && array_key_exists('onlykey',$params) && $key != $params['onlykey']) continue; + // @TODO Add test also on 'enabled' (different than 'list' that is 'visibility') $enabled = 1; - if ($enabled && isset($extrafields->attributes[$this->table_element]['list'][$key])) + + $visibility = 1; + if ($visibility && isset($extrafields->attributes[$this->table_element]['list'][$key])) { - $enabled = dol_eval($extrafields->attributes[$this->table_element]['list'][$key], 1); + $visibility = dol_eval($extrafields->attributes[$this->table_element]['list'][$key], 1); } $perms = 1; @@ -6367,7 +6370,7 @@ abstract class CommonObject $perms = dol_eval($extrafields->attributes[$this->table_element]['perms'][$key], 1); } - if (($mode == 'create' || $mode == 'edit') && abs($enabled) != 1 && abs($enabled) != 3) continue; // <> -1 and <> 1 and <> 3 = not visible on forms, only on list + if (($mode == 'create' || $mode == 'edit') && abs($visibility) != 1 && abs($visibility) != 3) continue; // <> -1 and <> 1 and <> 3 = not visible on forms, only on list if (empty($perms)) continue; // Load language if required diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 0b51f226e5e..dba52f5c69e 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1175,6 +1175,15 @@ function pdf_writelinedesc(&$pdf, $object, $i, $outputlangs, $w, $h, $posx, $pos if (empty($reshook)) { $labelproductservice=pdf_getlinedesc($object,$i,$outputlangs,$hideref,$hidedesc,$issupplierline); + + //var_dump($labelproductservice);exit; + + // Fix bug of some HTML editors that replace links
]*src=")([^"]*)(&)([^"]*")/', '\1\2&\4', $labelproductservice, -1, $nbrep);
+
+ //var_dump($labelproductservice);exit;
+
// Description
$pdf->writeHTMLCell($w, $h, $posx, $posy, $outputlangs->convToOutputCharset($labelproductservice), 0, 1, false, true, 'J',true);
$result.=$labelproductservice;
diff --git a/htdocs/core/modules/modUser.class.php b/htdocs/core/modules/modUser.class.php
index 7d003fc2731..1072c306551 100644
--- a/htdocs/core/modules/modUser.class.php
+++ b/htdocs/core/modules/modUser.class.php
@@ -216,23 +216,43 @@ class modUser extends DolibarrModules
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
- $this->export_label[$r]='Liste des utilisateurs Dolibarr et attributs';
+ $this->export_label[$r]='List of users and attributes';
$this->export_permission[$r]=array(array("user","user","export"));
$this->export_fields_array[$r]=array(
- 'u.rowid'=>"Id",'u.login'=>"Login",'u.lastname'=>"Lastname",'u.firstname'=>"Firstname",'u.accountancy_code'=>"UserAccountancyCode",
- 'u.office_phone'=>'Phone','u.office_fax'=>'Fax','u.email'=>'EMail','u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",
- 'u.admin'=>"Administrator",'u.statut'=>'Status','u.note'=>"Note",'u.datelastlogin'=>'LastConnexion','u.datepreviouslogin'=>'PreviousConnexion',
+ 'u.rowid'=>"Id",'u.login'=>"Login",'u.lastname'=>"Lastname",'u.firstname'=>"Firstname",'u.employee'=>"Employee",'u.job'=>"PostOrFunction",'u.gender'=>"Gender",
+ 'u.accountancy_code'=>"UserAccountancyCode",
+ 'u.address'=>"Address",'u.zip'=>"Zip",'u.town'=>"Town",
+ 'u.office_phone'=>'Phone','u.user_mobile'=>"Mobile",'u.office_fax'=>'Fax',
+ 'u.email'=>"Email",'u.note'=>"Note",'u.signature'=>'Signature',
+ 'u.fk_user'=>'Supervisor','u.thm'=>'THM','u.tjm'=>'TJM','u.weeklyhours'=>'WeeklyHours',
+ 'u.dateemployment'=>'DateEmployment','u.salary'=>'Salary','u.color'=>'Color','u.api_key'=>'ApiKey',
+ 'u.birth'=>'BirthdayDate',
+ 'u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",
+ 'u.admin'=>"Administrator",'u.statut'=>'Status','u.datelastlogin'=>'LastConnexion','u.datepreviouslogin'=>'PreviousConnexion',
'u.fk_socpeople'=>"IdContact",'u.fk_soc'=>"IdCompany",'u.fk_member'=>"MemberId"
);
$this->export_TypeFields_array[$r]=array(
- 'u.login'=>"Text",'u.lastname'=>"Text",'u.firstname'=>"Text",'u.accountancy_code'=>'Text','u.office_phone'=>'Text','u.office_fax'=>'Text',
+ 'u.login'=>"Text",'u.lastname'=>"Text",'u.firstname'=>"Text",'u.employee'=>'Boolean','u.job'=>'Text',
+ 'u.accountancy_code'=>'Text',
+ 'u.address'=>"Text",'u.zip'=>"Text",'u.town'=>"Text",
+ 'u.office_phone'=>'Text','u.user_mobile'=>'Text','u.office_fax'=>'Text',
'u.email'=>'Text','u.datec'=>"Date",'u.tms'=>"Date",'u.admin'=>"Boolean",'u.statut'=>'Status','u.note'=>"Text",'u.datelastlogin'=>'Date',
- 'u.datepreviouslogin'=>'Date','u.fk_soc'=>"List:societe:nom:rowid",'u.fk_member'=>"List:adherent:firstname"
+ 'u.fk_user'=>"List:user:login",
+ 'u.birth'=>'Date',
+ 'u.datepreviouslogin'=>'Date','u.fk_soc'=>"List:societe:nom:rowid",'u.fk_member'=>"List:adherent:firstname"
);
$this->export_entities_array[$r]=array(
- 'u.rowid'=>"user",'u.login'=>"user",'u.lastname'=>"user",'u.firstname'=>"user",'u.accountancy_code'=>'user','u.office_phone'=>'user',
- 'u.office_fax'=>'user','u.email'=>'user','u.datec'=>"user",'u.tms'=>"user",'u.admin'=>"user",'u.statut'=>'user','u.note'=>"user",
- 'u.datelastlogin'=>'user','u.datepreviouslogin'=>'user','u.fk_socpeople'=>"contact",'u.fk_soc'=>"company",'u.fk_member'=>"member"
+ 'u.rowid'=>"user",'u.login'=>"user",'u.lastname'=>"user",'u.firstname'=>"user",'u.employee'=>'user','u.job'=>'user','u.gender'=>'user',
+ 'u.accountancy_code'=>'user',
+ 'u.address'=>"user",'u.zip'=>"user",'u.town'=>"user",
+ 'u.office_phone'=>'user','u.user_mobile'=>'user','u.office_fax'=>'user',
+ 'u.email'=>'user','u.note'=>"user",'u.signature'=>'user',
+ 'u.fk_user'=>'user','u.thm'=>'user','u.tjm'=>'user','u.weeklyhours'=>'user',
+ 'u.dateemployment'=>'user','u.salary'=>'user','u.color'=>'user','u.api_key'=>'user',
+ 'u.birth'=>'user',
+ 'u.datec'=>"user",'u.tms'=>"user",
+ 'u.admin'=>"user",'u.statut'=>'user','u.datelastlogin'=>'user','u.datepreviouslogin'=>'user',
+ 'u.fk_socpeople'=>"contact",'u.fk_soc'=>"company",'u.fk_member'=>"member"
);
if (empty($conf->adherent->enabled))
{
@@ -254,11 +274,17 @@ class modUser extends DolibarrModules
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('u'=>MAIN_DB_PREFIX.'user','extra'=>MAIN_DB_PREFIX.'user_extrafields'); // List of tables to insert into (insert done in same order)
$this->import_fields_array[$r]=array(
- 'u.lastname'=>"Name*",'u.firstname'=>"Firstname",'u.employee'=>"Employee*",'u.job'=>"Job",'u.gender'=>"Gender",'u.login'=>"Login*",
+ 'u.login'=>"Login*",'u.lastname'=>"Name*",'u.firstname'=>"Firstname",'u.employee'=>"Employee*",'u.job'=>"PostOrFunction",'u.gender'=>"Gender",
+ 'u.accountancy_code'=>"UserAccountancyCode",
'u.pass_crypted'=>"Password",'u.admin'=>"Administrator",'u.fk_soc'=>"Company*",'u.address'=>"Address",'u.zip'=>"Zip",'u.town'=>"Town",
- 'u.fk_state'=>"StateId",'u.fk_country'=>"CountryCode",'u.office_phone'=>"Phone",'u.user_mobile'=>"Mobile",'u.office_fax'=>"Fax",
- 'u.email'=>"Email",'u.note'=>"Note",'u.signature'=>'Signature','u.fk_user'=>'Supervisor','u.thm'=>'THM','u.tjm'=>'TJM',
- 'u.dateemployment'=>'DateEmployment','u.salary'=>'Salary','u.color'=>'Color','u.api_key'=>'ApiKey','u.datec'=>"DateCreation"
+ 'u.fk_state'=>"StateId",'u.fk_country'=>"CountryCode",
+ 'u.office_phone'=>"Phone",'u.user_mobile'=>"Mobile",'u.office_fax'=>"Fax",
+ 'u.email'=>"Email",'u.note'=>"Note",'u.signature'=>'Signature',
+ 'u.fk_user'=>'Supervisor','u.thm'=>'THM','u.tjm'=>'TJM','u.weeklyhours'=>'WeeklyHours',
+ 'u.dateemployment'=>'DateEmployment','u.salary'=>'Salary','u.color'=>'Color','u.api_key'=>'ApiKey',
+ 'u.birth'=>'BirthdayDate',
+ 'u.datec'=>"DateCreation",
+ 'u.statut'=>'Status'
);
// Add extra fields
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'user' AND entity IN (0,".$conf->entity.")";
@@ -282,13 +308,16 @@ class modUser extends DolibarrModules
//$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t');
$this->import_regex_array[$r]=array(
'u.employee'=>'^[0|1]',
- 'u.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$'
+ 'u.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$',
+ 'u.dateemployment'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$',
+ 'u.birth'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$'
);
$this->import_examplevalues_array[$r]=array(
- 'u.lastname'=>"Doe",'u.firstname'=>'John','u.login'=>'jdoe','u.employee'=>'0 or 1','u.status'=>"0 (closed) or 1 (active)",
+ 'u.lastname'=>"Doe",'u.firstname'=>'John','u.login'=>'jdoe','u.employee'=>'0 or 1',
'u.fk_soc'=>'0 (internal user) or company name (external user)','u.datec'=>dol_print_date(dol_now(),'%Y-%m-%d'),'u.address'=>"61 jump street",
'u.zip'=>"123456",'u.town'=>"Big town",'u.fk_country'=>'US, FR, DE...','u.office_phone'=>"0101010101",'u.office_fax'=>"0101010102",
- 'u.email'=>"test@mycompany.com",'u.salary'=>"10000",'u.note'=>"This is an example of note for record",'u.datec'=>"2015-01-01 or 2015-01-01 12:30:00"
+ 'u.email'=>"test@mycompany.com",'u.salary'=>"10000",'u.note'=>"This is an example of note for record",'u.datec'=>"2015-01-01 or 2015-01-01 12:30:00",
+ 'u.statut'=>"0 (closed) or 1 (active)",
);
$this->import_updatekeys_array[$r]=array('u.lastname'=>'Lastname','u.firstname'=>'Firstname','u.login'=>'Login');
}
diff --git a/htdocs/install/medias/background_computer_coffee.jpg b/htdocs/install/medias/background_computer_coffee.jpg
deleted file mode 100644
index 0a4c8828a58..00000000000
Binary files a/htdocs/install/medias/background_computer_coffee.jpg and /dev/null differ
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index d93d329ab23..ecb10fb1549 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -126,8 +126,8 @@ ThisIsContentOfYourMembershipWasValidated=We want to let you know that your memb
ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.