Articles
DotNetNuke

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

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.

  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.

  

Site Announcement

Efficion partnered with IT Architechs in creating a new website for the Small Patent Law Group, a law firm that's serves as an intellectual property boutique. The site was built using DotNetNuke to make it easy for SPLG's staff to make updates to the site. In addition, SPLG will be able to use secured sections to share private information with their clients.

  Read More...

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...

This page will describe options for playing and/or allowing downloading of audio from a website. Ultimately, I think the best answer is a specific combination of the options below: -use flash for streaming, provide a link for downloading, if a feed, provide a link to the rss feed (aka Podcast).

  Read More...

Site Announcement

For several months now, Efficion has been turning down most new projects as our existing clients have been keeping us plenty busy. In hopes of better serving existing and new customers as well as spending more time with our families, we've been looking for the right person for awhile now and Eric seems to be the perfect fit.

Eric has spent the last 12 years working in IT and Management roles in the St. Louis area.  His skills range from troubleshooting and website development to graphics and accounting with some culinary arts and photography on the side.

  

Site Announcement

This site, built on top of DotNetNuke, provides a great deal of information for users interested in making their home safer. Efficion created a custom design incorporating the existing logo and based on the owner's ideas and desires to create a custom look that truly reflected the mood and imagery the owner desired. We incorporated a range of modules, along with custom enhancements to existing modules to present information cleanly, clearly, and efficiently while still making it easy for the owner to make site updates on his own.

  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...

Site Announcement
We've just put a new site for Mount Pleasant Winery live. Mount Pleasant is a world class winery located an hour from St. Louis. The primary feature of the new site is the online wine shop. Online sales is a significant part of Mt. Pleasant's business and the new shop gives them a great new look along with lots of features and flexiblity to maximize their sales. Additional features are still in the works.   Read More...

Site Announcement

Efficion is in charge of designing and creating all new sites for The Pyramid Companies, a developer of lofts and housing here in St. Louis. We've been putting out a new site every month for their various developments along with a variety of enhancements to their existing sites. All solutions are built using PHP, HTML, and CSS.

Some of the new sites we've created:
PyramidStl.com | Leather Trades Lofts | Sullivan Place |
Charleston Square | Covenant Place

  

DotNetNuke
Efficion created SpiritBreak.com, a site the provides spiritually oriented videos, for FaithStreams.com. The site was built using DotNetNuke to make it easy for the FaithStreams folks to add and update content and videos and we used Flash Video to provide a consistent and seamless experience for all users.   

DotNetNuke
Efficion is hoping to release a beta version of version 3.3 of the Articles module sometime next week. We continue to add some great and highly requested features including: ability to play Flash Videos (same as Google and YouTube use), new detail display options, Detail Page templates, ability to specify a file for the Detail Type, support for URLTracking, Sorting by Article Title, improved Category integration, ability to specify roles that can view Article Details, and FriendlyURL support.

UPDATE: We are continuing to add additional features to version 3.3 at client request. We hope to release beta 1 of Articles 3.3 by Friday, Oct 30.

UPDATE (Nov. 9, 2006): Whoosh! There went another self-imposed deadline. But I am actively working on the module now and very excited about changes and new features. I'm adding Send To A Friend capability, I've made adding templates easier as now you can just drop them in the Articles/Templates directory, I've fixed some bugs, and I've got some other nice things planned. Don't worry, I still expect to release a beta soon. Hopefully within the next week or so.
  

DotNetNuke
Check out my new page on adding video streaming in DotNetNuke... or any page where you can use add HTML.   Read More...

DotNetNuke
A sample video playing within DNN.   Read More...

DotNetNuke
An alpha of version 3.3 of the Articles module is now available. This version is not yet recommended for live sites as it hasn't yet received sufficient community testing. Features may change and additional features may be added.

New Features include:
-Option to display Detail on Same Page as listing so the other module will still display.
-Option to display Detail on a completely different page
-Detail Page templates- Allows for modifying the look of the details page.
  Read More...

DotNetNuke

*** 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

  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...
  

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