Social Networking in Drupal - Isaac SELF 2010

Uploaded on


More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • 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? 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 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, 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.)


  • 1. Social Networkingin DrupalBy Isaac SukinMediacurrent Consultant
    South East Linux Fest
    June 13, 2010
  • 2. About Me
    • Intern at Mediacurrent
    • 3. Attending UPenn (Wharton) undergrad next year
    • 4. 3 years of Drupal experience
    • 5. Built websites and did social media consulting for the Woodruff Arts Center in Atlanta and the Royal United Services Institute in London
    • 6. Author of Facebook-style Statuses, Tweet, Shorten URLs, Appbar, and other modules
    @IceCreamYou |
  • 7. Topics
    • Is Social Networking popular? Why?
    • 8. What are the fundamental components of a social network?
    • 9. Why will Social Networking help your site succeed?
    • 10. Where has Social Networking been used successfully before?
    • 11. How can I build a social network in Drupal?
  • Social networking is popular
    Even with your mother, probably
  • 12. Facebook’s Popularity
    • More than 400 million active users
    • 13. People spend over 500 billion minutes per month on Facebook
    • 14. Average user creates 70 pieces of content each month
    • 15. More than 25 billion pieces of content shared each month
    • 16. Most popular website in the U.S.
  • 17. Top 20 U.S. Websites
  • 30. components
    of a social network
  • 31. The “Social” Component
    • Content sharing
    • 32. Share content with friends (get attention)
    • 33. See friends’ shared content (give attention)
    • 34. Types of shared content
    • 35. Status updates
    • 36. Blog posts
    • 37. Forums
    • 38. Pictures
    • 39. Videos
  • The “Network” Component
    • Friends and collaborators
    • 40. May be existing (real-world) or discovered
    • 41. People you like and want to interact with
    • 42. People whose attention you want
  • 43. Types of Social Networks
  • Why social networking is popular
    (because it’s cool, yo.)
  • 57. Low Entry Barrier
    • Short content
    • 58. Low effect (small audience at first)
    • 59. Instant feedback
    • 60. Easy to use
  • 61. Encourages Power Users
    • Effort and attitude (i.e. more, better content) are rewarded with larger audiences
    • 62. Larger audiences = more discussion/sharing
    • 63. More discussion and sharing = influence
    • 64. Allows self-promotion
  • 65. Builds Connections
    • Personal
    • 66. Business
    • 67. Creates a stake in the website
    • 68. Creates value in building additional connections
  • 69. You need social networking
    for the bottom line and customer satisfaction
  • 70. Users Want It
    • 1 in 4 Facebook and Twitter users follow/fan a product/brand to join a community
    • 71. People want to be able to share what they do (not just on your site, but to other social networking sites too)
  • 72. Users Will Like You
    • 2 of 3 Twitter followers and 1 of 2 Facebook fans are more likely to buy a product from a brand they follow
    • 73. 80% of Twitter followers and 60% of Facebook fans are more likely to recommend a product they follow to friends
  • 74. You Like Those Users
  • 77. Engagement
    • Social content increases engagement metrics: comments, commenters, time on site, sharing, spinoff content
    • 78. Social is fun
    • 79. Game mechanics
  • 80. Control
    • 77% of social media search results are not controlled by the brand they are about.
    • 81. People will talk about your brand on social networks. It’s better to have it where you can easily monitor it.
    • 82. You don’t have to worry about every single negative comment. Just be responsive.
  • 83. It’s not all about you
    “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.”
  • 84. Successful social networks in drupal
    You know, the ones you heard about from your friends
  • 85.
  • 86. Building a social network in drupal
    It’s dev time
  • 87. What We’re Building
    • A standalone social network
    • 88. A cross between Twitter and Facebook
    • 89. Features:
    • 90. A simple AJAX publisher with limited characters
    • 91. A stream with status updates, images, links
    • 92. Friends
    • 93. Activity can be “liked” and easily RT’d
    • 94. Status updates can include #hashtags and @mentions
    • 95. Users can post in other users’ streams and view threaded conversations
    • 96. Users can comment on activity
    • 97. Users receive an email when someone writes on their profile
    • 98. Users get points for creating content
  • Modules
    Bolded modules are contributed, non-bolded are from core. Italicized modules are submodules.
  • 115. The Process
    Enable Modules
    Add a #hashtags Vocabulary
    Configure FBSS suite
    Configure Rules
    Configure Userpoints
    Configure Flag
    Add Flag to Views
    Build a “Friends’ Statuses” view
    Configure Permissions
    …and set up menus, and set the front page, and set the date, and set Clean URLs…
  • 116. Add a #hashtags Vocabulary
  • 117. Configure the FBSS suite
  • 118. Configure Rules
  • 119. Configure Userpoints
  • 120. Configure Flag
  • 121. Set up Flag to work with Views
  • 122. Create a “Friends’ Activity” View
  • 123. Configure Permissions
  • 124. Test! Profit! Fun!
  • 125. The Future
    • Complete FBSMP
    • 126. Abstraction away from users
    • 127. Port to 7.x
    • 128. Social Networking install profile
  • Learn More, Get Involved
    Read more about SN on my blog
    Download the demo site Feature module
    Contribute in the issue queue
    Read the Micropublisher proposal
    Join the Social Networking Sites group
    Follow my progress on Twitter
  • 129. Thank you
    Isaac Sukin
    Slides available from my Twitter feed