July 2006 - Posts

ModMySpaces.com MySpace Layouts, Skins and Surveys
Monday, July 31, 2006 10:31 AM
Yet another project I really don't have time for, but seem to put in an hour or more every day! www.modmyspaces.com what I hope to be the premier site for MySpace layouts, skins and surveys!
Comments are enabled!
Thursday, July 27, 2006 10:34 AM

Comments are enabled! Comments are enabled! Comments are enabled! Comments are enabled!

So comment away folks.

DotNetNuke Daily Tip #12 7/26/06 Staying Logged In
Wednesday, July 26, 2006 2:07 PM

Tips were slim last week as I was off in Denver for a few days.

Have you noticed that since running your DNN website on the .net 2.0 framework you can't stay logged in for more than an hour? Even if you have the "remember me" option checked?

Well here's your fix. In the Web.config of your DNN instance find the TIMEOUT section.

<forms name=".DOTNETNUKE" protection="All" timeout="60" />

forms name=".DOTNETNUKE" protection="All" timeout="60" />

Change the value 60 to something larger

<forms name=".DOTNETNUKE" protection="All" timeout="600000" />

This should help you to stay logged in! A very annoying feature of .net 2.0 is that it actually follows this timeout, how dare them! ;) 

This should help you to stay logged in! A very annoying feature of .net 2.0 is that it actually follows this timeout, how dare them! ;) 

This should help you to stay logged in! A very annoying feature of .net 2.0 is that it actually follows this timeout, how dare them! ;) 

forms name=".DOTNETNUKE" protection="All" timeout="600000" />

This should help you to stay logged in! A very annoying feature of .net 2.0 is that it actually follows this timeout, how dare them! ;) 

This should help you to stay logged in! A very annoying feature of .net 2.0 is that it actually follows this timeout, how dare them! ;) 

Stay tuned for another DotNetNuke Daily Tip coming tomorrow!

DotNetNuke Daily Tip #11 7/20/06 Upgrade to DNN 4.3.3!
Thursday, July 20, 2006 10:50 AM

This will be the last DNN Daily Tip for the week. I'm headed to Denver tomorrow for a race this weekend and meetings with a client on Monday, so I'll likely not post again until I return.

What's today's tip? It's a special one ;) Upgrade to the latest version of DotNetNuke, 4.3.3/3.3.3! The 4.3.3 package dropped late yesterday afternoon and DotNetNuke.com was upgraded to this "final release" early this morning. What is the 3.3.3 release? It's basically the same release as 4.3.3 but for the .Net 1.1 Framework, 4.3.3 is for the 2.0 platform.

Some of the items that the 4.3.3/3.3.3 release include. If you're not running on the 2.0 framework yet, I'd highly recommend looking into it. I've started moving all of my sites over from 1.1 to 2.0 with the latest few releases of DNN.

Membership Management
CAPTCHA - add the ability to display a small image with embedded text which bots can not read. Prevents brute force dictionary login attacks.
Login Redirect - after login there is now a way to redirect a user to a specific page
Password Generation - the ability for an admin to automatically generate a secure password for a user on account creation
HttpContext - eliminate dependence on HttpContext
Public Registration - the system sends an email to the user on public registration ( to prevent cases where another user registers with their email address )
Profile Change Notification - when any profile attribute is changed, the owner of the account is notified ( using the original email address ). This is to alert people in the event that an unauthorized user has gained access to their account and made changes to their profile ( password, email ).
User Account Creation Notification - when an admin creates a user account they have an option to send the account details to the user
Force Profile Update - ability to force a user to update their user profile
Force Password Change - ability to force a user to change their password
Password Complexity - added the ability to define some passord complexity requirements ( ie. mixed upper/lower case, numeric and alpha-numeric, etc... )
Display Name Field - the membership schema stores the DisplayName of the user for demographic purposes - this item is critical for international users where their name is not represented as "FirstName LastName". Modules should link to the DisplayName for audit purposes rather than using FirstName and LastName.
Preserve Login Parameters - when a user is directed to the login screen, the system retains the original url ( with parameters ) so that it can redirect back after successful login ( especially useful in nested module UIs like Forum )
Logout Behavior - after logging out, the user remains on the same page rather than being redirected to the home page ( the only reason they are being redirected now is because they may no longer have access to the page because of roles - but this is largely unnecessary and is handled other ways ).
Automated Verified Registration URL - the email sent to user when using he Verified Registration process now contains a URL which a user can click to very quickly validate their account
User Lockout Notification - enhance the user lockout ( 3 unsuccessful logins ) to send an email to the admin to notify them of the event


Role Management
Effective Date - effective date is used to specify when a role becomes active ( we already had ExpiryDate which specifies when role access terminates )
RSVP code - this is a code which can be assigned to a role which would allow a user to obtain access to thge role if they entered the RSVP value. A use case would be an administrator working with a group of users could send them an RSVP code which they could then enter on the site to get instant access, rather than the admin having to assign the users to roles manually
Avatar field - the administrator should be able to associate an avatar to a role.
Role Groups - administration mechanism to group roles within the same portal to provide a faster, easier way to manage/assign them. This affects the Role Management, User Role management, and Permissions grids.
Manage User Roles - once a site has more than 1000 users the user combobox, displayed when you access Manage User Roles from the Roles UI, contains too much data and sometimes times out. As a result there is no easy way to see the users who are assigned to a role ( the bottom portion of the UI ).

Profile Management
Module Profile Properties - Modules can add profile properties for module-specific information.
Portal Properties - the Profile Properties are defined at the Portal level (not the host level)
Dynamic Definition - the Portal level properties are managed by the Portal Administrator
Searchable - Profile Properties are Searchable (ie we should be able to do Find Users By City or Find Users with Green Eyes)
Public/Private Data - the User have the ability to specify which profile items are public vs. private.


File Management
Storage Location - new Folder level specification to identify whether files should be stored on the file system ( unsecure ), file system ( secure ), or database ( secure ).
File Manager - refactored to use the database as the source for file/folder information rather than the physical file system. Improved user interface to accomodate new Storage Location options as well as provide Synchronization at the folder level.
File/Folder Association - added referential integrity between the Files and Folders table
File Server - HTTP Handler for serving files regardless of Storage Location. Takes advantage of Folder permissions to ensure secure access to files.
URLControl - leverage folder permissions and storage location in file selection and upload options.


Usability
Copy Content - in Add Page, a new option which allows an admin to select a page and the granularly select the modules to copy as well as whether to make a New, Copy, or Reference.
Page Template - template which defines a default set of modules to insert into the page when the page is added. The template is based on a portal template fragment and is currently defined at the host level. The default template provided contains a single HTML/Text module which helps address the usability issue of new portal administrators who do not understand that you  need to add modules to your page once it is created.
Host Space - increased host space capacity from 999.
Module Title Editing - enabled AJAX-style editing of the Module Title by default
ClientAPI - fixes and enhancements to ClientAPI javascript library as well as navigation controls ( ie. treeview, SolPartMenu, DNNMenu )
Navigation Provider - fixes and enhancements to Navigation provider library
AJAX - fixes and enhancements to DNN AJAX library
URL Rewriter - adjusted logic so that full URL can be used in rewriter rules. There is also a new editor in the Host Settings to manage the URL Rewriter rules.
Rich Text Editor - added support for URLControl in hyperlink popup so that a user can select from a file, page, or external URL. Also added Insert Smiley option.
Newsletter - added ability to enter From: address.


Framework
AccessDeniedURL - for modules which need to restrict access based on portal permissions, a new property has been added to PortalModuleBase to deal with the business rules of unauthorized users.
Module Actions - Moved ModuleActions from Container to PortalModuleBase for proper encapsulation of ModuleAction collection ( no longer dependent on the existence of an Actions skin object ). Allow custom module actions to be created as sub-items below the root.
Permissions Grids - refactored to handle viewstate properly, allow extensibility for custom permission types, and eliminate errors related to rolenames containing embedded colons.


Data Access
Generic Methods - new generic data access methods as part of core DataProvider. The purpose is to simplify DAL development for modules where a full Data Provider is not necessary. Detailed tutorial provides information on how they can be leveraged.


Performance
Module Settings - both module settings and tab module settings are now cached for performance benefit.

Module Definitions/Installer
Version - display the module version in the default Module Definitions view
Interfaces - display module interface settings in the Edit Module Definitions UI and ensure the SupportedFeatures bits are set properly when updating 
PA Packager - when using the Include Source option, the PA packager will now follow the DNN core naming convention and use *_source.zip as part of the filename for the source resource file. 
Module Definitions - you now now install a module directly from a *.dnn manifest file without having to upload the ZIP
Module Packager - Added to DNN 4 for Dynamic modules
Module Installer - now automatically adds codeSubDirectory to web.config in DNN4 for C# module and granular assemblies
Module Cleanup - allows a ##.##.##.txt file to be included for removing deprecated/legacy files on upgrade of a module
Module Templates - Updated module templates for 2.0 framework development


E-Commerce
Subscriptions - new portal settings to manage PayPalIPN behavior.
Text Banner - added support for a "display url" for text banners ( via the ImageURL property ). Also optimized the FindBanners stored procedure to exclude expired banners.


Design
HTML Skins - skins created as HTML files can now include a section. The skin parsing engine will parse the content within the BODY tag when creating the ASCX skin file.


Other
SMTP Settings - added ability to use port number
Core Modules - New Versions of most core modules are included with release.
New Modules - Store, Forums, Blogs, Gallery included with the release.
New DNN4 Module Example - Reports Module, includes a working 2.0 code as an example of module development under the .Net 2.0 framework.

 

Stay tuned for another DotNetNuke Daily Tip coming next week!

DotNetNuke Daily Tip #10 7/19/06 Other Menu Options?
Wednesday, July 19, 2006 5:05 PM

DotNetNuke Daily Tip for 7/20/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 Navigation
The 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 Demand
The 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 Delay
One 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 Markup
Probably 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 Tables
The 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 "hard-coding" to the css, I decided that I would default it to True and offer the most flexibility.  

Anyways, here are the links!

WebControls Project Page

DNNMenu Release Announcement

 

 

Stay tuned for another DotNetNuke Daily Tip coming tomorrow!

DotNetNuke Daily Tip #9 7/18/06 Skin Object Using PortalModuleBase
Tuesday, July 18, 2006 3:08 PM

After a long haitus over the past few weeks the DotNetNuke Daily Tips are back! 

Sometimes you want to put a skinobject in your DotNetNuke Skins that you need to act like a module. Inheriting from PortalModuleBase instead of SkinObjectBase. SkinObjects though don't get loaded like regular modules and due to that you may run into issues where you can't easily access the TabId of the existing page. Here's how to get that information easily.

Dim objPortalModule As PortalModuleBase = DotNetNuke.UI.Containers.Container.GetPortalModuleBase(Me)
thisTabId = objPortalModule.TabId

Put the above code in your skinobject code and you will now have a PortalModuleBase object that you can use to easily access some of the basic DNN properties you're used to using from PortalModuleBase.

The above is VB code, any self respecting C# developer should be able to figure out the appropriate C# code. If not, email me and I'll bill you at my hourly rate ;)


Stay tuned for another DotNetNuke Daily Tip coming tomorrow!

What happened to the DotNetNuke Daily Tips?
Friday, July 14, 2006 10:22 AM

What happened to the DotNetNuke Daily Tips?

Well, short answer, life got in the way. I've had an extremely busy July so far. I hope ot get a new tip out today, so stay tuned!

DotNetNuke Feature Matrix
Wednesday, July 05, 2006 6:21 PM

Shaun has posted an interested feature matrix over on www.DotNetNuke.com. This lists off the various features that DNN, ASP.Net 2.0, SPS3 and MOS2007 all have and how they compare.

http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/506/Default.aspx

One of the main features though

Feature DotNetNuke® ASP.NET 2.0 SPS 2003 and WSS 2.0 MOSS 2007 and WSS 3.0 DotNetNuke® Benefits

Price FREE FREE $40,000 (Not Released)  

DotNetNuke Daily Tip #8 7/5/06 Module Update SQL Scripts
Wednesday, July 05, 2006 11:06 AM

DotNetNuke Daily Tip for 7/5/2006

After a brief haitus for the July 4 festivities here in the States the DotNetNuke Daily Tips are back!

For our daily tip today I'll be covering a minor item to watch out for when you develop your own custom modules using the DataProvider model. DotNetNuke's provider model and PrivateAssembly installer for modules can be an extremely powerful tool when you know how to use them. Here's one catch with the module upload process.

If you've developed a custom module and have upgrade scripts for your module that fire with the PA installer you may have SQL scripts have a '+' in them, perhaps concatenating strings together. You need to be sure to save the .SqlDataProvider file in UTF-8 format. I always seem to have the best luck doing this with plain old notepad. Open the file in notepad, save as, and be sure to choose UTF-8 as the encoding. You can make Visual Studio do this, but had some challenges actually getting VS to save properly with that encoding so I always open and save my files in Notepad just to be sure. If you don't do this you'll run into a few problems when you upload your modules via the PrivateAssembly installer and it tries to run the SQL scripts.

Stay tuned for another DotNetNuke Daily Tip coming tomorrow!

Yet Another DotNetNuke Release!
Tuesday, July 04, 2006 9:52 PM

That's right, DNN 3.3.2 and 4.3.2 are released! Stay tuned for a list of bug fixes for these latest versions. www.dotnetnuke.com

 

More Posts Next page »

This Blog

Syndication