This would be a great topic for the magnolia conference community day :-) I'd love to compare notes on this one.

My 2c: We run a larger site with user generated content and the PUR module. We use your 'just stay on public' version and then allow users from the editor group to actually manage the content the way the users can manage their own content. We use a more sophisticated form module to do a kind of inline content editing.

my reasons why I love this:

- a common user does not understand the popups and editing his/her content. They want it to be simple (say like the form module or the way one manages content on facebook)

- administrators get to do drive-by editing on content they don't like - activating/deactivating content or promoting content is just another button that only admins see - they are browsing the site, see an event they'd like to feature on the main page, they just click and it's done. They see something explicit, they can just remove it. No need for a separate admin console. We use a couple of editor group only pages to list the new/edited content for them to review.

- search works over the whole site. A global search can return any page, anywhere. Weather it contains a name or whatever - it's found

- you can use a hierarchical storage for a member's data - it's easier to grow that way since all the data for that user is in one place and not spread out over a lot of tables.

my lessens learned from it:

- make sure you store content that you don't want to be found somewhere else (if you hide an email address on the page in a node but then allow a global search, the user is found anyway - also, make sure a search for 'superuser' or any other user that edits a lot or inserts all your default nodes does not kill your application - there are a lot of nodes labeled by that user and it can kill the search result performance

- make sure you don't have too many subnodes in one node (limit to max of 50, create a hierarchical tree such as year/month/day/node or something else that helps you do this) - magnolia (and jackrabbit) does not like nodes with a lot of subnodes.

- creating new nodes is slow

- make sure your backup/restore process works (bootstrapping with a lot of data in the repositories can be VERY slow)

- don't use the file storage in jackrabbit - your data will explode 10 fold because of the small files it creates.

Ruben

[email protected]

Danilo Ghirardelli wrote:

I’ve been exploring a little bit recently with the PUR and Forum modules + commenting. I get the impression these modules are relatively young is that right?

I'm really really interested in the topic, because managing user generated content is something we've been asked quite often. Maybe it's simply the "web 2.0 feeling" it gives... A good question I heard is: "Magnolia is a good content management system, so why it can't manage that content?"

But my question is: which is the Magnolia standard way to handle user generated content? I don't know if there is already one, from the docs I read seems there isn't. Modules that handles UGC are not young, but they gave (to me at least) a strong impression that each one was just tailored to do its little part in its own way, without a bigger plan.

So far, I've seen implemented (or thought) these solutions about UGC:
- Separate database, with out-of-Magnolia handling of the contents (in a relational database, usually with hibernate or similar). This seems a good solution but may leave some integration problem in Magnolia, and it seems unlikely that this will be accepted as a "Magnolia standard", because it's more a last resort for worst cases. - "Just stay on public", content generated is stored on public server and authors have no way to access or handle it. May require to have a few "unpublishable" nodes in the author instance to avoid overwriting all the public data (and if the repo is not separated from the published one it may be unsafe). It's really easy to implement for simple cases, but it's also limited. - Single instance. With a few hacks, it seems possible to have a single instance for both public and authoring (or better using the public one as authoring), in which contents are only "published" or "unpublished" (only logged authors can view them), killing the concept of "modified and not yet published". This way you can use the existing repo to store also pubilc content and have authors edit/moderate it. Seems to be a good compromise but it's still not good to be a standard solution. - Backpublishing, with the public instance that automatically publish its user generated content to the author one, so it can be published back correctly when the author edits something. This feels really unsafe (public instance must see and have access to the author one) and may lead to concurrency problems. - Author pulling (only thought about it as possible solution): the author instance has no copy of UGC but whenever it needs to edit it, it calls a servlet/webservice on public instance to retrieve the content and another one to save it. Or stores the copy locally and then publish it the standard way, but even this may lead to concurrency problem. Seems quite complex and not very performing.

In the end I didn't like any of these solutions. There is still something that I'd like to try, if I don't find anything better: separate UGC repo clustered between public and author. Leaving the current repos configured as they are, I'd like to add another (almost) full set of the same repos, but configured to be clustered between author and public, so the data is automatically shared. The UGC-user will contain the public users and the others all kind of user generated data (not only content stored in pages/paragraphs but maybe also files stored in data modules if any client would ever ask for something so strange). Obviously there would be many tweakings involved, but it shouldn't be totally impossible. Just my two cents, but I'd like to share your ideas about the topic.

Regards, Danilo.

----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------


----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

Reply via email to