Social Networking in Drupal - Isaac SELF 2010


Published on

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

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.)
  • Social Networking in Drupal - Isaac SELF 2010

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