Five years ago I built this web site to teach myself .NET and C#: http://seattleinsight.org. Now they'd like an update and I thought I'd investigate DNN, just to try something new, again. For the most part, I'm impressed with what I've read. DNN will make it easy to add lots of things they want like blogs and membership lists and announcements. These things seem to fit well into the DNN module architecture. But there are several features they need that will require me to do some custom module development for them.
However, there are a couple things I've not been able to answer for myself after reading the module development guides I've found. Maybe I'm just not thinking of it in the right way. Let me describe how audio works on the SIMS website today.
SIMS hosts classes and events. Most of these feature speakers. We record the lectures ("talks") at the events and post them on the web site. I created an admin screen where the talk admin can upload an MP3 and fill out various forms for class homework, talk description and select the speaker. Speakers (guest teachers) are defined in a different admin panel. These basically fill out tables for teachers and talks. The talks have a foreign key into the teacher table to reference the teacher who gave the talk.
So that's the db. Once a talk is uploaded and assigned to a teacher (and event), it affects several pages. You can view the talk on the talk page. Here's an example: http://seattleinsight.org/talk.aspx?ID=347 (excuse the lame formatting -- very old site). A link to this page is added to the talk library, to the bio for that teacher, and to the event page.
So back to DNN. I can see how to create a module that will only be viewable to the talk admin that uploads the talk. Similarly, I can see a module that could add a new teacher record. I could put these modules on the talk library page and guest teachers page, respectively. What I can't figure out is how to create the talk page programatically. All the examples I have seen require an admin to create a page, then you add modules to it. The talk page should not be editable by the admin. I can't allow them to choose a template and make each talk page different. They also can't do any more work than they do today, which is to simply upload the talk, choose a teacher, then all the pages are created or updated that needs to refer to that talk.
Am I missing something, or is this inherent to the page model DNN uses? Does it assume an admin creates pages rather than maintain objects is the db?
And finally, I imagine the talk page has content areas for downloading the talk, playing it in your browser, reading homework and description, etc. It also has a list of links on the sidebar called "related talks" that point to other talks in this series or on the same topic. I presume the "related talks" panel is another module I write that takes the talk ID and presents the list based on my stored procedure that grabs that data. How does this module pull the talk ID from the page? Do I sent it on the query string? Again, "related talks" is not an editable section of the page. That is, a talk admin will not be allowed to remove or edit it. It should just be part of the page template, but I presume it will need a talk ID in order to work.
Thanks for all your help. I know, I'm a DNN noob. I appreciate any help you can give me, or to point me to a decent example of a site that does something like this.
AldenG