Hello
Please understand I've spent days on this forum looking
for similar topics with working solutions.
I did find the following main topics:
https://help.forumotion.com/t137827-request-certain-post-count-before-accessing-the-chatbox
This started off fairly promising.
"Looking for a code or a system to implement on my forun to make it so new members have to have a post count of 5 to access the chatbox."
"That the chatbox is visible, but can only post if you have the minimum amount of posts. "
That's all I wanted, except 30 posts instead of 5.
Then it goes on to say:
"You can only post messages When You have more than 5 threads started!"
But I don't want threads started, I just want simple posts, replies to existing topics.
THEN it goes further saying:
"from all members with an account that was older then 5 days and in order to see that chat box you had to make at least 1 post in a 24h period also with safe list to add some admins or like people who work on the site but don't post"
Wait.. what? WHY? Why "an account that was older then 5 days"
and why "you had to make at least 1 post in a 24h period" ?
That is NOT what the topic was supposed to be about.
"so these settings above would set it to require 2 post every 5 days if the joindate was longer then 10 days ago .. also user 3,876,232,1221,9764 will not be effected by this script"
Nope. Nope. Nuh-uh. Nooooo...
Further on, I already have a group setup for members under 30 posts, so I decided to check this out: https://help.forumotion.com/t137069-controlling-the-chatbox-group-based-access
But then it says "I'm using AWC" which means AvecWeb Chat. I have the default Forumotion chatbox, not AWC
I'm fairly sure this uses script for the same AWC
https://help.forumotion.com/t138130-post-requirement-to-use-chatbox-filter-by-usergroups
I tried some variations and neither of it worked.
Like this one:
Also, for full disclosure, I use several other customization scripts to my chatbox
particularly, I included the autologin, the archives in new tab,
the chatbox in toolbar and the round buttons.
I only enabled autologin today, but unless I can make it an option for people to turn on and off, I think I'll disable it.
This is the full current script (with some CSS modifications as well though)
Please, help me out. Members with 0 posts have recently been causing problems.
I don't care if newbies can access the /chatbox link directly to log in, most of them don't even know that exists. I just don't want them to be able to post on the main page (or toolbar chatbox) unless they have made 30 posts.
Please understand I've spent days on this forum looking
for similar topics with working solutions.
I did find the following main topics:
https://help.forumotion.com/t137827-request-certain-post-count-before-accessing-the-chatbox
This started off fairly promising.
"Looking for a code or a system to implement on my forun to make it so new members have to have a post count of 5 to access the chatbox."
"That the chatbox is visible, but can only post if you have the minimum amount of posts. "
That's all I wanted, except 30 posts instead of 5.
Then it goes on to say:
"You can only post messages When You have more than 5 threads started!"
But I don't want threads started, I just want simple posts, replies to existing topics.
THEN it goes further saying:
"from all members with an account that was older then 5 days and in order to see that chat box you had to make at least 1 post in a 24h period also with safe list to add some admins or like people who work on the site but don't post"
Wait.. what? WHY? Why "an account that was older then 5 days"
and why "you had to make at least 1 post in a 24h period" ?
That is NOT what the topic was supposed to be about.
"so these settings above would set it to require 2 post every 5 days if the joindate was longer then 10 days ago .. also user 3,876,232,1221,9764 will not be effected by this script"
Nope. Nope. Nuh-uh. Nooooo...
Further on, I already have a group setup for members under 30 posts, so I decided to check this out: https://help.forumotion.com/t137069-controlling-the-chatbox-group-based-access
But then it says "I'm using AWC" which means AvecWeb Chat. I have the default Forumotion chatbox, not AWC
I'm fairly sure this uses script for the same AWC
https://help.forumotion.com/t138130-post-requirement-to-use-chatbox-filter-by-usergroups
I tried some variations and neither of it worked.
Like this one:
- Code:
$(function() {
if (_userdata.user_posts >= 30) {
- Code:
$(function() {
var ac = document.getElementById('avacweb_chat_button');
ac.style.display = 'none';
if (_userdata.user_posts >= 100) ac.style.display = '';
else ac.parentNode.removeChild(ac);
});
Also, for full disclosure, I use several other customization scripts to my chatbox
particularly, I included the autologin, the archives in new tab,
the chatbox in toolbar and the round buttons.
I only enabled autologin today, but unless I can make it an option for people to turn on and off, I think I'll disable it.
This is the full current script (with some CSS modifications as well though)
- Code:
(function() {
if (!window.FA) window.FA = {};
if (FA.Chat) {
if (window.console) console.warn('FA.Chat has already been initialized');
return;
}
FA.Chat = {
// chatbox settings
config : {
height : '60%',
width : '70%',
live_notif : true,
sound_notif : {
enabled : true,
file : 'https://ia601507.us.archive.org/3/items/wooshsfx/wooshsfx.mp3'
},
notifRate : 10000
},
// language settings
lang : {
chatbox : 'Chatbox',
new_msg : 'A new message has been posted in the <a href="javascript:FA.Chat.toggle();">chatbox</a>.'
},
// technical data below
node : {}, // node cache
users : 0, // users in chat
messages : 'initial', // total chat messages
actif : false, // tells us if the chatbox is opened
notifActif : false, // tells us if the notifications are active
// initial setup of the chatbox
init : function() {
var right = document.getElementById('fa_right'),
container = document.createElement('DIV'),
button = document.createElement('A'),
audio;
button.id = 'fa_chat_button';
button.innerHTML = FA.Chat.lang.chatbox + ' <span id="fa_chatters">(0)</span>';
button.onclick = FA.Chat.toggle;
FA.Chat.node.button = button;
container.id = 'fa_chat_container';
container.innerHTML = '<iframe id="fa_chat" src="/chatbox"></iframe>';
container.style.width = FA.Chat.config.width;
container.style.height = FA.Chat.config.height;
container.style.bottom = '-' + FA.Chat.config.height;
container.style.visibility = 'hidden';
if (right) {
right.insertBefore(button, right.lastChild); // add the chat button to the right side of the toolbar
document.body.appendChild(container);
// create the notification audio element
if (FA.Chat.config.sound_notif.enabled) {
audio = document.createElement('AUDIO');
audio.src = FA.Chat.config.sound_notif.file;
if (audio.canPlayType) {
FA.Chat.node.audio = audio;
document.body.appendChild(audio);
}
}
FA.Chat.node.container = document.getElementById('fa_chat_container');
FA.Chat.node.chatters = document.getElementById('fa_chatters');
FA.Chat.node.frame = document.getElementById('fa_chat');
FA.Chat.node.frame.onload = FA.Chat.getFrame;
}
delete FA.Chat.init;
},
// get the frame window, document, and elements
getFrame : function() {
if (FA.Chat.poll) window.clearInterval(FA.Chat.poll);
if (this.contentDocument || this.contentWindow) {
FA.Chat.window = this.contentWindow;
FA.Chat.document = this.contentDocument ? this.contentDocument : FA.Chat.window.document;
FA.Chat.node.message = FA.Chat.document.getElementById('message');
FA.Chat.node.members = FA.Chat.document.getElementById('chatbox_members');
FA.Chat.poll = window.setInterval(FA.Chat.listen, 300); // listen for changes every 0.3 seconds
}
},
// listen for changes in the chatbox
listen : function() {
var users = FA.Chat.node.members.getElementsByTagName('LI').length,
messages = FA.Chat.window.chatbox.messages.length;
// update user count
if (users > FA.Chat.users || users < FA.Chat.users) {
FA.Chat.users = users;
FA.Chat.node.chatters.innerHTML = '(' + FA.Chat.users + ')';
}
// initial / active updates
if ((FA.Chat.messages == 'initial' && messages) || FA.Chat.notifActif || FA.Chat.actif) FA.Chat.messages = messages;
// notify new messages while connected and the chatbox is closed
if (!FA.Chat.actif && !FA.Chat.notifActif && FA.Chat.window.chatbox.connected && (messages > FA.Chat.messages || messages < FA.Chat.messages)) {
FA.Chat.messages = messages; // update message count
FA.Chat.notifActif = true;
if (FA.Chat.config.live_notif) FA.Chat.notify(FA.Chat.lang.new_msg); // show live notification
if (FA.Chat.config.sound_notif.enabled && FA.Chat.node.audio) FA.Chat.node.audio.play(); // play sound notification
// wait before notifying the user again
window.setTimeout(function() {
FA.Chat.notifActif = false;
}, FA.Chat.config.notifRate);
}
},
// create a custom notification
notify : function(msg) {
var notif = document.createElement('DIV'),
live = document.getElementById(Toolbar.LIVE_NOTIF);
notif.className = 'fa_notification';
notif.innerHTML = '<div class="content ellipsis">' + msg + '</div>';
notif.style.display = 'none';
$(notif).mouseover(function() { $(this).stop(true, true) });
$(notif).mouseleave(function() { $(this).delay(5000).fadeOut() });
live.insertBefore(notif, live.firstChild);
$(notif.firstChild).dotdotdot();
$(notif).fadeIn(100, function() { $(this).delay(10000).fadeOut() });
},
// toggle the display state of the chatbox
toggle : function() {
var container = FA.Chat.node.container.style;
if (/hidden/i.test(container.visibility)) {
FA.Chat.node.button.className = 'fa_chat_active';
FA.Chat.actif = true;
container.visibility = 'visible';
container.bottom = '3px';
// auto focus the message field
window.setTimeout(function() {
FA.Chat.node.message.focus();
}, 350); // some browsers ( firefox ) need a delay
} else {
FA.Chat.node.button.className = '';
FA.Chat.actif = false;
container.visibility = 'hidden';
container.bottom = '-' + FA.Chat.config.height;
}
}
};
$(function(){
// initialize the chat when the document is ready and the user is logged in
if (_userdata.session_logged_in) $(FA.Chat.init);
});
})();
$(window).load(function() {
var chatbox_script = function() {
setTimeout(function(){ $('#chatbox_option_co:visible').click() }, 1000);
};
var s=document.createElement('script');s.text="("+chatbox_script.toString()+")();";$('object[data^="/chatbox/index.forum"],iframe[src^="/chatbox/index.forum"]').each(function(){try{$(this.contentDocument||this.contentWindow.document).find("#chatbox").closest("html").find("head").first().each(function(){this.appendChild(s.cloneNode(true))})}catch(a){}})
});
$(window).load(function() {
var chatbox_script = function() {
$("#chatbox_option_with_archives a").attr('target', 'ChatBox');
};
var s=document.createElement('script');s.text="("+chatbox_script.toString()+")();";$('object[data^="/chatbox/index.forum"],iframe[src^="/chatbox/index.forum"]').each(function(){try{$(this.contentDocument||this.contentWindow.document).find("#chatbox").closest("html").find("head").first().each(function(){this.appendChild(s.cloneNode(true))})}catch(a){}})
});
Please, help me out. Members with 0 posts have recently been causing problems.
I don't care if newbies can access the /chatbox link directly to log in, most of them don't even know that exists. I just don't want them to be able to post on the main page (or toolbar chatbox) unless they have made 30 posts.
Last edited by DVAted on November 2nd 2015, 8:58 am; edited 1 time in total