Note: This plugin is still in alpha stage, and most likely has quite a few bugs in it .. you have been warned! ;)
** Updated chat version - very alpha release for those interested in helping bug test **
** First release using MySQL via ELGG objects - should solve the SQLite issue **
Welcome to my first attempt at a plugin!
The bottom_bar plugin adds a fixed bar at the bottom of the browser with an auto updating notification and friends list.
The notification button will show red when there are new notices to be seen. When the button is clicked, the notice is cleared ready for the next update. The friends list auto updates with a list of online friends.
As of v0.2, basic chat has been added to the system, including persistant windows between page loads, chat history, sound notifications and smiley and url translation. There are now some settings for both admin and user to enable/disable chat and a few other bits.
I have tested this with Internet Explorer 7, Google Chrome 2.0 and Firefox 3.0 & 3.5, and as far as I can tell it works ok. If anyone can test against other browsers/OS I would appreciated it. Also, please let me know if you come across another plugin that this conflicts with.
Known Bugs:
Some screenshots ...
(yes I know the notification area is showing the same as the main page .. it was kind of the point to show the notifications were in sync ;) )
All constructive comments welcomed.
Like this code? Consider a donation ;)
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
For some reason I keep getting logged out at each refresh interval. I am running 1.6.1 - I had no problems until I installed "everyone_friends" plugin. I am not sure if there is a conflict with this plugin or not, because when I disable it the log out still occurs. Apperently it is only momentary because I am allowed to perform actions as I am logged in after about a quarter second, but if I turn the force redirect to login off - it just stays as logged off and i get no alerts or messages.
It appears that this was a transient issue - still not sure what caused it. It does not currently seem to be a problem.
I was just on the site again and it has resumed the behavior described in my first post... any ideas why? I have made no changes since then. The plugin I mentioned may have nothing to do with the problems - it is possible I just never noticed the problem in the first place.
@TMP Thanks for your hard work in this plugin. Shame I found it after I gave some dollars to CometChat. You plugin seems to work nicely out of the box. The only thing that is missing, is the ability to have a chat room, similar to CometChat. Anything like this in the pipeline for future versions? (If you are unaware of what I am talking about, visit http://www.cometchat.com/
@expanton - Strange - not sure what might be causing that. Can I ask that you delete all the domain cookies and try again?
@Alan Cramer - I wasn't planning on a chat room kind of thing, as there are other (free) apps that will do that. The toolbar doesn't really lend itself to that kind of environment as it would take up too much screen real estate I think.
wierd... where is panel to enable/disable sound in v0.8?
Hello,
I just moved to elgg 1.7 from 1.6. And not sure how to configure bottom_bar! In the admin menu, it shows "Database Options
SQLite extensions not installed - using ELGG Objects"
just above the save button.. but nothing to select!
I have installed SQLite on my VPS.... nothing happens... is there anyone who managed to plug this cool plug into 1.7? Any tips?
Thanks.
its late
This doesn't appear to function in ELGG 1.7.
I managed to get this working in 1.7. I had to install SQLite to get the DB options. Once I did that I selected ELGG Objects. I also changed from a MyISAM table type to a InnoDB table type for bbchat. I am getting errors though:
"Invalid argument supplied for foreach()" in file /var/www/html/magento/social/mod/bottom_bar/chat.php (line 67)
Also, what I have noticed is that after several minutes of a chat conversation the chat session dies. I'm thinking it has something to do with the number of queries within a short time period (max_questions issue). I may be better to use files rather than the database. I have my database very tuned and even with max_questions set to 0 (no limit) the issue persists. Also, this is with a very limited number of users in the system. I believe once there are hundreds or thousands of users hitting this the session issue would become a show stopper with this plugin. I would definately recommend using the file system (open a seperate file handle per conversation) and after each response clear out the file, otherwise it could get very large very fast.
As far as the for_each error...my PHP is very dusty. I believe this issue may be specific to 1.7. I haven't seen anyone running 1.6 mention it.
I have gone through every chat plugin available. Without taking up the entire screen, as a couple of the other chat plugins do, this one is the only one so far that I've been able to make somewhat work. I definately has merit from that standpoint. The for_each error is probably trivial to correct, the session issue may not be as trivial.
Mad Professor: I definately appreciate your time and work on this. I have noticed that Cash seems to have a very tight handle on coding for elgg. You may want to see if he would be willing to give you a hand with or at least take a look at this plugin and offer some advise. (Not meaning to step on your toes, but offer objective advise).
LOL, I forgot... I noticed you are calling functions to play mp3 files. In a Windoze environment this can create an issue with Windoze thinking the user is downloading the mp3 file to play. In my particular case Windoze Media Player pops up every time I get a notification or from the chat. I did turn off the sound in the user end of the plugin, but this is something else you may want to consider changing. Some time ago I played around with sound files and found trhat if I changed the sound file extension to something no other application would want to mess with (i.e., change mp3 to 3pm...) the issue went away.
@MKos - Thanks for the feedback. I've not yet moved to 1.7 to work out the kinks, and again this is still very much a proof of concept release in my eyes at the moment. I will move over to 1.7 and take a look at the conflicting issues when I get 5 minutes to myself. I have tried to include as many options for the back end as possible as not everyone will have the ability to allow their web server to write to the file system.
As for the mp3 issue, it was a quick and dirty hack to get notifications working. I will take a look to see if I can tidy that up when I move to beta :)
hi! I'm having the same problem as Nasim... please let us know when you move to 1.7, so we can use this great plugin!
thanks for your time and effort!
Awesome
Hi all,
I tested this great plugin on Elgg 1.7 and after turning off "Force users to the login page if logged out?" and move to ElggObject Database Type, everything looks great!
Do you suggest to stay on Elgg Object or to move on separate mysql database?
Best regards,
Prokka
The chat messages don't seem to be recieved by the other person in 1.7, I tried to install SQLite but it still says that the extensions aren't found. Any idea on how I can get bottom bar working on 1.7?
dude this is an awesome plugin, this is a must have plugin for any elgg community.
I have the same problem like @jimmy45455! no luck :(
try asking jovan for help
if this chat bar doesn't work for you guys, try setting the database type to ELGG Objects. works fine for me on 1.7.0
hello,
i have the following problem under 1.7.0 - log out is not working 4 times out of 5.
i tried playing with database type and other options under menu but nothing. Are u guys having the same problem? (log out not working?) thx in andvance ;)
i'm having cookies issue when running under ELGG Objects, i get this error:
Bad Request Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit.
Cookie: Elgg=be1f2dcd4bd53ad4d59ea518bb6c6f18; bb_chat_cookie=10622%7CLiZz%7Cvisible; 15620_html=%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eyeahh15620%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eso%20what%20part%20of%20209%20do%20you%20go%20to%3F%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Euhhhh%20the%20one%20with%20the%20two%20story%20forever%2021%20near%20that%20mall%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Etwo%20story%3F%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ewhat%20you%20talkina%20bout%20lol%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eo%20shit%20wait%20209%20is%20tracy!%3F!%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3E209%20consist%20of%20stockton%2C%20lodi%2C%20galt%2C%20tracy%2C%20lathrop%2C%20manteca%2C%20ripon%2C%20modesto%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ehaha%20i%20was%20thinking%20of%20modesto%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eoh%20haha%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eso%20you%20go%20to%20modesto%20for%20what%3F%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eyeahh%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ewith%20who%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eand%20whys%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eumm%20my%20cousins%20live%20in%20modesto%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ei%20go%20with%20my%20other%20cousins%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ejeankay%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ei%20dont%20think%20ima%20go%20there%20this%20weekend.%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eoo%3C%2Fspan%3E%3C%2Fdiv%3E; 15620=so%20what%20part%20of%20209%20do%20you%20go%20to%3F%7C~%7Ctwo%20story%3F%7C~%7Cwhat%20you%20talkina%20bout%20lol%7C~%7C209%20consist%20of%20stockton%2C%20lodi%2C%20galt%2C%20tracy%2C%20lathrop%2C%20manteca%2C%20ripon%2C%20modesto%7C~%7Coh%20haha%7C~%7Cso%20you%20go%20to%20modesto%20for%20what%3F%7C~%7Cwith%20who%7C~%7Cand%20whys%7C~%7Coo%7C~%7Cyou%20should%20come%20to%20stockton%7C~%7Cyou%20should%20come%20to%20stockton%20one%20day%7C~%7Cyou%20there%3F%7C~%7Cjeannn%7C~%7Cso%20what's%20up%3F; 3936=hey%20baby%7C~%7Chey%20baby%7C~%7Csandyyyy%7C~%7Ck%7C~%7Clol%7C~%7Cwhat's%20up%7C~%7Cnaise%7C~%7Clike%20the%20new%20chatbar%3F%7C~%7Cwhat's%20on%20tv%7C~%7Csandy; 3936_html=%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ehey%20baby%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ehey%20baby%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Esandyyyy%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Esandy.%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Eyo%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ek%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Elol%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Ewhat's%20up%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Esandy.%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Enothing%20watching%20tv3936%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Enaise%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class%3D%22chatboxmessagefrom%22%3Ecim%3A%26nbsp%3B%26nbsp%3B%3C%2Fspan%3E%3Cspan%20class%3D%22chatboxmessagecontent%22%3Elike%20the%20new%20chatbar%3F%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22chatboxmessage%22%3E%3Cspan%20class
maybe the cookies aren't getting cleared up in time?
Omar:
In order to get the db working I had to install sqlite and its client. Once I did that I could set the DB settings to ELGG Objects. One other "tweak" was to change the table type of bbchat from MyISAM to InnoDB. One problem I have experienced is after a few minutes of people chatting back and forth the chat session dies. I believe it is related to overloading the database with queries. Also, I've been getting "Invalid argument supplied for foreach()" from line 67 in chat.php. If you're running this on elgg 1.7 or 1.7.1 you'll need to insert the session stuff after each form post... So far this is the only chat client (other than Comet Chat) that I've found to sort of work that doesn't take up the screen or get in the way. One thing that amazes me is that the community hasn't demanded that chat be included in the dist of elgg...
@MKos, very well said, about chat be included in the dist! In other way, I could see there are loads of heads up for different issues, errors, bugs...etc....some are really scary..not sure if it is more important to make the core more effective and bug free, more stable than adding new features!
I would sacrifice some minor(for the time being) features than seeing an admin writing sos coz, she/he found the site blank in the morning! Or gone ashtray after doing really small things..what your opinion?
Thanks