FriendsOfSymfony / friendsofsymfony.github.io

Description of what FriendsOfSymfony (aka FoS) is about.
http://friendsofsymfony.github.io
32 stars 4 forks source link

CommentBundle on its way #7

Closed ornicar closed 13 years ago

ornicar commented 13 years ago

I need comments for my chess game. I don't want to use disqus because I need to let anonymous users write comments. So I'm about to write a CommentBundle, and I'd like to put it under FOS\ namespace. My plans are:

I will push the bundle soon if you guys agree.

henrikbjorn commented 13 years ago

Non threaded comments arent worth much theese days. Also a comment bundle should be able to provide much more than this.

Zend Akismet requires the whole Zend Framework because of a dependency on Zend/Validator Zend/Uri Zend/Http Zend/Config Zend/Translator Zend/Locale etc.

ornicar commented 13 years ago

Thanks for your feedback!

"Non threaded comments arent worth much theese days." In fact I take my inspiration from disqus. Their comment system is just great and widely used, and it's not threaded. I don't feel the need for threaded comments today, so I'm not very inclined to develop this extra complexity.

"Optional captcha (recaptcha) integration" A must have indeed.

"Ability to be attached to almost any Entity/Document" Yeah sure. In fact I think the best would be not to attach it to anything but let the developer do the glue with his project. I can imagine use cases where a comment thread is not attached to any project entity.

About Akismet and its big dependencies, well it won't prevent me from adding it, as I said, optionally. Defaulted to false.

Ok I start coding now.

henrikbjorn commented 13 years ago

I am pretty sure that disquis is threaded. I have thought about the Entity/Document thing and it could properly be done with a custom Collection that adds the entity type, or calls a entities getCommentIdentifier. And then hook it up with a post event of some sort.

ornicar commented 13 years ago

About disqus and the threading, hmmm you are probably right.

Yes let's do threaded comments.

Still I think we should not do anything to bind a comment thread to a userland entity/document. Disqus does not need it, why should we? Disqus binds a comment thread to a url, which is not bad. We could just use a string as comment thread identifier, and let the developer deal with it.

Model: CommentThread(id=string, comments=tree)

I can now, for each page, call for a comment thread with string=current url. Or, for more flexibility, pass arbitrary strings. For example, on a blog article page, the string could be "article:".$slug. If I want comments on my homepage, the string can be "homepage".

Hope I am clear enough

henrikbjorn commented 13 years ago

How would you validate the string?

lsmith77 commented 13 years ago

guess its in :)