Online training site?

Posts: 5
Joined: 04/29/2008

This is an update of my earlier posting here. I've finetuned the concept and come up with a solution of sorts, but I'm still hoping someone might have a better idea.
Basically, I'm creating a subscription site like an online training site. Here's how it will work: every new subscriber (no matter when they subscribe) will first receive lesson #1, then lesson #2 a week later and so on. Then at the end of the course (lesson #30, after 30 weeks) the subscription expires.
It's easy enough to add subscriptions for content with Ubercart, but the hard part is restricting access to content so that subscribers are forced to follow the training sequence. Whichever way I look at it, this involves creating (and then managing) a lot of roles.
Here's the best solution I can come up with so far:

  • Use Content Access module to restrict each lesson to an equivalent subscriber role. For example, "lesson #1 subscriber" role gains access to lesson #1, "lesson 2 subscriber" role gains access to lesson #2 (while also retaining access to lesson #1), and so on.
  • Use Ubercart to sell the "lesson #1 subscriber" role.
  • Use the Administer Users by Role module to upgrade users to the next subscriber role each week (eg "lesson #1 subscriber" becomes "lesson #2 subscriber", etc).
  • Use a newsletter module to email subscribers with links to their latest lesson.

It works and I'm impressed with Ubercart and the other modules, but I keep thinking there must be a better way. I've looked at a lot of Drupal modules and forum topics, and even checked out other CMSes, LMSes and shopping carts, but I can't bring myself to leave Drupal and Ubercart.
Does anyone know of a better solution? Although the Administer Users by Role module makes changing roles much easier, something automated would be ideal.
In the long term, adding these features (with automation) to Ubercart/Workflow.ng could be appealing to a lot of people in the online training area. However, in the meantime, I'm open to any ideas, big or small.
Thanks.

Posts: 5378
Joined: 08/07/2007
AdministratorHead Code Monkey - I eat bugs.

Honestly, what you've got going on sounds good to me. Unless there's some other restricted access module out there that I don't know about, I think you're going to be hard pressed to find something pre-made that's specific enough for your situation.

I could see this as a good use case for a custom module that would only allow users to view specific content of a particular node type... integrate that with workflow-ng to handle the automation... but no such things exists at present.

Posts: 15
Joined: 05/15/2008

For training of any kind, Moodle will be your best bet.

Posts: 5
Joined: 04/29/2008

Thanks, it's nice to have some confirmation of that. I just wanted to make sure I wasn't overlooking a simple solution.
It's an unusual subscription model - I recommended a basic download product setup (simpler for customers, in my opinion, and simpler for me), but it wasn't my call.
Still, I can see the attraction for online training, and some sort of custom module that handles the whole process could be popular. However, I realise that wouldn't be easy. To fully automate the process, I imagine the module would have to hook into Ubercart's subscriptions, Workflow-ng, Drupal's roles, etc. It's certainly well beyond my expertise.
Anyway, what I've got now will work and is fairly easy to manage.
BTW, this is my first project with Ubercart and I'm seriously impressed. You guys have done an amazing job. Forum response is great too.
Thanks again.

Posts: 5378
Joined: 08/07/2007
AdministratorHead Code Monkey - I eat bugs.

glennr wrote:
BTW, this is my first project with Ubercart and I'm seriously impressed. You guys have done an amazing job. Forum response is great too.
Thanks again.

Thanks for the affirmation. I'm glad it's working out well for you. Smiling

And honestly, I love stories like yours where various modules were made to work together in a way the module developers never would've expected. Drupal is just awesome like that. Cool