|
Things Learned
When the "Remember Me" feature of the DotNetNuke Login is enabled an encrypted authentication cookie is placed on the user's machine. The cookies short one hour lifespan makes it almost useless. However, the expiration of the cookie can be tweaked by editing a line in the web.config.
Read More...
|
|
DotNetNuke, Things Learned
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. There are multiple ways to prevent this...
Read More...
|
|
DotNetNuke, Things Learned
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...
Read More...
|
|
DotNetNuke, Things Learned
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.
Read More...
|
|
DotNetNuke, Things Learned
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, Things Learned
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, Things Learned
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.
Read More...
|
|
DotNetNuke, Things Learned
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...
Read More...
|
|
Things Learned
Something I've learned several times and have subsequently forgotten several times is that skinpath only works when your image does not specify runat="server".
When creating a skin, you often want to include images. This can be a bit tricky as DNN's friendly URLs makes it so that your path may be very different for the same page, i.e. www.efficionconsulting.com/default.aspx is the same as http://www.efficionconsulting.com/Home/tabid/1/Default.aspx. This means that most relative paths just won't work, i.e. /images/spacer.gif, image/spacer.gif, ... You can use more hard coded paths such as ~/Portals/0/_default/efficion/images/spacer.gif but that really limits flexibility as if you want to install the same skin as a site specific skin on a different DNN instance.
SkinPath is a great new feature where DNN will figure it out for you. Though I don't know why it won't work when runat="server is used"... Scott Wilhite has a nice write-up on this in this post.
|
|
Things Learned
For one of my clients, I needed to take their logo, shrink it down and place it against a dark brown background... easy enough it seemed. Since their main logo was dark in color, I had them send me a light colored version. It was an Adobo Illustrator file with a transparent background and I thought, "great, I'll just shrink it down as a gif with a transparent background and voila!".
But it was not to be... no matter what I did, the logo came out jagged and the text was unreadable... I talk to a Graphic Designer friend and he mentions anti-aliasing so I do my research and all becomes clear...
In order for an image to be anti-aliased, it needs to have a background color in order to blend it together with the other colors for the smoothing effect. With transparent GIFs, that can't happen as the software doesn't have a background color to blend.
And that's why most designers don't use transparent gifs much, they just don't look as good as a properly anti-aliased image... if you know the background color for the image, it's best to set that as the background in your image editing program and resize the image with that background.
Seems like opacity should be able to help out here... still more to learn...
|
|
|