40FINGERS DNN Nederlands40FINGERS DNN English

Our Blog

Menu: Blog

02.06.03 Release of Style Helper Skin Object for DNN

By: Timo Breumelhof

We just released version 02.06.03 of our StyleHelper skin object for DotNetNuke 5.3+ on codeplex.

This is final release after some beta releases following version 02.05.00.

This release includes some additions, changes and bug fixes:

 

 

Additions:

 

 

 

Added Simple Content Injection:

 

  • Added Content attribute
    The passed value of this attribute will be injected if the set conditions are met.
    This content will be injected at the skin objects location.
    This will be expanded in the future (load HTML file content and the use of tokens).

    Example: <fortyfingers:STYLEHELPER ID="SH1" IfBrowser="IE" Content="Hello IE" runat="server" />

 

Changes:

 

 

Changes to Redirect:

 

If you upgrade to this version and have used redirecting in your existing skins, make sure to test them!

Intro: Redirect Logic changes
The way redirect were handled in a previous version was quite basic.
I mostly used it to redirect Mobile devices from the Home page of a regular website to a mobile site
I came a cross a more complex problem for a client were certain page should be redirected to the matching mobile pages.
To support that I restructured Redirecting and when to stop redirecting.

New attribute: RedirectName
You can give a redirect a name, to separate several redirects used on one site.
2 redirect with a different name will not influence each other
This way you can for instance have a Mobile redirect and a redirect for Internet Explorer 6 in the same skin.
It also allows you to share the same redirect over different skins using the same RedirectName.

New Attribute: RedirectBaseUrl
You can use this as a base for redirecting.
If set this will be combined with the RedirectUrl to the Url to redirect to.
You can use the RedirectBaseUrl in the RedirectStop to stop redirecting if you link back from any page on the redirect site.

New Attribute: RedirectStop
With this attribute you set how you on what conditions the redirect is refused
If the redirect is refused, it depends on the RedirectMode attribute what happens the next time the user visits the site.
Possible Values:

  • Revisit = Will NOT redirect after the first redirect
  • RedirectUrl = Will not redirect if the Referrer URL is the Redirect URL
  • BaseRedirectUrl = Will not redirect if the Referrer URL contains the Base Redirect URL
  • QueryString = Will not redirect if the following Query String Parameter is passed: NoRedirect=True

These values can be combined, comma separated.
Default Value: "RedirectUrl,QueryString"

 

Relationships with RedirectMode
With "RedirectStop" you set on what conditions redirect should NOT take place.
With "RedirectMode" you set what should happen after a redirect did not take place.

 

  • Examples:

    IfMobile="True" RedirectTo="m.site.com" RedirectMode="Session"
    Will redirect the first visit of every session.
    During this session redirecting will stop (because of the default value)when you:
    1. Visit the page from the Redirected page.
    2. If you add the following querystring parameter to the URL.

     

    IfMobile="True" RedirectTo="m.site.com" RedirectMode="Once" RedirectStop="Revisit"
    Will redirect the first visit to this page of every session.
    During this session redirecting will stop as soons as you revisit the page.
    The result is that redirect will only happen once during this session.

     

    IfMobile="True" RedirectTo="m.site.com" RedirectMode="Always" RedirectStop="Never"
    Will always redirect the visitor to the mobile site. Visitng the regular site with a mobile device is impossible this way.

     

Changed Attribute: RedirectMode
You can now use: Always, Once, Session & Never
Never; was added as a way to not remove the the skin object, but switch the rediect off for testing purposes.
Session is the new default value, this used to be "Once". This was changed because session is the most common scenario.

 

 

Changes to detectmobilebrowser detection:

 

 

  • Added attribute DetectMobileRegex1
    You can use this attribute to overwrite the first regex used by the detectmobilebrowser.com method

  • Added attribute DetectMobileRegex2
    You can use this attribute to overwrite the second regex used by the detectmobilebrowser.com method

  • Added Attribute: DetectMobileIncludeTablet
    On detectmobilebrowser.com/about there's a method to include tablets as mobile devices (by changing the first regex).
    If you set DetectMobileIncludeTablet to True, the first regex is replaced and Tablets are treated as mobile (although I'm not 100% sure this is up to date).

Changes to Body Class

  • Added attribute: FilterBodyClass
    By default the bodyclass ignores the filters you use.
    It if you set this attribute to True, the body class is only added if the filter conditions are met.

 

Changed IfQs behavior:

 

  • IfQs also to test if a query String Parameter exists
    You can now pass a QS parameter without a value
    IfQS="ProductId" allows you to test if querystring parameter ProductId exists (and has any value).

 

Bug Fixes:

 

 

Bug in AddHtmlAttributes in DNN 6

  • The code to insert attributes to the HTML element changed in DNN 6 and did not work any more. This has been corrected now.

 

Fixed bug in DNN5 Stylesheet removal:

 

  • The code change for DNN6 caused style sheets not be removed in DNN 5 any more, fixed now..
    Also added a warning for DNN6 users if the try something that does not work in DNN6.