Forums / Setup & design / Creating a forum (and other community features) with eZ Publish

Creating a forum (and other community features) with eZ Publish

Author Message

Niko Goers

Tuesday 21 June 2011 4:47:53 pm

Hello community!

I'm currently working on a forum created with eZ Publish. During the last days of work I discovered several problems implementing certain features. With this topic I want to share my thoughts and discuss some possible solutions for my problems.

First I have to say that the community I build this forum for is very fastidious with this subject. Since years we are using a forum software called Woltlab Burning Board (WBB). (If you might take a look: http://forum.loh-gilde.de) It's a mighty solution if you need only a forum. So it's very special and now I want to reproduce the comfortable functionalities in eZ Publish to extend the rest of the site, which is already based on eZ Publish.

I love working with eZ Publish. So I created the basic functionalities of a forum within just a few hours. Then I started to think about some issues. Later I have to import about 500.000 threads and posts, about 7.000 users and hundred of private messages. Will the instance / my server be able to take care of all the new objects in the database? Should I really use the content object model or is eZ Comments an better alternative?

What about my users? Will they be able to work with the ezoe? Is the ezoe covering all the needed features like coloring text, showing images, embedding youtube videos or quoting posts of other users? I know how powerful the ezoe is, but is it easy enough to use for regular users? And how much work will it take? Or should I use simple BBCodes instead?

Theres more: How can I create a private messaging system? Is there an alternative to a module with it's own database table? How can I show that there is new content in a certain subforum? What about moderation?

Don't get me wrong, I know that it's all possbile with eZ Publish. But what is the best way to do that for my requirements / for general requirements?

I already made my first decisions and I want to know what do you think about them. Or maybe you have some tips for me. I think I will continue using the content object model because of the known reasons already state here by Marko. I will find a way to handle the large number of objects and to optimize the performance. Using eZ Find maybe?

Then I decided to make use of the ezoe instead of BBCodes or something. I want to benefit from content object compatibility and the other features. But how can I make the ezoe more user friendly without changing the templates? I.e. the "New <link> tag" interface. How can I get rid of the "view", "title", "id" or "class" attributes? No regular user will ever need that settings.

For other forum functionalities like showing new topics of a subforum I will use the xrowforum extension. There are only a few caching issues to solve and then it works perfect. The extension also provides a private messaging system and other nice forum features. I can already recommend that extension.

At least I have some specific questions: Does somebody know a way to restrict the notification to certain nodes or subtrees? I don't want users to subscribe to other nodes by changing the url.

And may I ask how the quoting module of the share.ez.no forum works? Is there a way to insert a custom tag in the ezoe without manipulating the datatype edit tempate?

Question 3: Is it possbile to make a custom tag directly available in the toolbar without changing the code?

There will be a lot of work and a lot of improvements to do and I think there will be a lot of custom modules in the end.

Hum, there are a lot more points than I intended to write, but I hope that it's not that much difficult to share some opinions and experience with me. By searching the forums and the blog entrys i saw several topics related to my concerns but no one exactly facing the same problems. Nevertheless I would be grateful for every interesting link.

There is not much to see for anonymous users right know, but if you want to take a look you can find my development forum here: http://www.loh-gilde.de/BETA-FORUM

If I have finished the user/register form you are invited to register and test the forum.

In the end I would support the idea of an eZ Community extension (Blog post by Sebastiaan).

Thank you in advance for any feedback or help.

Niko

eZ Publish partner - http://www.all2e.com
http://share.ez.no/directory/companies/all2e-gmbh
http://ez.no/Partners/all2e-GmbH

Lords of Heaven - http://www.LoH-Gilde.de (Created with eZ Publish)
German online gaming guild

About me - http://www.NikoGoers.de

My roadmap, +1 are welcome: http://share.ez.no/community/roadmap/10889

Marko Žmak

Wednesday 22 June 2011 7:52:40 am

If I had to implement a full featured forum that doesn't have to integrate with the other content of the eZP site (execpt for user synchronization) I would definitely choose a non eZP solution. And do a script to sync user accounts.

ezP still has a seroius lack of community and moderation features. For example...

  • most of the community features on share.ez.no were built on a custom extension
  • you cannot use one click publishing in default eZP, you need an extension for it
  • or, if you use Varnish, there's no way you'll be able to track the users IPs in the eZP logs
  • you don't have atribute level permission system - for example you cannot restrict users to only changing their first and last name and not their email

On the other hand if you need the to integrate the forum with other content of an eZP site, eZP is very powerfull for interconnecting content (object relations, object embeding...), but for most community and moderation features you will have to create custom modules, functions, operators...

Also if some of functionalities you will implement require to use it's own databases, you have a powerfull tool for that too - eZPersistenObject.

To sum it up, there are a lot of powerfull tools to be used in eZP, but you will have to do a lot of code writing. In my opinion, the final decision shuld be made based on wether you have to integrate the forum with other content of eZP site or not.

Just my 4 cents.

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

Hubert Farnsworth

Sao Tavi

Wednesday 22 June 2011 2:40:25 pm

I am in the same situation, but with over 20k users on the old forum and less threads, but with synchronization with and WP installation, so each user could have created a blog and there were several blogs active.

I looked for a very long time before choosing eZ Publish because I wanted to completely integrate the forum and the blogs with the rest of the site (and, of course, learn the platform so that I can do complex websites on request also for others).

I believe that this is the future of the internet, it is quite obvious, professional content + community driven content. I never though of the problem of users being able to change their e-mail address and it is pretty serious as new users were planned to get some bonuses when they register (so, in this situation, they can change only their e-mail address and then register a new user with the old e-mail address). Anyway, some template editing to remove the e-mail text input when editing the user details should be half of solution and I doubt too many have the knowledge to do manual requests to the server to change the e-mail.

The one click publishing I believe it is not really an issue, some javascript can transform the click to have the same behavior as the create/edit buttons from website toolbar extension.

What I wonder is why eZ Publish is not trying to create some feature complete extensions for forums, blogs, wikis etc... It is not like reinventing the wheel...

Marko Žmak

Thursday 23 June 2011 2:22:08 am

"

I never though of the problem of users being able to change their e-mail address and it is pretty serious as new users were planned to get some bonuses when they register (so, in this situation, they can change only their e-mail address and then register a new user with the old e-mail address). Anyway, some template editing to remove the e-mail text input when editing the user details should be half of solution and I doubt too many have the knowledge to do manual requests to the server to change the e-mail.

"

I would say even less than half of solution or no solution at all. If a user wants to change it's email address in order to cheat he will learn how to exploit a security bug or he will find someone to do it.

"

The one click publishing I believe it is not really an issue, some javascript can transform the click to have the same behavior as the create/edit buttons from website toolbar extension.

"

The javascript solution is a pretty much unstable way of doing it. The powercontent extension is a much better way to go. But what I don't understand is how come that for several years eZP developers haven't realised that one click publishing mechanism is very very much needed...

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

Hubert Farnsworth

Sao Tavi

Thursday 23 June 2011 4:52:57 am

"

I would say even less than half of solution or no solution at all. If a user wants to change it's email address in order to cheat he will learn how to exploit a security bug or he will find someone to do it.

"

Yes, you are right, if the users knows it is possible, he will learn how to do it. It seems that I have to rethink some parts of the project... But it would also be easier just to create a new email account if he really wants to cheat the system, as registration is free.

"

The javascript solution is a pretty much unstable way of doing it.

"

Why is javascript unstable? I mean, who ever navigates an website without having javascript enabled? Or is there something else I did not think about?

About Power Content extension: I was actually thinking of a way to add buttons for "New reply" or "New thread" exactly how they are in this forum (so without using the website toolbar thingy). On the other hand, Power Content extension is useful for a quick reply mode.

 

Anyway, as a conclusion, an per attribute permission system and this one click publishing are a must in my point of view before being able to use eZ Publish as a community platform...

Marko Žmak

Thursday 23 June 2011 1:04:11 pm

"

Why is javascript unstable? I mean, who ever navigates an website without having javascript enabled? Or is there something else I did not think about?

"

...if a user accidentaly click fast two times the reply button it can get a JS error and the reply form doesn't get displayed. It happens also here on share.ez.no. Not often, but it happens...

...try to implement via JS a reply form that is displayed on the page directly, without having to hit the reply button first. Good luck with that...

..if you implement reply via JS like here on share.ez.no, you are generating two requests to eZP server each of them generating a lot of mysql queries (I think around 90 queries in total), and that's just for showing the reply form. Then for publishing the reply you have another two more requests to the server. By using one click publishing, you will have only the two last requests. So with the JS solution you have a redunancy of two server request and 90 mysql queries. Which is not something that should be neglected in a environment with heavy user publishing...

...also, in such a way you are generating uneeded drafts just for showing the reply form...

"

About Power Content extension: I was actually thinking of a way to add buttons for "New reply" or "New thread" exactly how they are in this forum (so without using the website toolbar thingy). On the other hand, Power Content extension is useful for a quick reply mode.

"

Taken into account what I have written above, I would rather go for powercontent extension in any situation.

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

Hubert Farnsworth