Ultimate activity feed - features, UI

Events happening in the community are now at Drupal community events on www.drupal.org.
sirkitree's picture

I think pretty much anyone looking for this sort of feature for their site comes from knowing how it is implemented on facebook and are looking for something very similar. If that is the case, there are a few main things that we're looking for it to do, how it should look and act from a user's standpoint. But what are your expectations?

Functionally:

  1. Recording - What should this record? How long should it be stored?
  2. Displaying - How should this look to users? How should the administrative UI look for customizing each message? What are your customization needs (things like a checkbox for displaying a user picture, etc.)?
  3. Accessing - this module is typically for social networking sites which (generally) requires some sort of buddy list/friendship/user relationship. Should this be a requirement? What all modules are you using for this functionality?

Please help us by answering these questions so we can work out exactly what is needed for the community.

Comments

A good and hard look at

minesotaa's picture

A good and hard look at social sites like orkut, facebook, bebo etc can be good :) not to clone but to have estimates what users at standard social sites expect.

Recording

Admin
- should be able to determine how old data eg. months / years to be purged
User
- should be able to choose which activity eg. blogging, images, friendship that goes on record
- should also be able to delete any activity ( any line ) by clicking a small x that she/he only sees
The site
- should be able to record nodes, comments, profile or guestbook comments, friendships that took place, organic group activity and events

Displaying

Admin
- admin can already determine the languages
- admin should be able to activate or deactivate user icon ( what size in pixels )
- admin should be able to determine number and pixel size of nodes like images uploaded by user
to be shown in activity
- if multiple nodes like images are uploaded within 10 minutes ( x minutes ) they are shown in the same line
- admin choice to display it as a part of APK ( advanced profile ) and or separate page

User - should be able to display or not her / his user icon

Accessing

User
- should have option to display activity as a whole to herself /himself - friends - freinds of friends - all
- Individual private nodes should not show up in activity list

Recording I definitely think

sirkitree's picture

Recording

I definitely think we should support core modules. This mean that we write the necessary hooks for node, comment, forum, etc. When it comes to other modules, we provide these as examples as well as documentation on how other modules can implement/announce to activity that there is something happening that needs to be recorded (and therefor displayed) by activity.

Displaying I would tend to

sirkitree's picture

Displaying

I would tend to disagree on the outset that there should be some sort of checkbox to enable/disable the picture, however this is such a highly sought after feature that we should definitely consider it when the time comes. But we should put it at a lower priority IMO.

Same goes for configuring images on nodes. That's a large determination because of the field name, what module is being implemented to provide the image, etc. Maybe we can make that part of the required information the implementing module announces to activity.

Agreed with the 'same line' concept for multiple activities of the same type.

As for making it part of APK, I'd really like to keep support and code that we implement to core modules only. If APK then wants to bring activity in, it should be able to display views which is how we should display everything. I don't say this lightly. I've had a similar conversation with Michelle before, and though it is very simple to do, I feel like if we make an exception to the rule "Only implement things that are core." we could run into a huge mess in a very short time with people coming to our issue queue and giving feature requests for any module out there, using the excuse, "Well, you did it for APK, why not this one? it's just a short hook implementation." No offense is meant here, I just want to try to not let things get out of control.

Eh?

michelle's picture

I've been in bed sick for most of the last week so maybe I'm missing something here but I don't recall any conversation about putting something for APK into Activity. That doesn't even make sense... As you said, APK would pull Activity in with views if you make it views enabled.

Are you maybe confusing this with the Panels integration I was working on? If you Views enable it, then that would be moot. Without Views, though, I do think Panels integration is a good thing.

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Sorry

sirkitree's picture

No, I was referring to the recent issue in flag_friend, where, in that case, it makes sense to put a hook implementation into flag_friend for APK. I was just pointing out the concept and making a distinction that in some cases this is okay and in others it may not. As for this case, you are 100% correct in it being a moot point with Views integration, which I also pointed out.

"If APK then wants to bring activity in, it should be able to display views which is how we should display everything."

Sorry for any confusion, get some rest ;)

I see

michelle's picture

Sorry, I am still rather fuzzy. I guess I misunderstood. Yeah, to me, it makes sense for other modules to integrate with Author Pane (which feeds APK & AF) because they are implementing a template preprocess using their APIs. But for Activity, APK pulling in the info via views makes much more sense than Activity doing anything special for APK.

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Just to go over this list a

jaydub's picture

Just to go over this list a bit, I've noted where the current Activity module implements this even if only partially and/or in development code...

Recording

Admin
- should be able to determine how old data eg. months / years to be purged

There is a global setting for how long to keep all activity data around. This could be expanded to allow purge settings for each activity type or for some other criteria.

User
- should be able to choose which activity eg. blogging, images, friendship that goes on record

We have a privacy opt-out that allows a user to exclude themselves from all activity recording. This could be expanded to allow them fine-grained opt-out settings although user-facing options ideally should be kept as simple as possible.

-should also be able to delete any activity ( any line ) by clicking a small x that she/he only sees

This is partially implemented already. Just needs some fixing.

Agree with a few tweaks/additions

RickBullotta's picture

Pretty much agree with the list of minesota's wish list, with a few additions/tweaks

  • There should be a taxonomy/tagging of activity types to facilitate filtering, deletion/purge policies, etc.
  • There should be a prebuilt UI for "user recorded" activities, along with tags
  • There should be a REST-ful or web service-based API for recording of activities from external applications, including a type and tags for the activity
  • There should be a REST-ful API for querying activities
  • Querying of activities should support a date range option with a popup calendar
  • The UI should support configurable "multi-stream" views, with some aggregate of users and/or activity types and/or activity tags as part of the selection criteria, and these should be name-able and persistent. Ideally, these can be "private" and "public" (prebuilt) views of activities

I'm more or less a Drupal noob, so forgive my ignorance on terminology or existing capabilities. I have some fairly specific and interesting use cases that I'm targeting Drupal for, that I'll be happy to share (and contribute code for). Just need to learn PHP. ;-)

Awesome, solid ideas. In

sirkitree's picture

Awesome, solid ideas. In fact during the code sprint this weekend at Chapter 3's offices for the d.o redesign, David Strauss and Josh Koenig are working on a similar project to log activities remotely based on some of the Open Social standards and implements some of these REST-ful services. I'm working with them a little bit sharing ideas this weekend so I hope to report back with some good news. Thanks for writing some of these ideas out for us to keep in mind.

Cool. Can you help me

RickBullotta's picture

Cool. Can you help me understand the status of the current work? Is there a tagging and/or type concept implemented for Activity nodes? Again, forgive my noob-i-ness.

.

icecreamyou's picture

IMHO user pictures can be implemented as tokens...

As far as the activity feed assuming Views is used admin can make their own feed that way if they want it and put it on the APK panel if they want to.

...........

minesotaa's picture

Hi! Thanks a zillion for the discussions.

Same goes for configuring images on nodes.

Not images on nodes but images as nodes, that is, where the node content type = image
Almost all available album modules use Image for gif jpg png images

Usually what is happening in a social net these days, the site feed shows the thumbnails of the images uploaded by the user. If 'n' of images are upload in 'n' minutes they may be shown in a single row ( the admin determines pixel size and how many in a row and the values of n )

Provided the images are public they are shown to all, else they are shown as Friend ABC has uploaded these images [ thubnail x] [ thubnail y] [ thubnail z]

RE: images

sirkitree's picture

I see what you mean, however, if we're planning on displaying everything through Views (and we are so far), this will be configurable to an admin through the Views2 UI by just adding in the field there for your display. So this wouldn't really be 'part' of our module, but definitely will be part of the specification and definitely possible.

I'm really leaning towards making activity more of just a recorder and supplying enough views handlers that anything will be possible for display.

Thanks for all of the feedback thus far!

This will be OK when the

jaydub's picture

This will be OK when the image module is being used but I think that what you are seeing more and more is the use of imagefield for images in the context of more complex node types. I'd say that there are probably as many Drupal image gallery modules that use imagefield as use image module for the gallery images.

That's not to say that we shouldn't attempt to do this, just that I think it's going to be a challenge to know when images are uploaded as essentially image-based nodes vs cases where images might be a part of a node but the node is not primarily an image-related content type.

Social Networking Sites

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week