27require
'../main.inc.php';
28require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
31$langs->loadLangs(array(
"companies",
"admin",
"products",
"sms",
"other",
"errors"));
33$action =
GETPOST(
'action',
'aZ09');
34$cancel =
GETPOST(
'cancel',
'aZ09');
40$substitutionarrayfortest = array(
41 '__ID__' =>
'TESTIdRecord',
42 '__PHONEFROM__' =>
'TESTPhoneFrom',
43 '__PHONETO__' =>
'TESTPhoneTo',
44 '__LASTNAME__' =>
'TESTLastname',
45 '__FIRSTNAME__' =>
'TESTFirstname'
53if ($action ==
'update' && !$cancel) {
54 dolibarr_set_const($db,
"MAIN_DISABLE_ALL_SMS",
GETPOST(
"MAIN_DISABLE_ALL_SMS",
'alphanohtml'),
'chaine', 0,
'', $conf->entity);
56 dolibarr_set_const($db,
"MAIN_SMS_SENDMODE",
GETPOST(
"MAIN_SMS_SENDMODE",
'alphanohtml'),
'chaine', 0,
'', $conf->entity);
60 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?mainmenu=home&leftmenu=setup");
66if ($action ==
'send' && !$cancel) {
70 if (
GETPOST(
"fromsms",
'alphanohtml')) {
71 $smsfrom =
GETPOST(
"fromsms",
'alphanohtml');
73 if (empty($smsfrom)) {
74 $smsfrom =
GETPOST(
"fromname",
'alphanohtml');
76 $sendto =
GETPOST(
"sendto",
'alphanohtml');
77 $body =
GETPOST(
'message',
'alphanohtml');
78 $deliveryreceipt =
GETPOST(
"deliveryreceipt",
'alphanohtml');
79 $deferred =
GETPOST(
'deferred',
'alphanohtml');
80 $priority =
GETPOST(
'priority',
'alphanohtml');
81 $class =
GETPOST(
'class',
'alphanohtml');
82 $errors_to =
GETPOST(
"errorstosms",
'alphanohtml');
85 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formsms.class.php';
88 if (!empty($formsms->error)) {
94 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"Message")),
null,
'errors');
98 if (empty($smsfrom) || !str_replace(
'+',
'', $smsfrom)) {
99 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"SmsFrom")),
null,
'errors');
103 if (empty($sendto) || !str_replace(
'+',
'', $sendto)) {
104 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"SmsTo")),
null,
'errors');
113 require_once DOL_DOCUMENT_ROOT.
'/core/class/CSMSFile.class.php';
115 $smsfile =
new CSMSFile($sendto, $smsfrom, $body, $deliveryreceipt, $deferred, $priority, $class);
119 $result = $smsfile->sendfile();
122 setEventMessages($langs->trans(
"SmsSuccessfulySent", $smsfrom, $sendto),
null,
'mesgs');
139$form =
new Form($db);
142if (preg_match(
'/^win/i', PHP_OS)) {
145if (preg_match(
'/^mac/i', PHP_OS)) {
149$wikihelp =
'EN:Setup Sms|FR:Paramétrage Sms|ES:Configuración Sms';
150llxHeader(
'', $langs->trans(
"Setup"), $wikihelp,
'', 0, 0,
'',
'',
'',
'mod-admin page-sms');
154print
'<span class="opacitymedium">'.$langs->trans(
"SmsDesc").
"</span><br>\n";
159$listofmethods = (is_array($conf->modules_parts[
'sms']) ? $conf->modules_parts[
'sms'] : array());
160asort($listofmethods);
162if (!count($listofmethods)) {
163 $descnosms = $langs->trans(
"NoSmsEngine",
'{Dolistore}');
164 $descnosms = str_replace(
'{Dolistore}',
'<a href="https://www.dolistore.com/search.php?orderby=position&orderway=desc&search_query=smsmanager">DoliStore</a>', $descnosms);
165 print
'<div class="warning">'.$descnosms.
'</div>';
168if ($action ==
'edit') {
169 print
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'">';
170 print
'<input type="hidden" name="token" value="'.newToken().
'">';
171 print
'<input type="hidden" name="action" value="update">';
175 print
'<table class="noborder centpercent">';
176 print
'<tr class="liste_titre"><td>'.$langs->trans(
"Parameter").
'</td><td>'.$langs->trans(
"Value").
'</td></tr>';
179 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_DISABLE_ALL_SMS").
'</td><td>';
180 print $form->selectyesno(
'MAIN_DISABLE_ALL_SMS',
getDolGlobalString(
'MAIN_DISABLE_ALL_SMS'), 1);
184 print
'<tr class="oddeven"><td colspan="2"> </td></tr>';
187 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_SMS_SENDMODE").
'</td><td>';
188 if (count($listofmethods)) {
189 print $form->selectarray(
'MAIN_SMS_SENDMODE', $listofmethods,
getDolGlobalString(
'MAIN_SMS_SENDMODE'), 1);
191 print
'<span class="error">'.$langs->trans(
"None").
'</span>';
196 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_SMS_FROM", $langs->transnoentities(
"Undefined")).
'</td>';
197 print
'<td><input class="flat" name="MAIN_SMS_FROM" size="32" value="'.getDolGlobalString(
'MAIN_SMS_FROM');
198 print
'"></td></tr>';
202 print
'<div class="center">';
203 print
'<input class="button button-save" type="submit" name="save" value="'.$langs->trans(
"Save").
'"'.(!count($listofmethods) ?
' disabled' :
'').
'>';
204 print
' ';
205 print
'<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
211 print
'<table class="noborder centpercent">';
212 print
'<tr class="liste_titre"><td>'.$langs->trans(
"Parameter").
'</td><td>'.$langs->trans(
"Value").
'</td></tr>';
215 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_DISABLE_ALL_SMS").
'</td><td>'.
yn(
getDolGlobalString(
'MAIN_DISABLE_ALL_SMS')).
'</td></tr>';
218 print
'<tr class="oddeven"><td colspan="2"> </td></tr>';
221 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_SMS_SENDMODE").
'</td><td>';
224 $text = $langs->trans(
"Undefined").
' '.
img_warning();
230 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_SMS_FROM", $langs->transnoentities(
"Undefined")).
'</td>';
231 print
'<td>'.getDolGlobalString(
'MAIN_SMS_FROM');
233 print
' '.img_warning($langs->trans(
"ErrorBadPhone"));
242 print
'<div class="tabsAction">';
244 if ($action !=
'test') {
245 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=edit">'.$langs->trans(
"Modify").
'</a>';
248 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=test&mode=init&token='.
newToken().
'">'.$langs->trans(
"DoTestSend").
'</a>';
250 print
'<a class="butActionRefused classfortooltip" href="#">'.$langs->trans(
"DoTestSend").
'</a>';
258 if ($action ==
'test') {
263 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formsms.class.php';
265 $formsms->fromtype =
'user';
266 $formsms->fromid = $user->id;
267 $formsms->fromsms = (GETPOSTISSET(
'fromsms') ?
GETPOST(
'fromsms') :
getDolGlobalString(
'MAIN_SMS_FROM', $user->user_mobile));
268 $formsms->withfromreadonly = 0;
269 $formsms->withsubstit = 0;
270 $formsms->withfrom = 1;
271 $formsms->withto = (GETPOSTISSET(
'sendto') ?
GETPOST(
'sendto') : ($user->user_mobile ? $user->user_mobile : 1));
272 $formsms->withbody = (GETPOSTISSET(
'message') ? (!
GETPOST(
'message') ? 1 :
GETPOST(
'message')) : $langs->trans(
"ThisIsATestMessage"));
273 $formsms->withbodyreadonly = 0;
274 $formsms->withcancel = 1;
276 $formsms->substit = $substitutionarrayfortest;
278 $formsms->param[
"action"] =
"send";
279 $formsms->param[
"models"] =
"body";
280 $formsms->param[
"smsid"] = 0;
281 $formsms->param[
"returnurl"] = $_SERVER[
"PHP_SELF"];
283 $formsms->show_form();
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to send SMS Usage: $smsfile = new CSMSFile($subject,$sendto,$replyto,$message,...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
isValidPhone($phone)
Return true if phone number syntax is ok TODO Decide what to do with this.
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
complete_substitutions_array(&$substitutionarray, $outputlangs, $object=null, $parameters=null, $callfunc="completesubstitutionarray")
Complete the $substitutionarray with more entries coming from external module that had set the "subst...
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.