diff --git a/controllers/settings.php b/controllers/settings.php index f79cec8..df1757d 100755 --- a/controllers/settings.php +++ b/controllers/settings.php @@ -106,4 +106,44 @@ 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'])) + { + $_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; + } } diff --git a/createDatabase.sql b/createDatabase.sql index 31f72a3..aeecfe6 100755 --- a/createDatabase.sql +++ b/createDatabase.sql @@ -146,4 +146,5 @@ CREATE TABLE IF NOT EXISTS sms_stop #On insert les données par défaut dans les settings INSERT INTO settings (name, value) VALUES ('transfer', '1'), -VALUES ('sms_stop', '1'); +('sms_stop', '1'), +('detect_url', '1'); diff --git a/templates/discussions/show.php b/templates/discussions/show.php index 1fa2a8c..5222b1d 100755 --- a/templates/discussions/show.php +++ b/templates/discussions/show.php @@ -65,8 +65,10 @@ $.each(data.messages, function(key, message) { - //On ajoute la detection de lien dans le texte du message - message.text = Autolinker.link(message.text, {newWindow:true}); + <?php if (RASPISMS_SETTINGS_DETECT_URL) { ?> + //On ajoute la detection de lien dans le texte du message + message.text = Autolinker.link(message.text, {newWindow:true}); + <?php } ?> switch (message.type) { diff --git a/templates/settings/default.php b/templates/settings/default.php index 66b9350..f7ae82f 100755 --- a/templates/settings/default.php +++ b/templates/settings/default.php @@ -54,6 +54,25 @@ </form> </div> </div> + <div class="panel panel-default"> + <div class="panel-heading"> + <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"> + <div class="form-group"> + <label>Détection activé : </label> + <select name="detect_url" class="form-control"> + <option value="0">Non</option> + <option value="1" <?php echo RASPISMS_SETTINGS_DETECT_URL ? 'selected' : ''; ?>>Oui</option> + </select> + </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">