Совершенно новый скрипт предупреждений. Функциональный. Для использования нужен модуль Онлайн игры.Ставится предупреждение и когда соберется 3 предупреждения то пользователь автоматически банится на 3 дня, при этом те 3 предупреждения автоматически удаляются. Так же пользователю идет уведомление в лс о новом предупреждении.Когда нет предупреждений то при нажатии на Нет предупреждений появляется ajax окошко для ввода содержания предупреждения. Когда стоит одно предупреждение, то что бы поставить второе нужно нажать на +. Так же есть ? знак, что бы узнать о инфу о предупреждениях.
Установка:
Настройте модуль Онлайн игры так как на скрине:
В вид материалов Онлайн игры:
Code
<div class="predAll">
<span class="kto">$TITLE$</span><span class="why">$MESSAGE$</span>
<span class="modPan">$MODER_PANEL$</span>
</div>
<span class="kto">$TITLE$</span><span class="why">$MESSAGE$</span>
<span class="modPan">$MODER_PANEL$</span>
</div>
В Персональная страница пользователя вверху после вставляете код:
Code
<style type="text/css">.xt-helpPred{background-position:0-300px;}.xt-helpPred-over{background-position:-15px-300px;}.xt-addPred{background-position:0-240px;}.xt-addPred-over{background-position:-15px-240px;}</style>
<script type="text/javascript">
document.write('<iframe id="Psend" src="/index/14-0-0-1" style="position:absolute; top:0px; left:0px; width:0px; height:0px; border:0px;"></iframe>');
</script>
<script type="text/javascript">
pred = {
tT: function (n, a){
return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2]
},
txt: ["Предупреждений нет", "История предупреждений", ["предупреждение", "предупреждения", "предупреждений"], "Причина коротка", "3 предупреждения = 20% замечаний"],
write: function(i){
var d = $("#predWrite");
$.get("/stuff/0-0-" + i + "-0-17", function(data) {
var num = $(".predAll", data).size();
if (num > 0) {
var r = '';
$(".predAll", data).each(function(n){
var p = $(".modPan", this).html(), d = p ? p: "";
r += "<b>" + (n+1) + ")</b> [<a style='text-decoration: none' title='" + $(".kto", this).text() + " дал ему это предупреждение' href='/index/8-0-" + $(".kto", this).text() + "' target='_blank'>" + $(".kto", this).text() + "</a>] " + $(".why", this).text();
r += d;
if (num>1) r += "<hr>";
});
$(d).html(num + " " + pred.tT(num, pred.txt[2])).click(function(){
new _uWnd('h', pred.txt[1], 270, 150, {fadeclosespeed: 0, align: 0, oncontent: function(){ $(".predPlace img[title='Теги материала'], .predPlace img[title='Управление счетчиками'], .predPlace img[title='Редактировать']").remove(); }, customButtons: {'helpPred': [true,function () {_uWnd.alert('<fieldset><legend>О предупреждениях</legend>Предупреждения вам могут повысить администраторы или модераторы за небольшие нарушения правил сайта. Если у вас 3 предупреждения, то они превратятся в бан сроком на трое суток.</fieldset>', 'Что за предупреждения?', {align: 0, w: 275, h: 135, tm: 5000});}]<?if($GROUP_ID$="4" || $GROUP_ID$="3")?>,'addPred': [true,function () {pred.newPred();}]<?endif?>}}, "<fieldset class='predPlace'>" + r + "</fieldset>");
});
} else {
$(d).html(pred.txt[0]).click(function(){ pred.newPred();});
}
});
},
newPred: function () {
var nNum = $(".predPlace img[title='Удалить']").size();
if (nNum == 2) {
new _uWnd('newAdd', 'Предупредить', 260, 130, {align: 0, close: 0, oncontent: function(){ $("#whyPred").focus(); }}, '<textarea id="whyPred" rows="3" style="width:100%"></textarea><input type="button" onclick="pred.LastSendPred();" value="OK"> <input type="button" onclick="_uWnd.close(\'newAdd\');" value="Отмена"> <span style="color: grey" id="statusPred"></span>');
} else {
new _uWnd('newAdd', 'Предупредить', 260, 130, {align: 0, close: 0, oncontent: function(){ $("#whyPred").focus(); }}, '<textarea id="whyPred" rows="3" style="width:100%"></textarea><input type="button" onclick="pred.sendPred();" value="OK"> <input type="button" onclick="_uWnd.close(\'newAdd\');" value="Отмена"> <span style="color: grey" id="statusPred"></span>');
}
},
sendPred: function(){
var t = $("#whyPred").val();
if (t.replace(/ /g, '').length > 3) {
$("#statusPred").html("Жди...");
sendPredPm(t);
$.get("/stuff/1-0-0-0-1", function(data){
$.post("/stuff", {
ocat: 1, title: '$USERNAME$', brief: t, user: '$_USERNAME$', a: 12, id: 0, ssid: $("input[name='ssid']", data).val()
},function(re){
var tRe = $(re).text();
if (tRe.indexOf("успешно") != -1) {
location.reload();
}
});
});
} else {
alert(pred.txt[3]);return;
}
},
LastSendPred: function(){
var t = $("#whyPred").val();
if (t.replace(/ /g, '').length > 3) {
$("#statusPred").html("Жди...");
sendPredPm(t);
$.get("/stuff/1-0-0-0-1", function(data){
$.post("/stuff", {
ocat: 1, title: '$USERNAME$', brief: t, user: '$_USERNAME$', a: 12, id: 0, ssid: $("input[name='ssid']", data).val()
},function(re){
var tRe = $(re).text();
if (tRe.indexOf("успешно") != -1) {
$.get("/stuff/0-0-$_USER_ID$-0-17", function(del) {
new _uWnd('Bd',' ',400,250,{autosize:1,maxh:300,minh:100,oncontent:function(){$("#a2").attr("checked",true);$("textarea[name='reason']").val(pred.txt[4]);$("input[name='time']").val("3");$("#submfrm982").click();setTimeout(function(){location.reload();},1500);}},{url:'/index/22-$_USER_ID$-1'});
});
}
});
});
} else {
alert(pred.txt[3]);return;
}
}
}
function sendPredPm(mes){
send=$('#Psend').contents();
send.find('#PMtoUser').val('$_USERNAME$');
send.find('#pmSubject').val('Ваш уровень предупреждений был повышен!');
send.find('#message').html('Здраствуйте. Ваш уровень предупреждений был повышен! Причина: [color=red]'+mes+'[/color]');
send.find('#sbm').click();
}
</script>
<script type="text/javascript">
document.write('<iframe id="Psend" src="/index/14-0-0-1" style="position:absolute; top:0px; left:0px; width:0px; height:0px; border:0px;"></iframe>');
</script>
<script type="text/javascript">
pred = {
tT: function (n, a){
return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2]
},
txt: ["Предупреждений нет", "История предупреждений", ["предупреждение", "предупреждения", "предупреждений"], "Причина коротка", "3 предупреждения = 20% замечаний"],
write: function(i){
var d = $("#predWrite");
$.get("/stuff/0-0-" + i + "-0-17", function(data) {
var num = $(".predAll", data).size();
if (num > 0) {
var r = '';
$(".predAll", data).each(function(n){
var p = $(".modPan", this).html(), d = p ? p: "";
r += "<b>" + (n+1) + ")</b> [<a style='text-decoration: none' title='" + $(".kto", this).text() + " дал ему это предупреждение' href='/index/8-0-" + $(".kto", this).text() + "' target='_blank'>" + $(".kto", this).text() + "</a>] " + $(".why", this).text();
r += d;
if (num>1) r += "<hr>";
});
$(d).html(num + " " + pred.tT(num, pred.txt[2])).click(function(){
new _uWnd('h', pred.txt[1], 270, 150, {fadeclosespeed: 0, align: 0, oncontent: function(){ $(".predPlace img[title='Теги материала'], .predPlace img[title='Управление счетчиками'], .predPlace img[title='Редактировать']").remove(); }, customButtons: {'helpPred': [true,function () {_uWnd.alert('<fieldset><legend>О предупреждениях</legend>Предупреждения вам могут повысить администраторы или модераторы за небольшие нарушения правил сайта. Если у вас 3 предупреждения, то они превратятся в бан сроком на трое суток.</fieldset>', 'Что за предупреждения?', {align: 0, w: 275, h: 135, tm: 5000});}]<?if($GROUP_ID$="4" || $GROUP_ID$="3")?>,'addPred': [true,function () {pred.newPred();}]<?endif?>}}, "<fieldset class='predPlace'>" + r + "</fieldset>");
});
} else {
$(d).html(pred.txt[0]).click(function(){ pred.newPred();});
}
});
},
newPred: function () {
var nNum = $(".predPlace img[title='Удалить']").size();
if (nNum == 2) {
new _uWnd('newAdd', 'Предупредить', 260, 130, {align: 0, close: 0, oncontent: function(){ $("#whyPred").focus(); }}, '<textarea id="whyPred" rows="3" style="width:100%"></textarea><input type="button" onclick="pred.LastSendPred();" value="OK"> <input type="button" onclick="_uWnd.close(\'newAdd\');" value="Отмена"> <span style="color: grey" id="statusPred"></span>');
} else {
new _uWnd('newAdd', 'Предупредить', 260, 130, {align: 0, close: 0, oncontent: function(){ $("#whyPred").focus(); }}, '<textarea id="whyPred" rows="3" style="width:100%"></textarea><input type="button" onclick="pred.sendPred();" value="OK"> <input type="button" onclick="_uWnd.close(\'newAdd\');" value="Отмена"> <span style="color: grey" id="statusPred"></span>');
}
},
sendPred: function(){
var t = $("#whyPred").val();
if (t.replace(/ /g, '').length > 3) {
$("#statusPred").html("Жди...");
sendPredPm(t);
$.get("/stuff/1-0-0-0-1", function(data){
$.post("/stuff", {
ocat: 1, title: '$USERNAME$', brief: t, user: '$_USERNAME$', a: 12, id: 0, ssid: $("input[name='ssid']", data).val()
},function(re){
var tRe = $(re).text();
if (tRe.indexOf("успешно") != -1) {
location.reload();
}
});
});
} else {
alert(pred.txt[3]);return;
}
},
LastSendPred: function(){
var t = $("#whyPred").val();
if (t.replace(/ /g, '').length > 3) {
$("#statusPred").html("Жди...");
sendPredPm(t);
$.get("/stuff/1-0-0-0-1", function(data){
$.post("/stuff", {
ocat: 1, title: '$USERNAME$', brief: t, user: '$_USERNAME$', a: 12, id: 0, ssid: $("input[name='ssid']", data).val()
},function(re){
var tRe = $(re).text();
if (tRe.indexOf("успешно") != -1) {
$.get("/stuff/0-0-$_USER_ID$-0-17", function(del) {
new _uWnd('Bd',' ',400,250,{autosize:1,maxh:300,minh:100,oncontent:function(){$("#a2").attr("checked",true);$("textarea[name='reason']").val(pred.txt[4]);$("input[name='time']").val("3");$("#submfrm982").click();setTimeout(function(){location.reload();},1500);}},{url:'/index/22-$_USER_ID$-1'});
});
}
});
});
} else {
alert(pred.txt[3]);return;
}
}
}
function sendPredPm(mes){
send=$('#Psend').contents();
send.find('#PMtoUser').val('$_USERNAME$');
send.find('#pmSubject').val('Ваш уровень предупреждений был повышен!');
send.find('#message').html('Здраствуйте. Ваш уровень предупреждений был повышен! Причина: [color=red]'+mes+'[/color]');
send.find('#sbm').click();
}
</script>
Это строчку вставляете в нужное для вас место в персональной странице пользователя:
Code
<div id="block2" class="udtb"><div class="udtlb">Предупреждения:</div> <a href="javascript://" id="predWrite">Загрузка...</a><script type="text/javascript">pred.write("$_USER_ID$");</script></div>
Вот и все.