diff --git a/config/vufind/config.ini b/config/vufind/config.ini index 176cea68a6c3a9895213466efe0507b274be1325..d085a348a417b13e110192d8c0577afbc0cbe561 100644 --- a/config/vufind/config.ini +++ b/config/vufind/config.ini @@ -1410,7 +1410,7 @@ treeSearchLimit = 100 ;secretKey = "https://www.google.com/recaptcha/admin/create" ; Valid theme values: dark, light ;theme = light -; Valid forms values: changePassword, email, newAccount, passwordRecovery, sms +; Valid forms values: changePassword, email, feedback, newAccount, passwordRecovery, sms ; Use * for all supported forms ;forms = changePassword, email, newAccount, passwordRecovery, sms diff --git a/module/VuFind/src/VuFind/Controller/FeedbackController.php b/module/VuFind/src/VuFind/Controller/FeedbackController.php index 2a83380174e724ad5fea7f68bd751c853e46d4ee..a067b886bb8be78841f7f6b2e9a01221e6775cf0 100644 --- a/module/VuFind/src/VuFind/Controller/FeedbackController.php +++ b/module/VuFind/src/VuFind/Controller/FeedbackController.php @@ -44,13 +44,16 @@ class FeedbackController extends AbstractBase */ public function emailAction() { + $view = $this->createViewModel(); + $view->useRecaptcha = $this->recaptcha()->active('feedback'); + $view->name = $this->params()->fromPost('name'); + $view->email = $this->params()->fromPost('email'); + $view->comments = $this->params()->fromPost('comments'); + // Process form submission: - if ($this->formWasSubmitted('submit')) { - $name = $this->params()->fromPost('name'); - $users_email = $this->params()->fromPost('email'); - $comments = $this->params()->fromPost('comments'); + if ($this->formWasSubmitted('submit', $view->useRecaptcha)) { - if (empty($users_email) || empty($comments)) { + if (empty($view->email) || empty($view->comments)) { $this->flashMessenger()->addMessage('bulk_error_missing', 'error'); return; } @@ -75,9 +78,9 @@ class FeedbackController extends AbstractBase ); } - $email_message = empty($name) ? '' : 'Name: ' . $name . "\n"; - $email_message .= 'Email: ' . $users_email . "\n"; - $email_message .= 'Comments: ' . $comments . "\n\n"; + $email_message = empty($view->name) ? '' : 'Name: ' . $view->name . "\n"; + $email_message .= 'Email: ' . $view->email . "\n"; + $email_message .= 'Comments: ' . $view->comments . "\n\n"; // This sets up the email to be sent // Attempt to send the email and show an appropriate flash message: @@ -94,7 +97,7 @@ class FeedbackController extends AbstractBase } catch (MailException $e) { $this->flashMessenger()->addMessage($e->getMessage(), 'error'); } - return $this->createViewModel(); } + return $view; } } diff --git a/themes/bootstrap3/templates/feedback/form.phtml b/themes/bootstrap3/templates/feedback/form.phtml index defd62e0c27a00045621b77b36b252d3966a6ff8..296f0820a669a8e3858a275514770e66676b8717 100644 --- a/themes/bootstrap3/templates/feedback/form.phtml +++ b/themes/bootstrap3/templates/feedback/form.phtml @@ -4,21 +4,22 @@ <div class="form-group"> <label class="col-sm-3 control-label" for="name"><?=$this->transEsc("feedback_name")?></label> <div class="col-sm-9"> - <input type="text" id="name" name="name" class="form-control"/> + <input type="text" id="name" name="name" value="<?=$this->escapeHtmlAttr(isset($name) ? $name : '')?>" class="form-control"/> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label" for="email"><?=$this->transEsc("Email")?></label> <div class="col-sm-9"> - <input type="email" id="email" name="email" class="form-control" required/> + <input type="email" id="email" name="email" value="<?=$this->escapeHtmlAttr(isset($email) ? $email : '')?>" class="form-control" required/> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label" for="comments"><?=$this->transEsc("Comments")?></label> <div class="col-sm-9"> - <textarea id="comments" name="comments" class="form-control" required></textarea> + <textarea id="comments" name="comments" class="form-control" required><?=$this->escapeHtml(isset($comments) ? $comments : '')?></textarea> </div> </div> + <?=$this->recaptcha()->html($this->useRecaptcha) ?> <div class="form-group"> <div class="col-sm-9 col-sm-offset-3"> <input type="submit" name="submit" class="btn btn-primary" value="<?=$this->transEsc("Send")?>" />