Posts in Category: Features

Woopra - Fantastic Real Time Web Site Tracking and Analytics

A few days ago finally got accepted into the woopra beta program. If you haven't heard of woopra, you really should check it out. I've only been using it for a few days but I'm already addicted and I think anyone who has a web site that is important to them and particularly anyone with an e-commerce web site will find this tool to be awesome.

I'm using it in addition to google analytics. The big advantage it has over google analytics is the way they make it possible to see clearly how individual visitors are using your site in real time (or close enough to it). You can see a lot of information about each visitor, what country they are in, if they arrived at your site as the result of a search, you can see what they were searching on that led them to your site, you can see the sequence of pages the visitor has looked at. In short its just brilliant!

You add a little javascript to your site just like you do for google analytics, but you also install a desktop application (its a Java application) that gives you a rich user interface with a lot of different views. Its the live data that has me hooked.

woopra screen shot

I've always been addicted to keeping tabs on how many visitors are on my site at any given moment. I used to frequently check my community page, which gives a little chart showing how many people are online and who is logged into the site.

mojo users online screen shot

Woopra takes it to a whole new level for me, now I not only know how many people are on the site but also what they are looking for, have looked at, how they arrived. I have a secondary machine with a separate monitor and I pretty much keep the woopra running all day on that screen while I work. It gives me the feeling as if I were running a brick and mortar store. I can see the people walk in and look around and get a good idea of what they are looking for or interested in. In fact if I wanted to, woopra has a built in web chat feature (see the "start a conversation" links next to each user in the screen shot), so if someone is looking at a product page I could prompt them and ask if they have any questions, very much like a real store where people offer help. All of this is giving me better insights about how users interact with my site.

If you have an important web site you really ought to sign up for woopra, it may take a while before they accept your site as they are scaling up gradually but the sooner you get on the list the better.

Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.

Event Calendar Pro Released

I'm happy to announce the release of Event Calendar Pro a premium event publishing system for mojoPortal. This is a significant upgrade and is free to existing customers who have already purchased Event Calendar Pro. Just sign into the site and visit our Store, click the "Order History" link to get to your order history and you will be able to download the new version using the same page where you originally downloaded. For new customers pricing starts at $99 for a single installation license. You can also try it on our demo site at This release requires mojoPortal, so you should upgrade to the latest mojoPortal before installing or upgrading to the new version of Event Calendar Pro.

Whats New?

  • Ability to take registrations or sell tickets to a course or class. If you create a recurring event, for example a weekly course that runs every Tuesday for 6 weeks, you can specify that the ticket/registration includes the recurrences.
  • If you have customers that pay by check or other means in person, you can enable a "Will Pay Later" button so users can register for the event but pay upon arrival. You can optionally limit the roles allowed to use this feature so for example you could create a role named "Trusted Customers" and add your trusted customers to that role and then limit use of the "Will Pay Later" button to members of that role.
  • You can color code events differently on the Month View using our new color picker.
  • You can customize the text on the ticket purchase/register link per event, so instead of the default "Register for this event", you could put "Register for this class" or whatever you like.
  • There is a new setting to specify the default Country and State for ticket orders/registration to make it more convenient if most of your customers are local.
  • Ability to specify the end date for recurrences.
  • Location Alias in case you want the location label to be different than the location you use to get the google map to work.
  • Meta keywords and description per event.
  • Google Map settings are now per event rather than global.
  • Addition of a Summary field so you can have a more brief description of the event on the List View and Ticket Purchase/Registration page.
  • This version now supports all 5 databases that mojoPortal supports, including MS SQL, MySql, PostgreSql, Firebird Sql, and SQLite

monthview screen shot

event editor screen shot

color picker screen shot

Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.

mojoPortal Released

I'm happy to announce the release of mojoPortal, available now on the download page.

In addition to bug fixes for things reported in the Forums since the last release, highlights of this release are as follows:

  • Upgrade to FCKeditor 2.6.4 which includes a new spelling checker that works out of the box, a long wished for feature.
  • A new set of translation files for Danish language thanks to Kurt Greve
  • Blog improvements, an option whether to hide the URL input for comments and an option to require users to authenticate in order to post comments.
  • New sorting levels for products and offers in WebStore to allow better control over sorting on the product list.
  • A new CountryStateSetting control. I needed this for an improvement to Event Calendar Pro in order to specify a default country and state for ticket orders, but I built it into the core so it can be re-used in other features.

spell checker screenshot

Note that the spell checker uses a free ad supported web service. Its very useful but you probably would not want to use this if your web page contains top secret content. It can be disabled from a configuration file for that kind of scenario but I think most users will be glad to have this. It is also possible to purchase a paid account with no ads or a version that can run on your own server, though I'm not sure what the integration steps are for those scenarios.

Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.

New Color Picker Landed in svn

I've recently been working on some soon to be released enhancements to my Event Calendar Pro product. One of the requested features was the ability to set the colors for each event so they can be colored differently on the Month View. In order to implement this I needed a color picker, but rather than build the color picker into the Event Calendar Pro product, I decided to implement it in the core of mojoPortal so it can be used in other features and so other developers can use it in their own features. I implemented it as a UserControl that implements ISettingControl, a simple interface that makes it possible to use the control in Module Settings or in custom user profiles. So for example if you wanted to have a Favorite Color Property on the user profile page you could add this to your profile.config file:

<add name="FavoriteColor"
labelResourceKey="Favorite Color"

and the result looks like this:

Color Picker Screen shot

The color picker javascript is using the YUI Color Picker via a custom implementation from Dynamic Drive that I enhanced further to add localization and pre-selection of the color in the picker.

I hope to release the new version of Event Calendar Pro in the next few days. In order to do that I will also be releasing a new version of mojoPortal with the color picker because the Event Calendar Pro upgrade depends on this feature.


I've deployed the latest version of Event Calendar Pro to the demo site.

Here is a list of the improvements:

  1. Ability to specify the end date for recurring events.
  2. Will Pay option for ticket sales. There is a setting on each event where you can check a checkbox to allow users to register for the event by clicking a button that says "I Will Pay Later". You can further control this from the module settings (gear icon) where there is a new setting so you can specify roles that are allowed to use the Will Pay button. That way you can put your trusted customers into a role and only allow them to register with this button, other users will not see the "I Will Pay Later" button, they will have to use the normal payment methods. button.
  3. Color coding of events in Month View. You can now sepcify foreground, background and border colors for events to make them have different colors in Month View.
  4. Ability to specify the text for event registration link.
  5. Location alias - for use when you want the name of the location to be different than what you need to enter for the google map to work.
  6. Meta Keywords and description per event
  7. Map settings per event instead of global

Any testing or feedback much appreciated, I'd like to release it soon. It will be a free upgrade for existing customers who have purchased it already.

Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.

mojoPortal Released

I'm happy to announce the release of mojoPortal, available now on the download page.

Bug Fix

The main reason for this release is to fix a bug in the MS SQL version of the blog that was introduced in version I'm surprised it took 5 days for anyone to report this bug, it was causing an error when adding new blog posts and this prevented the friendly url from being created to link to the post. Once it was reported I felt it needed an immediate fix and release. We are on a short release cycle anyway, typically we release every 2-8 weeks but any time a significant bug is confirmed we like to get a fixed release out as soon as possible.

If you are upgrading from or higher, you don't have to upload the ClientScript or Data folders as nothing has changed there. Those are big folders so it should help not having to upload them.

New Stuff


Even though its only been a week since the last release there are some new things in this release worth mentioning. I've been gradually trying to eliminate the places where we were using ExtJs since they changed the license and we can no longer get upgrades, I'm focusing on YUI and jQuery and MS Ajax for UI enhancements. I previously removed all the use of ExtJs Tabs and implemented YUI tabs. In this release I implemented a YuiGridView, which is an ASP.NET GridView decorated with the YUI DataTable javascript. I had previously implemented a similar ExtJsGridView and was using it in quite a few places in mojoPortal, but now I have replaced all of those with the new YUI version.

Using the Google CDN

We've been shipping all the YUI and jQuery javascript with mojoPortal for a while. YUI is fairly large, its a lot of files and added a lot to the size of our package. Yahoo has had their own CDN (Content Delivery Network) that allowed you to just load the YUI files from the Yahoo servers, but they don't have support for SSL, so in the past it seemed better to include the files within the site, otherwise on secure pages IE users would get the pesky warning about the page having both secure and insecure content. Recently I saw this blog post in the YUI blog mentioning that google is now also hosting YUI on their CDN which does support SSL. So now we can leave out all of that YUI javascript from our package and load it from the google CDN. This is now enabled by default in mojoPortal, though there is a web.config setting that allows you to disable it if you have some reason why you want to host the files yourself, you still can do that, but its up to you to download the latest YUI and configure it in Web.config. We are also loading jQuery from the Google CDN. The only reason I can think of not to use the google CDN is if your site is on a private network and your users don't have internet access. To me that would be a very unusual use case, but in this case you would want to host all the javascript on the server.

WebStore Gets Its First Report

I implemented a Sales Overview report for the WebStore. I debated with myself whether to show you this screen shot, but I generally lean toward transparency so decided to show my own sales on this report. You can see that I'm clearly not making a living selling products yet.

webstore sales report screen shot

For reference, the store opened on July 23, 2008 with only the Buy Me a Beer product. Event Calendar Pro went on sale August 20th, 2008, and Form Wizard Pro went on sale Sept 29, 2008. Sales are currently only a trickle and I have a long way to go to get to my goal of selling 50 units per month, which is the point where I would start to make a decent living. For now I am still living primarily on savings, but I am optimistic about reaching my goals before I run out of savings. I think I need to add iCal import and export to the Event Calendar Pro and I need to add support for multi page forms or surveys in Form Wizard Pro to make them more popular, and having a few more products would be good. However, I still think the main thing is to improve the popularity of mojoPortal since my products only target users of mojoPortal, and to that end I've outlined some things on my road map that I think will help get there. Anyway, the main idea of the screen shot is to show the new report. The tables are using the YUIGridView I mentioned, and the Chart is ZedGraph.


Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.