Wrapping Up the Sueetie 3.1 To-Do List

I told the Sueetie Nation that Version 3.1 would be available in March.  That’s only a few days away, so I thought I’d better wrap up the Sueetie 3.1 To-Do List to begin final launch sequence.  Rather than write a post for each To-Do item crossed off the list, I thought I’d provide you with a quick summary of each.  I should mention that I list all Sueetie updates on the Sueetie Changelog.  If you don’t want to wait for a blog post you can catch the action as it happens there. 

Here are the items I cover so you’ll know if you want to continue reading:

  1. Localization Updates
  2. New Sueetie Analytics Data Maintenance Function
  3. SiteMenu Control Update
  4. New Sueetie PlaceHolder Control

Localization Updates

I’ll start with a bit of localization news.  Thanks to a Sueetie Admin across the pond I discovered that the Forget Username and Password functions were not fully localized.  They should now be so for v3.1.  He also discovered that the Sueetie Administration Approval Email was not localized, which is now fixed.

New Sueetie Analytics Data Maintenance Function

Next I added a final maintenance function to Sueetie Analytics, something I call "Remove Refreshed Page Entries." While studying the analytics page view data I noticed the requests of certain user page were being replicated over several minutes.  This inflates page view totals and is obviously something we don’t want in the Sueetie Analytics Data Quality Control Department. 

You may wonder if perhaps the Sueetie Application was causing the refresh, which is what I assumed.  I started there and did indeed discover that YetAnotherForum.NET had a built-in refresh function.  Two, in fact.  One for the Shoutbox chat control and another for a jQuery time lapse function.  I redesigned Sueetie’s YAF Request logic and fixed both of those duplicating factors, but I continued to see multiple user page views occurring over a random time interval.  I knew it wasn’t an application-induced refresh and thus out of my control, so I created the Remove Refreshed Pages function you see below.

I also created a Remove Refreshed Pages background task.  Here you can see it logging its results.

I made logging a user configurable Sueetie Analytics setting.  Here’s the Analytics Settings page which will be what you’ll see in Version 3.1.

SiteMenu Control Update

This is something I wanted to do for some time, update the SiteMenu Control to support multiple roles.  That’s finally done and will be rolled up in 3.1.  Now you can declare


for the Control Panel tab.  Looks like the next step is a revamped Control Panel to support administrative function access by role.  Uh-huh!

New Sueetie PlaceHolder Control

In the same vein of update as the SiteMenu Control, I added a new placeholder control called MultiRolePlaceHolder.  I assume you can guess what it does, yes, support multiple roles rather than the single role as the existing UserRolePlaceHolder control. 

I like using the UserRolePlaceHolder because I designed the role selection for Intellisense, but a Sueetie Admin asked me recently why he was getting an error using a custom role.  We can’t have that.

Here you can see the MultiRolePlaceHolder in action.

It also has a new Intellisense-enabled IsAnonymous property to make it easy for you to display content to anonymous users.

I wanted to upgrade the existing UserRolePlaceHolder control to support multiple roles and the IsAnonymous property, but it’s used too extensively throughout Sueetie and upgrading would have been a pain.  So we have two. 

I need to spend some time with the Sueetie License distribution and management processes that are new for v3.1. You’ll hear more about those soon.  Then the packaging begins…and then the big release! 

Article written by

A long time developer, I was an early adopter of Linux in the mid-90's for a few years until I entered corporate environments and worked with Microsoft technologies like ASP, then .NET. In 2008 I released Sueetie, an Online Community Platform built in .NET. In late 2012 I returned to my Linux roots and locked in on Java development. Much of my work is available on GitHub.