From cd6779701d1a0ef9cf5d56c2232d22d5957d1d5c Mon Sep 17 00:00:00 2001 From: Pierre-Lin Bonnemaison <pierre.lin@free.fr> Date: Tue, 29 Sep 2015 00:03:02 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20r=C3=A9glages=20sur=20l'internatio?= =?UTF-8?q?nalisation=20des=20num=C3=A9ros.=20Unification=20des=20r=C3=A9g?= =?UTF-8?q?lages.=20Fix=20des=20labels=20sur=20les=20num=C3=A9ros=20(retra?= =?UTF-8?q?it=20de=20l'avertissement=20sur=20l'internationalisation)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/settings.php | 109 +++++---------------------------- createDatabase.sql | 6 +- templates/contacts/add.php | 6 +- templates/contacts/edit.php | 6 +- templates/scheduleds/add.php | 8 +-- templates/scheduleds/edit.php | 8 +-- templates/settings/default.php | 44 +++++++++++-- 7 files changed, 70 insertions(+), 117 deletions(-) diff --git a/controllers/settings.php b/controllers/settings.php index df1757d..bd120f7 100755 --- a/controllers/settings.php +++ b/controllers/settings.php @@ -28,12 +28,13 @@ } /** - * Cette fonction permet de mettre à jour l'activation ou la désactivation du transfer des SMS + * Cette fonction permet de mettre à jour un réglage + * @param string $settingName : Le nom du réglage à modifier * @param $csrf : Le jeton CSRF - * @param string $_POST['transfer'] : Le nouveau transfer - * @return void; + * @param string $_POST['settingValue'] : La nouvelle valeur du réglage + * @return boolean */ - public function changeTransfer($csrf) + public function change($settingName, $csrf) { //On vérifie que le jeton csrf est bon if (!internalTools::verifyCSRF($csrf)) @@ -43,99 +44,17 @@ return false; } - //Creation de l'object de base de données + //On vérifie que la valeur est définie + if (!isset($_POST['settingValue'])) + { + $_SESSION['errormessage'] = 'Vous devez fournir une valeur pour le réglage !'; + header('Location: ' . $this->generateUrl('settings')); + return false; + } + global $db; - - if (!isset($_POST['transfer'])) - { - $_SESSION['errormessage'] = 'Vous devez renseigner un valeur'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - $transfer = (int)$_POST['transfer']; - - if (!$db->updateTableWhere('settings', ['value' => $transfer], ['name' => 'transfer'])) - { - $_SESSION['errormessage'] = 'Impossible de mettre les données à jour.'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - $_SESSION['successmessage'] = 'Les données ont été mises à jour.'; - header('Location: ' . $this->generateUrl('settings')); - return true; - } - - /** - * Cette fonction permet de mettre à jour l'activation ou la désactivation de SMS-STOP - * @param $csrf : Le jeton CSRF - * @param string $_POST['stop'] : Le nouveau stop - * @return void; - */ - public function changeSmsStop($csrf) - { - //On vérifie que le jeton csrf est bon - if (!internalTools::verifyCSRF($csrf)) - { - $_SESSION['errormessage'] = 'Jeton CSRF invalide !'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - //Creation de l'object de base de données - global $db; - - if (!isset($_POST['sms_stop'])) - { - $_SESSION['errormessage'] = 'Vous devez renseigner un valeur'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - $stop = (int)$_POST['sms_stop']; - - if (!$db->updateTableWhere('settings', ['value' => $stop], ['name' => 'sms_stop'])) - { - $_SESSION['errormessage'] = 'Impossible de mettre les données à jour.'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - $_SESSION['successmessage'] = 'Les données ont été mises à jour.'; - header('Location: ' . $this->generateUrl('settings')); - return true; - } - - /** - * Cette fonction permet de mettre à jour l'activation ou la désactivation de la detection d'URL dans les discussions - * @param $csrf : Le jeton CSRF - * @param string $_POST['detect_url'] : Le nouveau stop - * @return void; - */ - public function changeDetectionUrl($csrf) - { - //On vérifie que le jeton csrf est bon - if (!internalTools::verifyCSRF($csrf)) - { - $_SESSION['errormessage'] = 'Jeton CSRF invalide !'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - //Creation de l'object de base de données - global $db; - - if (!isset($_POST['detect_url'])) - { - $_SESSION['errormessage'] = 'Vous devez renseigner un valeur'; - header('Location: ' . $this->generateUrl('settings')); - return false; - } - - $detectUrl = (int)$_POST['detect_url']; - - if (!$db->updateTableWhere('settings', ['value' => $detectUrl], ['name' => 'detect_url'])) + if (!$db->updateTableWhere('settings', ['value' => $_POST['settingValue']], ['name' => $settingName])) { $_SESSION['errormessage'] = 'Impossible de mettre les données à jour.'; header('Location: ' . $this->generateUrl('settings')); diff --git a/createDatabase.sql b/createDatabase.sql index f4e8c61..51843d9 100755 --- a/createDatabase.sql +++ b/createDatabase.sql @@ -6,7 +6,7 @@ USE raspisms; CREATE TABLE IF NOT EXISTS settings ( id INT NOT NULL AUTO_INCREMENT, - name VARCHAR(20) NOT NULL, + name VARCHAR(50) NOT NULL, value VARCHAR(1000) NOT NULL, PRIMARY KEY (id), UNIQUE (name) @@ -151,4 +151,6 @@ CREATE TABLE IF NOT EXISTS sms_stop INSERT INTO settings (name, value) VALUES ('transfer', '1'), ('sms_stop', '1'), -('detect_url', '1'); +('detect_url', '1'), +('default_phone_country', 'fr'), +('preferred_phone_country', 'fr,be,ca'); diff --git a/templates/contacts/add.php b/templates/contacts/add.php index f4e87f0..35e3db5 100755 --- a/templates/contacts/add.php +++ b/templates/contacts/add.php @@ -46,7 +46,7 @@ </div> </div> <div class="form-group"> - <label>Numéro de téléphone du contact<span class="italic small-text text-danger"> - Vous devriez utiliser un numéro international (Ex. : +33612345678)</span></label> + <label>Numéro de téléphone du contact</label> <div class="form-group"> <input name="" class="form-control" type="tel" id="phone-international-input"> <input name="phone" type="hidden" id="phone-hidden-input" required> @@ -66,8 +66,8 @@ jQuery('document').ready(function($) { jQuery('#phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); diff --git a/templates/contacts/edit.php b/templates/contacts/edit.php index e76c140..33ea099 100755 --- a/templates/contacts/edit.php +++ b/templates/contacts/edit.php @@ -50,7 +50,7 @@ </div> </div> <div class="form-group"> - <label>Numéro de téléphone du contact<span class="italic small-text text-danger"> - Vous devriez utiliser un numéro international (Ex. : +33612345678)</span></label> + <label>Numéro de téléphone du contact</label> <div class="form-group"> <input name="" class="form-control phone-international-input" type="tel" contact-id="<?php secho($contact['id']); ?>" value="<?php secho($contact['number']); ?>"> <input name="contacts[<?php secho($contact['id']); ?>][phone]" type="hidden" id="phone-hidden-input-<?php secho($contact['id']); ?>" required> @@ -74,8 +74,8 @@ jQuery('document').ready(function($) { jQuery('.phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); diff --git a/templates/scheduleds/add.php b/templates/scheduleds/add.php index 3ef7b50..221fee3 100755 --- a/templates/scheduleds/add.php +++ b/templates/scheduleds/add.php @@ -97,8 +97,8 @@ }); jQuery('.phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); @@ -120,8 +120,8 @@ jQuery(this).before(newScheduledsNumberGroup); jQuery('.phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); diff --git a/templates/scheduleds/edit.php b/templates/scheduleds/edit.php index 7fdff9d..6105367 100755 --- a/templates/scheduleds/edit.php +++ b/templates/scheduleds/edit.php @@ -115,8 +115,8 @@ }); jQuery('.phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); @@ -139,8 +139,8 @@ jQuery(this).before(newScheduledsNumberGroup); jQuery('.phone-international-input').intlTelInput({ - defaultCountry: 'fr', - preferredCountries: ['fr', 'be', 'ca'], + defaultCountry: '<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>', + preferredCountries: <?php secho(json_encode(explode(',', RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY)), false, false); ?>, nationalMode: true, utilsScript: '<?php echo HTTP_PWD; ?>/js/intlTelInput/lib/libphonenumber/utils.js' }); diff --git a/templates/settings/default.php b/templates/settings/default.php index f7ae82f..89dfe69 100755 --- a/templates/settings/default.php +++ b/templates/settings/default.php @@ -40,10 +40,10 @@ <h4 class="panel-title"><i class="fa fa-share fa-fw"></i> Transfert des SMS par e-mail</h4> </div> <div class="panel-body"> - <form action="<?php echo $this->generateUrl('settings', 'changeTransfer', [$_SESSION['csrf']]); ?>" method="POST"> + <form action="<?php echo $this->generateUrl('settings', 'change', ['transfer', $_SESSION['csrf']]); ?>" method="POST"> <div class="form-group"> <label>Transfert activé : </label> - <select name="transfer" class="form-control"> + <select name="settingValue" class="form-control"> <option value="0">Non</option> <option value="1" <?php echo RASPISMS_SETTINGS_TRANSFER ? 'selected' : ''; ?>>Oui</option> </select> @@ -59,10 +59,10 @@ <h4 class="panel-title"><i class="fa fa-link fa-fw"></i> Détection des URL dans les discussions</h4> </div> <div class="panel-body"> - <form action="<?php echo $this->generateUrl('settings', 'changeDetectionUrl', [$_SESSION['csrf']]); ?>" method="POST"> + <form action="<?php echo $this->generateUrl('settings', 'change', ['detection_url', $_SESSION['csrf']]); ?>" method="POST"> <div class="form-group"> <label>Détection activé : </label> - <select name="detect_url" class="form-control"> + <select name="settingValue" class="form-control"> <option value="0">Non</option> <option value="1" <?php echo RASPISMS_SETTINGS_DETECT_URL ? 'selected' : ''; ?>>Oui</option> </select> @@ -73,6 +73,22 @@ </form> </div> </div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"><i class="fa fa-phone fa-fw"></i> Pays préférés numéros internationaux</h4> + </div> + <div class="panel-body"> + <form action="<?php echo $this->generateUrl('settings', 'change', ['preferred_phone_country', $_SESSION['csrf']]); ?>" method="POST"> + <div class="form-group"> + <label>Code des pays (norme ISO 3166-1 alpha-2) séparés par des virgules : </label> + <input name="settingValue" class="form-control" value="<?php secho(RASPISMS_SETTINGS_PREFERRED_PHONE_COUNTRY); ?>" /> + </div> + <div class="text-center"> + <button class="btn btn-success">Mettre à jour les données</button> + </div> + </form> + </div> + </div> </div> <div class="col-xs-12 col-md-6"> <div class="panel panel-default"> @@ -80,10 +96,10 @@ <h4 class="panel-title"><i class="fa fa-ban fa-fw"></i> Activation de SMS-STOP</h4> </div> <div class="panel-body"> - <form action="<?php echo $this->generateUrl('settings', 'changeSmsStop', [$_SESSION['csrf']]); ?>" method="POST"> + <form action="<?php echo $this->generateUrl('settings', 'change', ['sms_stop', $_SESSION['csrf']]); ?>" method="POST"> <div class="form-group"> <label>SMS STOP activé : </label> - <select name="sms_stop" class="form-control"> + <select name="settingValue" class="form-control"> <option value="0">Non</option> <option value="1" <?php echo RASPISMS_SETTINGS_SMS_STOP ? 'selected' : ''; ?>>Oui</option> </select> @@ -94,6 +110,22 @@ </form> </div> </div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"><i class="fa fa-phone fa-fw"></i> Pays par défaut numéros internationaux</h4> + </div> + <div class="panel-body"> + <form action="<?php echo $this->generateUrl('settings', 'change', ['default_phone_country', $_SESSION['csrf']]); ?>" method="POST"> + <div class="form-group"> + <label>Code du pays (norme ISO 3166-1 alpha-2) : </label> + <input name="settingValue" class="form-control" value="<?php secho(RASPISMS_SETTINGS_DEFAULT_PHONE_COUNTRY); ?>" /> + </div> + <div class="text-center"> + <button class="btn btn-success">Mettre à jour les données</button> + </div> + </form> + </div> + </div> </div> </div> </div>