Seriously, you’ve probably heard before that the fastest-growing segment of Facebook users is older women, so it’s quite possible that your mother has an account. Let’s first talk briefly about something you already know. Social networking is popular, right? Who here has a Twitter account (raise your hand)? A Facebook account? LinkedIn? Flickr? Drupal.org? I won’t make the MySpace people reveal themselves…
Parts of a social network – before we go further let’s quickly review the things that make a website a social network.
Now we know that social networking is popular, and we know what a social network is. What about social networks drives people to spend so much time on them? (It’s cool, yo.)
(pause) I hope you’ve already recognized this by now. You need social networking on your website in order for your website to reach its full potential.
Alright. It’s dev time. I know you’re all feeling like that kid right about now.
I’m skipping the Enable Modules page because we already went over which modules we’re using. The next step is to add a vocabulary that we will use to keep track of our #hashtags. Just go to admin/content/taxonomy, click the “Add vocabulary” tab, fill in a title and click “Save.” We’re going to use “Hashtags” as the title of our vocabulary. The other settings don’t matter at all.
The only settings we’re going to change are actually on the Advanced settings page at admin/settings/facebook_status/advanced. I’ve highlighted them in green in this image. Facebook-style Statuses uses Views to create the list of activity in the stream so we’re going to enable AJAX “Refresh” links under the streams. We’re also going to enable the “Convert line breaks” setting which makes line breaks appear correctly, and we’re going to enable the “Hide blank and empty statuses above the textfield” setting. We need to set our Hashtag vocabulary to the one we just created. And finally, we’re going to set the “Reply method” to “Reply in conversation view.” The other option is to reply using @mentions. There are a lot more settings that are worth looking at when you get a chance. In particular, you can use an input format with statuses so you can use BBCode and other markup. In the interest of time though, we’re going to move along.
We’re going to set up a new rule at admin/rules/trigger. It will be triggered when a status is submitted and it will send an email to the recipient of the status if the status was sent from one user to another. This will be like getting an email alert when someone writes on your wall on Facebook.
Now let’s set some points for posting status updates at admin/settings/userpoints. We’ll give 10 points for updating your own status and 12 points for sending someone else a status message.
The “Like” flag is built in to Facebook-style Statuses by default, so we shouldn’t have to change it. However, the Friend flag is disabled by default so we have to enable it.
Although Facebook-style Statuses provides the “Like” flag by default, if you want to use it you have to manually add it to your views. There are detailed instructions in the documentation, but basically you just edit the view, add a Flag relationship, and then you can add a Flag field. Note that you should set the Flag relationship to be valid for “Any user,” not the “Current user,” and make sure to disable the “Include only flagged content” setting.
The Flag Friend module provides an argument we can use to do this. I have a patch in the Flag Friend queue to make this a little more flexible and we’ll actually be using that in this demonstration. But all we need to do here is clone the facebook_status_recent view and add the argument with a default value of the current user.
The only permissions we need to set are “access content” and “access user profiles” from core and then the view, edit, and delete permissions for the Facebook-style Statuses suite.
Alright, let’s be unorthodox. Everyone who has a laptop open or with them, go ahead and go to this address. Create an account and try it out. There’s no confirmation email. Try using #hashtags and @mentions and posting on other users’ profiles. After this session I’m going to open up the administrative permissions so you can go back and play with the views and settings.
What you’ve seen today is the result of over 2 years of development, but it’s just the beginning. Over the summer, the Facebook-style Micropublisher module will be completed through the Google Summer of Code process. I will begin work on FBSS 3, which will abstract streams away from users so that you can attach them to Groups and other places. I will start porting FBSS to Drupal 7. And eventually, once those things are complete, I will build a Social Networking install profile so that all of the things we did today and more will be completely automated in a distribution as easy to install as Drupal itself.
I hope I’ve gotten you excited about Social Networking in Drupal today, and there’s a lot more than I was able to cover in this session. Please feel free to talk to me afterward, and here are some resources you can use to learn more and get involved moving forward. The first is my blog, where I regularly discuss social networking as it relates to Drupal, at isaacsukin.com. You can of course go download the modules used in this presentation and try them out, and contribute patches or assistance in the issue queue if you are able. I created a Feature for the demo site so you should theoretically be able to install the whole thing at once and have your site working exactly like the one I showed you. You can also read the proposal for the Micropublisher project for the Google Summer of Code initiative, join the Social Networking Sites group on groups.drupal.org, and follow me on Twitter for frequent updates on my progress toward making Drupal a better social networking platform.
Alright, now we’re going to open it up for a discussion. Questions, comments, and suggestions are all welcome. (If there are no questions, talk more about how Drupal can get closer to Facebook moving forward: Appbar, BigPipe, Services, individual privacy settings, image galleries, application platform.)
Social Networking in Drupal - Isaac SELF 2010
Social Networkingin DrupalBy Isaac SukinMediacurrent Consultant<br />South East Linux Fest<br />June 13, 2010<br />
Built websites and did social media consulting for the Woodruff Arts Center in Atlanta and the Royal United Services Institute in London
Author of Facebook-style Statuses, Tweet, Shorten URLs, Appbar, and other modules</li></ul>@IceCreamYou | drupal.org/user/201425<br />www.isaacsukin.com/blog<br />
Topics<br /><ul><li>Is Social Networking popular? Why?
What are the fundamental components of a social network?
Why will Social Networking help your site succeed?
Where has Social Networking been used successfully before?
How can I build a social network in Drupal?</li></li></ul><li>Social networking is popular<br />Even with your mother, probably<br />http://startupblog.wordpress.com/<br />2008/10/03/the-best-social-networking-tools/<br />
Facebook’s Popularity<br /><ul><li>More than 400 million active users
People spend over 500 billion minutes per month on Facebook
Average user creates 70 pieces of content each month
More than 25 billion pieces of content shared each month
Most popular website in the U.S.</li></ul>Source: http://www.facebook.com/press/info.php?statistics<br />
Creates value in building additional connections</li></ul>http://mashable.com/2009/12/16/community-engagement/<br />
You need social networking<br />for the bottom line and customer satisfaction<br />http://www.perfectduluthday.com<br />/2006/04/servicing_customers.html<br />
Users Want It<br /><ul><li>1 in 4 Facebook and Twitter users follow/fan a product/brand to join a community
People want to be able to share what they do (not just on your site, but to other social networking sites too)</li></ul>http://www.marketingprofs.com/charts/2010/3501/social-media-consumers-more-likely-to-buy-recommend<br />
Users Will Like You<br /><ul><li>2 of 3 Twitter followers and 1 of 2 Facebook fans are more likely to buy a product from a brand they follow
80% of Twitter followers and 60% of Facebook fans are more likely to recommend a product they follow to friends</li></ul>http://www.marketingprofs.com/charts/2010/3501/social-media-consumers-more-likely-to-buy-recommend<br />
You Like Those Users<br /><ul><li>Younger audience
Game mechanics</li></ul>http://www.radian6.com/blog/2010/03/10-key-engagement-metrics-to-track/<br />
Control<br /><ul><li>77% of social media search results are not controlled by the brand they are about.
People will talk about your brand on social networks. It’s better to have it where you can easily monitor it.
You don’t have to worry about every single negative comment. Just be responsive.</li></ul>http://www.scribd.com/doc/22677572/360i-SearchWhitePaper09-111709<br />
It’s not all about you<br />“If you build a community platform, realize that the goal of that community is to empower your members, and to equip them with added benefits from belonging. Don’t use it as a marketing ground, or a place from which to advertise your products. Use it as a way to inform, to share, to give something back.”<br />http://www.chrisbrogan.com/the-building-blocks-of-social-media-for-business/<br />
Successful social networks in drupal<br />You know, the ones you heard about from your friends<br />http://xkcd.com/125/<br />
Views UI</li></ul>Bolded modules are contributed, non-bolded are from core. Italicized modules are submodules.<br />
The Process<br />Enable Modules<br />Add a #hashtags Vocabulary<br />Configure FBSS suite<br />Configure Rules<br />Configure Userpoints<br />Configure Flag<br />Add Flag to Views<br />Build a “Friends’ Statuses” view<br />Configure Permissions<br />Profit!<br />…and set up menus, and set the front page, and set the date, and set Clean URLs…<br />
Social Networking install profile</li></li></ul><li>Learn More, Get Involved<br />Read more about SN on my blog<br />isaacsukin.com/blog<br />Download the demo site Feature module<br />community.featureservers.org/project/self-social-network<br />Contribute in the issue queue<br />drupal.org/project/issues/facebook_status<br />Read the Micropublisher proposal<br />groups.drupal.org/node/57743<br />Join the Social Networking Sites group<br />groups.drupal.org/social-networking-sites<br />Follow my progress on Twitter<br />@IceCreamYou<br />
Thank you<br />Isaac Sukin<br />@IceCreamYou<br />drupal.org/user/201425<br />isaacsukin.com<br />Slides available from my Twitter feed<br />