The forum of the forums
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Post requirement to use Chatbox (Filter by Usergroups)

3 posters

Go down

Solved Post requirement to use Chatbox (Filter by Usergroups)

Post by Eugeo Igvalt January 9th 2015, 4:03 am

@Jscript

         You had made a code in this thread https://help.forumotion.com/t137827-request-certain-post-count-before-accessing-the-chatbox?highlight=chatbox

The code works great, but It still forbids Admins too if they have less than 5 posts. Can this code you made be modified to exclude anyone from the 5 post requirement that's in the Administrator usergroup? My forum is phpBB3. '

I had to make a new thread since the other one is locked and solved. 

Code:

/**************************************************************************
 * Module: AVATARChat + JS_EditMsgChat
 * Description: Need?!
 * Author: Made and Optimizations by JScript - 2014/11/23
 * Version: RC2 (Release candidate 2!)
 ***************************************************************************/
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>';
   // $('#' + chatbox_id).parent().detach().prependTo('#wrapper');

    frames["frame_chatbox"].onload = function() {
        // Redefine function in chatbox7.js, by JScript Brasil at live dot com!
        var JS_search = {
                //inVar: /">\[(?:(?:2[0-3]|[0-1][0-9]|[0-9]):[0-5][0-9]:[0-5][0-9])\]<\/span>&nbsp;<span class=\"user-msg\">(.+)&Iota;id=(.*?)&Alpha;<(.*?)>&Epsilon;<img (.*?)&Chi;<img (.*?)>&Tau;(.+)&Mu;(.*?)<\/span>/g,
                //inHtml: /">\[(?:(?:2[0-3]|[0-1][0-9]|[0-9]):[0-5][0-9]:[0-5][0-9])\]<\/span>&nbsp;<span class=\"user-msg\">(.+)[\u0399]id=(.*?)[\u0391]<(.*?)>[\u0395]<img (.*?)[\u03a7]<img (.*?)>[\u039c](.*?)<\/span>/g
                inVar: /&Iota;id=(.*?)&Alpha;<(.*?)>&Epsilon;<img (.*?)&Chi;<img (.*?)>&Mu;(.*?)<\/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="\', "[img]").replace(\'" alt="" />\', "[/img]");' +
            'JS_search = ' + JS_search.inVar + ';' +
            'JS_replace = \'' + JS_replace + '\';' +
         'pauseRefresh = 0;' +
            '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 = \'&Iota;id="\' + UID + \'"&Alpha;\' + AVATAR + "&Epsilon;[img]http://goo.gl/brvCui[/img]&Chi;[img]http://goo.gl/k8FZx5[/img]&Tau;" + time + "&Mu;" + document.post.message.value;' +
            '      document.post.message.value = \'&Iota;id="\' + UID + \'"&Alpha;\' + AVATAR + "&Epsilon;[img]http://goo.gl/brvCui[/img]&Chi;[img]http://goo.gl/k8FZx5[/img]&Mu;" + 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) {' +
         '   if (parent._userdata.user_posts < 5) {' +
         '      return alert("Warning!\\n\\nYou can only post messages when you have more than 5 threads started!");' +
         '   }' +
            '   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 (pauseRefresh) {'+
         '      return false;' +
         '   }' +
            '   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&Iota;(.*?)$/);' +
            '         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&Iota;([0-9]+)&Mu;(.*?)$/);' +
            '           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("Tem certeza de que deseja remover esta mensagem?\\n\\n" + jQuery(oThis).closest(".id").text() ) == 1) {' +
            '      ajax_submit_chatbox("?achives=1", "/remove&Iota;" + jQuery(oThis).closest(".id").attr("id"));' +
            '      jQuery(oThis).closest("p").remove();' +
            '   } else if (num == 2) {' +
         '      pauseRefresh = 1;' +
         '      var td = $(oThis).closest(".id"),' +
         //'         width = td.find(".text").width() - (td.find(".editor").width() * 2),' +
         '         width = td.width() - (td.find(".editor").width() * 4),' +
         '         height = td.find(".text").height(),' +
         '         sHtml =' +
         '            \'<span id="staff-shout-edit">\' +' +
         '               \'<textarea id="rt_input" style="width: \' + width + \'px; height: \' + height + \'px;vertical-align: middle;font-family: inherit;font-size: inherit;">\' + td.find(".text").text() + \'</textarea>\' +' +
         '               \'<input type="submit" id="rt_submit" class="button2" value="Save" onclick="ajax_submit_chatbox("?achives=1", "/edit&Iota;" + \' + jQuery(oThis).closest(".id").attr("id") + \' + "&Mu;" + jQuery("#rt_input").val());pauseRefresh = 0;" style="margin-right: 4px;">\' +' +
         '               \'<a title="Cancel" href="javascript:void(0);" onclick="var oEdit = jQuery("#staff-shout-edit"); oEdit.next().show(); oEdit.prev().show(); oEdit.remove();return pauseRefresh = 0;">Cancel</a>\' +' +
         '            \'</span>\';' +
         '         td.find(".editor").hide();' +
         '         td.find(".text").hide().before(sHtml);' +
            /*
         '      var result = prompt("Editando a frase:", jQuery(oThis).closest(".id").text());' +
            '      if (result != null) {' +
            '         ajax_submit_chatbox("?achives=1", "/edit&Iota;" + jQuery(oThis).closest(".id").attr("id") + "&Mu;" + result);' +
            '         jQuery(oThis).closest(".id span.text").text(result);' +
            '      }' +
         */
            '   /*} else if (num == 3) {' +
            '      ajax_submit_chatbox("?achives=1", XORcipher("/nudge&Iota;" + jQuery(oThis).closest(".id").attr("id") + "&Nu;" + 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);
    };
}


Last edited by Eugeo Ayano on January 9th 2015, 4:30 pm; edited 1 time in total
Eugeo Igvalt
Eugeo Igvalt
Forumember

Male Posts : 289
Reputation : 17
Language : EN, SPA
Location : Puerto Rico

http://www.NewbForums.com

Back to top Go down

Solved Re: Post requirement to use Chatbox (Filter by Usergroups)

Post by JScript January 9th 2015, 12:33 pm

Yes!

In the code, change it: ' if (parent._userdata.user_posts < 5) {' +
For this: ' if (parent._userdata.user_level == 0 && parent._userdata.user_posts < 5) {' +

_userdata.user_level values:
0 - Members
1 - Admins
2 - Moderators

So long,

JS
JScript
JScript
Forumember

Male Posts : 741
Reputation : 175
Language : PT-BR, EN
Location : Brazil

http://jscript.forumeiros.com/

Back to top Go down

Solved Re: Post requirement to use Chatbox (Filter by Usergroups)

Post by Eugeo Igvalt January 9th 2015, 4:29 pm

thank you so much. 

Solved.
Eugeo Igvalt
Eugeo Igvalt
Forumember

Male Posts : 289
Reputation : 17
Language : EN, SPA
Location : Puerto Rico

http://www.NewbForums.com

Back to top Go down

Solved Re: Post requirement to use Chatbox (Filter by Usergroups)

Post by Eugeo Igvalt January 9th 2015, 4:39 pm

Actually I have 1 more issue. I changed the background to black and the text is white. But when I'm typing in white font it doesn't show the | that blinks when you are typing, is there a solution for that, @Jscript ?
Eugeo Igvalt
Eugeo Igvalt
Forumember

Male Posts : 289
Reputation : 17
Language : EN, SPA
Location : Puerto Rico

http://www.NewbForums.com

Back to top Go down

Solved Re: Post requirement to use Chatbox (Filter by Usergroups)

Post by Ape January 10th 2015, 7:07 pm

Please make a new post for your other problem
Topic solved and archived


Post requirement to use Chatbox (Filter by Usergroups) Left1212Post requirement to use Chatbox (Filter by Usergroups) Center11Post requirement to use Chatbox (Filter by Usergroups) Right112
Post requirement to use Chatbox (Filter by Usergroups) Ape_b110
Post requirement to use Chatbox (Filter by Usergroups) Ape1010
Ape
Ape
Administrator
Administrator

Male Posts : 19122
Reputation : 1993
Language : fluent in dork / mumbojumbo & English haha

http://chatworld.forumotion.co.uk/

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum