Latest topics
» [GAME] Post a random picture
by Valoish Today at 08:42

» [GAME] Q&A
by Valoish Today at 08:37

» [GAME] Last Letter Game
by Valoish Today at 08:36

» [GAME] Never have I ever..
by Valoish Today at 08:35

» [GAME] this or that
by Valoish Today at 08:35

» [GAME] What are you doing right now?
by Valoish Today at 08:34

» Web Page Speed & Optimization for FAE
by dannig Today at 08:15

» Remove automatic image resizer
by Andrei34 Today at 03:11

» Happy Birthday Thread
by Dr Jay Today at 02:29

» hello from forumotion
by Dr Jay Today at 02:26

» Need Help installing Forumactif Edge Theme
by Dr Jay Today at 02:24

» Awards
by Dr Jay Today at 02:21

» Warning Bars - Glossy v.2
by Dr Jay Today at 02:13

» Colors Tab
by Dr Jay Today at 02:11

» [GAME] Count to One Million!
by Valoish Fri 21 Apr 2017, 21:31

Recent Tutorials
Top posting users this month
Who is online?
In total there are 7 users online :: 1 Registered, 0 Hidden and 6 Guests

Andrei34

[ View the whole list ]


Most users ever online was 172 on Fri 19 Feb 2016, 05:17

Chat on toolbar plugin and navbar PM list

View previous topic View next topic Go down

avatar
dannig
Member
Title :
I always create, I never keep.
Gender : Female
Age : 29
Posts : 15
Points : 45
Reputation : 3
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile http://www.novabrasilis.forumeiros.com https://www.facebook.com/https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig on Tue 18 Apr 2017, 09:57

Good day!

I got these plugins here, one displays the chat as a link at the toolbar, the other makes the PM link at the navbar a clickable lis to display PMs.
Code:
$(function(){$(function(){
  var config = {
    width : '700px',
    height : '350px',
    mod_icon : 'default',
    msgnotif : true,
    timestamp : true,
    connection_logs : true
  },
  fa_chat = cre('IFRAME'), fa_button = cre('A'), fa_members = cre('SPAN'), fa_style = cre('STYLE'), fa_right = getId('fa_right'), frame,
      css = '#fa_chat_button{line-height:30px;padding:0 5px;color:#FFF;cursor:pointer;} .fa_actif{background:#FFF !important;color:#000 !important;} .fa_new{background:#FF8 !important;color:#000 !important;} #fa_chat{background:#FFF;width:'+config.width+';height:'+config.height+';border:1px solid #000;border-top:none;position:absolute;top:30px;right:39px;}';

  if (!fa_right || !_userdata.session_logged_in) return;
 
  // set stylesheet
  fa_style.type = 'text/css';
  if (fa_style.styleSheet) fa_style.styleSheet.cssText = css;
  else fa_style.appendChild(document.createTextNode(css));
  document.getElementsByTagName('HEAD')[0].appendChild(fa_style);
 
  // members attributes
  fa_members.id = 'fa_members';
  fa_members.innerHTML = '(0)';
 
  // fa_button attributes
  fa_button.innerHTML = 'Chat ';
  fa_button.id = 'fa_chat_button';
  fa_button.className = 'rightHeaderLink';
  fa_button.appendChild(fa_members);
  fa_right.insertBefore(fa_button,fa_right.lastChild);
 
  // fa_chat attributes
  fa_chat.id = 'fa_chat';
  fa_chat.src = '/chatbox/index.forum';
  fa_chat.style.display = 'none';
  fa_right.insertBefore(fa_chat,fa_right.lastChild);
 
  fa_chat.onload = function() {
    if (fa_chat.contentDocument) frame = fa_chat.contentDocument;
    else if (fa_chat.contentWindow) frame = fa_chat.contentWindow.document;
    var memb_thn = getLength('chatbox_members','LI'), memb_now = memb_thn,
        msg_thn = getLength('chatbox','P'), msg_now = msg_thn;
   
    // set some data..
    fa_members.innerHTML = '('+memb_thn+')';
 
    // kill the interval if archives are enabled
    var a = frame.getElementsByTagName('A');
    for (i=0; i<a.length; i++) if (/archives/.test(a[i].href)) a[i].onclick = function() { window.clearInterval(fa_chat_refresh) };
   
    // execute code in an interval
    fa_chat_refresh = window.setInterval(function() {
      // START chat members
      memb_now = getLength('chatbox_members','LI'), msg_now = getLength('chatbox','P');
      if (memb_now > memb_thn || memb_now < memb_thn) {
        memb_thn = memb_now;
        fa_members.innerHTML = '('+memb_now+')'
      }
      // END chat members
     
      // START chat notification
      if (config.msgnotif) {
        if (msg_now > msg_thn || msg_now < msg_thn) {
          if (!/fa_new/.test(fa_button.className) && chatState(/none/) && !/none/.test(frame.getElementById('chatbox_option_autorefresh').style.display)) fa_button.className += ' fa_new';
          msg_thn = msg_now;
        }
      }
      // END chat notification
     
      // START timestamp
      if (!config.timestamp) {
        var date = frame.getElementsByTagName('SPAN'),i;
        for (i=0; i<date.length; i++) if (/date-and-time/.test(date[i].className) && date[i].style.display != 'none') date[i].style.display = 'none';
      }
      // END timestamp
     
      // START connection logs
      if (!config.connection_logs) {
        var logs = frame.getElementsByTagName('SPAN'),i;
        for (i=0; i<logs.length; i++) if (/red/i.test(logs[i].style.color) || /green/i.test(logs[i].style.color)) if (!/none/.test(logs[i].parentNode.parentNode.style.display)) logs[i].parentNode.parentNode.style.display = 'none';
      }
      // END connection logs
     
      // START mod icon
      if (config.mod_icon.toLowerCase() != 'default') {
        var s = frame.getElementsByTagName('STRONG'),i;
        for (i=0; i<s.length; i++) if (/@/.test(s[i].innerHTML) && s[i].innerHTML.length === 1 && !/msg/.test(s[i].parentNode.parentNode.className)) s[i].innerHTML = config.mod_icon;
      }
      // END mod icon
    },1);
  };

  // toggle chat display
  fa_button.onclick = function() {
    if (/welcome/.test(fa_right.className)) removeClass(fa_right, /welcome/);
    if (/notification/.test(fa_right.className)) removeClass(fa_right, /notification/);
    if (chatState(/none/)) {
      fa_chat.style.display = 'block';
      fa_button.className += ' fa_actif';
      if (/fa_new/.test(fa_button.className)) removeClass(fa_button, /fa_new/);
      frame.getElementById('chatbox').scrollTop = 99999;
    } else hideChat();
  };
 
  // hide chat when toolbar options clicked
  getId('fa_welcome').onclick = function() { hideChat() };
  getId('fa_notifications').onclick = function() { hideChat() };
  getId('fa_hide').onclick = function() { hideChat() };
 
  // chatbox functions
  function hideChat() { if (chatState(/block/)) fa_chat.style.display = 'none'; removeClass(fa_button, /fa_actif/) };
  function chatState(reg) { return reg.test(fa_chat.style.display) };
  function getLength(id, tag) { return frame.getElementById(id).getElementsByTagName(tag).length };
 
  // basic functions
  function getId(id) { return document.getElementById(id) };
  function cre(el) { return document.createElement(el) };
  function removeClass(el, reg) { el.className = el.className.replace(reg,''); };
})});

Code:
/***
 * Application: Private Message list.
 * Description: This application can displays the list of PM in related menus.
 * Version: 1.03102014-jq1.9.1 - Hermes Kriophoros
 * Made and Optimizations by JScript - 2014/03/10
 * View more in: http://ajuda.forumeiros.com
 * Copyright (c) 2013 JScript <jscriptbrasil at live dot com>
 * This work is free. You can redistribute it and/or modify it
 * under the terms of the WTFPL, Version 2
 */
jQuery(function () {
    /***
    * User Definition Variables
    ***/
    /* Put here the amount number of PMs returned!!! */
    var iAmount = 10; 
    /***
    * System Defined Variables - Do not edit if you don't know!
    ***/
    var oConfig = {
        sInfo:
            '<!--' +
            '* Application: Private Message List.' +
            '* Description: This application can displays the list of PM in related menus.' +
            '* Version: 1.03102014-jq1.9.1 - Hermes Kriophoros' +
            '* Made and Optimizations by JScript - 2014/03/10' +
            '* View more in: http://codeforum.besaba.com/forum/index.php' +
            '* Copyright (c) 2014 JScript <jscriptbrasil at live dot com>' +
            '* This work is free. You can redistribute it and/or modify it' +
            '* under the terms of the WTFPL, Version 2' +
            '-->',     
        sContent:
            '<div class="ipsHeaderMenu boxShadow" id="user_inbox_link_menucontent" style="display: none; width: 300px; position: absolute; z-index: 9999;">' +
                '<h4 class="ipsType_sectiontitle">Inbox folder' +
                    '<p class="ipsPad_half ipsType_smaller right">' +
                        '<a class="configure" href="/privmsg?folder=inbox">Messages</a> · <a href="/privmsg?mode=post" title="New message">New message</a>' +
                    '</p>' +
                '</h4>' +
                '<ul class="ipsList_withminiphoto"><img src="http://i55.servimg.com/u/f55/18/17/62/92/ajax-l10.gif" alt="- Load" style="display: block; margin-left: auto; margin-right: auto;"></ul>' +
            '</div>',     
        sCSS:
            '<style>' +
            '.ipsHeaderMenu {' +
                'background-color: #FFFFFF;' +
                'border-radius: 0 0 6px 6px;' +
                'overflow: hidden;' +
                'padding: 10px;' +
                'width: 340px;' +
            '}' +
            '.boxShadow {' +
                'box-shadow: 0 12px 25px rgba(0, 0, 0, 0.58);' +
            '}' +
            '.ipsHeaderMenu .ipsType_sectiontitle {' +
                'margin-bottom: 8px;' +
            '}' +
            '.ipsType_sectiontitle {' +
                'border-bottom: 1px solid #ECECEC;' +
                'color: #595959;' +
                'font-size: 16px;' +
                'font-weight: 400;' +
                'padding: 5px 0;' +
            '}' +
            '.ipsType_smaller, .ipsType_smaller a {' +
                'font-size: 11px !important;' +
            '}' +
            '.ipsPad_half {' +
                'padding: 4px !important;' +
            '}' +
            '.right {' +
                'float: right;' +
            '}' +
            '.ipsList_withminiphoto > li {' +
                'margin-bottom: 8px;' +
            '}' +
            '.ipsType_small {' +
                'font-size: 12px;' +
            '}' +
            '.ipsUserPhoto {' +
                'background: none repeat scroll 0 0 #FFFFFF;' +
                'border: 1px solid #D5D5D5 !important;' +
                'box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);' +
                'padding: 1px;' +
            '}' +
            '.ipsUserPhoto_mini {' +
                'height: 30px;' +
                'width: 30px;' +
            '}' +
            '.left {' +
                'float: left;' +
            '}' +
            '.ipsList_withminiphoto > li .list_content {' +
                'margin-left: 40px;' +
            '}' +
            '#user_inbox_link_menucontent ul.ipsList_withminiphoto {' +
                'list-style: none outside none;' +
                'padding-left: 0 !important;' +
            '}' +
            '.desc.lighter, .desc.lighter.blend_links a {' +
                'color: #A4A4A4;' +
            '}' +
            '.ipsType_smaller, .ipsType_smaller a {' +
                'font-size: 11px !important;' +
            '}' +
            '.menu_active {' +
                'color: #595959 !important;' +
                'background-color: #FFFFFF !important;' +
                'background-position: center bottom;' +
                'border-radius: 3px 3px 0 0;' +
                'padding: 4px;' +
            '}' +
            '</style>',
        sTarget: '',
        sSearch: '',
        sExpression0: '',
        sExpression1: '',
        sExpression2: '',
        sGetIMG: ''
    };

    /* Add CSS */
    /*document.head.insertAdjacentHTML('beforeEnd', oConfig.sCSS);*/
    jQuery(oConfig.sCSS).insertBefore('body');
    jQuery('body').append(oConfig.sInfo + oConfig.sContent);

    /* Forum versions! */
    var phpBB2 = jQuery('.bodyline');
    var phpBB3 = jQuery('#wrap');
    var punbb = jQuery('#pun-intro');
    var invision = jQuery('#ipbwrapper');
 
    if (phpBB2.length) {
        oConfig.sSearch = 'form[name="privmsg_list"] .forumline tr';
        oConfig.sTarget = 'tr';
        oConfig.sExpression0 = 'memDiv.find("tr:first, tr:last").remove();';
        oConfig.sExpression1 = 'jQuery(this).find("a.topictitle").html()';
        oConfig.sExpression2 = 'jQuery(this).find("td .name").html() + " - " + jQuery(this).find("td .postdetails").html()';
        oConfig.sGetIMG = ' #emptyidcc .row1.gensmall img:eq(0)';
    } else if(phpBB3.length) {
        oConfig.sSearch = '.topiclist.pmlist.bg_none li';
        oConfig.sTarget = '.icon dt';
        oConfig.sExpression1 = 'jQuery(this).find("a.topictitle")[0].outerHTML';
        oConfig.sExpression2 = 'jQuery(this).find("em").html()';
        oConfig.sGetIMG = ' #profile-advanced-right img:eq(0)';
    } else if(punbb.length) {
        oConfig.sSearch = '.main-content tr .tcl.tdtopics';
        oConfig.sGetIMG = ' #profile-advanced-right .main-content img:first';
    } else if(invision.length) {
        oConfig.sSearch = '.borderwrap table.ipbtable tbody tr:not(":empty")';
        oConfig.sTarget = 'tr';
        oConfig.sExpression1 = 'var _tmp1 = jQuery(this).find("td:eq(2)");_tmp1.children("a.topictitle")[0].outerHTML';
        oConfig.sExpression2 = '_tmp1.children("a.topictitle").remove();_tmp1.html()';
        oConfig.sGetIMG = ' #profile-advanced-right .box-content.profile.center img:first';
    };
 
    jQuery('a[href*="/privmsg?folder=inbox"]').click(function () {
        var oClicked = jQuery(this);
        var oTarget = jQuery('#user_inbox_link_menucontent');

        if (oTarget[0].style.display == 'none') {
            oClicked.addClass('menu_active');
         
            if ( !jQuery('#user_inbox_link_menucontent ul.ipsList_withminiphoto > li').length ) {
                var memDiv = jQuery('<div>');
                memDiv.load('/privmsg?folder=inbox ' + oConfig.sSearch + ':lt(' + iAmount + ')', function() {
                    if (punbb.length) {
                        memDiv
                            .html(
                                memDiv.html()
                                    .replace(/\<\/a\> por/g, '</a></br><span class="ipsType_smaller desc lighter">')
                                    .replace(/\<\/td\>/g, '</span></div></li>')
                                    .replace(/\<td class="tcl tdtopics"\>/g, '<li class="ipsType_small clearfix"><img class="ipsUserPhoto ipsUserPhoto_mini left" alt="User image" src="http://i78.servimg.com/u/f78/18/17/62/92/defaul10.png"><div class="list_content">')
                            )
                            .find('span.status').remove();
                    } else {
                        if (oConfig.sExpression0) {
                            eval( oConfig.sExpression0 );
                        }
                        var sHtml = '';
                        oConfig.sTarget = memDiv.find(oConfig.sTarget);
                        jQuery.each(oConfig.sTarget, function( index, value ) {
                            sHtml +=
                                '<li class="ipsType_small clearfix">' +
                                    '<img class="ipsUserPhoto ipsUserPhoto_mini left" alt="User image" src="http://i78.servimg.com/u/f78/18/17/62/92/defaul10.png">' +
                                    '<div class="list_content">' +
                                        eval( oConfig.sExpression1 ) + '<br>' +
                                        '<span class="ipsType_smaller desc lighter">' + eval( oConfig.sExpression2 ) + '</span>' +
                                    '</div>' +
                                '</li>';
                        });
                        memDiv.html(sHtml);
                    }
                    jQuery('#user_inbox_link_menucontent ul.ipsList_withminiphoto').html(memDiv.html());

                    var oImgTarget = oTarget.find('.ipsType_small.clearfix');
                    oImgTarget.each(function( index ) {
                        var UserURL = jQuery(this).find('.ipsType_smaller a, .list_content a:last');

                        if (UserURL.length) {
                            UserURL = UserURL.attr('href');
                            var oImgTag = jQuery(this).find('.ipsUserPhoto');
                            var UserIMG = sessionStorage.getItem(UserURL); /* Gets the avatar saved in local storage */

                            /* If avatar alread saved, then no request member profile! */
                            if(UserIMG) {
                                jQuery(this).find('img').attr('src', UserIMG);
                            } else {
                                /* if not, then only request per session!!! */
                                jQuery.get(UserURL, function(data){
                                    var profile_img = jQuery(oConfig.sGetIMG, data).attr('src');
                                    if (profile_img !== undefined) {
                                        oImgTag.attr('src', profile_img);
                                        /* Saves the member avatar in local storage */
                                        sessionStorage.setItem(UserURL, profile_img);
                                    }
                                });
                            }
                        }
                    });
                });
            }
            oTarget
                .css({
                    'left': (oClicked.offset().left + oClicked.outerWidth()) - oTarget.outerWidth(),
                    'top': oClicked.offset().top + oClicked.outerHeight()
                })         
                .fadeIn(400);
            jQuery(document).mousedown(function() {
                if(!oTarget.is(":hover")) {
                    jQuery(document).unbind('mousedown');
                    oClicked.removeClass('menu_active');
                    oTarget.fadeOut(400);
                }
            });         
        } else {
            oClicked.removeClass('menu_active');
            oTarget.fadeOut(400);
        }
        return false;
    });
});

In: All pages


Last edited by dannig on Tue 18 Apr 2017, 10:45; edited 2 times in total
avatar
Ange Tuteur
Administrator
Title :
Coffee Addict
Gender : Male
Age : 21
Posts : 4465
Points : 9189
Reputation : 2232
Location : Macungie, PA
Language : EN10, FR5
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile https://github.com/SethClydesdale https://twitter.com/sethc1995

PostAnge Tuteur on Tue 18 Apr 2017, 10:24

Hi @dannig,

I would recommend using the following plugin, because the one you posted is outdated ; it was the first version of the toolbar chat I wrote which I later abandoned.
http://help.forumotion.com/t143414-add-the-chatbox-to-your-toolbar#977533
avatar
dannig
Member
Title :
I always create, I never keep.
Gender : Female
Age : 29
Posts : 15
Points : 45
Reputation : 3
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile http://www.novabrasilis.forumeiros.com https://www.facebook.com/https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig on Tue 18 Apr 2017, 10:30

Oh, I edited the message right when you sent your response, I didn't even get the forum alert about it, sorry!

The second code doesn't work either ;P
avatar
Ange Tuteur
Administrator
Title :
Coffee Addict
Gender : Male
Age : 21
Posts : 4465
Points : 9189
Reputation : 2232
Location : Macungie, PA
Language : EN10, FR5
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile https://github.com/SethClydesdale https://twitter.com/sethc1995

PostAnge Tuteur on Tue 18 Apr 2017, 10:40

I see the problem ; you have a JavaScript error on your forum that's preventing other scripts from executing.


Find this script :
Code:
$(function() {
  $('input[name="description"]').change(function() {
    var ValidFileExtension = ['jpg', 'JPG', 'jpeg', 'JPEG', 'png', 'PNG', 'gif', 'GIF', 'bmp', 'BMP'];
    if ($.inArray($(this).val().split('.').pop().toLowerCase(), ValidFileExtension) == -1) {
      alert("Sorry, the allowed file extensions are: '.jpeg','.jpg', '.png', '.gif', '.bmp'")
    }
  })
})

and add a semi-colon on the end :
Code:
$(function() {
  $('input[name="description"]').change(function() {
    var ValidFileExtension = ['jpg', 'JPG', 'jpeg', 'JPEG', 'png', 'PNG', 'gif', 'GIF', 'bmp', 'BMP'];
    if ($.inArray($(this).val().split('.').pop().toLowerCase(), ValidFileExtension) == -1) {
      alert("Sorry, the allowed file extensions are: '.jpeg','.jpg', '.png', '.gif', '.bmp'")
    }
  })
});
avatar
dannig
Member
Title :
I always create, I never keep.
Gender : Female
Age : 29
Posts : 15
Points : 45
Reputation : 3
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile http://www.novabrasilis.forumeiros.com https://www.facebook.com/https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig on Tue 18 Apr 2017, 10:44

Daym, that was surgically precise, both plugins work now, thanks!
avatar
Ange Tuteur
Administrator
Title :
Coffee Addict
Gender : Male
Age : 21
Posts : 4465
Points : 9189
Reputation : 2232
Location : Macungie, PA
Language : EN10, FR5
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
Awards :
View all awards
View user profile https://github.com/SethClydesdale https://twitter.com/sethc1995

PostAnge Tuteur on Tue 18 Apr 2017, 11:08

You're welcome ! Mr. Green

That's what happens after years of screwing up and having to fix my own mistakes. It's second nature to me now Toothless

View previous topic View next topic Back to top

Create an account or log in to leave a reply

You need to be a member in order to leave a reply.

Create an account

Join our community by creating a new account. It's easy!


Create a new account

Log in

Already have an account? No problem, log in here.


Log in

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