diff --git a/admin/setup.php b/admin/setup.php new file mode 100644 index 0000000..81b5097 --- /dev/null +++ b/admin/setup.php @@ -0,0 +1,176 @@ + + * Copyright (C) 2021 Chl + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file sendrecurringinvoicebymail/admin/setup.php + * \ingroup sendrecurringinvoicebymail + * \brief SRIBM setup page. + */ + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php"; +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php"; +if (! $res) die("Include of main fails"); + +global $langs, $user; + +// Libraries +require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php"; +//require_once '../lib/mymodule.lib.php'; +//require_once "../class/myclass.class.php"; + +// Translations +$langs->loadLangs(array("admin", "sendrecurringinvoicebymail@sendrecurringinvoicebymail")); + +// Access control +if (! $user->admin) accessforbidden(); + +// Parameters +$action = GETPOST('action', 'alpha'); +$backtopage = GETPOST('backtopage', 'alpha'); + +$arrayofparameters=array( + //'SENDRECURRINGINVOICEBYMAIL_MYPARAM2'=>array('css'=>'minwidth500','enabled'=>1) + 'SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULT' => array( + 'css' => 'minwidth200', + 'selectvalues' => array( + -1 => 'MailBodyFormatAutoDetect', + 0 => 'MailBodyFormatPlainText', + 1 => 'MailBodyFormatHtml', + ), + ), +); + + + +/* + * Actions + */ + +if ((float) DOL_VERSION >= 6) +{ + include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +} + + + +/* + * View + */ + +$page_name = "sendrecurringinvoicebymailSetup"; +llxHeader('', $langs->trans($page_name)); + +// Subheader +$linkback = ''.$langs->trans("BackToModuleList").''; + +print load_fiche_titre($langs->trans($page_name), $linkback, 'object_mymodule@mymodule'); + +// Configuration header +//$head = mymoduleAdminPrepareHead(); +$head = array(); +dol_fiche_head($head, 'settings', '', -1, "sendrecurringinvoicebymail@sendrecurringinvoicebymail"); + +// Setup page goes here +echo ''.$langs->trans("sendrecurringinvoicebymailSetupPage").'

'; + + +if ($action == 'edit') +{ + print '
'; + print ''; + print ''; + + print ''; + print ''; + + foreach($arrayofparameters as $key => $val) + { + print '\n"; + print '\n"; + } + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print "'; + if (isset($val['selectvalues'])) { + // Select input + print '\n"; + } else { + // Simple input + print ''; + } + print "
'; + + print '
'; + print ''; + print '
'; + + print '
'; + print '
'; +} +else +{ + if (! empty($arrayofparameters)) + { + print ''; + print ''; + + foreach($arrayofparameters as $key => $val) + { + print ''; + } + + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print '' . $conf->global->$key . '
'; + + print '
'; + print ''.$langs->trans("Modify").''; + print '
'; + } + else + { + print '
'.$langs->trans("NothingToSetup"); + } +} + + +// Page end +dol_fiche_end(); + +llxFooter(); +$db->close(); diff --git a/class/sribmcustommailinfo.class.php b/class/sribmcustommailinfo.class.php index 1a1a21e..a611e5c 100644 --- a/class/sribmcustommailinfo.class.php +++ b/class/sribmcustommailinfo.class.php @@ -368,9 +368,13 @@ class SRIBMCustomMailInfo extends CommonObject $this->subject = $template->topic; $this->body = $template->content; $this->addmaindocfile = $template->joinfiles; + // By default, we don't send emails when the generated invoice is // still a draft. $this->active = $this->fac_rec_object->auto_validate; + + // Retrieve the default body format from config. + $this->body_ishtml = $conf->global->SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULT; } return 1; diff --git a/core/modules/modsendrecurringinvoicebymail.class.php b/core/modules/modsendrecurringinvoicebymail.class.php index 3369880..2bc42c6 100644 --- a/core/modules/modsendrecurringinvoicebymail.class.php +++ b/core/modules/modsendrecurringinvoicebymail.class.php @@ -103,7 +103,7 @@ class modsendrecurringinvoicebymail extends DolibarrModules $this->dirs = array("/sendrecurringinvoicebymail/temp"); // Config pages. Put here list of php page, stored into sendrecurringinvoicebymail/admin directory, to use to setup module. - //$this->config_page_url = array("setup.php@sendrecurringinvoicebymail"); + $this->config_page_url = array("setup.php@sendrecurringinvoicebymail"); // Dependencies $this->hidden = false; // A condition to hide module @@ -124,6 +124,15 @@ class modsendrecurringinvoicebymail extends DolibarrModules // 1=>array('SENDRECURRINGINVOICEBYMAIL_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1) // ); $this->const = array( + 0 => array( + 'SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULT', // key + 'chaine', // always 'chaine' ? + '0', // value + 'default format for mail body : -1 for auto-detect, 0 for plain text, 1 for HTML.', // desc + 1, // visible + 'current', // current or allentities + 0, // deleteonunactive + ), //1=>array('SENDRECURRINGINVOICEBYMAIL_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1) ); diff --git a/langs/en_US/sendrecurringinvoicebymail.lang b/langs/en_US/sendrecurringinvoicebymail.lang index 2e0ef64..86f7180 100644 --- a/langs/en_US/sendrecurringinvoicebymail.lang +++ b/langs/en_US/sendrecurringinvoicebymail.lang @@ -28,10 +28,8 @@ ModulesendrecurringinvoicebymailDesc = Send FactureRec generated invoices by mai sendrecurringinvoicebymailSetup = sendrecurringinvoicebymail setup Settings = Settings sendrecurringinvoicebymailSetupPage = sendrecurringinvoicebymail setup page -SENDRECURRINGINVOICEBYMAIL_MYPARAM1 = My param 1 -SENDRECURRINGINVOICEBYMAIL_MYPARAM1Tooltip = My param 1 tooltip -SENDRECURRINGINVOICEBYMAIL_MYPARAM2=My param 2 -SENDRECURRINGINVOICEBYMAIL_MYPARAM2Tooltip=My param 2 tooltip +SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULT = Default mail body's format +SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULTTooltip = -1 for auto-detect, 0 for plaintext, 1 for HTML # diff --git a/langs/fr_FR/sendrecurringinvoicebymail.lang b/langs/fr_FR/sendrecurringinvoicebymail.lang index 787adbf..c7475ca 100644 --- a/langs/fr_FR/sendrecurringinvoicebymail.lang +++ b/langs/fr_FR/sendrecurringinvoicebymail.lang @@ -28,10 +28,8 @@ ModulesendrecurringinvoicebymailDesc = Envoi par mail des factures générées p sendrecurringinvoicebymailSetup = Configuration du module sendrecurringinvoicebymail Settings = Réglages sendrecurringinvoicebymailSetupPage = Page de configuration du module sendrecurringinvoicebymail - - - - +SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULT = Format par défaut du corps du mail +SENDRECURRINGINVOICEBYMAIL_BODY_ISHTML_DEFAULTTooltip = -1: auto-détection, 0: texte pur, 1: HTML #