Описание: Отправляет жалобу от материала на тему форума.
Код 1:
Code
<!-- <Скрипт отправки жалобы на форум> -->
<script type="text/javascript">
badEntry = {forum: "http://наш сайт/forum/2-1-1", open: function(){ new _uWnd('a', 'Жалоба на книгу', 350, 230, {align: 0, modal: 1}, '<fieldset><legend>Причина жалобы</legend><select id="themeBadEntry" onchange="badEntry.type(this.value);return false;"><option value="0">Выберите один из вариантов</option><option value="1">Грамматическая ошибка</option><option value="2">Повторяющаяся строка/столбец</option><option value="3">Нарушение порядка строк/столбцов</option></select></fieldset><fieldset><legend>Текст жалобы</legend><textarea style="width: 100%" rows="4" id="reasonBadEntry" onblur="$(\'#sendBadButton\').focus();"></textarea></fieldset><fieldset><center><input type="button" id="sendBadButton" value="Отправить" onclick="badEntry.go();"></center></fieldset>');},type: function (a){switch (a) {case "1": this.theme = "Грамматическая ошибка"; break;case "2": this.theme = "Повторяющаяся строка/столбец"; break;case "3": this.theme = "Нарушение порядка строк/столбцов"; break; default: this.theme = "Не указана";}; $("#themeBadEntry").replaceWith("<b>" + this.theme + "</b>"); $("#reasonBadEntry").focus();}, go: function(){var messg = $("#reasonBadEntry").val(); if (this.theme == undefined) {alert('Тема жалобы не выбрана'); return;} if (messg.length < 10) {alert('Текст вашей жалобы слишком короткий'); return;} $.get(this.forum, function(f){var mymess = encodeURIComponent('[b]Причина жалобы:[/b] ' + badEntry.theme + '\n[b]Ссылка на страницу:[/b] ' + location.href + '\n[b]Текст жалобы:[/b] '+ messg); badEntry.stringMess = $("form[name='addform']",f).serialize().replace("message=", "message=" + mymess); badEntry.seckey = $("input[name='seckey']", f).val() || null; if (badEntry.seckey) { _uWnd.close('a'); new _uWnd('cap', 'Каптча', 300, 85, {autosize: 0, oncontent: function(){ $("#capImg").html($("#secImgForum", f).clone()); }}, '<span id="capImg"></span> <input type="text" id="capVal" style="width: 110px; height: 35px; font-size: 16px; font-weight: bold; color: blue; text-align: center;" maxlength="6"> <input type="button" value="OK" onclick="badEntry.capSend()" style="height: 35">');} else {$.post("/forum", badEntry.stringMess, function(re){ var _t = $(re).text(); if (_t.indexOf("был успешно добавлен") != -1) { _uWnd.close('a'); _uWnd.alert('Успешно отправлено', 'Информация', {w: 220, h: 90, tm: 3000});} else { alert('Ошибка'); }});}});}, capSend: function(){var s = $("#capVal").val(); $.post("/forum", badEntry.stringMess.replace("code=", "code="+s), function(re){ var _t = $(re).text(); if (_t.indexOf("Неправильный код")!= -1) { $("#secImgForum").trigger("click"); $("#capVal").val(""); _uWnd.alert('Неправильный код безопасности', 'Ошибка', {w: 220, h: 90, tm: 3000});} if (_t.indexOf("был успешно добавлен") != -1) { _uWnd.close('cap'); _uWnd.alert('Успешно отправлено', 'Информация', {w: 220, h: 90, tm: 3000});} if (_t.indexOf("Найдены запрещенные ББкоды") != -1) { _uWnd.close('cap'); alert('Вашей группе запрещено использовать ББ коды на форуме.\n Обратитесь за помощью к администрации.'); }});}};
</script>
<!-- </Скрипт отправки жалобы на форум> -->
Код 2: Code
<a href="javascript://" onclick="badEntry.open();return false;">Отправить сообщение об ошибке</a>
Установка скрипта: 1 код ставим после
Code
$CONTENT$ ,$BODY$,$MESAGE$
или что у вас там отвечает за контент.2 код помещаем там где хотим видеть ссылку.
Заходим в права групп во вкладку форум и убеждаемся чтобы стояли галки на возможность добавлять ответ и использовать бб коды.
В дополнение: В самом начале 1 кода проставляем ссыль на тему куда будут отправляться жалобы http://наш сайт/forum/2-1-1
Текст везде можете поменять на свой разберетесь какой откуда береться
Тут
Code
<option value="1">Грамматическая ошибка</option><option value="2">Повторяющаяся строка/столбец</option><option value="3">Нарушение порядка строк/столбцов</option>
Можете хоть сотню причин указать по такому же принципу доббавляете
Code
<option value="4">Хрень какая-то</option>
<option value="5">Делать нечего</option>
<option value="ххх">ХХХ</option>
это высота текстового поля
А теперь обратите внимание причин вы можете указать хоть тысячу но чтобы они отображались на форуме стоит поправить эти строки.
Code
case "1": this.theme = "Грамматическая ошибка"; break;case "2": this.theme = "Повторяющаяся строка/столбец"; break;case "3": this.theme = "Нарушение порядка строк/столбцов"; break;
Запомните ид тут соответствует иду оптион задаваемому в причинах.По такому же принципу добавляем новые причины
Code
case "4": this.theme = "Хрень какая-то"; break;
case "5": this.theme = "Просто так"; break;
case "ххх": this.theme = "ХХХ"; break;
Пишуться они не в столбик а в 1 строку кстати.
В 5 иде ошибка допущена нарочно то есть пользователь выбрав пункт Делать нечего и отправив жалобу на форуме её увидит как Причина жалобы:Просто так.Имено поэтому должно быть соответствие идов и текста в них.
Сами причины прописываються до дефолта( default) который выскочит в случае если не выбрана ни 1 причина
Думаю на этом все.Удачи вам эксперементаторы)