Posts in Category: Releases

mojoPortal Released

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

This release fixes a few bugs reported in our forums since the last release, adds a few minor improvements to some features and lots of minor fit and finish improvements based on feedback from our community.

In the previous release I added a hideable toolbar for administration links in most of the included skins, this release I took a queue from Joe Davis and added icons to the toolbar. Also based on community feedback, I made it remember your preference for open/closed across pages. Previously if you closed it and went to a different page it would open again on the new page, now it remembers your preference.

toolbar with icons


Contact Form - added a setting for BCC email, added a setting in case you don't want to store messages in the database, added a setting allowing you to use the email address entered by the user as the from address in the form notification.

Shared Files - added a setting for the Default Sort, when shared files are returned as search results in the search page, the download link now opens a new window.

Upgrade to NeatUpload 1.3.21

Updated Translations

  • Italian - thanks Diego Mora
  • Greek - thanks Yioryos Moschovakis
  • Russian - thanks Alexander (aka SkySandy)
  • Turkish - thanks to Cenk Kumas
  • Swedish - thanks to Par Rohlin
  • Spanish - thanks to Matias Molleja

Your Opinion Requested

I am currently using CKeditor as my main editor and it is also now the default for new installations of mojoPortal. The only thing I like better about TinyMCE at the moment is the spell checker which works much nicer than the one in CKeditor or FCKeditor. Since CKeditor is the successor to FCKeditor and no new development is being done on FCKeditor, I'm considering not including FCKeditor in mojoPortal going forward to reduce our footprint on disk a little as each editor is a lot of javascript. We could reduce 3 or 4 MB of disk footprint leaving it out. I could still make it available as a separate download for anyone who wants to continue using it. So, if you have a strong opinion about whether we should or should not continue to package FCKeditor with mojoPortal, please post 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 Released


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

This is a major release packed with lots of improvements that I think you will like. 

New File Manager UI

We have a new File Manager based on QtFile. I could never have made anything pretty like that myself, if you see anything pretty in mojoPortal you can be fairly sure someone besides me deserves the credit for the prettiness. I'm very good at making things work and integrating things others have made pretty. Now the old File Manager is not gone, you can actually toggle between them. The new one in addition to being prettier than the old one also has a way to easily move files whereas the old one does not. I kept the old one because it has a couple of advantages of it's own that the new one does not have. For example, it has bulk file uploading, may be better able to handle large file uploads because it uses NeatUpload, and it can still be used with javascript completely disabled. In both our File Managers, where and whether the user can upload and delete files depends on their role permissions.

file manager screen shot

If you have a custom skin and are upgrading, you will need to add this to your style.config to bring in the css for the new file manager.

<file cssvpath="/Data/style/qtfile/default.css" imagebasevpath="/Data/style/qtfile/">none</file>

We also recently had some requests for an administration link so that users with permissions to upload and delete files could easily get to the file manager. Previously non admin users could only upload images for example by using the editor in a content instance. With the addition of this new link for File Manager in addition to our other administration links it seemed that the number of links we are showing was beginning to clutter the screen a bit, so I implemented this pretty toolbar in most of the included skins to contain the administration links, you can hide it with a click of the down arrows.

administration toolbar

Now, as you can see it is kind of pretty so obviously someone else deserves credit for that. To explain the why and how this toolbar was integrated into the included skins, how you can use it if you want to in your custom skin, and to learn where it came from and who really deserves the credit see "Creating an Admin Toolbar".

Shared Files Improvements

  • Now counts downloads of files
  • If you rebuild your search index, files found in search results be be a download link instead of a link to the page containing the Shared Files instance.
  • New description field. This field gets indexed in the search index, since we do not currently have support for indexing actual file contents for things like PDF files or Word docs, you can paste the full text of the document into the description and then get search results with files that have matching content. In this case you would keep the description column hidden since it would probably be ugly to show the full file contents as text in the page.
  • New options for showing and hiding columns in the file grid

Blog Improvements

  • Added paging to the blog list view by popular demand
  • Added a dedicated Is Draft indicator so drafts can be created either by checking this or settings future publish date.
  • Added a Save/Preview button so you can preview drafts as they will appear when published.
  • New setting allowing you to specify the date/time format string for blog posts

Feed Manager Improvements

  • Added a Calendar View, this goes well with our Event Calendar Pro feature which can expose Events as RSS. Now you could show a mini calendar on your home page for example that shows upcoming events and links to the event details in Event Calendar Pro.
  • New setting allowing you to specify the date/time format string

Simple List/Links

What we previously called the Links Feature is now renamed to Simple List/Links. This was one of the first features in mojoPortal and in fact was a feature in the old IBuySpy Portal that mojoPortal was originally based on. It had not changed much over the years, we added a description which could be shown optionally with the link and this could be indexed into the search index, but other than that it was just a way to make a list of links, something one could easily do also in the plain old Html Content feature, so the Links feature was just an easier way to make a list of links. I've been using it for our mojo Sites list, but as the number of sites in the list is growing it seemed like a good idea to add paging, so I did that as you can see on the mojo Sites page. Once I had that done I got to thinking about our Consulting Partners List which was just using a plain Html Content feature and was beginning to get unwieldy to update.  I thought of the Links feature with it's new paging support and how handy it would be to have that same paging functionality on the consulting list but without the links since we link to the partner sites from the description. So I added a setting allowing you to show "Description Only" in the Links feature and then decided it needed to be renamed to Simple List/Links or others won't notice they can use it this way. I'm also thinking about using it to make a Skin Gallery where we can show the link to the zip file and have screen shots in the description, again paging is what makes this manageable as the list grows. So it is a nice little feature now to make a list of blocks of html content or links or both. You can move things around in the list based on their sort rank.

De-Coupled Settings For Open ID and RPX

This is important for you to notice, if you are using the RPX service and are upgrading you probably have "Enable OpenID" checked in Site Settings because previously it was required to have this checked to use RPX but then the normal Open ID login would not be shown if RPX was enabled. You may want to uncheck that now because if it is checked it will also show the normal Open ID sign in in addition to the RPX one. Previously it was not possible to show both but it seemed they should be de-coupled because they are completely separate implementations and nothing should stop you from using both if you wanted to. RPX is enabled simply by the presence of an RPX Now API key. Remove the key to disable it.

Moved the Url Location for CssHandler.ashx

We have always held the opinion that the /Data folder in mojoPortal (or writable folders in any ASP.NET application) should not require execute permissions because that is where users can upload files and it is just best security practice to not let the web process have both write and execute permissions on the same folder. You should not be able to upload dll files to the /bin folder from web code for example, it should require a more privileged ftp user for best security. A few versions back when we implemented the CssHandler to combine and minify the CSS files, we made the url for the handler be /theskinsfolder/csshandler.ashx because this made it easy to determine which files belonged to the skin. Note that there is no physical file named csshandler.ashx anywhere on disk but since the skin folder is one of the writable folders below /Data and we were making the url appear as if it was actually located there, setting the folder permissions to deny execute caused the csshandler to fail. So now we have changed the virtual url for the csshandler to be just in the root of the site so that the /Data folder and all it's child folders including skins can be marked as not executable without breaking the css handler.


  • Added more noticeable links in the Forums to encourage users to subscribe to email notification
  • New User Selector Dialog in Role Manager
  • Updated Italian Resource files thanks to Diego Mora
  • Updated Swedish Resources thanks to Par Rohlin
  • Update Russian Resources thanks to SkySandy
  • Updated French Resurces thanks to Thomas

One More Thing - A Query Tool For Developers

For this release I implemented a Query Tool that can be used to query the database on any of our supported database platforms. See the new documentation, you can even save queries and use them in quick and dirty custom features.

screen shot of query tool

Thanks to all who provided feedback in the forums and especially thanks to those who are helping others in our forums.


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.

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.

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.