Native comments for ZOO 2.0
This is our sixth article from our blog post series about the new ZOO 2.0 release. If you didn’t read the latest posts here you go: the ZOO 2.0 announcement, the new app concept, the usability improvements, all the new elements and frequently asked questions.
This time we are very proud to present the brand new, native comment system of ZOO 2.0. There is already some information about the great user interface of the comment system to be found in the usability article.
Why a native comment system?
Yes, it’s a legitimate question. A year ago we would have answered this question with: “It’s not really necessary. There are great web services like IntenseDebate or Disqus.” A year later we introduce our own comment system for ZOO. What happened? On our own YOOtheme blog we use a third party comment service. In the beginning everything worked out well but before long we discovered some anomalies. On blog posts with lots of comments some disappeared for no reason. Some of them resurfaced later on and some didn't. In another incident comments from one article were swapped with comments from another article. To make a long story short: these comment services are nice and easy to set up but a native comment system definitively gives you more control over your comments. A major benefit of a third party comment system is that you'll only need one user account to comment on any blog that uses this system. But with the upcoming of Twitter, Facebook, Google and OpenID many users already have a central user profile with an avatar. Therefore, if your comment system allows you to login and comment with your social network account, it would be as great a benefit as the third party comment solution. Another plus for a native comment system is that the comments are searchable. Actually the development of a native comment solution isn't a 5-minute task. It would deserve to be an independent extension of its own. We decided to couple our native solution with Zoo 2.0 and rather focus on simplicity and usability.
Feature highlights of our native comment system
First we implemented support for Akismet and Mollom. Both are web services that prevent spamming in your blog posts. These services check if the comment seems to be spam or ham. If it's not ham, the comment is marked as spam, and we move it to the spam folder. We decided against a CAPTCHA mechanism because these spam preventing services are much more user friendly. The user won't notice anything and doesn't have to fill out extra fields.
In addition to prevent spam we added a black list feature. This means that when a comment contains any words from the black list in its content, name, URL, e-mail, or IP, it will be marked as spam. If a comment is not spam it can be approved by default, not by default or the approvement is only required once. The last setting is very useful. You can also set a time span between user posts so the user has to wait, before he is allowed to post again. We also decided to strip the HTML code from the comments by default. We think this is much better than allowing the user to enter any kind of HTML code. But we do detect automatically if the comment text includes any URL or email addresses. If so we add a link around the URLs with a rel attribute set to “nofollow”. The email addresses are also linked.
By now one feature has become a standard of most comment systems: nested comments! Of course, we implemented this feature too. You can set the maximum comment depth in the administration. The default maximum is five.
Last but not least we support Gravatar. Gravatar is a web service to provide globally-unique avatars. You can register an account based on your email address and upload an avatar to be associated with this email address. When the user posts a comment and the email address is required our comments system checks whether that email address has an associated avatar at Gravatar. If so, the Gravatar is shown along with the comment.
We got only one feature left on our todo list on which we are working right now. The connects for Twitter, Facebook and OpenID. We are not sure if they will make into the BETA, but we will add them in short with the next update.