Gets a New Look!

I've just updated this site to use a new skin designed by Joe Davis of I wasn't really dissatisfied with the previous design in general, it was pretty decent and in some ways it makes me a little sad to change from what had become so familiar to me. But the new design seems very clean and there is a lot of attention to detail that really looks professional and I think in some cases the new design improves the usability of the site.

The menu structure is very nice and one of the most striking elements of the design. But the usability improvements are the result of making things stand out more. For example people hardly seemed to notice the forum descriptions and posting guidelines in the old design. It is right there on the page but somehow it often goes un-noticed because it doesn't grab your attention, so the result is that people often post questions in the wrong forum or leave out information that is expected to be included. With the new design, the forum description/instructions really stand out and I anticipate it will be noticed better than with the old design. Notice also the nice attention to detail for the pager link styles.

New Design Forums

screen shot of new design for forums


Old Design Forums

screen shot of old forum design

Similarly, on our search page there has always been a little help link that people could click to learn how to do more advanced searching, but in the old design hardly anyone ever noticed it. Whereas again in the new design it really jumps out and I anticipate more people will click the help link and will have better luck searching once they know the tips from the help.

New Design Search

screen shot of new search design

Old Design Search

screen shot of old search design

A huge thanks goes out to Joe Davis for his hard work on this design! Joe is also working on a variation on this design but with a different color scheme that we will ship with a future release of mojoPortal.

What do you think? Do you like the new design better than the old one?

Please also let us know if you notice any pages on this site that don't look right with the new design, we are still tweaking a few things here and there.

Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

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

Recent mojoPortal Sightings April 2011

Just a quick post to highlight a few mojoPortal sites that have come to my attention recently.

The City of Escondido California went live with their main site using mojoPortal back in December of 2010, but more recently they went live with a new site for their Police Department and for Recreation, and work is under way for a new site for their Fire Department.

Escondido Police Department site screen shot

Escondido Recreation site screen shot

Quoting Jamie Eubanks, a developer in the IT Department for the city:

"the PD site was pretty straightforward this time around (nothing custom). I can say that it's the great out-of-the-box flexibility of mojoPortal that allowed us to create a large and comprehensive site like this with no programming on our part. This is also our first site which was developed end-to-end by our webmaster with minimal technical support needed. She developed the site skin from scratch in Artisteer, and reused some of the layout.master tweaks we developed for the main site (like the Google Translate widget at the top of each page)."

Another recent site is the Solar Europa site designed by The Design Loft, one of our partners in the UK. They have done over 20 projects so far using mojoPortal.

screen shot of Solar Europa site

We are continually adding new sites to our mojo Sites list. If you've designed a mojoPortal site that you are particularly proud of, let us know, we'd love to hear about it and maybe we will feature your site in a blog post.


Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

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 our download page.

This is not a major update but it does have some things to make it worth upgrading.

Editor Updates

Both CKeditor and TinyMCE put out new releases with bug fixes and updates, many of which are related to IE 9 and Firefox 4.
Upgrade to CKEditor 3.5.3
Upgrade to TinyMCE 3.4.2

There was an error happening under .NET 4 Medium Trust hosting related to our older FCKeditor. Nothing had changed in this editor for a long time so I'm surprised that we had never seen this error until recently. It makes me wonder if there was some behavior change that came with a recent Windows Update. In any case, the error is fixed in this release.

jQuery Updates

We had a bug report about our jQueryUI Date Picker where it was not formatting dates correctly for en-NZ. It turned out that support for en-NZ was only added to the jQueryUI Date Picker as of version 1.8.9, so the solution was to upgrade to a newer version. However, we had been holding off on upgrading jQueryUI because we knew there was an issue in the Time Picker extension that we were using where it did not work with newer versions of jQueryUI than 1.8.6. Fortunately, we found another Time Picker extension for the jQueryUI date picker and it seems to work with any version of jQueryUI.

So we updated to jQuery 1.5.2 and jQueryUI 1.8.11. Note that upgrading is really just changing 2 config settings since we load jQuery and jQueryUI from the google CDN. So if you are using any custom jQuery plugins and they don't work with the newer versions of jQuery or jQueryUI, you could override the version from user.config to keep using an older compatible version of jQuery or jQueryUI.

date time picker screen shot

Support for Newsletter Throttling

It had been requested a while back to have a way to throttle the sending of the newsletter. Blasting out an email to a lot of users in a short time can make it look like spam to some receiving mail servers, especially if you are using a consumer email account or you don't have a well known reputable mail server. So it can be beneficial to limit the rate at which you send the email messages to your list. The mojoPortal newsletter subscriber list is getting pretty large and we had some trouble with our February newsletter due to sending the emails too fast. I got a few non-delivery notifications from and others saying that we sent too many in a short period of time. So it was a priority to implement this before we sent the March newsletter. It really helped as we had no non-deliveries related to sending them too fast. 

There is a new setting that you can override in user.config:

<!-- you can throttle the sending of the newsletter 0 = unlimited/no throttling -->

<add key="NewsletterMaxToSendPerMinute" value="0" />

If you enter a number greater than zero it will sleep for one minute after each round of sending that many. So if you set it to 10, it will blast out 10 in a row and then sleep for a minute and the repeat until it sends to each subscriber in the list. I set it to 10 before sending the March mojoPortal newsletter. Of course the larger the list the longer it will take but you can calculate approximately how long it will take at any given rate and you can use a higher setting to send them faster if you need to. 


Support for custom regex and error message for email validation on the registration page, you can override our defaults with these settings:

 <add key="CustomEmailRegex" value=""/>

 <add key="CustomEmailRegexWarning" value=""/>

Support for more page settings when creating initial content from config files

Support for configuring the Thread UICulture separately from the Culture. The UICulture is only used for choosing the resource files, whereas the Culture is used for formatting numbers, currency, and dates.

This example uses German for the numbers and date formats and uses English for the resource files.

<add key="UseCultureOverride" value="true" />

<add key="site1culture" value="de-CH" />

<add key="site1uiculture" value="en-US" />

Fixed bug in the SQL CE data layer that prevented the Newsletter feature from working in our package for SQL CE.

Lots of updated translations thanks to our Translation Team

Other miscellaneous little tweaks and fixes for things reported in the forums since the last release.

Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

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 our download page.

Improved Usability for Multi Site Administration

There is a new site list page, that provides a link for creating new sites and a pageable list of existing sites. If you want to show the site id in the list you can add this to user.config
<add key="ShowSiteIdInSiteList" value="true" />

site list screen shot

Improved Usability for Managing Large Site Hierarchies

When creating or editing pages there has always been a dropdown list for selecting the parent page or you could set it to root for a root level page. When sites have a large number of pages this dropdown list would become unwieldy, so we implemented a new dialog page for selecting the parent page, the dialog pages uses a treeview with populate on demand to drill down to the page you want to use as the parent page so it can better handle large numbers of pages.
The dropdown list is easier to use for sites that don't have a huge amount of pages so we made it continue to use the dropdown if the number of pages in the site is less than 150. You can configure the setting if needed or desired. For example if you prefer to always use the dialog page then you could set it to 0.
<add key="TooManyPagesForDropdownList" value="150" />

New Child Pages Site Map Module

Pages have had a setting for a long time allowing you to show the child pages site map as a menu. This can be very useful especially for pages that are just used for grouping of child pages.
But the child page site map built into the page has some limitations, for example if you want to have content on the page in addition to the child page site map, it could either go above or below the child page site map depending on the position of the control in layout.master

<portal:ChildPageMenu ID="ChildPageMenu" runat="server"></portal:ChildPageMenu>

so it was an either or kind of thing you could not do it differently on differnet pages unless you used a different skin.

So, Joe Davis implemented a new Feature Module for Child Page Site Map that you can put on a page just like any other content feature and this allows you to position it any way you like, even in side columns

Support for Slide Show Pager in Html Content Feature

Again, thanks to Joe Davis who implemented some default css and other changes needed to support the pager for the jQuery Cycle plugin that can be used in the Html Content feature for making slide shows out of html elements.

Image Gallery Improvement

Changed to use colorbox, a nicer lightbox effect instead of the previously used greybox thanks to Jamie Eubanks.

List/Links Improvement

It is now possible to browse in order to link to pages or files within the site, similar to the link browser that was already implemented in the wysiwyg editor, the new link browser populates the url textbox in the List/Links feature.

Support for Roles That Can Manage Users

allows delegating user management to users without making them full administrators.

Registration Page Improvements

Previously we could make custom user profile properties that were required for registration to appear on the registration page, but there was not a way to show optional custom profile properties on the registration page. It is now possible.

The registration agreement is now per site and has an edit page, previously it came from config files and was global to all sites in an installation.

Improvements to the Initial Content System

The Initial Content System is used to populate the first site during installation and to populate new sites when they are created. We've made changes for better support for configuration of nested pages and also created an interface that can be implemented for populating custom features. I will be updating the documentation for the Initial Content System in the next few days and will update this post with a link once it is completed.

UPDATE 2011-03-31 I've updated the article Configuring Initial Content, and added another article Populating Feature Content.

Improvements for Design/Skinning

It is now possible to import and export skins as .zip files and there is a new permission in Site Settings for "Roles That Can Manage Skins". It is also now possible to edit css files in the browser. While it is probably better to do the main skin development on your local machine, it is possible to edit css files in the browser and it is useful for small css tweaks.

You can disable the ability to upload skins and edit CSS by adding this to user.config:
<add key="AllowEditingSkins" value="false" />

I have it disabled for example on the demo site.

skin manager screen shot

There is a new Page Setting that allows page specific css classes on the body tag as well as a setting for page specific menu css classes.

There is a new class on editor body making it easier when you need to override some of the styles in the editor, you can do it with body.wysiwygeditor {} in CSS.

All of the skins that ship with mojoPortal use h1 for the site name and h2 for headings of feature instances. Some designers prefer for SEO (Search Engine Optimization) reasons to not use a heading at all for the site title and use h1 for the feature instance headings. In the past we had a global config setting that could be used to override the heading:

<add key="ModuleTitleTag" value="h2" />

In the new version, it is possible to edit the setting used for feature instances right from the Feature Instance Settings page (ModuleSettings.aspx). The heading is now stored in the database so it is possible to use different headings on different instances. When new instances are created it defaults to whatever you have for this setting: <add key="ModuleTitleTag" value="h2" />

This is an advanced feature and it is possible to put something incorrect for the heading element, so it is disabled completely by default and even when it is enabled it is limited to users in "Roles That Can Manage Skins". You can enable it by adding this to your user.config:

<add key="EnableEditingModuleTitleElement" value="true" />

Since this is a new data filed used for the heading element, existing data will be updated to have h2 which is the default. However if you were previously using the config setting to force a different heading, for example if you were forcing it to use h1 by using this setting:

<add key="ModuleTitleTag" value="h1" />

then you will need to manually update the existing data by running a sql query like this:

UPDATE mp_Modules
SET HeadElement = 'h1'

Then going forward it will use the config setting for the default on new instances.

We also did a lot of work to make menu and treeview rendering more flexible. It is now possible to control which CSS classes are rendered on the menu ul, li and a elements. In the coming days I will be writing documentation about the new settings available and how to use them. I will update this post with links as I progress with the documentation.

The available on the download page also has updated skins for Artisteer 3.0 beta, as well as a number of skins contributed by community member Hennadiy of CMS-Web e-Business Solutions.

As always you should review the sticky thread about important skin changes that you will need to apply to your custom skins after upgrading.

Other Stuff

The friendly urls used in mojoPortal can be problematic for some non-ascii languages, we've had a config setting for a while that could disable it for CMS pages, but it has been requested to also be able to disable it for blog posts. It is now possible to do this from user.config
This setting disables it globally in the blog feature.

<add key="Blog:UseFriendlyUrls" value="false" />

You can also disable it for specific module ids using this pattern, where th number is the module id.

<add key="Blog:UseFriendlyUrls-3" value="false" />

As many of you probably know, javascript wysiwyg (What You See is What You Get) editors don't work in devices such as iPad, iPhone, Android, etc. Historically we have degraded to a plain text area for these devices so at least it is still possible to edit or post in the forums. In this release we integrated MarkItUp textarea editor for use with iPad and smart phones for a little better editing experience than a plain textarea. It is not a wysiwyg editor, it is an editor for html editing, the content in the editor is still raw html but there are convenient toolbar items to help you write the html.

Upgrade to TinyMCE 3.4.1
Upgrade to CKeditor 3.5.2

Many translation updates, thanks to all our translation team members and to the Amanuens service!

Various bug fixes for things reported in the forums since last release.

Corresponding Updates for Add On Products

An Update for NeatUpload is also included and this required us to make corresponding compatibility updates for Form Wizard Pro and Web Invoice Pro. Customer who have purchased these products can get the update from their purchase history under the "My Account" link.

Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

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

New Add On Product - Web Invoice Pro

I'm happy to announce the initial release of Web Invoice Pro, available now in the mojoPortal Store.

Web Invoice Pro makes it easy to send invoices by email and let your customers pay the invoice online at your web site running on mojoPortal. It provides support for receiving payments via PayPal, Google Checkout, or Authorize.NET. A great way for freelance web designers and developers or any business to invoice their customers. You can test Web Invoice Pro on, so you can try it before you buy it, though of course you should only send test invoices to yourself from the demo site and the demo email messagess will have extra text in them to make it clear it came from a demo site.scree shot of editing an invoice

Features at a Glance

  • Attach a PDF Invoice generated from your accounting system and/or just type in the invoice information as part of the email message.
  • Customers can pay the invoice online at your web site using Authorize.NET, PayPal, or Google Checkout.
  • Customers do not need to be registered on your site to pay the invoice, but if they are then they can see their payment history in the user profile.
  • Optional email notification when invoices are paid.
  • Integrated with the mojoPortal Commerce Reports system so you get reporting and charts of your invoice revenue.
  • Free upgrades to new versions of Web Invoice Pro for the life of the product! That's right, buy it once and any updates are free, we will never make you pay an upgrade fee for new versions of Web Invoice Pro!

Get Web Invoice Pro and get paid!

get paid, get web invoice pro

The initial release supports MS SQL or MySql, but I'm considering adding support for other databases if I get feedback requesting it. I've been using this feature myself for invoicing my customers and it meets my needs pretty well right now but I think there will be lots of possibilities to evolve this feature further, and those who purchase it may help shape its future based on their feedback.

If you need a way to invoice your customers and let them pay online I hope you'll give it a try. The sales of these add on products is what sustains and funds the continuous improvements of the mojoPortal project, so it is a good way to get additional features and to support the project.

Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

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