Содержание
В сегодняшнем материале, мы обсудим очень важное решение для сайта где выкладываются статьи, новости или просто админ ведет свой блог. Важно всегда иметь на сайте решение, через которое посетители смогут взаимодействовать с администрацией для уведомлений об ошибках в статьях, новостях сайта.
Мой шаблон в почтовой форме для уведомления об ошибке выглядит так:
<table border="0" width="100%" id="table1" cellspacing="1" cellpadding="2"> <tr style="display:none;"><input type="hidden" type="text" name="f1" size="30" style="width:95%;" maxlength="70" value="sobaka@mail.ru" placeholder="E-mail"></tr> <tr style="display:none;"><input type="hidden" type="text" name="f2" size="30" style="width:95%;" maxlength="70" value="Сообщить об ошибке"></tr> <tr><textarea rows="7" class="form-control" name="f3" cols="30" style="width:95%;" required placeholder="Опишите, пожалуйста, подробно где вы нашли ошибку и как должно быть правильно."></textarea></tr> <tr><input id="location" type="hidden" type="text" class="form-control" name="f4" size="30" style="width:95%;" maxlength="70" placeholder="ссылка на страницу"></tr> <tr><input class="form-control" type="submit" value="Отправить" style="margin-top: 10px;"></tr> </table> <script type="text/javascript">$('#location').val(location.href);</script>
Именно поле name="f3" пользователи будут автоматически заполнять при отправке сообщения об ошибке.
Пропишите в таблицу стилей CSS следующие стили:
/************form contact**************/ .overlay { top: 0; right: 0; bottom: 0; left: 0; z-index: 10; display: none; background-color: rgba(0, 0, 0, 0.65); position: fixed; cursor: default; } .overlay:target {display: block;} .popup { top: -100%; right: 0; left: 50%; font-size: 14px; z-index: 20; margin: 0; width: 85%; min-width: 320px; max-width: 600px; position: fixed; padding: 15px; border: 1px solid #383838; background: #fefefe; -webkit-border-radius: 4px; -moz-border-radius: 4px; -ms-border-radius: 4px; border-radius: 4px; font: 14px/18px 'Tahoma', Arial, sans-serif; -webkit-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); -moz-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); -ms-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); -webkit-transform: translate(-50%, -500%); -ms-transform: translate(-50%, -500%); -o-transform: translate(-50%, -500%); transform: translate(-50%, -500%); -webkit-transition: -webkit-transform 0.6s ease-out; -moz-transition: -moz-transform 0.6s ease-out; -o-transition: -o-transform 0.6s ease-out; transition: transform 0.6s ease-out; } .overlay:target+.popup { -webkit-transform: translate(-50%, 0); -ms-transform: translate(-50%, 0); -o-transform: translate(-50%, 0); transform: translate(-50%, 0); top: 20%; } .close { top: -20px; right: -20px; width: 30px; height: 30px; position: absolute; padding: 0; border: 2px solid #ccc; -webkit-border-radius: 15px; -moz-border-radius: 15px; -ms-border-radius: 15px; -o-border-radius: 15px; border-radius: 15px; background-color: rgba(61, 61, 61, 0.8); -webkit-box-shadow: 0px 0px 10px #000; -moz-box-shadow: 0px 0px 10px #000; box-shadow: 0px 0px 10px #000; text-align: center; text-decoration: none; font: 13px/20px 'Tahoma', Arial, sans-serif; font-weight: bold; -webkit-transition: all ease .8s; -moz-transition: all ease .8s; -ms-transition: all ease .8s; -o-transition: all ease .8s; transition: all ease .8s; } .close:before { color: rgba(255, 255, 255, 0.9); content: "X"; text-shadow: 0 -1px rgba(0, 0, 0, 0.9); font-size: 12px; position: relative; top: 3px; } .close:hover { background-color: rgba(252, 20, 0, 0.8); -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } .popup img {width: 100%;height: auto;} .pic-left, .pic-right {width: 25%;height: auto;} .pic-left {float: left;margin: 5px 15px 5px 0;} .pic-right {float: right;margin: 5px 0 5px 15px;} .popup embed, .popup iframe { top: 0; right: 0; bottom: 0; left: 0; display:block; margin: auto; min-width: 320px; max-width: 600px; width: 100%; } .popup h2 { margin: 0; color: #008000; padding: 5px 0px 10px; text-align: left; text-shadow: 1px 1px 3px #adadad; font-weight: 500; font-size: 1.4em; font-family: 'Tahoma', Arial, sans-serif; line-height: 1.3; } .popup p {margin: 0; padding: 5px 0} /**************************************/
Перейдите в шаблон страницы материала и комментариев в модуле где должна работать форма и перед тегом </body> установите код:
<a href="#x" class="overlay" id="erorr"></a> <div class="popup"> $MFORM_N$ <a class="close"title="Закрыть" href="#close"></a> </div>
вместо значения N пропишите номер вашей формы которую вы создали для уведомлений об ошибке.
В шаблоне страницы материала и комментариев модуля где должна работать форма, перед тегом </body> установить такой скрипт:
<script type="text/javascript"> $(document).on('keydown', 'body', function(event) { if ((event.keyCode == 10 || event.keyCode == 13) && event.ctrlKey) { var selectedText = ''; if (window.getSelection) { var selection = window.getSelection(); selectedText = selection.toString(); } else if (document.selection) { var range = document.selection.createRange(); selectedText = range.htmlText; } if ( selectedText != '' ) selectedText = 'В данном тексте есть ошибка - "' + selectedText + '"'; $('.popup form textarea[name="f3"]').text(selectedText).val(selectedText).focus().blur(); location.href = location.origin + location.pathname + '#erorr'; } }) </script>
готово, все установлено что нужно для работы формы и отправки сообщений об ошибках от пользователей / посетителей сайта.
В результате завершения установки данного решения которое я описал выше, при выделении текста с ошибкой и нажатии комбинации CTRL+ENTER у посетителя сайта будет автоматически на странице сайта открываться почтовая форма в которой вставлен текст с ошибкой. Для завершения процесса уведомления об ошибке, посетителю будет достаточно просто нажать на кнопку "Отправить" и администратор сайта получит сообщение с ошибкой в статье и сможет ее исправить.
Лицензия: CC BY-SA 4.0
Автор: Юрий Герук
Благодарность автору!
| |
Здравствуй Гость, комментарии могут оставлять только зарегистрированные пользователи, зарегистрируйтесь и поделитесь мнением о материале выше Регистрация или Войти.