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.