Ejemplo n.º 1
0
 function launch()
 {
     global $configArray;
     global $interface;
     //Check to see if we had data posted to us
     if (isset($_REQUEST['submit']) && !empty($_REQUEST['submit'])) {
         //Load the locations from the request data
         $ids = $_REQUEST['id'];
         $hides = $_REQUEST['hide'];
         $internalNotes = $_REQUEST['internalNotes'];
         $deletions = $_REQUEST['delete'];
         foreach ($ids as $id) {
             //This is an existing location, update it
             $curSuggestion = new UserSuggestion();
             $curSuggestion->suggestionId = $id;
             $curSuggestion->find();
             if ($curSuggestion->N == 1) {
                 if (!isset($deletions[$id]) || $deletions[$id] === FALSE) {
                     //Update the record
                     $curSuggestion->fetch();
                     $curSuggestion->hide = $hides[$id] == 'on' ? 1 : 0;
                     $curSuggestion->internalNotes = $internalNotes[$id];
                     $curSuggestion->update();
                 } else {
                     //Delete the record
                     $curSuggestion->delete();
                 }
             } else {
                 //Couldn't find the record.  Something went haywire.
             }
         }
         header("Location: {$configArray['Site']['path']}/Admin/UserSuggestions");
         die;
     }
     //Show a list of user suggestions.
     $suggestion = new UserSuggestion();
     if (!isset($_REQUEST['showHidden'])) {
         $suggestion->whereAdd('hide = 0');
         $interface->assign('showHidden', true);
     } else {
         $interface->assign('showHidden', false);
     }
     $suggestion->orderBy('enteredOn');
     $suggestion->find();
     $suggestionList = array();
     while ($suggestion->fetch()) {
         $suggestionList[$suggestion->suggestionId] = clone $suggestion;
     }
     $interface->assign('suggestions', $suggestionList);
     $interface->assign('sidebar', 'MyAccount/account-sidebar.tpl');
     $interface->setTemplate('userSuggestions.tpl');
     $interface->setPageTitle('User Suggestions');
     $interface->display('layout.tpl');
 }
Ejemplo n.º 2
0
 function launch()
 {
     global $interface;
     global $configArray;
     $suggestion = isset($_REQUEST['suggestion']) ? $_REQUEST['suggestion'] : '';
     $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';
     $email = isset($_REQUEST['email']) ? $_REQUEST['email'] : '';
     if (isset($_REQUEST['submit'])) {
         $isValid = true;
         //Perform validation
         if (isset($email) && strlen($email) > 0) {
             if (!preg_match('/^[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i', $_REQUEST['email'])) {
                 $interface->assign('message', 'The email address provided does not appear to be valid.');
                 $isValid = false;
             }
         }
         if ($isValid && (!isset($suggestion) || strlen($suggestion) == 0)) {
             $interface->assign('message', 'You must enter a suggestion.');
             $isValid = false;
         }
         if ($isValid) {
             //Process the submission
             $privatekey = $configArray['ReCaptcha']['privateKey'];
             $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
             if (!$resp->is_valid) {
                 $interface->assign('message', 'The CAPTCHA response was incorrect, please try again.');
                 $isValid = false;
             }
         }
         if ($isValid) {
             //Save the form.
             $userSuggestion = new UserSuggestion();
             $userSuggestion->name = $name;
             $userSuggestion->email = $email;
             $userSuggestion->suggestion = $suggestion;
             $userSuggestion->hide = 0;
             $userSuggestion->internalNotes = '';
             $userSuggestion->insert();
             //After the suggestion has been inserted, e-mail it to the appropriate user.
             if (isset($configArray['Site']['suggestionEmail']) && strlen($configArray['Site']['suggestionEmail']) > 0) {
                 $mail = new VuFindMailer();
                 $to = $configArray['Site']['suggestionEmail'];
                 $from = $configArray['Site']['email'];
                 $replyTo = $email;
                 $subject = "New Suggestion within VuFind";
                 $body = "Suggestion from: {$name} ({$email})\r\n{$suggestion}";
                 $mail->send($to, $from, $subject, $body, $replyTo);
             }
             //Redirect to the confirmation page
             header("Location: " . $configArray['Site']['path'] . '/Help/SuggestionConfirm');
             die;
         }
     }
     //Display the form asking for input
     $publickey = $configArray['ReCaptcha']['publicKey'];
     $captchaCode = recaptcha_get_html($publickey);
     $interface->assign('captcha', $captchaCode);
     $interface->assign('name', $name);
     $interface->assign('email', $email);
     $interface->assign('suggestion', $suggestion);
     if (isset($_REQUEST['lightbox'])) {
         $interface->assign('popupTitle', 'Make a Suggestion');
         $interface->assign('lightbox', true);
         $popupContent = $interface->fetch('Help/suggestion.tpl');
         $interface->assign('popupContent', $popupContent);
         $interface->display('popup-wrapper.tpl');
     } else {
         $interface->assign('lightbox', false);
         $interface->setPageTitle('Make a Suggestion');
         $interface->setTemplate('suggestion.tpl');
         $interface->display('layout.tpl');
     }
 }