FM Design
Would you like to react to this message? Create an account in a few clicks or log in to continue.

IMPORTANT

FM Design is in read-only mode, please click here for more information.

Latest topics
» Forumactif Edge - Releases
by Ange Tuteur Tue 03 Sep 2019, 11:49

» GIFActif - Giphy Button for the Editor
by Ange Tuteur Wed 08 May 2019, 17:21

» Forum Closure
by Ange Tuteur Mon 01 Jan 2018, 01:28

» Chit Chat Thread
by Valoish Sun 31 Dec 2017, 19:15

» Font/Text background color.
by Valoish Sun 31 Dec 2017, 19:11

» Forumactif Messenger - Instant Message Application for Forumotion
by Wolfuryo Sun 31 Dec 2017, 18:24

» [GAME] Count to One Million!
by brandon_g Fri 29 Dec 2017, 18:58

» Post Cards
by manikbiradar Wed 20 Dec 2017, 07:50

» [GAME] Countdown from 200,000
by Valoish Wed 13 Dec 2017, 23:22

» GeekPolice Tech Support Forums - GeekPolice.net
by Dr Jay Mon 11 Dec 2017, 19:12

» Asking about some plugin for Forumotion
by Dr Jay Mon 11 Dec 2017, 19:10

» [GAME] What are you thinking right now?
by Van-Helsing Sat 09 Dec 2017, 14:51

» Widget : Similar topics
by ranbac Wed 06 Dec 2017, 18:11

» Change the Background of the Forum and put an image and how to make prefixs?
by Clement Wed 06 Dec 2017, 15:19

» Hello from Western Australia
by SarkZKalie Wed 06 Dec 2017, 05:34

Recent Tutorials
Top posting users this month

Who is online?
In total there are 43 users online :: 0 Registered, 0 Hidden and 43 Guests :: 2 Bots

None

[ View the whole list ]


Most users ever online was 515 on Tue 14 Sep 2021, 15:24

Chat on toolbar plugin and navbar PM list

View previous topic View next topic Go down

dannig
dannig

Gender : Female
Age : 37
Posts : 36
Points : 2873
Reputation : 11
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
http://www.novabrasilis.forumeiros.com https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig 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
Ange Tuteur
Ange Tuteur
Administrator
Gender : Male
Posts : 4741
Points : 12258
Reputation : 2376
Location : Pennsylvania
Language : EN, JA, FR
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
https://sethclydesdale.github.io/ https://twitter.com/sethc1995

PostAnge Tuteur 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
dannig
dannig

Gender : Female
Age : 37
Posts : 36
Points : 2873
Reputation : 11
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
http://www.novabrasilis.forumeiros.com https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig 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
Ange Tuteur
Ange Tuteur
Administrator
Gender : Male
Posts : 4741
Points : 12258
Reputation : 2376
Location : Pennsylvania
Language : EN, JA, FR
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
https://sethclydesdale.github.io/ https://twitter.com/sethc1995

PostAnge Tuteur 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.
Chat on toolbar plugin and navbar PM list Captur30

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'")
    }
  })
});
dannig
dannig

Gender : Female
Age : 37
Posts : 36
Points : 2873
Reputation : 11
Location : Brazil
Language : English, Brazilian-Portuguese
Browser : Browser : Google Chrome Forum Version : Forum Version : Forumactif Edge
http://www.novabrasilis.forumeiros.com https://www.facebook.com/dannielaaragao https://twitter.com/dannielagoes

Postdannig Tue 18 Apr 2017, 10:44

Daym, that was surgically precise, both plugins work now, thanks!
Ange Tuteur
Ange Tuteur
Administrator
Gender : Male
Posts : 4741
Points : 12258
Reputation : 2376
Location : Pennsylvania
Language : EN, JA, FR
Browser : Browser : Brave Forum Version : Forum Version : Forumactif Edge
https://sethclydesdale.github.io/ https://twitter.com/sethc1995

PostAnge Tuteur 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
Sponsored content

PostSponsored content

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