All Articles



DotNetNuke: Getting User Profile Data through SQL

*** Updated: Added method for DNN versions 3.3 and 4.3 and greater ***
DNN 3.0 - 3.2
In DNN 3.0-3.2 and 4.0-4.1, the membership / profile stuff made heavy use of Microsoft's Membership provider module which stores most of the information in a hash table. While this is fine for getting a single user, it's a complete nightmare if you want to show a grid or list of many users or to do something with the data in SQL.

There's a good write up on how to get at this info through SQL at DNN Stuff.

DNN 3.3+ and 4.3+
The core team did a complete and much needed overhaul of the User Profile system for DNN 3.3 and 4.3. The grid on the User Accounts page is now a lot more flexible but it still won't help you if you want non-admin users to view user data or if you want to utilize profile data in SQL... Click on the Read More link to learn how to get at DNN 3.3+ profile data in SQL. This data could then be displayed using the Advanced Data Grid

DotNetNuke, Blog

Custom Toolbars in the FCKEditor Provider for DNN

When it comes to the toolbars for Rich Text Editors for clients to use to update there own sites, it is my firm belief that less is more. By default, the toolbars seem to be cluttered with endless options that rarely get used and in the end just make it harder to find the options users do need.

The FCKEditor Provider for DotNetNuke is great overall and exposes almost everything you need to set it up just they way you want it, including setting up different custom toolbars for different types of users (determined by role). But I haven't found much clear and concise documentation for adding your own custom toolbars. Here is how I do it...

DotNetNuke, Blog

Is your DotNetNuke site running slow

A common performance issue in some versions of DotNetNuke

Is your DotNetNuke site running ridiculously slowly and consuming massive amounts of your processor? It might be stuck in a bit of a catch 22... The scheduler is trying to clear the ScheduleHistory table, but it can't because the ScheduleHistory table is too full.

DotNetNuke, Blog

DotNetnuke: Is user an admin / administrator

DotNetNuke makes it easy to determine if the currently logged in user is an administrator (aka admin) or any other role for that matter. All you need to do is call the following: PortalSecurity.IsInRole("Administrators") or PortalSecurity.IsInRole("MyRoleName"). This function should return the boolean value very quickly as everything it needs is already in memory. You can call this from either the code behind or the ascx file (e.g. Visible='<%#PortalSecurity.IsInRole("Administrators")%>').

This can be very useful for determining whether or not to show a control or content meant only for the right groups eyes.

DotNetNuke, Blog

When you Dynamically Load a Control, you must explicitly set the LocalResourceFile

This is something I've learned and forgotten at least 4 times. Writing these types of things here helps me remember and seem to help quite a few other people as well. So...

Usually in DotNetNuke, if you want to associate a resource file with your control, you just create a resource file with the same name as the ascx file plus the .resx extension and place it in your App_LocalResources directory. DotNetNuke and/or ASP.NET auto-magically associates the file with your code and it just works.

However, every time that I create a control that dynamically loads other controls, I spend 30 minutes looking at names and file placement and... trying to figure out why the resource file doesn't seem to be loading. Eventually, it comes to me, for dynamically loaded files, you must explicitly set the LocalResource file.

To do this add the following line to your PageLoad function in your dynamically loaded control:

 LocalResourceFile = DotNetNuke.Services.Localization.Localization.GetResourceFile(this, "controlfilename.ascx");

To learn more about DNN Module Localization, check out the DotNetNuke Module Localization Guide.


DotnetNuke: Requiring Unique Passwords

DotNetNuke has a nice way to require unique passwords for all users. You can't simply go into the web.config, search for RequireUniqueEmail="False" and set it to RequireUniqueEmail="True". The problem is if there are already users with duplicate email addresses, bad things happen (It's been awhile since I've tried it and I don't remember specifically what happens but I know it wasn't handled well).

So, you need a way to remove the duplicate email addresses before you make the web.config change. This SQL will take care of it.


DotNetNuke: Getting fckEditor to use your site styles when editing

You may have noticed that when you edit text in DotNetNuke, what you see in the editor window may not look like what you see when you save your changes. This is because the fckEditor applies a different stylesheet in the editor window instead of any of the actual site css files. To change this, all you need to do is edit the web.config file for the site and set the proper value for the StaticCSSFile variable in the FckHtmlEditorProvider section.

So search your web.config for StaticCSSFile. And update it to point to your desired css file (e.g.  StaticCSSFile="~/Portals/0/Skins/MySkin/skin.css"). Save your changes and you should now see the proper styles when you edit content.

I initially tried making changes to the EditorAreaCSS variable in the fckconfig.js file as this is the standard place to make fckeditor changes but that proved to be a dead end. Not sure why the DNN folks implemented this in the web.config instead.


DotNetNuke- Code Tokens

Quick tips for getting more from your skin.

Here's a compilation of tips and tricks for getting at more than just <%= SkinPath %> in your DNN skin.

To show the name of the Portal:
<%= PortalSettings.PortalName %>

To get the current portal's home directory (i.e. /portals/0 ) you would use:
<%= PortalSettings.HomeDirectory %>

DotNetNuke, Blog

Quick review of DotNetNuke ECommerce stores

We've been doing a lot of DotNetNuke based E-Commerce projects lately. The projects we've done have really spanned a variety of store types (wine, audio files, church stuff, an automated shutoff system, resistors, printing products, and more), client types (wineries, churches, incentive programs, manufactures, master distributors) and feature requirements. So far, for all the DotNetNuke based E-Commerce sites we've built, we've used Catalook.

Catalook has a huge number of features, an immense number of configuration options, and is probably the worst implemented piece of software I've ever used. But it works. At times, though, I think it would be faster if I had just built the E-Commerce pieces of each of the sites from scratch.

DotNetNuke, Blog

DotNetNuke ECommerce Review: eTailer by Emerald Solutions

Updated: December 2, 2008

eTailer from Emerald Solutions is a fairly new entry in the DNN e-commerce world. While there is a great deal of promise in the product, my brief attempt at using it seems to indicate it's not ready yet...

Purchasing, downloading, and installing it went smoothly. eTailer adds a reasonable 5 modules to your DNN install (much better than the 23+ modules Catalook adds). Initially getting things setup and going seemed quite intuitive.  I created a new page and added the "eTailer Store Front module". It had a nice obvious link that allowed me to Add/Modify Products. And so I was off and running, or so I thought...

UPDATE: The developer recently notified he was going to step away from DNN development for 6 months. To me, this means you need to stay clear of this product as there's no guaratee it will continue to be improved or supported.


DotNetNuke: Which modules are being used (and which aren't)

Sometimes, you need (or want) to know which of the modules that are installed on your DNN site are being used, which aren't, and where a module is being used. This can be useful if you want to uninstall unused modules for performance improvements or if you're planning on upgrading your site and you need to know what modules you'll need to test or upgrade. Here's some sql that will help you answer these questions...

DotNetNuke, Portfolio, Site Announcement


Efficion Consulting, in partnership with Lieneke Group and ITArchitechs, recently completed, an e-commerce web site for an automatic water shut-off system. Built on top of DotNetNuke, the site features: a custom design built to appeal to WaterCop's target audience; a clean, easy to use online store with 3 separate interfaces geared towards the different levels of users; interactive flash animations that describe the product's appeal and functionality; a powerful administrative interface that makes it easy for Watercop staff to administer and update the store, process orders, and track detailed sales information. In addition, the site includes many customizations to tailor it to the exact needs of the client. Some of the customizations include:

  • Configuration Wizard - Walks new users through the process of buying the WaterCop System
  • Reseller Capture - A module that integrates with the E-Commerce system for capturing information on potential Dealers and Installers in order to grow the WaterCop reseller network
  • Dealer Locator - Enables users to quickly find local resellers. The module integrates with the Google Maps API to present information in a clean easy to use format.
  • Rapid Order Entry - Streamlines the order process for Dealers and Customer Service personnel
  • Custom Reports - Provides advanced analysis capabilities through tracking sales and statistics data relating to purchases, site statistics, and user information.
DotNetNuke, Skins

Standardizing on Telerik's RAD Menu

One of the biggest drains on our time has been the menu system. As a result, for the last year and on into the future, we now only build our skins using Telerik's Rad Menu. To be continued...

DotNetNuke, Skins

Efficion's Clean Skin

Image: Efficion's Clean Skin So many skins, so much bloat...

There are many thousands of skins out there in the DNN universe. Many companies specialize in producing skins for DNN and other CMS systems. I haven't spent a lot of time looking, but most of what I've seen, just isn't what I'm looking for.

As a developer with very strong HTML and CSS skins, and solid but limited image manipulation skills, what I really need is a good starting point so that I can quickly build out a custom skin that speaks to the personality of my client organizations.

Over the years, I've spent quite a bit of time producing and refining a skin that has exactly what I need to get started, and nothing extra. I have focused on creating truly clean, proper, HTML  that works on all (within reason) browsers. And the few nice clean images it does use make it easy to manipulate the skin into any color in the known universe.

You can see an image of this skin now. Soon, I'll be sharing the source of it with everyone. Many people simply won't get it, "Not enough pop", "where's the stock photos", "too generic", and that's fine, but I'd love to see the skin that ships with DNN be a lot more like this.


DotNetNuke, Blog

Protect Email Addresses from Spambots

One thing I think it's important to do is to protect my clients from spam. Clients like to be able to put their email address on their sites. But, putting an unprotected email address on a site can soon result in a lot of spam as spambots search sites looking for email addresses to add to their lists, often referred to as "harvesting". There are multiple ways to prevent this...

DotNetNuke, Blog

Programmatically determining the site's Fully Qualified URL and Path in DotNetNuke

There are hundreds of different functions and variables available through DotNetNuke, ASP.NET, and HTTP which can give you a variety of variations on your sites URL. I often find myself needing one variation or another as I'm building one application or another. The problem is, I have yet to find a clean and consistent way to get at the site's root or fully qualified URL regardless of whether the site is in a virtual directory (i.e. or, for sites with virtual directories For DotNetNuke, I'm now using the following...


DotNetNuke, Blog

DotNetNuke: Enable Human Friendly Urls

 DotNetNuke 4.8 added Human Friendly urls, but unlike Friendly URLs, it can only be enabled through the web.config. To enable human friendly urls, replace:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" />


<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="HumanFriendly" />

UPDATE: In DNN 7.x, DNN incorporated the URL Master functionality for much improved URLs. To enable this, you should now use "advanced" rather than human friendly.
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" />

NOTE: Keep in mind though that no 301 Redirects for existing URLs are created so if you implement this for a site that has been around for awhile, you should make sure to manually create 301 Redirects or set up Canonical URLs for all existing pages to make sure to not dillute your link juice.


DotNetNuke Corporation raises funding through venture capital

The for profit wing of DotNetNuke, the DotNetNuke Corporation, announced an infusion of funding today from a couple venture captical firms. As someone who's livelihood is intricately tied to DNN, I've got mixed feelings about this news. While I fully appreciate that the new funding should help take DotNetNuke to the next level, both from a features and functionality as well as a marketing and penetration perspective, it also worries me that priorities may shift, revenue may trump the "common good", and everything may get more profit minded and expensive. So, we'll just have to wait and see...


Improving Your DotNetNuke sitemap

 There's an interesting article on a fairly simple way to improve the sitemap that DotNetNuke generates for you. It doesn't require any core modifications but does set page priority up in a way that makes a lot of sense while also not requiring much work.

DotNetNuke Sitemap Improvement by Equana Solutions

DotNetNuke, Site Announcement

Articles Version 4.1 Released

Image: Articles Version 4.1 Released

Version 4.1 of Efficion's Articles module for DotNetNuke is now available. Our previous release, 3.2.6 was downloaded over 30,000 times. The Articles module provides a range of features that make it a great tool for many uses including: news, announcements, events, blogs, and much more. Learn More...

Page 1 of 3First   Previous   [1]  2  3  Next   Last