Overview
The StoryFeed view can be added to profiles, groups, events (with next Event module update) or any entity that supports an ID in the URL (for example, a custom 3rd party module like a poker league)
Modules can then publish user events to this feed which appear in the CreatedBy Users feed and show up on their friends feed. This functionality was based on Facebook's story feed.
Setting up the Profile Feed
On PokerDIY there are 2 profile pages - one is a "Dashboard" for logged on users where they can maintain their profile (add friends, edit profile etc) and the othere is a public profile page that receives a UserID and shows that profile (Profile Activity - Bottom Right).
In this example we'll deal with the latter as everyone can see it. If you wish to see the Logged On Profile page you will need to create an account on PokerDIY.
Add a StoryFeed view to the profile page. Configure the core Module Settings depending on who can see the activity and your site requirements.
- StoryFeed Integration Type - UserProfile (this should not be changed once set and stories are published)
- Retrieval Type - This page takes in a UserID so we set this to "Passed-In"
- Filter Stories By - This setting determines what is shown in the context of the Passed-In or Logged-On user (Passed-In in this case). We want to show only the actions of THIS (Passed-In) user, not all their friends).
- Who can See - This functions similarily to the Wall - Anyone can see this module but possibly on your site you restrict it to Friends only
- StoryFeed Template - There is a Header, Item and Footer template that can be used to control that layout of the StoryFeed according to your site. Only HTML can be put in the Header and Footer but there are a number of tokens that can be used in the Item Template.
Note: It is important to understand how the StoryFeed and modules interact with each other. It is a disconnected architecture. For example, lets say the Ventrian News Article module was publishing an event each time a user created a News Article. In this case, the Ventrian NA is the Calling Module and the Smart-Thinker UserProfile is the receiving module.
The Receiving Module is responsible for displaying the storys and to who the stories are displayed. Once the stories are in the feed it does not change them, style them or manipulate them - it merely checks who is viewing the story and if they can see it based on the module settings (ie. are they a friend of the person who created the story or did they create it themselves).
The Calling Module determines when and what is published and fires an update to the StoryFeed module. That is the only communication the module has - it is not linked to that story from then on. Once it has been sent the action text cannot be changed and is stored in the UserProfile module. Any changes to the Calling Module language strings will not affect published feeds.
Another example would be the Smart-Thinker Groups module. Although it is in the same product suite it is treated as a 3rd party Calling Module by the StoryFeed. When you join or leave a group an action is published for that GroupID and UserID. It did not make sense to publish Private Group actions as the StoryFeed module is incapable of using business logic to determine who could see a story action. Therefore the groups module does not publish events for private groups.
Setting up a Group/Other Feed
You can also add the StoryFeed module to a group/event/other entity to show stories relating to that item. For example, on this demo group you can see who has created the group, who has joined/left (and when) and who has written on the group wall. Add the feed as above and set the type and other settings to achieve this.
Punching-In with a StoryFeed action
The action text configuration is entirely configurable/localizable and up to the implementor depending on their site requirements/business. They ship as very basic strings (for example, when you update your profile pics the language string is
“[User:DisplayName] updated their profile pic.”
On PokerDIY this has been changed to make the DisplayName link through to their profile (the same can be applied to the Group etc). This is all stored in the language string (check which view is publishing the event and check the Calling Modules resx files (for example, this is published on the Profile Edit page (UserProfile.ascx.resx). Every site will have a different profile URL so this is stored in the string.
“<a title="View [User:DisplayName]'s Profile" href="http://www.pokerdiy.com/poker-player-profile/id/[User:UserID].aspx">[User:DisplayName]</a> updated their profile pic.<p/><img alt="[User:DisplayName]" src="http://www.pokerdiy.com/DesktopModules/Smart-Thinker%20-%20UserProfile/Profile.ashx?id=[User:UserID]&w=25" class="profilethumb" />”