Tagged Posts

Chris Hammond
One of the things I’ve failed to do with my latest free open source skin, HammerFlex, for DNN is provide a good overview of how to utilize the skin. To really understand a skin, one must know the layout, and the thought process behind the layout (panes).
Chris Hammond
A month or so ago I released a new open source skin for DotNetNuke (DNN), called HammerFlex. One of the cool things about the HammerFlex skin is the implementation of Bootstrap, and specifically the Carousel feature that allows you to add a carousel/slider to your site. The skin is designed to use the carousel at the top of a page, I haven’t tried it elsewhere, though it might be possible to use in other Panes in the DNN Skin.
Chris Hammond
I decided recently it was time to upgrade the look of my various websites, and while I originally considered modifying my MultiFunction skin for DNN, ultimately I decided to start from the ground up and create a new Skin for DNN using Bootstrap (http://getbootstrap.com), I’ve decided to call it HammerFlex.
Chris Hammond

My website was due for an overhauled design, somehow a full year came and went and I hadn't done any major updates to the website. I guess that is what happens when you, move, change jobs, and have a second child in on year, time sort of magically goes away.

A couple of weeks ago I started working on a new DNN skin, to replace my MultiFunction skin that I've had in use here on ChrisHammond.com for a number of years now. Initially I was going to work on upgrading MF, but after giving it some thought, I felt like I wanted to start over, and this time around I wasn't sure that I was going to create an open source skin, most likely just something that I would use for my own websites, of which I have plenty to spread the skin around on.

Chris Hammond

Earlier in 2013 I started working on a new round of DNN Module Development tutorials. For a few months now I've been promising that I would finish up that series, but at this point I am going to announce that the series is on hiatus. 

There are a number of reasons for this, the primary of which is that I am simply too busy. My work role at ClubReady, Inc. has changed over the past month, was promoted to the Director of Customer Experience leading a team of 14 other folks, including developers and customer service staff.

Chris Hammond

In October, the SignalR project had their first official 2.0.0 release, and with that comes a number of changes to make your modules work with SignalR. You can upgrade your SignalR package via Nuget.

You can find a guide to upgrading your projects at http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/upgrading-signalr-1x-projects-to-20

Chris Hammond

In a previous blog post I talked about what you can do to get DNN 7.1 working if you previously had Xepient's Open Search installed. One thing I failed to cover though, was what happens after you disable open search? You likely no longer have the DNN Search Results module on a page, and after upgrading to DNN 7.1.2 (I didn't notice this in 7.1.0) you may find that the "Preview" search results in the Search SkinObject no longer work.

You may not actually notice, but if you try to "search" and you just get redirected back to the page you were on when you searched, you likely are running into the problem I have a fix for below.

Chris Hammond Google+

I upgraded a number of websites to DNN 7.1.2 tonight, and I ran into two different problems, this blog post will hopefully help you address the issues that I ran into, if you happen to run into them as well.

Disclaimer: Always backup your website/database before making any changes or running any SQL scripts you got off the web. I don't take any responsibility for damage you cause to your own website, but if you need consulting help with your DNN site, I am available.

Chris Hammond Google+

In a previous blog post I talked about how to use SignalR with your DotNetNuke modules, well, if you are using DNN 7.1 and the "Advanced" URLFormat option (upgrades won't use this by default, new installs will) then the SignalR/Hubs route will no longer work, DNN will return a 404 for that path.

What you need to do is "override" the URL settings in DNN. In the DNN Platform, you have to do this manually, via the database, I believe the EVOQ ($paid$) versions have a UI for this, but for those of us who focus specifically on the open source platform, you need to make manually update database entries to customize the URL handling in 7.1+.

Chris Hammond Google+

I was upgrading a customer's website this evening, in a test environment thankfully, and ran into a problem. The upgrade appeared to run successfully, minus one little issue with a primary key (in the 6.0.0 script).

But after running the upgrade, the website wouldn't load. I kept getting an error in Chrome, and then finally started getting 503 errors as the server shut down the application pool completely.

Chris Hammond
I started this list a while back, and decided I would go ahead and finish it, and post it online. Thanks to Oliver Hine for #9 As someone who runs, edits or develops for a DotNetNuke website, these are 10 things you should always stick to.
Chris Hammond
I have released version 2.2 of my open source DotNetNuke Module Development Templates. Version 2.2 is really just a minor update for the release, with a couple of fixes, one big, and the rest fairly small.
Chris Hammond

I’ll start this post off by stating a few things. One, I don’t work for DotNetNuke Corporation anymore, but I still love this project and will continue to work with it for the foreseeable future. That being said, expect tough love from me going forward.

The messaging feature was added in DotNetNuke 6.2, and since then it might have seen a bug fix or two, but it like most other features added to DotNetNuke over the past 4 years, has remained stagnant and seen no additional enhancements.

Now, how can you go about trying to improve the Messaging in DotNetNuke right now?

One of the biggest problems with the messaging module is the message that actually gets sent to the email address of the person receiving the message. It contains absolutely NO information on WHERE the message came from, other than the username of the person who sent it, in the SUBJECT of the email.

Chris Hammond

This post will provide you with a basic tutorial for utilizing SignalR with custom DotNetNuke Modules. If you want to bypass the blog post go check out the source on GitHub, you can Fork my Repository. The module created here will be very simple, if you want a full blown module with more features be sure to check out the open source DotNetNuke Module SignalRChat, and see it in action at http://dnnCHAT.com/

SignalR is an ASP.NET library for using websockets and long polling in your applications. Basically what this means, is that you can have your web pages (or apps) maintain an open connection with a webserver, passing data back and forth, without having to do standard posts and gets for the content and functions. SignalR is a free library that you can get from www.signalr.net and you can DL from nuget.org right into your Visual Studio projects.

Chris Hammond Google+

imageJust because I don’t work for DotNetNuke anymore, doesn’t mean I am done with this fabulous platform. For my new gig at ClubReady (, I started this past Monday) I am not doing DotNetNuke related work, but I am still working on the web. I was doing some research and testing with SignalR, if you want to find out what it is, click on the link there and check it out. In short, it allows for webpages and apps to have an open pipe between the client and the server, allowing you to send information back and forth with ease.

Chris Hammond
If you’re a developer who frequently creates DotNetNuke Module Projects, than you likely realize DNN is far easier to work with when you run Visual Studio as an Administrator. Why? Because DNN, and the method of module development that I preach, requires your environment to use IIS locally, not with dynamically assigned ports and such that IIS Express will use.
Chris Hammond
It is with a bit of sadness, and a bit of excitement that I put together this blog post. After February 15th I will no longer be an employee of DotNetNuke. I’ve been with the company almost 3 years (March 1st would have been my anniversary), and I’ve been working with the project for the past 10+ years and worked for one of DotNetNuke’s leading partners, Engage Software, for almost 6 years before starting with DNNCorp.
Chris Hammond Google+

This blog post is no longer being maintained, visit the Christoc.com Tutorial for customizing the module development templates.

With the 2.0 release of my module development project templates last week I’ve had a few inquiries into how to customize the templates. You can download the templates from http://christoctemplate.codeplex.com/

Why Modify the Templates?

First, why might you want to modify the custom templates? The main reason is that these templates are defined using a specific namespace, DotNetNuke.Modules.*, which is fine in most cases, but what if you want to use your own namespace? Well you have to create a project, then search/replace all instances of that namespace, while not removing any DNN references at the same time. Customizing the project templates will allow you to define your own company namespace, email address, website, and even copyright information, in the template so that you do not have to search/replace every time you create a new project.

Chris Hammond Google+

imageWith the release of DotNetNuke 7.0 (and now the more recent 7.0.2), it was time to update my module development project templates. If you have worked with my module development templates before, here are the major changes for this release. If you haven’t worked with them before please read this whole blog post as I discuss how to get up and running with the templates.

Chris Hammond
If you have a DotNetNuke website that has been around for a while, you likely have a large number of pages on the site. Many of those pages likely have individual Skins (themes) applied to them. When there is a skin defined at the Page level in DNN, that setting overrides the skin that is defined at the website level, meaning, if you change the skin at the Website level, it would not change the look and feel of any of the pages with their own skins defined.
Chris Hammond

This video kind of fits.

Today I had my first eye exam in 15, probably more, years. It is time to get glasses. So. I have that going for me.

For those friends/family who haven’t heard yet. We have two announcements here for the blog (besides the whole glasses thing).

1) We’re having another baby! #2 is on the way in June 2013, no other details just yet.

2) We’re moving! Again. Go figure. We’re headed back to St. Louis, our lease starts on the first of December. We’ll hopefully get a 2012 Xmas card out right after Thanksgiving with the new address for everyone. If you need it before then, email me.

Answers to a few questions:

No, we don’t know if the baby will be a boy or a girl yet.

Yes, I will still be working for DotNetNuke.

Chris Hammond

I was trying to do some work with the Form and List module in DotNetNuke today and I needed to apply some custom styles to the LIST view of a module, without going in and creating a full XSL template for the module to use, I wanted to style the default table based grid view.

In order to customize this view though I needed to do some custom jQuery that runs after the table is loaded, the jQuery then goes through and looks for columns, and based on the number of columns, adjusts the way those columns display.

First I wanted to make it so that a specific column didn’t have text wrapping, which in HTML would normally use the nowrap property on a column, but because of the dynamic nature of F&L you can’t configure that manually. To achieve this I needed to loop through each Table Row (TR) in the table, and then find the column in question, and apply the css attribute/value for white-space/nowrap. To do this I used code like the following.

$("#tableId tr").each(function(){
    var cellCount = $(this).find("td").length;

Basically that goes through and finds each row in the table, then checks to see how many columns there are. I do this because the VIEW for the table when you are logged in, versus when you aren’t logged in, is different, the F&L module adds an Edit column at position 0, so you can see in the ELSE statement I basically want to set the width on the 2nd column, position 1 in the zero-based array.

If you want to do something similar for the HEADER row of the table you have to do things slightly differently, using the following code

$("#tableId tr:eq(0)").each(function(){
    var cellCount = $(this).find("th").length;
So there you go, you can use that jQuery above to go through and make changes to columns in an HTML table, depending on the location of the cell.
Chris Hammond

Things have been quiet around here, so I figured it was a good time for a status update that is longer than 140 characters.

We are in the middle of the process of planning our next move, true to our nature, we’ve been in Half Moon Bay for less than 18 months, and we’ll be heading back east. We’re going back to St. Louis in December, and currently looking for a place to live. I’ll be working from home and travelling back to San Mateo at least once a month to be in the office at DNNCorp.

The move and planning for such is taking up most of our time, though I am also travelling a lot for work lately, headed to Columbus next week and San Antonio after that.

Here’s a photo of Natalie and Jacqueline taken earlier this evening.

Mommy and Jacqueline at Sunset
Chris Hammond Google+


As of today, we are 2 months away from the first day of conference sessions for DNNWorld 2012 in Orlando, Florida (less than two months to the pre-conference training on the 10th). Leading up to the conference we are holding a weekly Google+ Hangout over on the DotNetNuke G+ Page interviewing some of the speakers who will be attending DNNWorld.

Chris Hammond Google+

In case you missed it, DotNetNuke 6.2 was released today, check out Will Morgenweck’s blog post for more details on the release.

With some of the new features DotNetNuke 6.2 makes it easier to start to customize the listing of members on your site, and also the Profile display for users on the website. I started implementing DotNetNuke 6.2 on one of my racing websites last night (yeah, so I upgraded before the release happened, a benefit of working for the corp).

In doing so I configured the profile pages on the website to use some of the new 6.2 functionality, before I show you the code, here’s a link to my profile over there, so you can see what all I implemented. This is far from complete, plenty of more work to be done, but it provides far more information than the profiles did two days ago.


Chris Hammond is

Chris Hammond is a father, husband, developer, geek and car guy. Specializing in ASP.NET and DotNetNuke, you will find a variety of topics here on the website. For more information check out the about me page.

If you are looking for DotNetNuke consulting please visit my business website at http://www.christoc.com/ 

Filter By Tag

  1. .net
  2. 2008
  3. 240Z
  4. 350Z
  5. A6
  6. About Me
  7. Ads
  8. AJAX
  9. asp.net
  10. ASP.Net AJAX
  11. Audi
  12. Audi A6
  13. Barnsoft
  14. Baseball
  15. Beetle
  16. Best Practices
  17. Blogs
  18. Book
  19. Bootstrap
  20. Borders
  21. Build
  22. C#
  23. Car
  24. Cardinals
  25. Carousel
  26. Cars
  27. Chat
  28. ChristocTemplate
  29. CMS
  30. CodePlex
  31. Colorado
  32. Commandments
  33. Community News
  34. Community Server
  35. communityserver
  36. Consulting
  37. Content Management System
  38. Corvette
  39. Corvette Z06
  40. Corvettez06
  41. CorvetteZ06.org
  42. CSS
  43. daily tips
  44. DAL
  45. DAL2
  46. Data Access Layer
  47. Datsun
  48. Design
  49. Designs
  50. Developer
  51. Development
  52. DLL
  53. DNN
  54. DnnCart
  55. dnnCHAT
  56. DNNCorp
  57. DNNUG
  58. DNNWorld
  59. domain
  60. Domains
  61. Domotics
  62. DotNetnuke Conference
  63. DotNetNuke Corporation
  64. DotNetNuke Development
  65. DotNetNuke Modules
  66. DotNetNuke Support
  67. DotNetNuke Tips
  68. DotNetNuke Training
  69. Dressage
  70. Education
  71. Electric
  72. Electric Car
  73. Electric Vehicle
  74. Engage
  75. Engage Software
  76. Error
  77. EV
  78. F&L
  79. Facebook
  80. Family
  81. Feedback
  82. Fitness
  83. Forge
  84. form and list
  85. Free
  86. Friends
  87. general Software Development
  88. Germany
  89. Gmail
  90. Google
  91. Google Apps
  92. Growth
  93. HammerFlex
  94. Hammond
  95. Health
  96. Healthcare
  97. Home Automation
  98. HTML
  99. IIS
  100. ITM
  101. ITM America
  102. ITM-America
  103. javascript
  104. jQuery
  105. JSON
  106. Kentucky
  107. Languages
  108. Las Vegas
  109. Layout
  110. Leaf
  111. Learn
  112. Life
  113. Life News
  115. Marketplace
  116. Messaging
  117. Microsoft
  118. MIT
  119. Module
  120. Module Development
  121. Modules
  122. Moving
  123. MSBuild
  124. NANT
  125. Natalie
  126. Nissan
  127. Nissan Leaf
  128. October 14th
  129. Open Source
  130. OpenForce
  131. OpenForce 07
  132. OpenForce07
  133. OpenSearch
  134. Panes
  135. Personal
  136. Philanthropy
  137. Photography
  138. Photos
  139. Pictures
  140. Places to See
  141. Project
  142. Project 240Z
  143. Project 350Z
  144. Project240z
  145. Project240Z.com
  146. Project350z
  147. Project350z.com
  148. Projects
  149. Publish
  150. Quattro
  151. Rating
  152. Release
  153. Review
  154. Saint Louis
  155. Saint Louis Equestrian
  156. SCCAForums
  157. School
  158. Search
  159. Search Results
  160. SEO
  161. Sharepoint
  162. Shift8Read
  163. SignalR
  164. SignalR:
  165. Site News
  166. Sitemap
  167. Skin
  168. Skins
  169. Slider
  170. Slideshow
  171. Software
  172. Solo2.org
  173. Sports
  174. SQL
  175. St. Louis
  176. Statistics
  177. Super Beetle
  178. SuperBeetle
  179. table
  180. Technology
  181. Template
  182. Templates
  183. Themes
  184. Tips
  185. Training
  186. Travel
  187. Tricks
  188. Trips
  189. Trouble Shooting
  190. TulsaTechFest.com
  191. Tutorials
  192. Upgrade
  193. Upgrades
  194. User Groups
  195. Users Group
  196. User's Guide
  197. VB.Net
  198. Vista
  199. Visual Studio
  200. Visual Studio 2005
  201. Visual Studio 2012
  202. VS2005
  203. VS2012
  204. VW
  205. Washington DC
  206. Web Services
  207. weblogs.asp.net
  208. Wiki
  209. Windows
  210. Windows 8
  211. Windows Home Server
  212. Work


Any blog posts here are solely the opinion and views of Chris Hammond only. Comments on blog posts are the opinion of the commenter, and not Chris Hammond.

Powered By

This website is managed by Christoc.com Software Solutions

Find Me