Dotnetnuke Jquery Weblinks Module Database design

This is a continuation from my last post: Implementing jQuery ajax webservices in Dotnetnuke. At the end of that post I said that I was not sure that what I set out to do would work. However, since then I was able to prove that it can work. From now on I will be using the Ajax WEBLINKS project to demonstrate my method for using jQuery, Ajax and webservices  in Dotnetnuke in place of edit pages.

Plugin Wireframe

I am assuming persons reading this post are already familiar with the process of creating a Dotnetnuke module so I will not go into detailed steps for creating our WEBLINKS module. Below is a mockup of what our WEBLINKS module might look like on our Dotnetnuke website. The basic idea with this module is each tab can have its own set of weblinks with its own permissions.

Naturally, the add, edit and delete buttons will only appear for people with the appropriate permissions. Then webservice will also check the user’s role before executing  ajax method calls. I could go crazy with this and add separate permissions for adding, editing and deleting then add the option for admin to approve WEBLINKS; but that would require me to create a settings interface. Unfortunately, I don’t have enough time to do all of that. However, it is possible.

Designing the database

The following image is a rough design of the table which will store the WEBLINKS. I may need to change this design later on but it will do for now.

I created a database diagram which shows the relationships between the modules, tabs and their permissions to ensure my new entity fits in the Dotnetnuke database structure. The diagram only shows keys in some of the tables because I was mostly interested in the entity relationships.

I am not sure why there is a DesktopModules and a ModuleDefinitions table. Seems like these should be one table but maybe there is something I am not seeing. The modules table is what will hold the individual instances of our WEBLINKS module. This is where the values for our ModuleID foreign key will come from. This will allow each instance of our WEBLINKS module to have its own set of links.

Now that our module and database is sketched out, it is time to head to visual studio and get our hands dirty. My next post will cover the process of creating the skeleton for our WEBLINKS module.



2 thoughts on “Dotnetnuke Jquery Weblinks Module Database design

  1. Hey, great post. I’m the original poster of the question on stackoverflow that you responded to with a link to this blog.

    I still have a need for this functionality so, I appreciate that you are willing to share your progress via this blog. I think this approach will become increasingly popular and others will be interested also. Looking forward to your next post.

    Would you be willing to share code also?

    1. You are welcome Michael, I am happy to help. I will be providing the code as an installable module package. I will finish up these posts as soon as I get some free time.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s