Register  Login  
  February 6, 2012  
Search_Blog Minimize
Print  

Blog_Archive Minimize
Print  

Blog    
View_Blog Minimize
Author: host Created: Friday, January 25, 2008 10:34 PM
General Interest Item about the DotNetNuke World

I have been working on skinning and playing with menus. Menus of empty pages.  I manually would create a structure and then work the skin and menu classes to define the look wanted. If you want a good tutorial on menus, see DNNCreative's #47 edition -- good stuff.  

But after creating these empty pages over and over ... I got thinking there must be a better way. I binged and googled (boogled it?) and found no hits, so it was time to play around in T-SQL again.

I developed a procedure called CreateEmptyPage 

Read More »

The latest version of MenuLinks has been released on Tressleworks site.  This version has several enhancements that may interest the power users out there.

However, first a bit of recap if you are not familiar with MenuLinks.  MenuLinks displays the relative menu items as links based on the current page.  What? 

Consider this scenario, you want to display a list of links for all other pages at the same level on the menu.  Well this can be done maually with the DotNetNuke Links modules.. but it will take time.  MenuLinks allow the user to do this by setting a few modules settings once.  If addition pages are added (or removed) MenuLinks will display the links based on the current menu contents.  Like the DNN Links menu, the list can be horizontal or vertical and align left, center, or right within the container.  Very handy.  You can see examples of MenuLinks here 

Read More »

It seems lately that I have been taking the long way around when attempting to do something involving DotNetNuke.  My latest extended effort was attempting to add a indented dot tab list to my MenuLinks module.  It’s a long story that I will shorten so you can learn the lessons I had to learn the hard way.

It start simply enough, I wanted to add the ability to display any sub-menu within MenuLinks, not just the current page’s relative menu items (Parent, Siblings, or Children).  The module currently uses the tabid of the current page to determine the relative menu position.  I thought that if I allowed the user to supply the starting menu item, the module could easily display any relative menu.  So begins the hunt for the indented dot tab list.  

Read More »

Back in the spring of 2004, I was introduced to DotNetNuke via an article  by Jim Duffy  in Code Magizine. I got the magazine from the magazine stand in our office building at noon, and by the time I left for the day I had a site up and running (seems that it was a rather quiet day and no one questioned what I was doing).  Well I was hooked and have been working with DotNetNuke ever since.

One of the first things I did was write a module -- took me several weeks of banging my head as I was complete lost in this new world.  I using DotNetNuke as a learning tool to a) learn VB.Net, b) learn ASP.NET, and c) learn about the web. I have spent the better part of my life developing supervisory process control applications for material handling, so the Web stuff was a complete new territory and DotNetNuke was a nice structured working application that I could extended with my own code -- what could be better!  My first module was T-Minus. 

Read More »

After a security review of an internal site, a concern was raised that passing parameters to other pages in cleartext where the parameter name was rather reveling was weak from a security point of view.  The pages where the concern was raised all used DotNetNuke’s IFrame module, and in fact the parameters were passed in cleartext.  For example, several of the target Frames required that the user’s username be passed.  The IFrame module would create a URL like www.othersite.com?username=myusername. This meant that a user could potentially revise the URL with a different username and spoof the real username.  I was required to “blur” the parameters being passed so that someone looking for specific parameters would no be able to determine what was being passed. 

Read More »

In recent weeks, I have been working on a sample site for all of the Modules currently available from Tressleworks.  There have been examples on my site, but they had been rather limited.  So I have created a child site off www.tressleworks.ca called www.tressleworks.ca/samples.  Original n'pas?

 

Read More »

It seems that I was thinking too hard when I attempted to understand how "Display on All Pages" might be implemented.  Well I was all wrong and have been living under a misconception for quite some time.  There were clues that my conceptualization was incorrect, but I ignored them because I was right -- and it must be something else ... yes -- pure ignorance.

OK, so how is this feature implemented and what are some of the issues associated with it? 

 

 

Read More »

I required an enhanced IFrame Module that will "blur" the parameters being passed to the page referenced in the IFrame.  The issue is passing parameters in clear text is considered "bad form" by Web Inpection tools such as HP's WebInspect.  While the DNN site in a intranet site, I guess the need to "blur" the parameters does have merit. 

So I need to revise the IFrame to "blur" the parameters --  I am going to modify the parameters passed in one of two ways -- Base64 encode the value string -- this will make the effort of determining what is passed difficult for a snooper of the HTML source.  The other way will be to Encrypt the data using the standard encryption provided by .Net. 

However is creation of the module turns into a real problem with multiple control definitions for a module.

Read More »

As I mentioned in a recent Blog posting, I am attempting to blog more.  With blogs postings come comments to my blog -- this is a appreciated and unfortunately sometimes overlooked.  So I have added a new report to my site that displays recent blog comments.  This way when I do my daily site review I can check if I have comments that require responses.

I also have missed some feedback messages -- even though they generate an email, I do miss them so I have a report to display all the unanswered feedback messages. 

You can use the Reports module to display the information or one of the several other SQL grid modules to display the report.  For obvious reasons I use SQLGridSelectedView.

Read More »

The new release of DNN 5.1 does have a small (very small) issue when converting from V4 DNN site.  The problem exists with a key and the conversion script does not drop the key due to a naming issue.  There is a fix and is available from the support wesite. 

If you are upgrading from 4, please read.  The issue is simple to fix as even if you don't you should not encounter any problems.

 I have included Charles Nurses' comments and script below - a direct copy from the support.dotnetnuke.com site. 
 

Read More »

Recently, I have been doing a fair amount of work with fonts and colours  (or color depending if you were not born under british rule).   During this work, I discovered a colour that I didn't know existed.  The color is "transparent".  In .Net world, this color will allow the underlying color to be shown.  Brillant!

So where does this come in very handy -- well consider things like border colours -- often the border colour is pre-defined and you are allowed to change it, but in the world of DNN and skinning, what is the correct colour today, may be horrible when you re-skin your site.  In this case, transparent works perfectly.  Instead of a colour - either a colour number or explicit colour name, use "transparent" and the problem is solved.

While this is no doubt known in the work of designers and skinner, this may be "news" to us more graphically challenged types.

Hope this helps Paul.

EDIT: Seems that IE6 and probably lower version will default "transparent" to black.  Ugh!  ...

Read More »

I wanted to create some testing data, so I began adding users by hand.  One or two users is OK, but I wanted to add many so I started to play with the script that Mitchel Seller's had blogged in May, 2007 (here) .  I wanted a stored procuedure I could use to add a user.  I would then create a script calling this procedure as required.   So here is what I developed ...

Read More »

 In the last few days, the DotNetNuke Web Site has been struggling.  The recent move to dogfood the 5.1 Release Candidate has surfaced the worst possible type of error – a performance error based on load.  This is probably the toughest error to determine and eliminate as it may be one issue or a combination of several.

I know there are many in the community that are not pleased at the current situation as it does publicly air the problem DotNetNuke Corp is having. I, for one, am more interested in the solution than the minor embarrassment that the Corp may feel.  In the end, once the problem is found, I am confident the cross-checks and test will be put in place so this issue will not happen again which will lead to a better product in the long run.

Read More »

Now that the dust has settled, I wanted to take some time and recount my time in Tampa at Day of DNN.  As many have said it was a great day and I certainly agree.

The adventure started at Toronto Pearson Airport with my flight to Tampa on Westjet.  The flight was rather common and I was lucky enough to have the seat row to myself, the plane being 75% full.  Arrival at Tampa provided the first surprise – it was really hot.  Toronto was cold in comparison, but I was not ready for +93F (34C) temperature.

Read More »

I must admit the first version of the report module was viable, but lack many options I would perfer to see.  Well the new version -- release this past weekend -- is worth a new look.   While this release is just a minor release to correct some issue, the fact it is probably a the best time to take the module for a test drive. 

Read More »

I spent the day getting my presentation ready for the Day of DotNetNuke  (www.dayofdnn.com) .  Well they are at a point where I could tweak them all night and not really get any improvement.  So it's time to put then down for a while and relax.

The big issue is the audience I will be presenting to - you know the first rule of presentations is know your audience - but this is going to be a bit tricky.  I could get a group of all DNN pros ... gulp -- or a room of rookies.  I am hoping for a mixture. 

Read More »

Well I made it down to Tampa and spent the day hanging out talking (amoung other things) about DNN. I know that a DNN ecosystem exists, but I find that description is so cold.  So when meeting other DNNers, I really enjoy the passion and the energy the "ecosystem" provides.

 

Read More »

In the last few years, the number of way that someone can view your site has increased considerably.  The growth in different browsers and the growth in cell phones, the change is amazing.
 
As you may have noted from other blog posts and several Dotnetnuke forum posts, I have been attempting to get people to move off IE6 to any of the current new browsers.  So I was somewhat surprised by the following stored procedure in Dotnetnuke:

Read More »

I was playing around with the functions and views described by EricVB in this blog entry and realized I could easily determine my international audence using one of the functions.

Eric created a function called udf_UserProfileField that generates a table result (MS-SQL 2005 or better) for a given profile field. All the user who have this value are returned.

Read More »

When visiting the ODUG (Orlando DotNetNuke User Group) website, I noticed as a container with a title of "Modules used on this page".  The container is minimized so you need to expand the container to see the report.  The report details the containers used on the page. 

So how is this done?  The report modules is used to query the modules tables to display the modules for the current tab.

 

Read More »

Ever needed to locate every page (tab in DNN old speak) where a module is used?  This is often needed when updating a site and want to confirm that each use of the module converted properly.

So use this query:

SELECT   t.taborder,          t.tabid,          t2.tabname AS [Parent Tabname],          t.tabname,          m.moduleid,          m.moduletitle FROM     dbo.tabs t          JOIN tabmodules tm            ON t.tabid = tm.tabid          JOIN dbo.modules m            ON tm.moduleid = m.moduleid          JOIN dbo.moduledefinitions md            ON m.moduledefid = md.moduledefid          JOIN dbo.desktopmodules dm            ON md.desktopmoduleid = dm.desktopmoduleid          LEFT OUTER JOIN tabs t2            ON t.parentid = t2.tabid WHERE    dm.friendlyname = "TMinus"          AND t.portalid = 2          AND m.isdeleted = 0          AND dm.isadmin = 0 ORDER BY t.taborder

As you can see I have explicitly defined the friendlyname of the module -- in this case "TMinus" 

...

Read More »

Even wonder where all the settings for a module is kept ... in the ModuleSettings table - duh!   Ok ... maybe it's not that obvious to some.  But the ModuleSettings table holds the keys to the kingdom for certain modules.  In fact, often the module export is just a copy of the items in the Modulesetting table for the specific module.

The table layout is straight forward ... ModuleID, SettingName, SettingValue.  So if the moduleID is 400 then to view all settings for moduleID 400, execute the following select

Select * from ModuleSettings where ModuleID = 400 order by SettingName

This Select will return all the specifics settings for Module 400.  Note: not all

ModuleID  SettingName          SettingValue --------- -------------------- -------------------------------------- 400       EventAfterMessage    !!! 400       EventBeforeMessage   until Vancouver Olympics 400       EventDisplay         14 400       EventDuringMessage   Go Canada Go 400       EventProcess         1030...

Read More »

Unless you are hosting your site on your own server(s), your hosting company will impose a limit on your disk space.  Occasionally, you will see a posting in the DotNetNuke forums asking "Why is the database so big?" or "What table is using all the disk space"

So there is two ways to look at this ... via SQL Servier Management Studio (SSMS) or via SQL ... some hosting environments do not allow access via SSMS, so SQL is the only option. 

The following SQL will display all the tables:

 EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]'

This statement uses the "hidden" Microsoft store procedure "sp_MSforerachtable" that will execute a given command against each table in a database.  You will need to review the results to determine the largest table.

Alternatively,  the following T-SQL will generate a list of tables in largest row count to smallest.

set nocount on

-- create table to hold name and rows -- cannot use in-memory as it will not work with sp_MSforeachtable...

Read More »

While I have been playing with DNN V5 beta and RCs, I was interested in a forum post a few weeks ago that was asking how to determine the version of DNN.  For long time users of DotNetNuke, this is a simple question answered on the Host page.  

However, there are other ways to determine the version - primaryly the version table in the DotNetNuke database.  But  when did you perform your updates?  This is what I began wondering.  So I created a SQL SELECT that will return the dates of the update.

select     Cast(major as varchar(2))     + '.' + cast(minor as varchar(2))     + '.' + Cast(build as varchar(2))     as [Version Number],     Convert(varchar(17), Createddate, 113)     as [Implementation Date]  from     {databaseOwner}{objectQualifier}version where     versionid in    (      select  max(versionid)      from {databaseOwner}{objectQualifier}version      group by Convert(varchar(17), Createddate, 113)    ) order by     versionid desc

Note: I used the fact...

Read More »

In recent months new browsers have been released in to the wild - IE8, FF3, Crome...  So do you know the breakdown on how your site is visited?  In a forum post here I requested that DNN site owners help eliminate IE6.  I aslo included a select statement you can use to determine your traffic.

select count(useragent) as [count], Case     when charindex('MSIE 5', UserAgent) > 0  then 'IE5'     when charindex('MSIE 6', UserAgent) > 0  then 'IE6'     when charindex('MSIE 7', UserAgent) > 0  then 'IE7'     when charindex('MSIE 8', UserAgent) > 0  then 'IE8'     when charindex('Firefox', UserAgent) > 0 then 'FF'     when charindex('Opera', UserAgent) > 0 then 'Opera'     when charindex('Chrome', UserAgent) > 0  then 'Chrome'     when charindex('bot', UserAgent) > 0     then 'bot'     when charindex('slurp', UserAgent) > 0   then 'bot'     when charindex('crawler', UserAgent) > 0 then 'bot'     when charindex('spider', UserAgent) > 0  then 'bot'     when charindex('jeeves', UserAgent) > 0  then 'bot'...

Read More »

As many are aware, I work for a supplier to General Motor's here in Canada - specifically, Oshawa, Ontario.  With the bankruptcy filing by GM in the US, it appears that the Canadian arm of the company has been spared the same fate.  That is good news -- also good news is none of the remaining GM plants in Canada will be closed -- The Oshawa Truck Plant was closed May 14th, so we have had our share of loss.

Personally, it appears that my position is stable for the next while, but I may be off for several weeks while everything sorts itself out.  Many of the part used by the assembly plants (for Camaro and Impala) are made in the US, so lack of supply maybe cause the plant here to close for a few weeks.  However, efforts are being made to keep the down-time to a minimum.

To take my mind off everything, I will restart my blog entries to keep me focus of issues of self improvement.  First off, I have been selected to speak at the “Day of DNN” in Tampa on June 13th.  In fact, I will be presenting two sessions and I want to blog about the sessions and the whole experience.  The two sessions are “SQL Tips and Tricks for DotNetNuke Site Administration” and “Administrating Back Office System with DotNetNuke”. I plan to blog on these issues over the next few weeks.  Please follow along.  Comments are welcomed and appreciated.

...

Read More »

Well another Code Camp has come and gone.  Many thanks to Chris Dufour and his crew for doing an excellent job.  The place was packed ... really good turn out!

I gave my talk on "Almost Instant Web Site using DotNetNuke V5"  and had a full house of 50+ people in for the talk.  Not bad concidering that I was on at 9am ... on a Saturday that was going to the warmest this season so many my have had a hard choice to make

I find my talk is something somewhat difficult at a code camp as I really never get into it with code (although all of the code is available for review), but I believe the talk is worthy as it is something a attendeee could use the next day - not just something that you can consider using in your next project or job such as "VB10 and Beyond" (really interesting session but not something I can use tomorrow).

True, not all are looking for a Web Site system, but if they were there to learn about Sharepoint or MVC -- Dotnetnuke stands up rather well. 

That leads me to a interesting...

Read More »

Greetings,

While I as at OpenForce 08, I had a rather interesting talk with Alex Gorev (blog) from Microsoft.  He is part of the team that released the new charting library from Microsoft.  This library is based on Dundas Charts code base from 2007.  Microsoft bought the software -- Dundas Charts still exists and has moved on with newer products. 

However, the new charting library is a welcome addition to the Microsoft installed base.  I have been working on a Charting module for over a year but have not been please due to the specific libraries required.  The module needed ZedGraph and Itextsharp to be installed on a users site.. Problem is this could colide with another library version already installed on the user site.  

With the new Microsoft Library, the problem is solved in that the library is part of the ASP.NET install (V3.5 SP1) but can be installed on V3.5.  So once the hosting provider has this library available (or you place on your server) ... you can take advantage of the...

Read More »

No sure why, but this release of SQLGridSelectedView has taken a while to release. 

This version is primarily a stabilization release.  While the core has been working well, some of the lesser used portions of the module have had issues.  Especially the templating.  I have spent time working on this and correcting and updating several little issue under the surface.

One of the big issues as the size of the Setting form.   I could easily be over 500k in size and that is too much.  I have revised the setting form to reduce the size by not populating the various filters unless there are used.  So, for example, if you do not use the Condition filter, then no setting information will be sent.  If you want to add the Conditions, then a new "Add" button exists for all the filters when not present.  The button is not shown if the filter is used.

I hope to address this issue when developing a version for the new DNN V5.  aka Cambrian.  Now that  RC2 is available I will start playing with what I can...

Read More »

I recently attended Openforce 08 in Las Vegas ( aka Lost Wages?)  and was very happy I went.

I also attended OpenForce 07 and this year was much better from a DotNetNuke perspective.  The overall size of DevConnections was smaller --- this has more to do with the recent PDC and current economy than the quality of the presentations --  but it seem to me that the DotNetNuke attendance was larger - almost double !!

The Key Note given by Shawn was packed --- several others were there and have blogged about the number in attendance ... standing room only.   The following picture as taken by Micheal Washington at the Key Note -- I added the circle to point out I was there....



My primary reason for attending is to learn about DNN 5 and to re-charge the DNN interest within me, I also found talking to the community was great too.  The number of DNN-related vendors at the conference...

Read More »

Tressleworks is changing to a Subscription based site.

Over the last year I have been working on updating various aspects of Tressleworks’ modules. Specifically all modules will be re-written for  ASP.NET V2.0. and Dotnetnuke V4.5.5+  This has required many hours of effort and while I am not asking for a lot, I will be asking the users of these newest modules to contribute.  The fees will go to maintaining the site, supporting DotNetNuke, and providing the infrastructure to maintain and develop the modules.



I have 3 basic subscription plans – 30, 90, and 360 days.  The 30 day subscription costs $10 and provides the user with access to download all modules from the site.  The modules are fully functional and have no time limit of use.  The subscription fee is strictly related to accessing the site for downloads.  Similarly, the 90 days subscription costs $25 and provides access to all modules from the site including source.  Lastly, the 360 day (1 year) subscription provides access to the...

Read More »

Drive 200km (120 mi) north of Toronto... and boy do you find Snow.    Spent a lovely day in a snow bank ... and helped the local economy. 

Read More »

Well... I have been thinking about this for a while.. and how best to support UDT in SQLGridSelectedView.  My current belief is I shouldn't as I can't know all the possible needs. 

So I decided to develop a generic Stored Procedure

Read More »

I have been playing around with the Membership tables and saw a request in the DotnetNuke forums that go my attention.  It seems there is a lot of confusion on just how to get data out of the ASPNET_Membership data tables.  

The user was asking how to get the LastLoginDate for a user and adjust that by the timezone ... Well is all in there somewhere.  

Consider the following procedure.  The following stored procedure will return the username (for conformation) and the LastLoginDate adjusted by the timezone value associated with the user.  The default if none is found is 0. 

You should be able to tweak this procedure as you need.  Just use the script in the Host>SQL window ..

I have been rather explicit in the way I built the proc so you can see where all the intermediate field come from ... you can combine some of these to possibly improve performance (??)  but I prefer the readability over the slight gain you may get. 

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetLastLoginDateByUser]') AND type in (N'P', N'PC'))...

Read More »

The follow blog will relate the steps I took to implement this new DotNetNuke Version 4.8.0 site.

Some Background would be helpful. The Old site was on DNN V3.3.5 and had been there for quite some time. I was rather embarassed that site had been unchanged for over 6 months, especially after being at Open Force '07 in Vegas.

So once the new year had come, I began working on the how I would upgrade the site. I choose to start fresh with a new DNN 4.8.0 site base on several factors: a) I want a clean up so old stuff I had in the site b) I wanted to move to SQL 2005 c) I believed I would spend more time upgrading and fixing then starting with a new copy d) I had time - it's cold and snowing.

Here are the steps I took. Please note that my site is hosted by DotNetPark and any reference to actions taken on their site my differ depending on your hosting provider. By the way, I highly recommend DotNetPark.

1) Backup the database - Using DotNEtPark's Database backup functionality I copied the...

Read More »

I began work on my DNN V4.8 version of my Site.  Over the next few weeks you will see several changes.  I  have been delaying this change until I had something worth while to show off..

Well the new version of SQLGridSelectedView is coming to a point that I will begin to offer it to a wide group of beta testers to see if they can break it.   It have been a long time coming, but the new module is a complete re-write from the group up and this has been a big learning curve. 

The new design allows me to dynamically place all the selection fields on the form.  This is also the most work as I must handle the viewstate problems this causes.  Basically if the form is dynamic, you need to restore the page in memory prior to the page load event as just prior to the page load event the viewstate is restored and the user values are place in the fields.  If the fields don't exist, then you can't restore the viewstate and user input. 

So for the first version of the new control, the selection and display...

Read More »

Since attending OpenForce '07 in Vegas this passed November, I have been working on a new Version of SQLGridSelectedView.  I had several features I wanted to add, but the main reason for a new version was the conversion from ASP.NET V1.1 to V2.0.  This also meant the move to VS2005 and the new architecture used for Web Applications. 

I am in the home stretch on the implementation and have been testing and testing -- it gets rather boring after a while, but I want this version to be relatively stable before going to beta testing.  I have faced a few challenges along the way, especially getting DNN to work as smoothing in VS2005 as I had it VS2003.  But most of those issues behind me I did run into a rather interesting issue with ASP.NET V2.0 GridView. 

The issue surrounds getting a CSS class to work on the pager used by the GridView.  As much as I tried, and boy did I try everything I could think of, the more I more I started to dislike IE. I finally got a hint on this was a "known" problem when...

Read More »

Well first off ... apologies for a rather lengthy absence from posting ... this should change as I want to keep the information flowing.  (sorta rubbed off from the Code Camp...)

Anyway back to the subject at hand - the Toronto Code Camp.  This event ran on Saturday March 31 in Toronto (surprise) and organized by Chris Defour from the East of Toronto .Net Users Group fame.   I am quiet indebted to Chris as he organized and ran a great show.  All the session were packed with enthusiastic attendees - beside the price was right.

I planned to present a session on DotNetNuke and was some what concerned that interest would be in some of the more detailed software topics, however is a pre-meeting I learned that my session was listed quite favorably amoung those registered attendies that expressed a preference.   So, the presure was on. 

Well, from the sounds of it and the feedback given, the presentation was a hit.  Approximately 100 people attended my session and this made for some lively discussion...

Read More »

The latest version of the SQLGridSelectedView beta has been release.  I fix one issue that has caused some problems, but I truely never knew why until recently.  SQLGridSelectedView would on occasion not work in Medium Trust, I could never get a resonable answer for this, but I beleive I stumbled over the issue but accident.  I have been using the OLEDB SQL driver to access the database - this has worked well, with very few compliants - until I attempt to access MySQL - I needed a OLEDB driver - so I attempted to use the SQL native driver.  Once implemented, my trust problem seem to disappear.  I soon realize that the SQL native driver was meant for Medium Trust solution ( a real "a ah" moment)So please try this in Medium trust mode and let me know if you have any problems.I also extended the size of the SQL primary statement from 2000 character to 8000 character.  I had thought 2000 would be plenty of room - as I imagined that you would true to stored procedure if you got even close to 2000 characters.  Well,...

Read More »

Print  

Blog_List Maximize
Print  

  Home | Blog | Forum | Subscriptions | Free Modules | Videos   Page generated in 0.6103734 seconds.
  Copyright 2010 by TressleWorks   Terms Of Use | Privacy Statement