Can Umbraco do user submitted content, from the front end?
I'm sure it can, but just asking the question so I can get some tips on what I need to be googling, I'm working on a practice project where eventually I would like users of the site to be able to interact with the site, without seeing Umbraco.
Think a website where people could go to look at cats, but then they upload their own cat for people to see, just by logging in to their profile from the front end of the site.
So far when I google things like Umbraco forms to database etc I'm not coming up with much.
We do it a lot on our site (upventur.com), you just need to work with the content service and IContent. Its not that difficult.
Though, depending on what you are doing - often times you are better off adding some additional tables to the database. In our case we do that for service providers (adventure guides) - the base information that has been historically pretty static is in the CMS, where as things like rates or calendar type information are off in other tables because the change and are interacted with quite frequently.
It's good to know its possible (I knew it would be)
I guess my next question would be where would you advise I start looking to get this kind of functionality going?
So I will be looking to allow user registrations, (that bit I think I can figure out from google) but its the other part I'm not entirely sure what I'm searching for; allowing people to submit to the website, to be displayed on the website.
Seems the content service and Icontent might be a good start.
I worked on a project recently where user registrations are done using a form submitting to a surface controller. This in turn uses the Membership service to create new users and amend their (some custom) properties.
Once done, I've defined multiple "document types", where I then use another form/controller to allow the members (users) to create content of those document types.
I decided to use built-in document types and members so that I could use the already provided services, but also so that administrators could view/edit the user-generated content in the Admin UI tool (not that they really should, but hey ho). That way I'm using the existing functionality as much as possible, and only having to create some ajax forms on the front end to interact with the MVC controllers.
It would have been done with custom DB tables, but I'm not as familiar with SQL so I stuck with the built-in functionality mainly for the reasons above, at, I admit, the expense of a little flexibility in my end solution.
I've learned how to do all of that with some pretty basic searching through the forums, Stack Overflow and 24DaysIn. Another name that cropped up a few times (on the CodeShare website I think) is Paul Seal - any articles/videos I've found by him always seem to be pretty useful and informative.
Hope that helps somewhat - what you're trying to do is definitely feasible in my experience.
Hey guys, had another question but thought I would ask here instead of starting a new topic.
I am now looking to have users submit content directly to a content node, from the front end, so my example again, now I have users registering and logging in etc, they come to the website, fill out a form that has information about cats, and then this submits to the cats content node.
Upon googling I see plenty of tutorials about making controllers etc, but ideally, I want to do all this within the Umbraco cms? is this possible?
Again Umbraco Surface Controllers and the content service seem to be exactly what you need. I've done precisely this and it works well. Of course you may want to put some checks in place to make sure that you (or someone) vets whatever is submitted and not just added directly to the site.
In my example, the content created by members was only visible by those members due to the member authentication, but standard unobtrusive validation will allow a validated form to be submitted to a controller, then return back to the original page with a confirmation/error message, or redirect to another page, depending on your requirements.
I wish I could show you some code, but I'm not able to (client NDA) but I found the content service fairly straightforward and surface controllers seem the perfect way to handle this type of task.
Yep ideally I would submit the content as unpublished > notify X > X checks and publishes.
No worries on not being able to show any code, im just struggling a bit because the only documentation on this stuff seems to be this page
which is great, but it doesn't actually tell you HOW to do it, and all the videos on Umbraco.tv are using VS, which I don't want to do this time around, I want to rely on prebuilt stuff within Umbraco as much as possible right now.
(just started a new job where its primarily umbraco, so im learning the ropes)
And then I plan to ease myself into VScode etc, but you think i can do it all within the cms using the surface controllers?
Can Umbraco do user submitted content, from the front end?
I'm sure it can, but just asking the question so I can get some tips on what I need to be googling, I'm working on a practice project where eventually I would like users of the site to be able to interact with the site, without seeing Umbraco.
Think a website where people could go to look at cats, but then they upload their own cat for people to see, just by logging in to their profile from the front end of the site.
So far when I google things like Umbraco forms to database etc I'm not coming up with much.
We do it a lot on our site (upventur.com), you just need to work with the content service and IContent. Its not that difficult.
Though, depending on what you are doing - often times you are better off adding some additional tables to the database. In our case we do that for service providers (adventure guides) - the base information that has been historically pretty static is in the CMS, where as things like rates or calendar type information are off in other tables because the change and are interacted with quite frequently.
Hi Kieron
Create Umbraco content nodes only if it will be a separate page, in other cases just create rows in the custom table and show the data on the site
/Alex
Thank you both for your responses, Alex and John;
It's good to know its possible (I knew it would be)
I guess my next question would be where would you advise I start looking to get this kind of functionality going?
So I will be looking to allow user registrations, (that bit I think I can figure out from google) but its the other part I'm not entirely sure what I'm searching for; allowing people to submit to the website, to be displayed on the website.
Seems the content service and Icontent might be a good start.
Thanks
Please, get back to us with some results.
I worked on a project recently where user registrations are done using a form submitting to a surface controller. This in turn uses the Membership service to create new users and amend their (some custom) properties.
Once done, I've defined multiple "document types", where I then use another form/controller to allow the members (users) to create content of those document types.
I decided to use built-in document types and members so that I could use the already provided services, but also so that administrators could view/edit the user-generated content in the Admin UI tool (not that they really should, but hey ho). That way I'm using the existing functionality as much as possible, and only having to create some ajax forms on the front end to interact with the MVC controllers.
It would have been done with custom DB tables, but I'm not as familiar with SQL so I stuck with the built-in functionality mainly for the reasons above, at, I admit, the expense of a little flexibility in my end solution.
I've learned how to do all of that with some pretty basic searching through the forums, Stack Overflow and 24DaysIn. Another name that cropped up a few times (on the CodeShare website I think) is Paul Seal - any articles/videos I've found by him always seem to be pretty useful and informative.
Hope that helps somewhat - what you're trying to do is definitely feasible in my experience.
That sounds like what I need to be doing, it'd be nice to use the Umbraco functionality as much as possible.
Forms > ajax > mvc controller seems like the way I want to be heading also, now to go figure it out, thanks :-)
Hi Kieron
Great plan, it would be nice if you share with our community some code examples, how did you achieve this
/Alex
Hey guys, had another question but thought I would ask here instead of starting a new topic.
I am now looking to have users submit content directly to a content node, from the front end, so my example again, now I have users registering and logging in etc, they come to the website, fill out a form that has information about cats, and then this submits to the cats content node.
Upon googling I see plenty of tutorials about making controllers etc, but ideally, I want to do all this within the Umbraco cms? is this possible?
and Umbraco Forms is too expensive :p
Thanks
Again Umbraco Surface Controllers and the content service seem to be exactly what you need. I've done precisely this and it works well. Of course you may want to put some checks in place to make sure that you (or someone) vets whatever is submitted and not just added directly to the site.
In my example, the content created by members was only visible by those members due to the member authentication, but standard unobtrusive validation will allow a validated form to be submitted to a controller, then return back to the original page with a confirmation/error message, or redirect to another page, depending on your requirements.
I wish I could show you some code, but I'm not able to (client NDA) but I found the content service fairly straightforward and surface controllers seem the perfect way to handle this type of task.
Hey Alan, thanks for your response.
Yep ideally I would submit the content as unpublished > notify X > X checks and publishes.
No worries on not being able to show any code, im just struggling a bit because the only documentation on this stuff seems to be this page which is great, but it doesn't actually tell you HOW to do it, and all the videos on Umbraco.tv are using VS, which I don't want to do this time around, I want to rely on prebuilt stuff within Umbraco as much as possible right now.
(just started a new job where its primarily umbraco, so im learning the ropes)
And then I plan to ease myself into VScode etc, but you think i can do it all within the cms using the surface controllers?
is working on a reply...