Hello there. I am the maintainer of Facebook-style Statuses, a module which is comparable in purpose to the Shout submodule of Heartbeat.
A few days ago after a year of development I released Facebook-style Statuses 1.0. It is very stable and has a lot more features than Shout does, but as it is the product of a long development cycle, it has some code that I would like to clean up, and there are still a few more features (mostly related to integration with other modules) that I'd like to add. I'm planning to do this in a 2.x branch.
Because Facebook-style Statuses and Shout are so similar, I would like to propose that the modules be merged. This would allow the Heartbeat developers to focus more on the core purpose of the module, while Drupal users in general would be less confused, and would not have to download all of Heartbeat if all they wanted was the Shout module. It makes the most since to continue using the Facebook-style Statuses namespace for the project, not just because it is an independent module, but because it has more recognition as such and had almost five times more users than the entire Heartbeat module according to d.o usage statistics on February 22 (the last time those stats were updated, and before the Facebook-style Statuses 1.0 release).
In general, the Drupal Way promotes collaboration as the path to success, and I'd like to think that would be useful in this case. I'm particularly interested in the AJAX-based status submission that Shout uses, because I don't know enough JavaScript to write that myself. It would be greatly appreciated if the Heartbeat maintainers would retire the Shout module and instead assist with efforts to make a more powerful Facebook-style Statuses 2.x.
Thanks!
| Comment | File | Size | Author |
|---|---|---|---|
| #41 | fbss_staus_message.txt | 704 bytes | Canine Coaches |
Comments
Comment #1
igorik commented+1, I would love to see Heartbeat and Facebook style statuses working together. I believe that Heartbeat maintainer will be think same way.
As far I know, Heartbeat support friendlist integration, so Facebook style statuses could start with supporting this nice module too. ;-)
Igorik
http://www.somvprahe.sk
Comment #2
mr.andrey commentedInteresting proposal... I love heartbeat's integration with Rules. Shouts module is a real gem if it's set up right. Teamwork and more active development sounds great.
Subscribing...
Best,
Andrey.
Comment #3
icecreamyou commentedThere is nothing the Shout module does that the Facebook-style Statuses module does not or at least cannot do in the 2.x branch, which is now almost complete. (Unless I missed something looking through the Shout code, that is.) I wish that this issue could get the attention of the Heartbeat maintainer(s) so that they could get in any requests or comments before a stable FBSS release...
Comment #4
pribeh commentedYo, I love the method in which this module implements activity tracking but the facebook_status module is far superior to the shout-box submodule in every way. I'll make a vote here to support some sort of integration between heartbeat and fb_status.
Comment #5
Stalski commentedThis week, I will look into that, but collaboration seems ok.
The only problem for the moment, is that shouts are used in two ways: What are you doing functionality and otherwise the comment attachments on a per streamed message basis.
I will think about this and let you know.
Sorry for the late answer.
Stalski
Comment #6
icecreamyou commentedI haven't added commenting on statuses to FBSS primarily because I didn't want to interfere with the Activity comment system. (Activity 2.x does not [yet] have commenting on actions.) However, as I'm thinking about it right now, I don't really see a problem with adding a fallback comment system as long as it's Views-compatible. I won't be able to write it until after the next FBSS RC because I have quite a lot to deal with on that one and I've been very busy lately; so if anyone has a chance, a patch would be great. Presumably the patch would create a sub-module for FBSS so honestly I don't really care if whoever works on this just attaches the tarball/zip (of the submodule) instead of a patch. Otherwise I will try to get to it in a few weeks and then we can move forward with writing an upgrade script.
Comment #7
Stalski commentedok
Comment #9
michelleIt's ironic... I was so happy when Morbus needed comments on activity and made that sub module for them. And now I'm wishing he hadn't because comments on statuses are soooo much more important than comments on activity and now that's holding them back. :(
Michelle
Comment #10
Stalski commentedi don't follow completely i think. Can you explain what should be done? Comments on statuses of course is more relation status problem. On the other hand with shouts enabled, you could create a shout heartbeat message with a reply attachment so commenting on a shout (twitter alike activity) is possible.
Comment #11
icecreamyou commentedI think what you're saying is that Shout just offers a Trigger to Heartbeat, and Heartbeat takes care of storing the message and allowing replies/comments -- is that correct? In this case I think that comments are not a barrier to any upgrade path from Shout to FBSS because FBSS should still allow Heartbeat to maintain the replies/comments.
Either way, I won't be able to write an upgrade path for quite some time as I'm completely overwhelmed with other things at the moment, and it seems like any upgrade path would require delving a bit deeper into each others' modules than either of us have done so far.
Comment #12
Stalski commentedI guess that is completely correct and i have planned to take your module as well as user relations (as an alternative to friendlist) with the next release.
For the moment, all requests from our clients heartbeat can deal with ... but i am a bit overwhelmed as well. We will have too make time after the hours after the hours :)
Comment #13
icecreamyou commentedCool, sounds good. I hang around in #drupal on IRC when I can, so if you happen to find time to work on something, ping me and I'll see if there's anything I can do--and I'll let you know if I start anything as well.
Comment #14
translector commentedsubscribing
Comment #15
icecreamyou commentedUp until now I've been using Activity 2 instead of Heartbeat, but some of its fundamental design decisions do not play particularly nicely with FBSS 2.x, so I'm looking at using Heartbeat instead. However, FBSS' integration with Rules is currently mostly broken -- and that's the only thing holding it back from a full 2.0 release. I've kind of hit a wall with that, so any help would be appreciated. Once that gets resolved, I will look into how smoothly Heartbeat and FBSS play together, and hopefully I can look into write an upgrade path from Shout to FBSS after that.
Comment #16
icecreamyou commentedI've resolved the Rules integration in FBSS, and released 2.0. I'm still short on time so I don't know when I'll get a chance to work on this but it's still on the agenda.
Comment #17
Stalski commentedHey,
Great work.
Well i have a problem with deleting shouts in fact.
1/ People are using it
2/ I really must have the option to have a "shout" box of what are you doing box ABOVE each stream. In the best format, this would be an option : "prepend the stream with a form to shout ..."
Can your module provide such an option or should i try to create a submodule for facebook_status and try to load your form myself above a stream? Preferrably this would display within the same html container and not in another block. Ajax driven posts should prepend the stream imediately for instance ...
I have a testcase site and i will try it out myself there first.
Comment #18
icecreamyou commented1) All I can really say to that is that I will ensure there is a complete and functional upgrade path. Also, Heartbeat has 250 users compared to FBSS' 1350 according to d.o, and it's likely that not all the Heartbeat users also use Shout. To me, the extent of FBSS' flexibility and features is enough to switch in a heartbeat (if you'll excuse the pun) as long as there's an upgrade path.
2) FBSS does that -- see the demo site for an example.
Comment #19
Stalski commentedWell, as long as fbss has a form with a hook on the save action, it can be logged into heartbeat. I 'll create a submodule for it.
enabling it (dependent on fbss) will show a form (by fbss default) or by the submodule to create a form above the heartbeat stream.
the save action would then have to do an ajax call to prepend the new message. I hope it will be easy to implement with the "poll for newer messages" functionality. If all works fine, i can drop shouts.
Comment #20
icecreamyou commentedFBSS should already integrate with heartbeat -- no need to write anything new. The main question here, I think, is an upgrade path.
Also, FBSS already contains the logic for both a form above the stream of statuses/shouts and auto-refreshing the list when a new status/shout is added.
Comment #21
icecreamyou commentedI just tested Heartbeat and I'm now very confused. I don't see any shout form anywhere, and I browsed through the code and it looks like it's never called. I can't look at any View because I don't have Devel installed (call to undefined function dsm()).
Anyway, the point is that FBSS integrates fully with Rules, so I expected Heartbeat to just respond to that. Evidently life is more complicated. Heartbeat has quite a bit more complexity involved in the setup than I anticipated, most of which seems ambiguous to me and not necessarily relevant to non-node structures (even though I can see that user-related activity can be logged as well).
So I'm pretty lost about how to proceed from here. I would appreciate if you (Stalski) could take a look at FBSS, because I don't understand how Heartbeat works at this point.
Comment #22
Stalski commentedYou have nothing to worry about. I think you totally missing the point here. Heartbeat is not the same purpose as fbss. Heartbeat just logs triggered actions and displays the logs in a clever way. Newer messages can NOT be done as a views refresh like you do for your stream. Heartbeat comes with a poller for newer messages, that is ajax driven. A completely other purpose. What i certainly dont want, is to refresh the whole view.
fbss just has rules events and heartbeat has rules actions to perform on it. So this works like a charm for me. This way a fbss will be logged into your tables and heartbeat tables. That's it. Nothing more, nothing less.
shouts is gone in heartbeat and will be replaced with fbss form if users want to. So what you are saying is that implementers dont have to do anything. They see a form to type their status and see beneath the heartbeat stream with all the sites's activity. This already works locally without any diffuculties. People just choose if they want a stream of fbss or one with the heartbeat site activity.
When i setup heartbeat, i just have to configure a stream, place the block and it works. I dont know what goes wrong with your installation. Sorry for the dsm, thought that was long fixed by now. Which version are you working on?
I wont say anything more about this. I am hoping you could just wait a little longer and i will show you how it works at heartbeat.menhir.be.
I promise you it will be working at the end of next weekend.
This will include:
- New release of heartbeat (after code freeze)
- implementation module for heartbeat with all the neat functionalities and possibilities (rebuilding and retheming messages, logging by rules and logging by api function, configuration on grouping, ...)
- heartbeat demo site with several streams
- heartbeat fbss integration by putting a form above a heartbeat stream.
I will keep you updated, promised. I am working a lot on the demosite this week, so it will be clear to you.
If you want to talk to me , i am on skype with nick "eyefordesign".
Thx
Comment #23
icecreamyou commentedThat clears a lot of things up for me actually. I've also played around more with Heartbeat and I have a better understanding of how it works now. Thanks so much for working on this! I'm glad it's working. I will look forward to the new version and checking out the demo. :D
(I was using 4.3-beta1 when I encountered the dsm().)
I don't have skype or use instant messaging except IRC really -- my nick is IceCreamYou and I hang out in #drupal relatively regularly.
Cheers!
Comment #24
icecreamyou commentedWhat is the status of this? #22 seems to suggest that the current version of the module works smoothly with FBSS, which I believe is true although I haven't tested it recently and the demo site isn't using FBSS, However, a quick look at the Heartbeat repository reveals that the Shout module is still a part of the package, so what are the plans looking forward?
Comment #25
Stalski commentedalmost there , and in the demo site as well.
The demo site is about to change a lot.
Comment #26
Stalski commentedshouts is needed for sites that are still using it and want to upgrade.
Besides i dont think you can compare the two a lot. Shouts is a form-only module that can post in the heartbeat stream.
Facebook_status is a module that provides a lot more functionality to a community feature in a bigger (site) whole. For instance on our site we are going to use shouts because we only want a possibility for administrators to post immediately in the stream (in stead of creating a node) . performance reasons only.
So Both will be possible but i think that will depend more on what is demanded.
I can say for sure i used them now both in other sites, so it depends ... + I feel (see issues: where is the shout form etc ...) i need to provide backward compatibility. And FYI i will even suggest facebook status on the project page for that). You will see in the issues that i already answered that way ;)
regards,
Stalski
Comment #27
icecreamyou commentedOkay, sounds reasonable to me. Is this task "fixed" then?
Comment #28
Stalski commentedWell i consider it fixed when i provide some (example based) information and documentation.
Comment #29
Canine Coaches commentedHi, I don't mean to bug you about tihs issue, but I was wondering if this is working now (fbss/heartbeat integration). If it is should I use the 6.x-4.5 or the dev. version? I also want to use user relationships and was wondering if that integration has been added. I am looking to install this on a test site, so if the dev. version will not "break" everything I will be happy to test it and report back. If you could let me know about the fbss and ur integration and anything else you would like tested I will try it out. I have a couple test sites with alot of modules and different themes.
Chris
Comment #30
Stalski commentedI did not have time to put an example on the demo site , but is usable indeed. You can put your fbss block above the stream block (or page) and then call pollfornewermessage js after a fbss post is done. I don't know for sure if this exists in the fbss module, but it should. Shouts submodule does it like that as well.
So Yes, fbss is usable already.
Secondly, the user relationships module is integrated partly now in friendlist_activity module. You can choose your "friend API" yourself in the administration.
You can use the stable version 4.5 , dev should work too. The demo site runs always on the dev version (and in this case == NOW, that is almost the same as the 4.5).
TODO:
- create an example of fbss at the demosite and provide this example module as download
- Fix a small bug in user relationships integration to fetch "your friends"
- Add flag_friend module integration in the friendlist_activity module.
This is the current status.
Stalski
Comment #31
Canine Coaches commentedHi,
Thank you for you fast and detailed response. I apologize for the follow up, but I am a very novice developer (more a site builder) and I do not know where to put this:
and then call pollfornewermessage js after a fbss post is done.
If you don't mind providing some basic location/instructions I will figure it out. I will contact the fbss maintainer as well about hits. I am wondering if you have tested module with apk (advanced profile kit). I am using these modules together and it just crashed. I will post this as a bug report. Thank you for your assistance.
Chris
I can not find an issue queue for heartbeat so I will post this here. I hope you don't mind.
I am using apk with ctools 1.3 and panels 3.3. I believe this is an apk issue, possibly to do with fbss (facebook style statuses) and or heartbeat (dev. version 4). I was creating profile page using default and editing. I uploaded the basic-stats profile fields and had everything working. I added heartbeat and fbss to the page and everything else (all other panes) disappeared. I went back to edit the panel all other content was missing. Now when I try to add profile category (basic, stats) there is no list of categories.
I now get this message when I try to view "my account":
Google Chrome:
This webpage has a redirect loop.
The webpage at http://*****.com/crm/users/admin has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
Here are some suggestions:
Reload this web page later.
Learn more about this problem.
More information on this error
IE8: after 60+ seconds no error no page load.
I don't see why heartbeat would not work in apk, and I am pretty sure fbss does. If you know of any issues with compatibility please let me know. I will uninstall start over with stable heartbeat version and post back. Thank you for the great modules and I appreciate any information you can provide.
Comment #32
icecreamyou commentedI'm following this thread -- no need for a separate issue -- but I have no idea what pollfornewermessage is. Until now I have been assured several times that FBSS works perfectly well with Heartbeat.
Also, reading back over this thread I ran into a paragraph I must have missed before:
This is not correct. While FBSS is indeed designed to be much more flexible than Shout, it does not use nodes for the same reasons of performance. It is designed for users to post immediately into their stream just like Shout, and the end-user UI is almost entirely a single textarea for that purpose. In addition, from the same post:
Backwards compatibility would be provided via a module that would upgrade users from Shout to FBSS.
Setting the status back to "active" for now because I think this needs more discussion.
Comment #33
Canine Coaches commentedThanks for your response. I will not open issue in fbss. Do you know of any compatibility issues with apk/ctools/panels/fbss? I think the issue (#31) is with the dev heartbeat or apk, but I thought I would check. Thanks
Chris
Comment #34
icecreamyou commentedFBSS is not related to your problem in #31.
Also, I thought I'd mention that there is now a Facebook-style Statuses Comments project that supports comments on statuses. From what I understand of the Heartbeat comment system, I don't think this affects anything, but I thought I'd put it out there anyway.
Comment #35
Stalski commentedThis will clear things out.
First of all, shouts is still supported, people do with it what they want. As i said before, on production community sites, facebook status module will be more flexible to custom needs. I didn't remove it, because 1) i like it and 2) some issues came up for people wanting to have the form back AND where i did a proposition to use fbss. There 's nothing more to it than that.
@icescreamyou One thing i promised you, is a testcase on the demo site with fbss. I am doing that just now. On the url http://heartbeat.menhireffect.be/page/about-demo, you can see the facebook status form. I invoked a rule to log user activity. The rules export is beneath.
Then the matter of pollfornewermessages. My mistake to not yet explain this, but here is a brief version of it.
You can configure a heartbeat stream so it is rather static, or it appends messages on top of the stream (polling for newer messages). It polls / looks for messages each X seconds, which you can configure. This is done by javascript ofcourse.
On the demo site, i set the polling at 1 minute. Log in with mickey mouse with password test. You could try donald duck as well.
When shouts are posted, the afterEffect in javascript calls a method Drupal.heartbeat.pollMessages() . You can see this for Site activity posted with shouts.
So if you try out a facebook_status message, you will see it appear in the heartbeat stream beneath witthin the minute. The url for public activity for FBSS!
I saw the form for fbss is driven by #ahah, which i did not do because of known reasons. So here the problem is that i cannot hook into the result by ahah, being the repopulation of the status div.
@icecreamyou Maybe we'll have to look for a sollution on this.
@Canine Coaches The profile module you talked about, i never used yet. I will certainly look into that.
Good night ;)
Stalski
Comment #36
icecreamyou commentedAlright, well -- although I insist that FBSS can do anything and everything Shout can do, including look nearly identical -- if you want to keep the module there's nothing I can do about it.
The only thing I can think of to do about calling Drupal.heartbeat.pollMessages() immediately after a status is submitted is to use the global .ajaxSuccess() event and just checking whether it occurred on
#facebook-status-box .ahah-processedelements. However, that's not at all necessary, since FBSS provides its own method of automatically updating a View on status submission (all FBSS forms [including the one in the Facebook-style Statuses block in the dev build] have an associated setting to use an auto-updating View with them). The Heartbeat periodic polling method should be completely compatible with this.In sum, I think this issue is probably ready to be marked fixed as soon as there is some kind of documentation about the integration. :)
Comment #37
Stalski commentedThe suggestion you gave to use ajaxSuccess is up to the people implementing it. I cannot provide a heartbeat submodule with only a dirty hack of 3 lines of javascript to hook into the ahah-after-effect behavior. This something that can be done customly. What i hoped is to see some flag-alike javascript so afterStatusUpdate would exists. #ahah is not that flexible as you might know.
What you said about updating a view is exactly my point. Heartbeat can be rendered as views, but they are not as nice as the heartbeat blocks. So this is not an option. Check the issue queue where i explain the difference and expecially the benefits of using views or not.
What you need to understand is that i don't need to provide integration. You enable heartbeat, enable fbss , set the blocks where you want and that's that. Nothing more. It took me the full 5 minutes to enable fbss on demosite and deploy it online. So integration is done, no discussion about that.
This issue is fixed what so ever because i could demonstrate the working of it. Next to the fbss block on the demosite, i will provide some lines of documentation and even the rules export, so people can use it.
Comment #38
icecreamyou commentedI am aware of everything you mentioned, and I have just as many reasons for doing things the way I've done them in FBSS as I'm sure you have for doing things the way you've done them in Heartbeat and Shout. It's enough for me that FBSS and Heartbeat work together to the extent that they're working on your demo site. I appreciate your cooperation in making sure we got to that point.
Comment #39
Stalski commentedGreat ;)
So what we can do , is provide a link on each others project page to say it works. Maybe less questions about integration would come then. (and for commercial reasons ;) )
I will also provide the ajaxSuccess method at the demo site, if i can get it working (to make a status pop in the heartbeat)
thx dude,
Stalski
Comment #40
Canine Coaches commented@stalski I don't know what the problem was with the advanced profile kit. I am using the dev. version of heartbeat again and no problem (must be user error). The profile kit is easy way to use panels to make a profile page (pre configured). It is worth checking out if you need such a module. I am not sure if heartbeat functions correct with panels, but I really don't know too much about it.
I've imported your rule (#35) and created a message. I "applied" the message to the rule, and I still don't get it working. I get "!username" as th status. I have been experimenting with this and reading documentation. I was wondering if you do work for hire. I have small budget, but you seem to do this very quickly. If so, can you provide estimate to create heartbeat stream as on demo site (fbss, video, images, etc.). Also theming with flags for reactions. I will work on this for another day or two, but I have much else to work on. If I can not get it or the price is reasonable I may just have you do it.
Would you be willing to export your rules and messages if I can figure this out myself. Maybe if I can figure it out I can provide very detailed documentation for you and answer any questions from other users I could. This may save you more time and may benefit everyone in the community, including You?
Please contact me on contact form if any of this is a possibility. Thank you.
Chris
Comment #41
Canine Coaches commentedHere is the exported message I created for fbss
Chris
Comment #42
icecreamyou commented@Stalski I have added Heartbeat to the list of integrated modules on both the project page and in the documentation.
Comment #43
Stalski commentedHey,
I uploaded the custom module that comes with the demo site as well as the rules export. The example module within heartbeat is also enabled. Every submodule is enabled. http://heartbeat.menhireffect.be/page/downloads
@Chris, i will send you a mail as well. I don't know what the problem you had could be. I will create a screencast later on as well.
@IceCreamYou I did that as well on the documentation and project page.
Greetz
Comment #44
Stalski commentedComment #45
icecreamyou commented@Stalski, will you change the link text to
Facebook-style Statuses? There is another, unrelated module named Facebook status and it would be better for users not to get confused. Thanks.Comment #46
Stalski commentedNo problem
Comment #49
js commentedHi @stalski
Please point me to how you are refreshing your stream after a FBSS message on
http://heartbeat.menhireffect.be/page/about-demo
(I have been all over the site and downloaded everything I can and must have missed it. I also can't see it in the site's javascript, but I am not sure what I am looking for. I have searched for the use of ajaxSuccess and for something like Drupal.heartbeat.Shouts.afterShout for FBSS and missed it.)
Also, have you any thoughts on integrating Facebook-style Micropublisher
http://drupal.org/project/fbsmp
Would I store the FBSS 'sid' as a variable to be referenced to lookup the FBSMP entry when displaying the FBSS status in the Heartbeat activity stream?
Thanks, Jerry
Comment #51
Stalski commentedThere are issues in this queue that explain it.