Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeUsing DNN Platf...Using DNN Platf...Administration ...Administration ...Detailed API documentationDetailed API documentation
Previous
 
Next
New Post
10/25/2012 2:47 AM
 

I am finding documentation on the DNN API to be very difficult to come by. The reference is OK as just that (a reference) but there are no explanations of the various methods, no sample code, etc, etc. http://dotnetnukeru.com/dnndocs/api/i...

For such a mature product I find this a little surprising. I have found various content around the web but it's all terribly fragmented and/or out of date. What I am looking for is something that describes not just the method signatures but also how the API can be used in practice.

An example... I have started playing around with the API and have a TabInfo object. That seems to be fully populated but I'd expect to find a list of it's containers but I don't see this as a property. I am sure I am missing something - hence my hope to find descriptive documentation, rather than just reference material.

Short term, I am looking for a way to identify modules on a page I copied (from another page) and how to update the HTML in that module (an HTML module). I'd like to understand how tabs, containers, modules and their content are exposed in the API and their relationships.

I have spent far too long trying to locate information on how the API fits together. So, any pointers would be most appreciated.

Thanks.

Mark

 
New Post
10/25/2012 3:05 AM
 
Some of the books might help with the concepts.

The hierarchy goes:

A page (aka as a tab) may have many modules. The containers are only a skin convention and you don't really play a part when manipulating data through the API.

You can identify the modules on a page using the ModuleController:

Dim objModules As New ModuleController
For Each pair As KeyValuePair(Of Integer, ModuleInfo) In objModules.GetTabModules(objTab.TabID)
Dim objModule As ModuleInfo = pair.Value

' Do Something
Next

Bear in mind, if you are going to update the HTML module, you'll need to go through that module's API for updating content.

https://dotnetnuke.svn.codeplex.com/s...

As for the core documentation, I totally agree.

I found things like the http://uxguide.dotnetnuke.com/ extremely helpful and wish there was more stuff like this.

Scott McCulloch
Developer, F5 Networks
Owner, Ventrian DotNetNuke Modules
 
New Post
10/25/2012 6:06 AM
 
One thing that you need to understand is that the core api does not have any direct relationship to individual modules.

Yes modules are consumers of entities and other elements of the api but the api itself does not directly control the actions or content of individual modules.

To clear up some other confusion - the tabinfo object has no containers - its simply the info class that describes the tab details - being its name, title, permissions, skin elements etc.

To access the list of modules stored on a page you would need to access the GetTabModules method of the ModuleController - but again this only gives you the info class of the module - again being its details - name of module, title, permissions, module type etc

To interact with the contents of a specific module you would then need to utilize the api metheds of the particular module As such interacting with the HTML module would involve utilizing its html api classes = not those of the core api.

Westa
 
New Post
10/25/2012 3:23 PM
 

Thank you, Wes and Scott. I am starting to grasp the essentials of this now, although the lack of effective documentation is indeed frustrating (and frustrating).

As you have both pointed out, I am going through the API of the module (rather than the core API) so that is coming together for me somewhat. I am using GetTabModules to fetch the collection of modules on my page I created (from the "template page"). I have 19 modules on my page but I still don't understand how I can easily identify the HTML modules I need to update. I have a few HTML modules on the page but there are two in particular I need to update, both in the ContentPane.I am not clear on how I can reference those (just using their index number in the list of modules is obviously something I'd like to avoid, since that can easily change if I add/insert a module to the page).

Is there some sort of ID I can use to tag the HTML module in the template page which would then flow across to the new page, with that ID associated with the HTML module? I could then retrieve the module by that ID (if memory serves, there's a method to retrieve by name, right?).

By the way, one thing that confused me early on was the need to use CopyModules to copy - er - a tab. I would have thought I'd first use something like "CopyTab" and then CopyModules. Logically, I would not have expected to use CopyModules to copy a tab.

Thanks again. Due to the pending expiration of my Professional license this has some urgency (and I'd like to get a lot of work on this done this weekend).

Mark

 
Previous
 
Next
HomeHomeUsing DNN Platf...Using DNN Platf...Administration ...Administration ...Detailed API documentationDetailed API documentation


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out