';
if ($object->pass) {
print preg_replace('/./i', '*', $object->pass);
} else {
if ($user->admin) {
- print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
- } else {
- print $langs->trans("Hidden");
+ print '';
}
+ print ''.$langs->trans("Hidden").'';
}
- if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) {
+ if (!empty($object->pass_indatabase) && empty($object->user_id)) { // Show warning only for old password still in clear (does not happen anymore)
$langs->load("errors");
$htmltext = $langs->trans("WarningPasswordSetWithNoAccount");
print ' '.$form->textwithpicto('', $htmltext, 1, 'warning');
@@ -546,15 +545,17 @@ if ($rowid > 0) {
print " ".img_warning($langs->trans("Late"));
}
} else {
- if (!$adht->subscription) {
+ if ($object->need_subscription == 0) {
+ print $langs->trans("SubscriptionNotNeeded");
+ } elseif (!$adht->subscription) {
print $langs->trans("SubscriptionNotRecorded");
- if ($object->statut > 0) {
- print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
+ if (Adherent::STATUS_VALIDATED == $object->statut) {
+ print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft, not excluded and not resiliated
}
} else {
print $langs->trans("SubscriptionNotReceived");
- if ($object->statut > 0) {
- print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
+ if (Adherent::STATUS_VALIDATED == $object->statut) {
+ print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft, not excluded and not resiliated
}
}
}
@@ -563,18 +564,13 @@ if ($rowid > 0) {
print '
';
print dol_get_fiche_end();
@@ -543,6 +552,7 @@ if ($action == 'edit') {
// Run the test to connect
if ($action == 'testconnect') {
+ print '';
print load_fiche_titre($langs->trans("DoTestServerAvailability"));
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
@@ -573,16 +583,18 @@ if ($action == 'edit') {
// Cree l'objet formulaire mail
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
+ $formmail->trackid = (($action == 'testhtml') ? "testhtml" : "test");
$formmail->fromname = (GETPOSTISSET('fromname') ? GETPOST('fromname', 'restricthtml') : $conf->global->MAIN_MAIL_EMAIL_FROM);
$formmail->frommail = (GETPOSTISSET('frommail') ? GETPOST('frommail', 'restricthtml') : $conf->global->MAIN_MAIL_EMAIL_FROM);
- $formmail->trackid = (($action == 'testhtml') ? "testhtml" : "test");
+ $formmail->fromid = $user->id;
+ $formmail->fromalsorobot = 1;
$formmail->withfromreadonly = 0;
$formmail->withsubstit = 0;
$formmail->withfrom = 1;
$formmail->witherrorsto = 1;
- $formmail->withto = (!GETPOST('sendto') ? GETPOST('sendto', 'restricthtml') : ($user->email ? $user->email : 1));
- $formmail->withtocc = (!GETPOST(['sendtocc']) ? GETPOST('sendtocc', 'restricthtml') : 1); // ! empty to keep field if empty
- $formmail->withtoccc = (!GETPOST(['sendtoccc']) ? GETPOST('sendtoccc', 'restricthtml') : 1); // ! empty to keep field if empty
+ $formmail->withto = (GETPOSTISSET('sendto') ? GETPOST('sendto', 'restricthtml') : ($user->email ? $user->email : 1));
+ $formmail->withtocc = (GETPOSTISSET(['sendtocc']) ? GETPOST('sendtocc', 'restricthtml') : 1); // ! empty to keep field if empty
+ $formmail->withtoccc = (GETPOSTISSET(['sendtoccc']) ? GETPOST('sendtoccc', 'restricthtml') : 1); // ! empty to keep field if empty
$formmail->withtopic = (GETPOSTISSET('subject') ? GETPOST('subject') : $langs->trans("Test"));
$formmail->withtopicreadonly = 0;
$formmail->withfile = 2;
@@ -601,7 +613,7 @@ if ($action == 'edit') {
$formmail->param["returnurl"] = $_SERVER["PHP_SELF"];
// Init list of files
- if (GETPOST("mode") == 'init') {
+ if (GETPOST("mode", "aZ09") == 'init') {
$formmail->clear_attached_files();
}
diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php
index de6a47d2d46..6a039aa7ab3 100644
--- a/htdocs/core/class/utils.class.php
+++ b/htdocs/core/class/utils.class.php
@@ -848,8 +848,13 @@ class Utils
$resarray = $utils->executeCLI($command, $outfile);
if ($resarray['result'] != '0') {
$this->error = $resarray['error'].' '.$resarray['output'];
+ $this->errors[] = $this->error;
}
$result = ($resarray['result'] == 0) ? 1 : 0;
+ if ($result < 0 && empty($this->errors)) {
+ $this->error = $langs->trans("ErrorFailToGenerateFile", $FILENAMEDOC);
+ $this->errors[] = $this->error;
+ }
// Build PDF doc
$command = $conf->global->MODULEBUILDER_ASCIIDOCTORPDF.' '.$destfile.' -n -o '.$dirofmoduledoc.'/'.$FILENAMEDOCPDF;
@@ -857,8 +862,13 @@ class Utils
$resarray = $utils->executeCLI($command, $outfile);
if ($resarray['result'] != '0') {
$this->error = $resarray['error'].' '.$resarray['output'];
+ $this->errors[] = $this->error;
}
$result = ($resarray['result'] == 0) ? 1 : 0;
+ if ($result < 0 && empty($this->errors)) {
+ $this->error = $langs->trans("ErrorFailToGenerateFile", $FILENAMEDOCPDF);
+ $this->errors[] = $this->error;
+ }
chdir($currentdir);
} else {
@@ -869,8 +879,6 @@ class Utils
return 1;
} else {
$error++;
- $langs->load("errors");
- $this->error = $langs->trans("ErrorFailToGenerateFile", $outputfiledoc);
}
} else {
$error++;
diff --git a/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php b/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php
index 8025f0c0293..8a2cffe05f3 100644
--- a/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php
+++ b/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php
@@ -18,17 +18,7 @@
/**
* \file core/triggers/interface_99_modZapier_ZapierTriggers.class.php
* \ingroup zapier
- * \brief Example trigger.
- *
- *
- * \remarks You can create other triggers by copying this one.
- * - File name should be either:
- * - interface_99_modZapier_MyTrigger.class.php
- * - interface_99_all_MyTrigger.class.php
- * - The file must stay in core/triggers
- * - The class name must be InterfaceMytrigger
- * - The constructor method must be named InterfaceMytrigger
- * - The name property name must be MyTrigger
+ * \brief File for Zappier Triggers.
*/
require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang
index 61b5c939d12..7610aa78e9e 100644
--- a/htdocs/langs/en_US/modulebuilder.lang
+++ b/htdocs/langs/en_US/modulebuilder.lang
@@ -94,7 +94,7 @@ LanguageDefDesc=Enter in this files, all the key and the translation for each la
MenusDefDesc=Define here the menus provided by your module
DictionariesDefDesc=Define here the dictionaries provided by your module
PermissionsDefDesc=Define here the new permissions provided by your module
-MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.
Note: Once defined (and module re-activated), menus are also visible into the menu editor available to administrator users on %s.
+MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.
Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s.
DictionariesDefDescTooltip=The dictionaries provided by your module/application are defined into the array $this->dictionaries into the module descriptor file. You can edit manually this file or use the embedded editor.
Note: Once defined (and module re-activated), dictionaries are also visible into the setup area to administrator users on %s.
PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.
Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s.
HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code). Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code).
@@ -110,7 +110,7 @@ DropTableIfEmpty=(Destroy table if empty)
TableDoesNotExists=The table %s does not exists
TableDropped=Table %s deleted
InitStructureFromExistingTable=Build the structure array string of an existing table
-UseAboutPage=Disable the about page
+UseAboutPage=Do not generate the About page
UseDocFolder=Disable the documentation folder
UseSpecificReadme=Use a specific ReadMe
ContentOfREADMECustomized=Note: The content of the README.md file has been replaced with the specific value defined into setup of ModuleBuilder.
@@ -138,10 +138,12 @@ CSSViewClass=CSS for read form
CSSListClass=CSS for list
NotEditable=Not editable
ForeignKey=Foreign key
-TypeOfFieldsHelp=Type of fields: varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
+TypeOfFieldsHelp=Type of fields: varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] '1' means we add a + button after the combo to create the record 'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)'
AsciiToHtmlConverter=Ascii to HTML converter
AsciiToPdfConverter=Ascii to PDF converter
TableNotEmptyDropCanceled=Table not empty. Drop has been canceled.
ModuleBuilderNotAllowed=The module builder is available but not allowed to your user.
ImportExportProfiles=Import and export profiles
ValidateModBuilderDesc=Put 1 if this field need to be validated with $this->validateField() or 0 if validation required
+WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated
+LinkToParentMenu=Parent menu (fk_xxxxmenu)
\ No newline at end of file
diff --git a/htdocs/modulebuilder/admin/setup.php b/htdocs/modulebuilder/admin/setup.php
index e5ccb0c3966..01a02d0c7dd 100644
--- a/htdocs/modulebuilder/admin/setup.php
+++ b/htdocs/modulebuilder/admin/setup.php
@@ -120,7 +120,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
print '
';
// We must use $reflectorpropdefault['fields'] to get list of fields because $tmpobjet->fields may have been
@@ -2736,7 +2763,7 @@ if ($module == 'initmodule') {
if (!empty($properties)) {
// Line to add a property
print '