Competition Functionality (new functionality best practice)
Hi,
We're looking at porting our existing sites to Umbraco but will need to build a lot of functionality present in our old CMS into Umbraco. To this end I'm trying to get an understanding of best practice, specifically with the example of Competition style functionality (site users enter their personal details, perhaps answer a question or select an option, perhaps upload a file, etc. to go into the draw to win X prize).
Adding the form is simple enough to accomplish with Umbraco through custom properties and a macro pointing a custom user control (I assume this would be the best practice here?).
My question is then how to store the competition entries themselves? They could be created as new nodes (as a CompetitionEntry DocumentType) under their respective competition nodes - this allows an administrator to view all competition entries (this will have to be expanded to allow for exporting all entries to CSV or the such) BUT it will create potentially a lot of new nodes which can only negatively impact the system and isn't so good from the perspective of seperation of site content and user data. Would it then be better to simply have a custom database table to store all this information in? The issue here is that it would also require a lot of new add-ins created for Umbraco to allow site administrators to view entries relating to competitions, export them, etc. and we've no idea how to go about this yet.
There's plenty of ways to go about doing it, you could store the competiton info and results as nodes in the Umbraco tree (I've done the first half of that, but we stored results in a separate table). This has the advantage of a very easy UI for competitions to be created from by editors (and only a single editor story for them to know). But the downside is that you can have really complex code to maintain if you want to do logic in a competition (random question order, only using a sub-set of questions, etc).
You could build something entirely custom and store it in your own DB (or NoSQL store if you prefer). This has the benefit of being really flexibly with what you're doing at an application/ logic layer, but it does mean that the editor UI is non-existent or something custom you have to implement (which can be time consuming).
Lastly you could use Contour which is a commercial forms engine from Umbraco HQ. Tim did a blog on how to create a quiz with it (http://www.nibble.be/?p=83). This has the advantage of a very flexible interface to manage your competition(s) from within, both creating and accessing data. The downside is that depending on your requirements.
There's no right solution, it really depends on which of the options available are ideal for your scenarios.
Competition Functionality (new functionality best practice)
Hi,
We're looking at porting our existing sites to Umbraco but will need to build a lot of functionality present in our old CMS into Umbraco. To this end I'm trying to get an understanding of best practice, specifically with the example of Competition style functionality (site users enter their personal details, perhaps answer a question or select an option, perhaps upload a file, etc. to go into the draw to win X prize).
Adding the form is simple enough to accomplish with Umbraco through custom properties and a macro pointing a custom user control (I assume this would be the best practice here?).
My question is then how to store the competition entries themselves? They could be created as new nodes (as a CompetitionEntry DocumentType) under their respective competition nodes - this allows an administrator to view all competition entries (this will have to be expanded to allow for exporting all entries to CSV or the such) BUT it will create potentially a lot of new nodes which can only negatively impact the system and isn't so good from the perspective of seperation of site content and user data. Would it then be better to simply have a custom database table to store all this information in? The issue here is that it would also require a lot of new add-ins created for Umbraco to allow site administrators to view entries relating to competitions, export them, etc. and we've no idea how to go about this yet.
Cheers
There's plenty of ways to go about doing it, you could store the competiton info and results as nodes in the Umbraco tree (I've done the first half of that, but we stored results in a separate table). This has the advantage of a very easy UI for competitions to be created from by editors (and only a single editor story for them to know). But the downside is that you can have really complex code to maintain if you want to do logic in a competition (random question order, only using a sub-set of questions, etc).
You could build something entirely custom and store it in your own DB (or NoSQL store if you prefer). This has the benefit of being really flexibly with what you're doing at an application/ logic layer, but it does mean that the editor UI is non-existent or something custom you have to implement (which can be time consuming).
Lastly you could use Contour which is a commercial forms engine from Umbraco HQ. Tim did a blog on how to create a quiz with it (http://www.nibble.be/?p=83). This has the advantage of a very flexible interface to manage your competition(s) from within, both creating and accessing data. The downside is that depending on your requirements.
There's no right solution, it really depends on which of the options available are ideal for your scenarios.
Thanks Slace, still learning my way through Umbraco - the structure and creating custom packages.
I'll look into Contour, failing that I'll look into creating my own Contour type system.
Cheers
But is not possible with Umbraco GUI ti read/write data on other database?
You kind of can, but you require a bit of effort to actually get it working. It's not truly pluggable, you have to make all the editor pages yourself.
Are there tutorials on how to do such things Slace, or videos?
What, creating a custom section in the Umbraco back office? I believe there are videos covering that on http://umbraco.tv
is working on a reply...