DefinizioneQuesto tutorial permette agli amministratori di modificare i messaggi e cancellarli dalla chat.
InstallazioneAndiamo verso Pannello di amministrazione ► Moduli ► HTML & JAVASCRIPT ► "Gestione dei codici Javascript", assicuriamoci che la gestione del codice javascript sia attivata e creiamo un nuovo codice javascript:
- Titolo: a tua scelta
- Dove: sull'indice (per la chatbox inserita nella home) oppure nella chatbox
- Codice:
- Codice:
function insertChatBox(chatbox_id, chatbox_url) { return insertChatBoxNew(chatbox_id, chatbox_url); }
// Redefine function in frm_lang_xx.js, by JScript Brasil at live dot com! function insertChatBoxNew(chatbox_id, chatbox_url) {
document.getElementById(chatbox_id).innerHTML = '<iframe src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="no" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0"></iframe>';
frames["frame_chatbox"].onload = function() { // Redefine function in chatbox7.js, by JScript Brasil at live dot com! // Tradotto da NIKO var JS_search = { //inVar: /">\[(?:(?:2[0-3]|[0-1][0-9]|[0-9]):[0-5][0-9]:[0-5][0-9])\]<\/span> <span class="user-msg">(.+)Ιid=(.*?)Α<(.*?)>Ε<img (.*?)Χ<img (.*?)>Τ(.+)Μ(.*?)<\/span>/g, //inHtml: /">\[(?:(?:2[0-3]|[0-1][0-9]|[0-9]):[0-5][0-9]:[0-5][0-9])\]<\/span> <span class="user-msg">(.+)[\u0399]id=(.*?)[\u0391]<(.*?)>[\u0395]<img (.*?)[\u03a7]<img (.*?)>[\u039c](.*?)<\/span>/g inVar: /Ιid=(.*?)Α<(.*?)>Ε<img (.*?)Χ<img (.*?)>Μ(.*?)<\/span>/g, inHtml: /[\u0399]id=(.*?)[\u0391]<(.*?)>[\u0395]<img (.*?)[\u03a7]<img (.*?)>[\u039c](.*?)<\/span>/g }, // JS_replace = '">[$6]$1<span class="id" id=$2><span class="js-avatar"><$3></span><span class="editor"><img onclick="editor(this, 1)" $4<img onclick="editor(this, 2)" $5></span><span class="text">$7</span>', JS_replace = '<span class="id" id=$1><span class="js-avatar"><$2></span><span class="editor"><img onclick="editor(this, 1)" $3<img onclick="editor(this, 2)" $4></span><span class="text">$5</span>', oIframe = (document.getElementById("frame_chatbox").contentWindow || document.getElementById("frame_chatbox").contentDocument), script = oIframe.document.createElement("script"), memDiv = oIframe.document.createElement('div');
script.type = "text/javascript"; script.innerHTML = 'USERNAME = parent._userdata.username;' + 'SUPERMOD = parent._userdata.user_level;' + 'AVATAR = parent._userdata.avatar.replace(\'<img src="\', "");' + 'JS_search = ' + JS_search.inVar + ';' + 'JS_replace = \'' + JS_replace + '\';' + 'function submitmsg(params) {' + ' if (document.post.message.value.length < 4 && SUPERMOD !== 1) return false;' + ' if (document.post.message.value.indexOf("/") !== 0) {' + ' var date = new Date();' + ' var UID = Math.ceil(date.getDate() + date.getHours() + Math.random() * Math.pow(10, 10) + date.getMinutes() + date.getSeconds() + date.getMilliseconds());' + ' if (UID.length < 10) {' + ' UID + "" + (10 - UID.length);' + ' }' + //' var time = new Date().toLocaleTimeString();' + //' document.post.message.value = \'Ιid="\' + UID + \'"Α\' + AVATAR + "ΕΧΤ" + time + "Μ" + document.post.message.value;' + ' document.post.message.value = \'Ιid="\' + UID + \'"Α\' + AVATAR + "ΕΧΜ" + document.post.message.value;' + ' }' + ' document.post.sent.value = document.post.message.value;' + ' document.post.message.value = "";' + ' document.post.message.focus();' + ' ajax_submit_chatbox(params);' + ' return false' + '}' + 'function copy_user_name(user_name) {' + ' if (document.post.message) {' + ' document.post.message.focus();' + ' document.post.message.value += ((user_name.indexOf("@") == 0) ? "" : "@") + user_name + " -> ";' + ' }' + ' return false' + '}' + 'function ajax_submit_chatbox(params, editor) {' + ' number_of_refresh = 0;' + ' if (params == "" || params == undefined) {' + ' params = "?achives=0"' + ' }' + ' if (editor == "" || editor == undefined) {' + ' var msg_sent = document.post.sent.value;' + ' } else {' + ' var msg_sent = editor;' + ' }' + ' var data = "&mode=send";' + ' data += "&sent=" + encodeURIComponent(msg_sent);' + ' data += "&sbold=" + document.post.sbold.value;' + ' data += "&sitalic=" + document.post.sitalic.value;' + ' data += "&sunderline=" + document.post.sunderline.value;' + ' data += "&sstrike=" + document.post.sstrike.value;' + ' data += "&scolor=" + document.post.scolor.value;' + ' if ((msg_sent.indexOf("/away") == 0) || (msg_sent.indexOf("/abs") == 0)) {' + ' document.getElementById("refresh_auto").checked = false' + ' }' + ' if (document.post.sent.value == "/banlist") {' + ' window.open("/chatbox/chatbox_banlist.forum" + params, "banlist", "toolbar=no,menubar=no,personalbar=no,width=450,height=300,scrollbars=yes,resizable=yes");' + ' return false' + ' }' + ' $.ajax({' + ' url: "/chatbox/chatbox_actions.forum" + params,' + ' type: "post",' + ' data: data,' + ' dataType: "script",' + ' success: function(response, status, xhr) {' + ' if (xhr.status == 200) {' + //' if (typeof (chatbox_messages) !== "undefined") {' + ' chatbox_messages = chatbox_messages.replace(JS_search, JS_replace);' + ' document.getElementById("memdiv").innerHTML = chatbox_messages;' + ' hackMsg();' + ' document.getElementById("chatbox").innerHTML = document.getElementById("memdiv").innerHTML;' + ' /*$("#chatbox").html(chatbox_messages) [0].scrollTop = $("#chatbox").prop("scrollHeight");*/' + ' document.getElementById("chatbox").scrollTop = 999999;' + //' }' + ' if (typeof (chatbox_memberlist) !== "undefined") {' + ' document.getElementById("chatbox_members").innerHTML = chatbox_memberlist;' + ' /*$("#chatbox_members").html(chatbox_memberlist);*/' + ' }' + ' }' + ' },' + ' })' + '}' + 'function ajax_refresh_chatbox(params, force) {' + ' if (params == "" || params == undefined) {' + ' params = "?achives=0"' + ' }' + ' $.ajax({' + ' url: "/chatbox/chatbox_actions.forum" + params + "&mode=refresh",' + ' type: "get",' + ' dataType: "script",' + ' success: function(response, status, xhr) {' + ' if (xhr.status == 200) {' + // || force) {' + <- Fail! //' if ($("#chatbox").length) {' + ' if (typeof (chatbox_messages) !== "undefined") {' + ' chatbox_messages = chatbox_messages.replace(JS_search, JS_replace);' + ' document.getElementById("memdiv").innerHTML = chatbox_messages;' + ' hackMsg();' + ' document.getElementById("chatbox").innerHTML = document.getElementById("memdiv").innerHTML;' + ' document.getElementById("chatbox").scrollTop = document.getElementById("chatbox").scrollHeight + document.getElementById("chatbox").offsetHeight;' + ' document.getElementById("chatbox").scrollTop = 999999;' + ' }' + //' if (document.getElementById("chatbox_members").innerHTML != null) document.getElementById("chatbox_members").innerHTML = chatbox_memberlist;' + ' if (typeof (chatbox_memberlist) !== "undefined") {' + ' document.getElementById("chatbox_members").innerHTML = chatbox_memberlist;' + ' /*$("#chatbox_members").html(chatbox_memberlist);*/' + ' }' + ' }' + ' },' + ' })' + '}' + 'function hackMsg() {' + ' var oTarget = jQuery("#memdiv > p"),' + ' iLen = oTarget.length,' + ' index = 0;' + ' for (; index < iLen; index++) {' + ' var oThis = jQuery(oTarget[index]),' + ' sUserName = oThis.find(".user > a").text(),' + ' ID = oThis.find("span.id");' + ' if (ID.length == 0) {' + ' ID = oThis.find(".msg:last").text();' + // XORcipher -> ' ID = XORcipher(oThis.find(".msg").text());' + ' var del = ID.match(/^\\/remove[\\u0399](.*?)$/);' + // XORcipher -> ' var del = ID.match(/^\\/removeΙ(.*?)$/);' + ' if (del !== null) {' + ' var oMsg = oThis.parent().find("#" + del[1]).closest("p");' + ' if (oMsg.length) {' + //' if (oMsg.find(".user > a").text() == sUserName || SUPERMOD > 0) {' + ' oMsg.remove();' + //' }' + ' }' + ' }' + ' var edit = ID.match(/^\\/edit[\\u0399]([0-9]+)[\\u039c](.*?)$/);' + // XORcipher -> ' var edit = ID.match(/^\\/editΙ([0-9]+)Μ(.*?)$/);' + ' if (edit !== null) {' + ' var oMsg = oThis.parent().find("#" + edit[1]);' + ' if (oMsg.length) {' + //' if (oMsg.closest("p").find(".user > a").text() == sUserName || SUPERMOD > 0) {' + ' oMsg.find("span.text").text(edit[2]);' + //' }' + ' }' + ' }' + ' /*var nudge = ID.match(/^\\/nudge[\\u0399]([0-9]+)[\\u039d](.*?)$/);' + ' if (nudge !== null) {' + ' var oMsg = oThis.parent().find("#" + nudge[1]);' + ' if (oMsg.length) {' + ' if (nudge[2] == USERNAME) {' + ' // Developing!;' + ' }' + ' }' + ' }*/' + ' oThis.remove();' + ' } else {' + ' if (sUserName !== USERNAME && SUPERMOD == 0) {' + ' ID.find(".editor").remove();' + ' }' + ' }' + ' }' + '}' + 'function editor(oThis, num) {' + ' if (num == 1 && iConfirm("Sei sicuro di voler rimuovere questo messaggio?\\n\\n" + jQuery(oThis).closest(".id").text() ) == 1) {' + ' ajax_submit_chatbox("?achives=1", "/removeΙ" + jQuery(oThis).closest(".id").attr("id"));' + ' jQuery(oThis).closest("p").remove();' + ' } else if (num == 2) {' + ' var result = prompt("Editando a frase:", jQuery(oThis).closest(".id").text());' + ' if (result != null) {' + ' ajax_submit_chatbox("?achives=1", "/editΙ" + jQuery(oThis).closest(".id").attr("id") + "Μ" + result);' + ' jQuery(oThis).closest(".id span.text").text(result);' + ' }' + ' /*} else if (num == 3) {' + ' ajax_submit_chatbox("?achives=1", XORcipher("/nudgeΙ" + jQuery(oThis).closest(".id").attr("id") + "Ν" + jQuery(oThis).closest("p").find(".user > a").text()));*/' + ' }' + '}' + /*'function XORcipher(sText) {' + ' var key = 2,' + ' result = "",' + ' len = sText.length,' + ' i = 0;' + ' for (; i < len; i++) {' + ' result += String.fromCharCode(key ^ sText.charCodeAt(i));' + ' }' + ' return result;' + '}' +*/ 'function iConfirm(text) {' + ' var iChoice = -1;' + ' if (confirm(text) == true) {' + ' iChoice = 1;' + ' } else {' + ' iChoice = 0;' + ' }' + ' return iChoice;' + '}'; oIframe.document.getElementsByTagName("head")[0].appendChild(script);
var style = oIframe.document.createElement("style"); style.type = "text/css"; style.innerHTML = '#chatbox p {' + ' background: none repeat scroll 0 0 #fff;' + ' border-bottom: 1px solid #e3e3e3;' + ' line-height: 1.3em;' + ' padding: 5px;' + '}' + '#chatbox span[title] {' + ' color: #8f8f8f !important;' + ' float: right !important;' + '}' + '#chatbox .user:not(:empty) {' + ' font-weight: 700;' + ' margin-left: 36px !important;' + '}' + '#chatbox .id {' + ' display: block;' + ' margin-top: 3px;' + '}' + '#chatbox .js-avatar img {' + ' background: none repeat scroll 0 0 #fff;' + ' border: 1px solid #ddd;' + ' float: left;' + ' height: 30px;' + ' margin-right: 5px;' + ' margin-top: -19px;' + ' max-width: 30px;' + ' padding: 1px;' + ' vertical-align: middle;' + ' width: 30px;' + '}' + '#chatbox .editor img {' + ' cursor: pointer;' + ' float: right;' + ' padding-left: 4px;' + '}' + '#chatbox {' + ' display: none;' + '}'; oIframe.document.getElementsByTagName("head")[0].appendChild(style);
var forceConnect = setInterval(function() { if (oIframe.document.getElementById("chatbox") !== null) { clearInterval(forceConnect); memDiv.id = 'memdiv'; oIframe.document.getElementsByTagName('body')[0].appendChild(memDiv); oIframe.document.getElementById("memdiv").style.display = 'none'; oIframe.document.getElementById("memdiv").innerHTML = oIframe.document.getElementById("chatbox").innerHTML.replace(JS_search.inHtml, JS_replace);
oIframe.hackMsg();
oIframe.document.getElementById("chatbox").innerHTML = oIframe.document.getElementById("memdiv").innerHTML; if (oIframe.document.getElementById('chatbox_option_disco').style.display == 'none') { oIframe.CB_disconnect(); } oIframe.document.getElementById("chatbox_option_with_archives").style.display = 'none'; oIframe.document.getElementById("chatbox_option_without_archives").style.display = 'none'; oIframe.document.getElementById("chatbox").style.display = 'block'; } }, 250); }; }
|