DotNetNuke Daily Tip for 7/19/2006
DotNetNuke comes with a lot of functionality out of the box that people don't even know exists. Once of those items that has been overlooked by many with the latest releases of DotNetNuke is the DNNMenu, part of the ClientAPI Framework that Jon Henning has worked on.
The SolPartMenu is by far the most used menu for DotNetNuke, it's been part of DNN since the early days, and really can be quite powerful in its implementation. It's also been a big beef with a lot of skin designers as getting solpartmenu working just right can be a bit tricky, and torturous at times. I'm actually a fan of the SolPartMenu, but for today's tip I want to point you to a few resources on the DNNMenu.
I recently, as in last night, implemented the DNNMenu for my wedding site I've been putting together the past few days, you can see it implemented at www.horsesandcars.com.
The DNNMenu was created by Jon Henning, the same developer of the Original SolPartMenu. Here's a quote from Jon
“A few people asked me, the author of the Solution Partners Hierarchical Menu Control, why I would develop a competing menu control to my own. The answer is simple. The SolpartMenu is old and carries a lot of baggage with its almost 4 years worth of backwards compatibility. It has been a goal for v2 of the solpartmenu to abstract all of the common logic not specific to the menu into separate js files that could be reused by other controls and applications. This is exactly what the ClientAPI is; an abstraction of logic like positioning, DOM access, XML, etc. The script for the menu should contain only code for the menu, thus making it easier to maintain and enhance. So in essence, the DNNMenu is in a lot of ways the solpartmenu v2.0.”
And some of the features for DNNMenuKeyboard NavigationThe menu can now receives focus as the user tabs through the controls on the page. Once it has focus, you can use the arrow keys to navigate its structure. Pressing enter will invoke the menu item's clickaction.
Populate On DemandThe DNNMenu will support POD in the same manner as the DNNTree control. This provide a nice performance boost for those of you concerned with page sizes. I even had time to make the module actions menu support POD. See chart below for comparisons between each option and other menus.
Mouse In DelayOne of the features of the Solpart menu that was continually asked for was a mouse-in delay. This delay allows for people who are navigating to the sub-menus and accidentally move off the parent some grace period to get it right. The DNNMenu defaults this value to a quarter of a second (.25). I believe this is acceptable, however, for users used to the fast response times of other menus, it may look like the DNNMenu is a little sluggish. Note: At this time there is no way of configuring this property in the skin.
No Hardcoded MarkupProbably the biggest regret I had in the original design of the Solpart menu was the hardcoding of certain tags in the code. This included the NOWRAP attribute added to the menu items, the use of spacer.gif and to obtain the correct spacing, and the worst of all, the hardcoding of the border around the menu items when hovering. None of this hardcoding is present in the DNNMenu. Note: the one exception is the spacer.gif that is used to do the iframe trick. I need a url to point the IFrame to in order to not get the security error when the site uses SSL.
Option to Remove All Use of TablesThe menu supports a property that will completely remove its use of tables. Hopefully this will appease those developers and skinners who think that tableless designs are the way to go. I originally had the UseTables property default to False, but since it was too difficult to keep things lined up across browsers without adding some...
I've been doing some testing on a recent DNN module and noticed some issues that I think a 301 Redirect will handle.
Doing some quick googling I came up with the following topics to setup 301 redirects in asp.net.
http://www.wwwcoder.com/main/parentid/263/site/2668/68/default.aspx
http://scottwater.com/blog/archive/2004/04/14/PermanentRedirects.aspx
I'll be building this into the module tomorrow and will report back on the results in the next couple of weeks. Currently I've got a site with close 100 pages of content, but google is only seeing 6 of those pages. I'm thinking if I implement 301 redirects for a link tracker I'm using this may help. Time will...
Last week I got back from Nashville and posted about DotNetNuke training. Today Brian and I got our training information in order and posted on up the Engage Software website.
So if you're looking for DotNetNuke Training be sure to check out what we have to offer.
Posted from...
I gave a presentation last night to the C# User's Group here in St. Louis on how to get started with C# module development in DotNetNuke. I said I'd put together a blog post with some resources, so here it is.
How to develop and debug DNN with Windows Vista
How to Upgrade a DotNetNuke Instance
Using the DNN WAP Module
DotNetNuke 4 Module Development Guide from Michael Washington
Download DotNetNuke from DotNetNuke.com
Here are a few links to sites running on the DotNetNuke platform (The first three sites use versions of the Engage Publish module)
SeaPak.com
St. Louis Children's...
Michael Washington has put out a new module developers guide for DotNetNuke, he's got a link in his latest blog to the documentation page on DotNetNuke.com. Check it out, Michael has been hard at work on these two documents (parts 1 and 2) over the past few months, and they are great resources for getting familiar with DNN development.
Posted from...
If you're looking for a great cause, check out the recent developments over at the Children's Discovery Institute website, located at www.childrensdiscovery.org This site recently launched on the DotNetNuke Platform, utilizing the Engage: Publish module for some of the Content Management tasks that DNN doesn't provide. We've had a few people around the office hard at work getting this site up and running over the last few months. It's always good to see a project of this magnitude, and importance launch. The design was created by the great folks over at http://cfx-inc.com/, if you've never seen their office, you have to check it out. They're in an old Catholic Church.
Posted from...
I've had too many clients come to me and ask how they can search through all of their Text/HTML modules on a portal to look for links that point to their development URL rather than their production URL. Instead of telling them they had to manually look at every page to find all instances of these invalid links I created a new module, available from www.engagemodules.comEngage: F3 allows you to quickly and easily search through all Text/HTML modules installed on a site, generate a report of links found, and directly links to the edit control for each of those modules to allow you to correct the invalid links.Above and beyond the use case where you are searching for a URL, you can use Engage: F3 to search for any string within any Text/HTML module on your site.Future enhancements will include the ability to search through content of other modules, such as our Engage: Publish module, as well as the ability to search and replace all instances of a string without having to manually edit each entry.Best of all Engage: F3 is free! You can get it now from www.engagemodules.com, you can also download the C# Source Code for the module.
Posted from...
If you're looking for DotNetNuke support there are quite a few options out there.First, you can use the forums at DotNetNuke.com, but as heavily trafficed as those forums are some posts get lost in the rush.Second, checkout the Help page on DotNetNuke.com (thanks for M. Washington for pointing this out in the forums)Lastly, if you need some one on one support you can contact us at www.engagemodules.com either through the forums or contact forms, we offer paid support options for all ranges of business requirements.
Posted from...
A few months back there was a game of blog TAG going on with .Net related weblogs, I'm still bitter no one tagged me! So I'm starting up my own game of tag, this time it's DotNetNuke related tagging! So here it goes, the first in the game, and at the bottom of this post I'll list off 3 other DNN'rs that I'll "tag" and they should blog about their DNN history, and then tag 3 more DNN'rs each. So here goes my DotNetNuke History! I haven't reminisced in a while, I was trying to think of something interesting to blog about tonight, and figured I'd do a little community work! So here it goes, feel free to add your own "Story" when you get tagged, but first you must read mine! Back in the day I was working for a local company here in St. Louis, Swank Motion Pictures, www.swank.com. Don't let the name fool you, it's not that kind of company, it is a great family owned business here in St. Louis. I worked there for almost 3 years, that time around, I had previously worked there, twice. Back in 2002 I was working on Classic ASP apps, nothing too fancy, and without hardly any training whatsoever. In December of 2002 me and my boss took an Atomic.Net class with a training company in town called Quilogy, it was a week long class, and after the first day I was at home playing around with VisualStudio.net in the evenings. One of the first things I did while playing with .Net was to download the IBuySpy portal and store packages. I was actually interested in the two IBS packages because I was also a partner in a small racing business at the time, www.soloperformance.com, and I was interested in setting up a store on this newly learned wonder called .Net. Over the next two months or two I pieced together an application in which I merged the IBS Store and Portal into a single app, most of the work on this app was actually done while I was in San Francisco at VSLive 2003 in February. Sometime in Early January of 2003 I started to hear about this new application, the IBuySpy workshop, but for the life of me I couldn't figure out what it actually was, as I didn't see the original announcement for it in the forums. I saw forum posts referencing something called workshop but wasn't quite clear on what it was. It was probably a month or so before I figured out what the IBSW actually was, and started to try to use it. By Summer of 2003 I was using what was now called DotNetNuke on a few of the websites I ran for hobby, www.solo2.org at the time was one of the most prominent, but there were quite a few others as well. Sometime in the spring of 2003 I started to convert the application I had built using IBS Portal/Store into a DNN application. Considering how new I was to DNN, and actually how new DNN was to everyone, I was one of those guys who developed an application by hacking into the "core" code. Consider that my lesson learned! When I went to upgrade to DNN 2.* later, I learned just how painful it is to go from a hacked version of DNN to a newer version, and I've done my best since then to not hack into the core. By spring of 2004 I was actively posting in the DNN forum on asp.net, and also trying to assist with a project at the time known as ASP.NET Forums 2, I was hoping to help DNN and the Forums project merge together, or at least both use the same membership so that I could use them together to power SOLO2.ORG. In April of 2004 I got an email from my current boss. He saw some of my posts on the ASP.Net forums2 site and noticed I was in St. Louis, a few weeks later I was working for Engage Software in Des Peres, Missouri, www.engagesoftware.net. At the time Engage was starting to use DotNetNuke, and also a little bit of Rainbow portal for various client projects. I quickly came in and squashed all use of Rainbow portal, and we went complete with DotNetNuke for our portal projects. In July of 2004 I was informed I was being considered for membership on the DotNetNuke core team. This was a tremendous honor for ...
Last week we were able to release the long awaited new release of Engage: Publish with all new bells and whistles.Engage: Publish is an article management system / workflow engine for your DotNetNuke portal. It provides advanced content management capabilities with workflow - approval, content categorization and related articles. With Engage: Publish you’ll never have to worry about clicking the update button in DotNetNuke. Your content history is safe and sound. Plus, if you have multiple authors of content, you’ll be secure knowing that the content created by your authors will not be “live” until an administrator approves. All this plus several different ways of managing content categories and displays you'll wonder how you ever lived without Publish.A demo of Engage: Publish can be found at http://demo.engagemodules.com and you can find tutorials, videos, and more on the Publish Wiki page.Features Proven Content Approval Workflow Multiple Levels of Category Creation Article Versioning Ajax-Enabled Ratings and Comments Tuned for Better Search Engine Optimization Multiple relationships, articles can be related to multiple categories, as well as other articles. Categories can be related to other categories in a parent/child hierarchy Printer friendly support RSS support Advanced searching within categories Successfully passed the DotNetNuke Review Program Many more Engage: Publish 4.2 requires DotNetNuke 4.5.1, the ASP.NET Ajax Toolkit, and the ASP.NET Ajax Framework. Engage: Publish has been through the DotNetNuke Module Review programEngage: Publish is available for purchase from the DotNetNuke Marketplace, Snowcovered, and EngageModules.com.
Posted from...
Tomorrow (5/15/07) is the last day to submit topics for DotNetNuke OpenForce 07 conference in Las Vegas in November. If you're interested in presenting be sure to get your proposals in quickly!http://www.dotnetnukecorp.com/Events/OpenForce07/tabid/73/Default.aspxSee you there!
Posted from...
I'm happy to announce that I've been selected to speak at the OpenForce07 DotNetNuke conference in Las Vegas during this year's fall DevConnections. DevConnections looks to be one of the larger conferences this year now that the PDC has been cancelled for this year. I'll be presenting on "Portal Administration Best Practices".
I look forward to sharing what I've learned over the last 4+ years working with DNN in corporate and noncorporate environments, I've worked on some of the largest DNN implementations out there and hope to be able to share some of my experiences with those projects.
Being selected to present at the first DotNetNuke conference is a great honor. I know quite a few other guys from my company (www.engagesoftware.com) will be in attendance as well. My wife will also be coming out to Vegas, as OpenForce 07 is the 5th though the 8th of November, and her birthday is on the 4th, she'd kill me if I left her home. I've already got plans to rent a Harley out there for a day with another Core Team Member, and may setup a few rounds of golf while out there as well.
On a sad note, I had also hoped to make it to the SDC in the Netherlands in September, but received notification this morning that I wasn't accepted as a speaker for that conference. I guess that means I can spend time in September prepping for the SCCA Solo Nationals, assuming I have my car built by then.
See you all in Vegas! Stay tuned for more OpenForce 07 info as I have...