Wednesday 23 March 2011 10:10:32 am - 9 replies

Introduction

The eZ Comments extension is a very simple and easy to use solution if you want to setup an article commenting system quickly. But in my experience it's a bad idea to use it if you need any advanced commenting functionalities. So read further if you want to find about it...

» Read full blog post

Author Message

Nicolas Pastorino

Wednesday 23 March 2011 10:55:17 am

I have one main comment here : thanks for this post. Very informative, and probably the clearest return on experience on eZ Comments.

This portal uses eZ's content model to handle forums, allowing for the more advanced features you mentioned. But there was no other choice when building this portal, eZ Comments was not existing yet. If the usability of eZ Comments is very good, then enhancing it, where possible, based on your remarks, while keeping it a simple-to-install extension could be an idea.

Cheers,

--
Nicolas Pastorino
Director Community - eZ
Member of the Community Project Board

eZ Publish Community on twitter: http://twitter.com/ezcommunity

t : http://twitter.com/jeanvoye
G+ : http://plus.tl/jeanvoye

Marko Žmak

Wednesday 23 March 2011 11:20:24 am

"

If the usability of eZ Comments is very good, then enhancing it, where possible, based on your remarks, while keeping it a simple-to-install extension could be an idea.

"

Actually there are also a lot of other features that I could suggest as enchancements to eZ Comments so that it becomes a really good commenting system, but that's a whole new chapter that doesn't fit within the scope of this blog. So let's wait until we close this one...

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

H-Works Agency

Thursday 24 March 2011 12:33:37 am

Thanx for this great article...i'll keep using my custom "insert & update" view called using ajax queries to handle any class client publication.

EZP is Great

Marko Žmak

Thursday 24 March 2011 12:43:50 am

"

Thanx for this great article...i'll keep using my custom "insert & update" view called using ajax queries to handle any class client publication.

"

You could also take a look at the powercontent extension. It's a wrapper around the content module that allows you one click publishing, and I'm using it for my implementation of commenting system.

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Gaetano Giunta

Tuesday 29 March 2011 1:31:13 am

Very interesting topic. While I understand your needs, I guess for most websites, rating, threading and all advanced features are not really needed. So use the tool that fits your needs best.

I agree that for ezcomments to be an easy-to-use, ready out-of-the-box solution, a few things are still missing: the control panel with all the latest comments, search within comments, moderation (!). Of course anybody willing to add them is welcome ;-)

Otoh improving the basics of "content" management in eZ is also a good idea; I am thinking here especially about information collection, a powerful feature often underutilized (it needs better fetch functions, more event triggers, better management panels) that could basically do all that ezcomments does...

Principal Consultant International Business
Member of the Community Project Board

Marko Žmak

Tuesday 29 March 2011 3:03:06 am

"

Very interesting topic. While I understand your needs, I guess for most websites, rating, threading and all advanced features are not really needed.

"

Are you sure about that? Note that all of this are not my needs but the needs of many of my clients. And the features that I listed here is less than a half of the functionality they want.

Media portals are advancing rapidly and in today world all of the features I have listed are a must if you want to compete with other CMS systems. It's really funny that eZP present itself as a media business solution while it lacks some of the essential features for such a branch. Media portals are today all about social features, and as I already said, social features suck bigtime in eZP.

As for eZ Comments, being an official eZP extension I should say that's a pretty lousy one...

To conclude this part, eZP should get a real boost in social features if it wants to stay in the race with other CMS systems.

"

I agree that for ezcomments to be an easy-to-use, ready out-of-the-box solution, a few things are still missing: the control panel with all the latest comments, search within comments, moderation (!). Of course anybody willing to add them is welcome ;-)

"

Oh, I could make a far bigger list of the functionalities that are needed for eZ Comments to be a real commenting system...

But I think you missed the point of my blogpost. It's not about missing features of eZ Comments but about a bad implementation idea. With moving comments out of the eZP content model many things are lost, and not much is gained.

If we look at this from a theoretical point, on today sites comments are as much as content as articles are. And for that reason there will always be a need to do with them everything you can do with other content. I'm also speaking of any future functionalities that will be implemented for eZP content management and content model. So that's why they should be treated as content and implemented using the eZP content model.

"

Otoh improving the basics of "content" management in eZ is also a good idea; I am thinking here especially about information collection, a powerful feature often underutilized (it needs better fetch functions, more event triggers, better management panels) that could basically do all that ezcomments does...

"

Yes, I agree. For example, using the current functionality of information collection, I have implemented the feature of voting for articles and comments, and also reporting inappropriate comments. But there were some features that I couldn't do with the current functionality but had to make a custom template operator.

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Chen Xiongjie

Thursday 31 March 2011 3:23:26 pm

Hello Marko,

Thank you for this interesting and valuable point.

I agree there is lack of functionalities like moderation/ bat-deleting/ comment management, etc, but from your post yes I think those are not what you want to talk(actually we have those functionalities in plan and there is a pull request for simple comment management already).

For the content model's perspective, I think this is an argument between flexibility and performance. eZ Comments's main value is really from performance's consideration(and usability with current ezp status), so if ideally ezp's model can solve the performance well or from your experience it performs good and easy to use(this is not easy to achieve for now and some time I guess) I don't much to oppose.

But think some special comments-oriented functions( performance related and usability):

- what if we need a very high traffic commenting need (for instance if some websites have many comments in every seconds and even we want comments shown in real time), ezp's cache mechanism can not reach this easily.

- before there are easy-use cms features using ezp's model(like forums, comment, anonymous subscribers), ezcomments is still a easy way for commenting. Personally I really hope the community project can do much in those usability.

PS: Someone even suggested that ezcomments can be extended to be a forum - this is technically possible but this topic is also arguable.

I suppose to add more api documentation when I get time so people can get the hook and extend ezcomments (for instance voting), and actually we even tried a AJAX version in the beginning :). Actually the idea of extending ezcomments is a bit tricky - like implementing similar functionality to ezp again, but I think some small features are still worthy :).

@Marko

"

I could make a far bigger list of the functionalities that are needed for eZ Comments to be a real commenting system...

"

I think for quite some time, that's the way to go. so if you have some in real project, please share your ideas..

Theoretical point I think I agree (theoretically meta model+model is always good :))..

eZ Comments: http://projects.ez.no/ezcomments
twitter: http://twitter.com/xiongjie

Luc Chase

Monday 04 April 2011 4:20:31 pm

This extension seems unnecessarily inconsistent with the basic design. Is it really worth altering the schema for this? Might it not have been more consistent to use a different technique such as horizontal partitioning for this specific content class?

The Web Application Service Provider

Marko Žmak

Tuesday 05 April 2011 6:59:07 am

OK, here we go...

"

- what if we need a very high traffic commenting need (for instance if some websites have many comments in every seconds and even we want comments shown in real time), ezp's cache mechanism can not reach this easily.

"

First thoughts about this...

In the case you have described, most possible usages can be presented by two pretty much representative cases:

  • a) you have at most 10 comments per article (in average)
  • b) you have more than 100 comments per article (in average)

The case a) means that several articles are published every 10 seconds. In such a case you'll have a big performance impact anyway, wether you put your comments in a separate table or not.

Yes, there is a 1/10 ratio between articles and comments but articles usually have more than 10 times more content than comments. So publishing few articles every 10 seconds will probably have the same (or even bigger) performance impact than publishing comments every second.

Of course, some real world measuring should be done in order to be sure abotu this, but I have a hunch that in this case not much performance benefits will be gained by putting comments in a separate table.

In the case b) we should wonder if the eZP + eZ Comments is the right solution. As much as i love eZP and everything that comes with it, we have to be real – it's not a solution for everything. On such a site, with more than 100 comments per article which is using eZP and eZ Comments you'll probably have to do one of the following:

  • rethink your choice and whether eZ Comments + standard eZ Publish is the right solution. Since you are dealing with something far more complex than just an article commenting system
  • fire your site redaction and hire users as editors/journalist. Since they are obviously generating more content than the current editors :)

Because in the case b), comments will make a far more greater part of the site's content, therefore they should really be treated as content. On such a site you'll probably have the need for most of the features that come from eZP content model. For example a threaded comments view would be a must on such a site. Or sorting articles on different criteria. Or far better comments administration possibilities.

Also I believe that in extremes of the case b) (e.g. more than 3000 comments per second) most developers would use a completely custom solution, probably using eZ components and eZP PHP classes. Or they wouldn't use eZP at all.

"

- what if we need a very high traffic commenting need (for instance if some websites have many comments in every seconds and even we want comments shown in real time), ezp's cache mechanism can not reach this easily.

"

Second thoughts about this...

Instead of reinventing the wheel why not make the existing wheel go faster? Why not improve the eZP publishing mechanism so that it can handle such a scenario. Some improvements were made in eZP 4.5, especially with "asynchronous publishing" (can't wait to try it), but it can go further more... There could be a possibility to skip some parts of the publishing proces in some cases in order to speed it up. So the comment/add function could be implemented by publishing a content object of the Comment class while skipping uneeded parts of the standard publishing process.

As for the "displaying comments in realtime" you can make a special fetch function that fetches comments objects using the eZPersistentObject's functions and that creates SQL queries only on the ezcontentobject table. With the table being indexed on class ID field, the performance of this fetches should be as good as when fetching comments from a separate table.

"

I suppose to add more api documentation when I get time so people can get the hook and extend ezcomments (for instance voting), and actually we even tried a AJAX version in the beginning . Actually the idea of extending ezcomments is a bit tricky - like implementing similar functionality to ezp again, but I think some small features are still worthy.

"

For now, my opinion stays the same – the eZ Comments should be rewritten.

"

I think for quite some time, that's the way to go. so if you have some in real project, please share your ideas..

"

I'm preparing the list, stay tuned...

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

You must be logged in to post messages in this topic!

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.