DotNetNuke 6 introduces brand new Icon API to be used by module developers and skin designers to access icons and images in a unified way all across the framework. Simply pass a key (e.g. Add, Edit, or Delete) in ascx file or code-behind and get a Url back to an image without worrying about the physical location. No need to type that tilde in the path any more.
New Shiny Icons
Part of DotNetNuke 6 overhaul, we’ve replaced most of the system icons with a brand new set. The old icons were mostly Gif files, located under \Images folder. The new set are all Png files located under Icons\Sigma folder.
Note: None of the older Gif files have been removed, they may have been updated to match the new look and feel, but not removed.
New Icon Location
The new system icons are located under WebsiteRoot\Icons\Sigma folder. There are at least two copies of each and every system icon. Example: Edit.gif from pre 6 is now represented as Edit_16X16_Standard.png and Edit_32X32_Standard.png.
The first part of the name is the Icon Key (Edit), the second: size (16X16), and the third style: (Standard).
New APIs
There are three new static APIs available to obtain Url for an Icon:
DotNetNuke.Entities.Icons.IconController.IconURL(string key)
DotNetNuke.Entities.Icons.IconController.IconURL(string key, string size)
DotNetNuke.Entities.Icons.IconController.IconURL(string key, string size, string style)
Instead of using .ImageUrl = “~/images/add.gif”, simply use .ImageUrl = IconController.IconURL(“Add”).
New IconKey property for Web Controls
Similar to ResourceKey property for Web Controls to facilitate Localization, there is a new IconKey property available to major Web Controls which have native ImageUrl property.
These are the controls that support new IconKey property:
asp:Image
asp:ImageButton
asp:HyperLink
asp:HtmlImage
dnn:CommandButton
dnn:ImageCommandColumn
dnn:DnnGridButtonColumn
dnn:DnnImage
dnn:DnnImageButton
Instead of specifying ImageUrl property with relative url of an icon, the new property IconKey=”KEYNAME” and optionally IconSize (default 16x16) and IconStyle (default Standard) can be used without worrying about the physical path. Below is an example:
OLD
ImageUrl="~/images/edit.gif" EditMode="URL" KeyField="UserID" />
New
IconKey="Edit" EditMode="URL" KeyField="UserID" />
IconKey property is available on ascx files as well as in code-behind.
Roadmap
Currently Icon API supports a hard-coded path (Icons\Sigma) to icons, the upcoming version of this API will have a more configurable path where administrator can easily switch to a new set of icons without affecting the core icons shipped with the product.