Moderating Content in Drupal
Ashok ModiAugust 6, 2010
Introduction (BTMash)• Systems Programmer• Work for California Institute of the Arts• Worked for zinc Roe Design; create web sites (and games) aimed
at youth.• Working with Drupal since 2006 (Drupal 4.6.x)• Help with patches and upgrades of contrib modules on Drupal.org
• Abuse• Data• Decisions• Favorites• Flag Content• Fivestar• Nice Menus• Simplenews• Userpoints• Userpoints Badges• More info and details at http://drupal.org/user/60422
• Canadian (yes, we too have unruly content creators!)
About the presentation• Sharing most of my own experiences.
• Likely haven’t seen some solutions that are out there.
• How about a BOF?
• Let’s share ideas!• Everyone will benefit.
• Say your question!• Everyone should come out a winner
• Slides will be added online.
Reason for Moderation?• Content from ‘uncontrolled’ users
• Anonymous• Deal with spam!
• Registered (registration and content creation open to everyone)• Deal with spam.• Deal with ‘bad’ content.• Cyber Bullying• Trolling• Site gangs
• Dealt with the above when working on the Zimmer Twins (http://www.zimmertwins.com)
• Content from ‘controlled’ users (closed registration with fixed and/or fixed content creation team)• People/staff you know/work with.
• Inaccurate Content• Stale Information• Poorly written• and the list goes on!
• Deal with this currently.
Anonymous users• Posted by ‘users’ that allow anonymous posting.• Posted by ‘users’ that can register via weakly protected
registration forms.• What does Drupal offer out of the box?
• Not all that much :/• Spam bots get smarter and smarter (relatively easy
to defeat• Un-publish anonymous content until a content editor
can look at the content and then mark it for submission.• May be difficult if dealing with a site is a very large amount
of anonymous content.• Require submitting comments to be previewed (takes
care of a large chunk of spam by splitting a form into multiple pages)
• Use really strict filters for anonymous content.
Dealing with anonymous users (contrib)
• Captcha (http://drupal.org/project/captcha)• Provide users with a question they must respond to try
and validate them as a human being.• Many plug-ins available from project page• ReCaptcha (http://drupal.org/project/recaptcha)• Captcha Pack
(http://drupal.org/project/captcha_pack)• Captcha Riddler
(http://drupal.org/project/riddler)• Spam (http://drupal.org/project/spam)
• Can block spammer urls and IP addresses, detect repeat postings, check for bad content via custom filters.
• Use a combination of spam + captcha to rule out most spam comments, contact notifications, anonymous content postings.
Dealing with anonymous users (contrib)
• Use 3rd party services from contrib.• Antispam (http://drupal.org/project/antispam)
• Validate content against services offered by Akismet, Defensio, or TypePad Antispam where content sent to their servers
• Comes with a antispam helper module which adds a user role which would allow a user to continue
• No Supplemental captchas• More information at http://www.pixture.com/drupal/node/76
• Mollom• Similar to antispam but only works with Mollom
servers.• Only display a captcha to user if it believes the
content to be spam and user not human.
Dealing with anonymous users (contrib)
• Views Bulk Operations (http://drupal.org/project/vbo)• Create views of various types of content (whatever
views supports)• Provides operations for content (similar to the content
list edit page, but much more useful since it uses views).
• Can update multiple content at once.• Used on Drupal.org• We will be using it to manage our photo archives.
Registered users• Slightly different issue• Can post spam via spam bots.• Can also spam by hand (children in particular
can be VERY persistent)• Worry about quality of content (inappropriate
content can be a huge concern).• Moderating content was a large issue when
working on the Zimmer Twins (at the time, over 700k user generated movie clips and over 660k comments – both are over 1M now)• Mass spam (by hand) to gain interest in watching
their movie clip• Trolling other users• Inappropriate language and themes.
Dealing with registered users (core)
• Ability to leave content unpublished until a moderator first looks at the content.
• Both nodes or comments.• Troublesome as you have to click on content to see if
there are any issues and work from there.
• Can also block users.
Dealing with registered users (contrib)
• Troll (http://drupal.org/project/troll)• Block out IP and IP Ranges (has ability to import multiple
block lists)• Advanced user searching• Can be useful in targeting user management
• Possible solution: use help of users to help with moderating content on site.
• Flag Content (http://drupal.org/project/flag_content)• Ability to flag users, comments, and content• User flags can notify an admin who can take a closer look at
the content for removal• Integration with views to see different parts of content
issues.• Not been updated in a while…• Cannot get more context on why user is flagging content
(users sometimes confuse flagging content for abusive reasons as flagging for support)
Dealing with registered users (contrib)
• Abuse module (http://drupal.org/project/abuse)• Written by me• Watchlist module
• Contains list of watchlist and banned regular expressions which automatically flag content if the title, body, content contains pattern.
• Has moderation section to see content, ability to allow/hide/remove content, give users warnings, ban user.
• Also has supervisory role to assign content to first level set of moderators.
• Cannot flag users (though number of warnings, flags user content has received is shown on moderation screen)
• UI can be daunting.• No views support (sorry guys ; its actually broken against
views)• Code could use a lot of love (now looking for a new
maintainer)
Dealing with registered users (contrib)
• Flag (http://drupal.org/project/flag)• Looking like future to moderation problem.• Ability to flag content of *any* type• Integration with many different projects (views, rules,
workflow)• Flag Abuse Module
(http://drupal.org/project/flag_abuse)• Users must provide reasons.• Predefined views
• Integrate with Views Bulk Operations (http://drupal.org/project/vbo) to perform mass operations.
• Not yet as robust moderator-feature-wise as abuse but some glue (particularly with functionality of watchlist and integration with notifications) could make it much more powerful.
Dealing with registered users (contrib)
• Revisioning(http://drupal.org/project/revisioning)
• Content Moderation (http://drupal.org/project/content_moderation)• New ways to ‘manage’ content (can be used in
ways of moderation)• Really uses workflow module to power
moderation of content.• Similar issues to flag abuse; how do we get
some ideas about the workflow content before we even get to the moderation aspect?
What could mollom do?• Mollom actually has a very robust API (see
more at http://mollom.com/API)• Integrate mollom API to ensure bots are not
flagging content.• Integrate mollom API to get quality/profanity
rating on content and decide if it should be flagged, not allowed, or allowed.
• Nothing regarding this in contrib quite yet
• Other options for pre-moderation of content could include using spam or migrating out the watchlist module to work with the above set of solutions.
Working with content editors• Sometimes easier (sometimes not).• Generally do not have to worry about
inappropriate content.• May be lower volume of content to check.• Different set of problems
• Inaccurate content.• Incorrect links.• Expired content.• New to Drupal (UI can be a little scary.)
Working with content editors• Create new revisions
• Know who the last content editor was if someone edits content with incorrect information.
• Check differences between revisions (use the diff module (http://drupal.org/project/diff) to see difference side-by-side).
• Using revisioning or content moderation might be very useful for publishing content in a proper manner.
• Use Link Checker? (http://drupal.org/project/linkchecker)• Scans links in content and notifies users of any
links that do not work.
Working with content editors• Could use workflow?
(http://drupal.org/project/workflow)• Set various states for content to enter• Show end user only content that are in certain
states.• Integrates with views (try to use views bulk
operations to manage content en masse).• Integrates with flag via rules module or via
workflow_flag module.• Much easier UI for content editors to
understand.
Working with content editors• Could use notifications?
(http://drupal.org/project/notifications)• Notify a set of site content managers when
content is created/updated by other content editors.• Check to make sure the content is correctly
formatted.• Use the digest notifications if there is lots of
content to avoid a stuffy inbox.
That’s the end!• Questions?
• Ideas?
• Funny stories?
• Sharing Time!
Thank you