mojoPortal Released

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

New Features

Custom Meta Data

We have a new custom meta data system allowing you to add custom meta data to your pages in addition to the standard keywords and description. Specifically the system was designed to support the use of Dublin Core Meta Data, but it can be used for any html meta data.

Dublin Core Meta Data

The new meta data system has been integrated into CMS pages, Blog Posts as well as Web Store Products and Offers.

Page Comments

While it still remains a to do item on our Road Map to implement an internal comment system that can be attached to pages and content features, in the mean time we have added support to allow you to attach IntenseDebate or Disqus comments to the bottom of any CMS page. The Blog of course already has the option to use it's own internal comment system or one of these services. Actually I recommend IntenseDebate because of bugs I encountered with Disqus. I have reported the issues and even identified the line of code in their javascript where the problems occur so hopefully they will fix it. There are new settings in Site Settings > API Keys to enable these services and a setting in Page Settings to enable it on a page.

Google Translate Integration

You can now easily add Google Translate widget to a page or to every page in your site. As you can see I've added it to all pages in this site. Not sure if I will always keep it there but we shall see what the user feedback on it is and whether people find it helpful or not.

A New IFrame Feature

It is already easy to add iframes to the Html content feature using the source view of the editor, but for less html saavy users having a feature to make it easy may be helpful. Eric Stoffers, a community member sent me on he had put together for his users and I made one based on his example but according to my own coding preferences.

Contact Form Improvement

Added an enhancement to the contact form so it can be configured to give the user a choice of who receives the email notification, so you can have different departments or user receive the submission depending on the user choice. See Using The Contact Form for more details.

Forum Improvement

Made it a little easier for users to notice the email notification subscriptions in the forums to encourage users to subscribe and participate in the forums. Users in edit roles will also see a link allowing them to review who is subscribed and unsubscribe users if needed. There is also a new setting if you want all users to be able to see the number of subscribers to the forums (but not the link to review them obviously).

Shared Files Improvement

Added a description to shared files, it is not currently surfaced in the UI except for the editing UI where descriptions can be edited. The main benefit of the description field is that it is indexed into the search engine. Previously you could only find search results based on the title of the file as we do not have an easy way to index Word Documents or PDF files. Now you can paste plain text of the content from these documents into the description in order to index the content of the documents and improve search matching.

Major CSS Re-organization

Back in version, based on community feedback we combined CSS from separate files where we previously had things separated too granularly in files like stylelayout.css, styleimages.css, styleborders.css, styletext.css. These were all combined into style.css for included skins. The problem is we used a CSSTidy script to do the combining and it produced a correct result without breaking any styles but it did not organize the CSS selectors into any groupings that make sense to people, they were just scattered kind of randomly on the style.css file. The result was that it did not have the intended result of making it easier to find what you are looking for. For this release I went through the included skins 1 by 1 and manually moved the CSS selectors around into logical groupings for layout, headings, form styling so that it really is easy to find what you are looking for. This was a very tedious manual task, I spent nearly 40 hours on this working as fast but as carefully as I could. In the end I was very glad to be finished but I feel it was a very important task to make the included skins more approachable as a starting point for customization.

I also went through the features and made more consistent use of styles on grids and tables. In many places we were using the YUI table javascript just for styling tables but this did not lend itself well to styling them according the skin design, it just made a very neutral looking table. I found some nice free GridView themes and put them in a common location under /Data/style and modified them a little according to my needs. I then chose the one that looked the best for each included skin and added it to the style.config file for combining. Those of you with custom skins or upgrading should add one of them to your style.config as well. Note we hve several to choose from and may add more later.

<file cssvpath="/Data/style/gridview/WhiteChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>

<file cssvpath="/Data/style/gridview/ChromeBlackGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/ChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/GlassBlackGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/SoftGreyGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/WhiteChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/YahooGridView.css" imagebasevpath="/Data/style/gridview/">none</file>

Other Miscellaneous Improvements

Because editing Html for email newsletters has such different requirements than normal site content, I added a new site setting so you can specify a different editor preference for the newsletter than for site content. I prefer TinyMCE for Newsletter editing because it has a little better preview feature, but I'm growing more fond of CKeditor for editing site content.

Upgraded to CKeditor 3.0.2 and managed to get our Content Template System and Content Style System integrated and working. I am still noticing a few little issues here and there with CKeditor but I think it has a lot of promise and look forward to it improving over time.


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 primarily a bug fix release. With Thanksgiving approaching it seems it will take a few more weeks to complete the next set of new features and improvements, so rather than make people wait for these fixes I thought I should go ahead and put out a release.

Fixed Bugs

Fixed issue where Newsletters configured as opt in by default were not opting in new users when using LDAP authentication.

Fixed issue where if a registered user changed their email address on the profile page it was not reflected in Newsletter subscriptions.

Fixed issue where users in the Content Administrators role could not always move pages around in the hierarchy using the PageTree.aspx page.

Fixed an issue in the EmailMessageTask where it failed to deserialize if there were special characters in the content or subject.

Fixed an issue where urls for images and links were not resolved correctly in feed urls if the site was running in a virtual directory rather than as a root site.

Fixed issue where redirect after editing resulted in a 404 if the url had non-ascii characters.

Fixed some typos in the English resource files.

Fixed a bug in the Poll feature that would occur if using MS SQL without parameter caching.

Fixed other minor issues as reported in the forums since the last release.

Thanks to all who provided bug reports and feedback!

UPDATE 2009-11-25

I forgot to mention that we changed some behavior to fix an issue with non-ascii characters in urls. If you already have non-ascii urls in your site you may need to make a change in the user.config to keep the behavior as it was in the past. See the document here:

Anything New?

Added a setting in the Poll to make it easy to choose the color for the result bars. Previously there was some undocumented voodoo required to change the bar color from blue.

Updated Italian resource files from Diego Mora.

Better rating star images added to existing skins thanks to Joe Davis.

Happy Thanksgiving! Hope you all enjoy some quality time with your family and friends.

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.

Thanks to All Who Attended My First Yamisee Class

Huge Thanks to everyone who attended my first mojoPortal Developer Training Class on Yamisee last night! And extra special thanks to David Dean and Yamisee for making it possible!

mojoPortal Class on Yamisee

The class was yesterday evening at 6PM EST. I was going to blog about the event before hand, but the available seats sold out quickly and I was reluctant to blog about it once no-one else could sign up. We purposely limited the virtual room to 25 seats for this first session because it was a test also for the Yamisee service which is brand new and still in its early stages.

About Yamisee, as you may notice runs on mojoPortal. David Dean, the master mind behind Yamisee has developed a number of custom features on top of mojoPortal to support the Yamisee service. What Yamisee offers is an easy way to schedule, manage, and conduct online classes and meetings.  One of the ideas behind Yamisee is that for various interest groups there may not always be enough interested people who live close enough together to hold classes or meetings in a specific local market, but there may be substantial numbers of interested people who are geographically dispersed. So Yamisee is striving to provide virtual class room and meeting environments and a service to allow these interest groups to self organize online classes or meetings. While the class I provided last night was free, Yamisee has full ecommerce integration so that knowledge experts can potentially charge for their online courses or classes. So all of the management and ecommerce functionality is built on mojoPortal while the actual virtual rooms are provisioned behind the scenes through various providers and partners of Yamisee. Our meeting for example used a virtual room provided through WebEx. I think the Yamisee service has a lot of potential and encourage others to give it try for classes, courses, or group meetings.

About Our First Yamisee Class

My goal for last night's session was to step by step show how developers can setup their own projects for custom development to keep their custom code separate from mojoPortal code while still working with the mojoPortal source code from our subversion code repository. It was unscripted and unrehearsed because I didn't want to gloss over any stumbling blocks that developers may commonly encounter, I wanted to encounter some and show how to overcome them. I did actually stumble a little more than planned due to making typos and being a little nervous about my first class and not really knowing what to expect. But I think these little stumbles and recoveries were actually helpful. I really wasn't sure how far I would get since it was not rehearsed, the class ended up going over time by about 30 minutes and I still would have liked to have got further along. Time flew for me, it was fun.

Of the 25 seats reserved a few people did not show up and a few others were on standby in case some did not show, we ended up with 20 people in the room and most of them stayed for the whole session, only 2 people left before the end and that was probably my fault since I did go over time by 30 minutes.  It has been quite a while since I have done any live presentations and this was my first one ever in an online virtual room. I was able to share my desktop and a video and audio stream. Looking back at the session I can think of lots of things I could have done better. As I got going on my talk I had the chat window and other windows on my other monitor but I had arranged them too far to the right and as result I wasn't noticing the chat window very much and I never noticed if anyone raised their hand. I apologize if anyone did raise their hand because I forgot about monitoring for that once I got going. Just a matter of getting more familiar and comfortable with the virtual room tools.

We did manage to cover setting up custom projects for web UI, Business, and Data layers, as well as how to configure custom projects to use the installation and upgrade system in mojoPortal. I also demonstrated some code generation using Codesmith to speed up development. At the end, the developers who attended were also interested in getting a .zip of the source code created during the session, so here is a link: It was also asked if the session would be available to download as a video. I'm not sure about that, I'll have to check with David if he recorded it, but my guess is not since it would have been an hour and half long it would have been a very large file. It is possible to record so maybe we will do it next time, but I'm not sure where we can host very large video files for download.

Shall We Do It Again?

Those of you who attended, please share any feedback about what we did wrong or what we did right or whether you are interested in attending another class. If we do another session should I just continue where I left off or would you rather have a more ad hoc question and answer session? How soon should we schedule the next one? What do you think of the idea of having a virtual user group meeting on a regular monthly basis on Yamisee? Would anyone else be interested in presenting a topic about something cool you've done with mojoPortal or skinning/design techniques? Also don't forget that Yamisee is interested in your feedback about the Yamisee service as well, both positive and negative, especially any ideas you may have to improve the experience. Please post any feedback or suggestions in the comments.

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 Wins 3rd Place in 2009 CMS Awards

I'm very gratified to announce that mojoPortal has won 3rd place in the 2009 CMS Awards by Packt Publishing, in the Non-PHP category. It is particularly exciting that mojoPortal was the only .NET based CMS to place this year, nudging out DotNetNuke in the Best Other category.

CMS Award 2009

Plone, a Python based CMS retained their crown from last year, and dotCMS, a java based CMS took second place.

In 2007, the first year of the contest, mojoPortal actually won this category over the more established Plone, but we were the only .NET CMS among the contenders that year. In 2008 there were several other .NET projects in the mix and though we were a finalist in the Best Other category, DotNetNuke took 3rd place both in the Best Other and Best Overall Category. This year, after the nomination phase, DotNetNuke was a finalist again in both the Best Overall and Best Other categories and mojoPortal only made the finalists in the Best Other Category, so it seemed like they had already placed ahead of us again this year, but in the end we prevailed against the odds. 

It is a very competitive field and all the contending projects certainly deserve respect. While some have criticized the contest as being merely a popularity contest, I can't really say it seems that way to me. While mojoPortal's popularity is growing rapidly, we are still much less known than many of the projects in the competition. Certainly we were an underdog and no-where near as popular as Plone in 2007 when we won first place in the non-PHP category, and DotNetNuke clearly has a much larger user base, better brand recognition, and more marketing muscle backed by venture capital. So obviously there is more than vote counting going on. It would be nice if the judges post their individual analysis, at least one has already posted some notes about his impressions of the contenders and I know some of the other judges are planning to do the same.

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.

Newsletter Improvements

The primary focus of this release is improvements to our newsletter.  We have had a lot of consistent feedback from the community asking for Newsletter improvements and we were long overdue to complete this. The improvements made are as follows:

  • Users can subscribe to Newsletters without registering on the site
  • A Newsletter Sign Up feature has been implemented so that you can put it on any page(s) you like and configure it with various settings to control what is displayed. Since you can have as many newsletters as you like, the sign up can be configured to show a list where users can choose which newsletters they would like to receive, or you can not show the list and it just subscribes to the default newsletter, which is the first one in the list. If the user is not authenticated then a confirmation email is sent to confirm ownership of the email address.
  • Each newsletter can be configured whether to opt in by default when a user registers on the site.
  • Each newsletter can be configured whether to allow viewing previous editions as a web page. If your newsletter has compelling content, browsing previous newsletters may encourage more subscriptions.
  • A progress bar so you can monitor progress as the newsletter is sent to the list.

newsletter progress bar

Editor Updates

Upgrade to TinyMCE 3.2.7
Upgrade to FCKeditor 2.6.5
Upgrade to CKeditor 3.0.1

Added more options to our TinyMCE configuration file, including setting for configuring the default language for the spelling checker.  Added a new toolbar for the Newsletter editor since it has different needs than web page content. Fixed an issue where TinyMCE would remove iframes entered in html view.

SEO Improvements

Added an option in page settings for overriding the canonical url. This is mainly for use on your home page. Since it is the default page of the site it is visible using the url http://yoursiteroot/, http://yoursiteroot/Default.aspx, and http://yoursiteroot/home.aspx, by default it would make the canonical url use the generated friendly url for the page, in this example it would use http:/yoursiteroot/home.aspx, but you may prefer to have http://yoursiteroot/ a the canonical url so this override setting allows you to do that.

Added a separate setting in page settings for including a page in the search engine site map. Previously we used the same setting for the search engine site map as for the main user site map. For example you could create a page and then point it to and it would be listed in the menu and site map the same as any other page, however, for the search engine site map, google webmaster tools would find this as an error in your site map. So we added a separate setting so you can easily exclude pages from the search engine site map if they are just pointers to external pages.

Updated Translations

Updated Italian resource files form Diego Mora

Updated Persian resource files from Asad Samarian

New, French-Canadian resources thanks to Benoit Houle


Added a new setting under Site Settings > Permissions for "Users that can create root level pages".

Made it possible to disable the default database authentication if you want to use only Windows Live and/or OpenID

Added a config setting to exclude specific admin email addresses from site registration notifications and work flow notifications.

Other miscellaneous tweaks and bug 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.