Posts in Category: Features

mojoPortal 2.7

We're pleased to announce the release of mojoPortal 2.7, which has a lot feature enhancements and fixes as you will see below. We're also releasing updated versions of Form Wizard, Event Calendar Pro, Site Membership Paywall, Web Invoice, and Fund Raiser.

Where to Get It?

Head over to our GitHub Releases Page.


  • Google Maps Fix
  • New Image Gallery
  • MySQL 8 support
  • pgSQL and SQLite support for SuperFlexi
  • Form Wizard form editing experience improvements

New Feature: Better Image Gallery

  • Beginning of a new image gallery. Currently replaces the Image Gallery (Simple Folder Version), will replace the other Image Gallery soon.
  • Uses Razor Views the same way the Blog Post List View module does.
  • Default layout (view) uses BlueImpGallery
  • Learn more here: Getting Started With The Better Image Gallery.


  • pgSQL and SQLite support.
  • Allow editing when user is in AllowedEditRoles.
  • Added "SkinVersionGuid" static token.
  • Added WebApi support for retrieving SuperFlexi data.
  • Added [dbo] to all object references in mssql scripts.
  • Added Pre/Post TokenStringWhen True/False for CheckBoxes.
  • Fixed MaxItems needing high number to work properly.
  • Fixed bug where not selecting solution would break site.
  • Fixed bug where changing Solution would cause an error condition on first click of edit link.
  • Fixed bug in MySQL data layer where Int32 dbtype was used when Guid should have been used.


  • Added optional "Default Post URL Prefix" setting. Allows for automatically placing blog posts in a URL hierarchy, e.g., some.domain/my-blog/my-first-post.
  • Added logic to Remove post from Search Index if "EndDate" is set to before current date.
  • Added logic Remove post from Search Index if "IncludeInSearch" is set to false. Previously, this was only checked when creating a post, not when editing.
  • Added logic to check for Heading control on page when UsePostTitleAsPageHeading is true. This setting would hide the blog title if the page heading was no longer on the page if the ShowPageHeading setting was set in the DB from a previous skin.
  • Added logic to allow BlogPostListModule to work in ModuleWrapper.
  • Changed post title and subtitle fields to not allow HTML. Someone actually thought this was a XSS issue but only people who could add HTML to the post body (thus able to add script) could set the title and subtitle fields. SMH…


  • Removed old inline styling on table elements
  • Standardized on "thread" vs "topic" and capitalization of other phrases/words


  • Added submission limit for authenticated users.

Shared Files

  • Added granular permissions for Roles on files and folders.

mojoPortal Core

  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added SQLite database auto creation. If SqliteConnectionString value is "defaultdblocation", mojo will copy the seed database (/data/sqlitedb/mojo-seed.db.config) to  (/data/sqlitedb/mojo.db.config). This will prevent accidentally overwriting the existing database.
  • Added page deletion confirmation dialog.
  • Added .webp to the allowed image file extensions.
  • Added WebUser.IsSkinManager method.
  • Added new control "EmbedSVGSprite" to allow easier embedding of SVGs in code.
  • Added display settings to separate settings/delete from move buttons on PageLayout buttons.
  • Added override for UIHelper.AddConfirmationDialog to allow for HtmlButton in place of WebControl. Allows for attaching Confirmation Dialogs to HTML5 button elements.
  • Added AlertPanel to allow for easier and standardized skinning of alert messages.
  • Added SelectFolder function to FileManager.
  • Added ICustomField, Options, Attributes, and DropDown to ModuleSettings. Makes adding dropdown options easier, removes need for special controls for those types of fields. ICustomField is like ISettingControl but it has ability to add additional Attributes to the control. These attributes can be used by the custom control in any way the developer wants. They are also used by the TextBox, CheckBox and DropDown field types in the ModuleSettings.
  • Added API Key functionality to Google Maps.
  • Added iframe embed option for Google Maps, enabled by default. Doesn’t require an API Key.
  • Added SetupFooter options.
  • Added CSV_Splitter to MSSQL datalayer. Will create a list of SqlDataRecord from a list of values. This new list is used to populate a TVP (Table-Valued Parameter) in a stored procedure.
  • Added StringHelper.IsIn(). string extesion to easily check if string is in an array. Example:
    string color = "blue";
    string[] colors = {"blue", "green", "red"};
    if (color.IsIn(colors))
        // do something
  • Added Set_Root_Cookie function to mojocombined.js.
  • Added .woff2 to web.config.
  • Added UIHelper.GetDictionaryFromString(). Converts a semicolon and pipe delimited string to a string,string dictionary.
  • Added XMLHelper.GetKeyValuePairsAsStringBuilder and XMLHelper.GetKeyValuePairs.
  • Added Browse Files permission to allow users to use the file manager but not make any changes or upload new files.
  • Changed location of "Design Tools" to Admin Menu.
  • Changed to Newer/prettier/better/fantastical markup for error page.
  • Changed UIHelper.AddConfirmationDialog to allow for more than one onclick call.
  • Changed the rendered order of CssClass and ExtraCssClasses on BasePanel. (extra is now second).
  • Changed RolesThatCanDeleteFileInEditor to always include ContentAdmins.
  • Changed FriendlyUrl Suggestions to use optional url prefix.
  • Changed permissions to allow ContentAdmins to delete in File Manager.
  • Changed permissions to allow ContentAdmins to see FileManager link.
  • Cleaned up System Log page when logging to database.
  • Cleaned up controls in built-in features, added SkinIDs to buttons, converted panels to FormGroupPanel.
  • Fixed some capitalization issues in MySQL db scripts.
  • Fixed "Skin Manager" CSS editing to allow editing CSS files in sub-directories of a skin.
  • Fixed OpenID (janrain) issue preventing logins.
  • Fixed bug where Site Search Module wasn’t using the feature filter from the module settings.
  • Fixed caching issue in FileManager by disabling caching. This was causing issues with the FileSystemServiceToken which would prevent users from using the File Manager.
  • Fixed reference to non-existent 404notfound.aspx file in web.config
  • Fixed FileManager for folder-based multi-tenancy.
  • Fixed folder url recognition in folder-based multi-tenancy. No longer need to create folder and add empty default.aspx file.
  • Fixed saving of FirstName and LastName on create in ManageUsers.aspx
  • Fixed buggy regex for CustomCssClass settings in several modules. Consecutive spaces in submitted input were causing the regex validation to lockup.
  • Removed DetectPageNotFoundForExtensionlessUrls to fix issues with Routing (new file manager).
  • Removed GreyBoxIsLoadedFromSkin in code and user/web.config.
  • Removed LessUtility from DesignTools.
  • Removed unused images and css from data/style.
  • Removed unused icons and images from data/SiteImages.
  • Removed more corner rounding controls.
  • Removed FeatureIcon/ModuleIcon and PageIcon settings.
  • Removed Twitter and Flicker modules that no longer work due to drastic changes in service APIs.
  • Replaced several hard coded instances of image file extensions.
  • Replaced long string concatenation with string interpolation (not complete, work-in-progress).
  • Replaced ugly icons used on PageLayout for moving content with FontAwesome 5 SVG sprite.
  • Replaced a lot of the old ugly icons used throughout project with simplified icons. Planning full replacement of these icons with something else later.
  • Standardized Authentication Checks and Access Denied redirects. Had about 10 different process flows before.
  • Standardized use of NonCmsBasePage across admin page.

Web Store

Web Store can be downloaded here.

  • REQUIRES mojoPortal 2.7
  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added proper SkinID to buttons so they will match styling of the rest of the site
  • Removed the now defunct Google Checkout
  • UI Improvements, including several new Display Settings

Form Wizard 2.7

Form Wizard can be purchased in the store. If you already own a license, go to My Profile under your avatar on the mojoPortal site to download the latest version.

  • REQUIRES mojoPortal 2.7 (version numbers being the same is just a coincidence).
  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added a lot of Display Settings.
  • Added SkinIDs to submit and previous buttons.
  • Added Question Alias to divs wrapping each row in rendered form. Allows for selecting specific questions by targeting data-question-alias in script.
  • Changed field/question editing to use pop-up modals. Framework based skins and skins with Bootstrap 3.7 work with this automatically. For others, see this.
  • Changed Slider question to use HTML Slider Input by default.
  • Changed Slider Range inputs to textboxes.
  • Changed FormUtils.GetAttachments to public so it can be used in SubmissionHandler.
  • Changed HTML Question to use mojoEditor (will use whatever editor is default in mojo).
  • Changed ugly icons used for moving question options to FontAwesome.
  • Fixed Question disappearing when editing.
  • Fixed submit buttons being disabled when using pages.
  • Removed SliderMaxRangeLimit option.

Event Calendar Pro 3.5

Event Calendar Pro can be purchased in the store. If you already own a license, go to My Profile under your avatar on the mojoPortal site to download the latest version.

  • REQUIRES mojoPortal 2.7.
  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added "Use iframe Embed for Map" option for Google Maps.
  • Added a lot of Display Settings to help with skinning.
  • Fixed issue where customer company input was not showing on ticket purchase form when "Show Address on Free Event Registration" was disabled.
  • Moved ticket options to separate tab in event editor.
  • Removed Bing Map support.
  • Renamed "Sales Management" to "Administration".

Web Invoice 1.8

Web Invoice can be purchased in the store. If you already own a license, go to My Profile under your avatar on the mojoPortal site to download the latest version.

  • REQUIRES mojoPortal 2.7.
  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added optional Invoice Fee.
  • Added Email CC option.
  • Added Email BCC option.

Fund Raiser 1.3

Fund Raiser can be purchased in the store. If you already own a license, go to My Profile under your avatar on the mojoPortal site to download the latest version.

  • REQUIRES mojoPortal 2.7.
  • Added support for MySQL 8 and SSL connections to MySQL servers.
  • Added a lot of Display Settings to help with skinning.
  • Removed CornerRounder Controls

Site Membership Paywall 1.1

Site Membership Paywall can be purchased in the store. If you already own a license, go to My Profile under your avatar on the mojoPortal site to download the latest version.

  • REQUIRES mojoPortal 2.7.
  • Added support for MySQL 8 and SSL connections to MySQL servers.

A New Beginning

i7MEDIA Takes the Helm

It is an exciting day for the mojoPortal project! First, allow me to introduce myself. My name is Joe Davis. I am the Founder and President of i7MEDIA and a longtime supporter of mojoPortal. On Friday, February 3, 2017, I and Joe Audette, Founder of mojoPortal, completed an agreement for the sale of mojoPortal to i7MEDIA. This sale includes the open source project and the commercial modules available on the mojoPortal website from Joe Audette's company, Source Tree Solutions.

I have been using mojoPortal since 2008 and supporting it since 2009. I started my business in 2008 and set out to find a good content management system I could use to build websites for my customers. After a lot of trial and error, I came across mojoPortal and I was immediately drawn to its ease-of-use and friendly forum, fostered by Joe Audette. After 9 years of building sites with mojoPortal, contributing to the core, and providing support to my own clients and those around the world through the forums, I am thrilled that I, and my company, are able to ensure the further development of mojoPortal.

Rest assured mojoPortal will remain open source and there are no plans to change that. We (i7MEDIA) do, however, have plans for expanding mojoPortal to help it stay relevant and to provide the best .NET CMS platform on the market today.

You're sure to be wondering what Joe Audette has to say about all of this. Well, he is very enthusiastic about the new life of mojoPortal:

It gives me great satisfaction to know that I have created something that so many people have found useful and that it will continue to be used and supported by a top community member and his organization. Joe Davis and i7MEDIA have always been the most qualified consultants for mojoPortal other than myself, and I've always had great confidence in referring customers and projects to them over the years. Joe Davis has been a good friend and has been my go to guy when I needed to refer a customer or project that I did not have the capacity for. Whether you need design help, hosting, or custom feature development, i7MEDIA is the team you want with years of experience. mojoPortal was my baby for over a decade, and my baby is in good hands! Long live mojoPortal!

Joe Audette, mojoPortal Founder

What's Changing?

Basic Stuff

At first, we're going to focus on changing small things that will save site owners and site builders time. Some of these items are:

  • Ensuring that settings are logically organized and labeled properly.
  • Removing unnecessary markup (empty divs, excessive <br> elements, etc…).
  • Consolidating DB scripts.

Developer Support

Development of add-ons for mojoPortal isn't necessarily hard but there is a bit of a learning curve and quite a few steps one must take to prepare a working development environment. Our focus will be on cutting down on the number of steps and making the process easier overall. We will also explore possible MVC and WebApi implementations of some features, especially administration features like the File Manager. 

Additionally, we want to engage with the developers already using mojoPortal to get them contributing code to the project. GitHub provides a very simple mechanism for generating pull requests so if you have code you would like to contribute, we would be very grateful.

Beautiful Design

It has always been possible to create beautiful sites with mojoPortal but the built-in skins were not good examples. We're fixing that and we're committed to making sure that mojoPortal is seen as a designer-friendly CMS. To make that happen, we're going to implement some new functionality which will allow UI developers to include options for site owners to control various aspects of their skin.

Documentation Audit

mojoPortal is a fairly well-documented system but there is a lot of stuff that is just not needed anymore, other things have changed, and there's a lot that isn't documented. 

Commercial Add-On Pricing and Licensing

We're working on the licensing and pricing for the commercial add-ons. Some of them are going to be released as open source and others will see their prices change. The server licenses are back and are generally at a lower price than before. To see the new pricing, take a look at the store (we've renamed the page "Add-Ons" because in the near future we're going to have a marketplace so others can sell or list their own add-ons).

Licensing has changed for all commercial add-ons with regard to updates. Now, each purchase of an add-on will give the purchaser a year of updates to that add-on. If you purchase Form Wizard Pro on February 5, 2017, you can continue to download updates to the module through February 5, 2018.

When's the Next Update?

We expect to release a new version in the next couple of weeks with several small fixes, a few clean bootstrap-based skins, and a brand-new file manager to replace both of the current file managers and the link and image picker used in the WYSIWYG editors. That's right, one file manager that does it all. 

We Need Your Help

We purchased mojoPortal and we're committed to it being a success, again. We will need your help to make this happen. If you would like to help with documentation, let us know. If you would like to contribute code, check out how easy it is to submit a pull request. If you would like to help others looking for help, subscribe to the forums.

Here's to the Future of mojo!

I am very excited about the future of mojoPortal. We soft-launched the mojoPortal website over this past weekend and I have already received a few inquiries about what's going on and some messages of support. Thank you for taking the time to read this post. If you have any questions, please feel free to ask them in the forums or send us an email.

Gravatar Joe Davis is the mojoPortal Project Lead and the President of i7MEDIA.

mojoPortal Released

mojoPortal is now available on our download page.

What's New?

  • Upgraded to the new more stable version of Ajax Control Toolkit version 15.1 which is now maintained by DevExpress.
  • CKEditor upgraded to version 4.4.7 from 4.4.6
  • TinyMCE upgraded to 4.1.9 from 4.1.7
  • added basic flat rate shipping price to products in WebStore - by Joe Davis of i7MEDIA
  • added config settings to control whether non download webstore orders require authentication
  • added option to FlexMenu to control rendering of href when page is not clickable
  • fixed bug incorrect redirecturl if using ConfirmRegistration.aspx
  • fixed bug in poll - incorrect handling of utc vs local time for isactive
  • fixed bug where ssl redirects were not correctly detecting proxy server settings
  • fixed a bug that prevented shared files uploads when using an ssl proxy server
  • fixed bug in list/link folder sites with relative file urls
  • fixed bug in FlexMenu when using the ChildNodesPerUl option and a page is hit which shouldn't be in the menu, it's still counted
  • fixed bug custom profile dropdowns did not support required
  • fixed bug in webstore where shipping panel was not shown on confirm order page when cart had shipped items
  • fixed unlocalized string on register page

Note that there are corresponding compatibility updates for each of our add on products. Existing customers can get the updated versions of our add on products by logging in to this site as the user with the purchase history, click the "My Account" link at the top of the page and then click "Order History".

As with all releases of mojoPortal, when upgrading you should make sure you use the new Web.config file and restore any customizations such as the machine key from your old one. This is especially important for this release because there are quite a few changes and additions in Web.config and some of them are subtle such as control declarations for ajaxcontroltoolkit which changed only by case of a few letters.

UPDATE 2015-05-08 This new version of AjaxControlToolkit seems to be broken in medium trust web hosting, I have reported the problem here. Anyone hosted in Medium Trust should not upgrade to this version of mojoPortal until this is resolved.

UPDATE 2015-05-11 We were able to implement a workaround to get past the medium trust error. We have now uploaded a new package on our codeplex page named which is pre-configured to work in medium trust hosting. There were some changes in code to support this configuration so mojoPortal.Web.dll was modified, Web.config was modified, and AjaxControlToolkit.StaticResources.dll had to be deleted from the bin folder to complete the workaround.

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

mojoPortal Released

mojoPortal is now available on our download page.

In one sense this is a minor upgrade with a few improvements but this is also a significant release in that it marks a change in our target framework from .NET 4 to .NET 4.5. Since mojoPortal is now compiled against the .NET 4.5 framework, any code that depends on it must also be compiled against the newer framework, so we have also released corresponding compatibility updates for all of our add on products.

In terms of web hosting, you can host either .NET 4 or .NET 4.5 compiled code under .NET 4.5 hosting and most hosts should probably be updated to .NET 4.5 by now. .NET 4.5 is really still the .NET 4 framework with some additions, it is considered an in place upgrade of the framework, so it may not be easy to know for sure whether your hosting has been updated to .NET 4.5 or if it still is running an older .NET 4 framework.

If you do get errors about the framework version after deploying the upgrade, we have a separate download with replacement Web.config and bin folder which has a version of the dlls compiled for .NET 4. Using these files should get things working again if you are still using .NET 4.

We have a similar package of replacement files that should in theory also support  .NET 3.5 but at this point we are not officially supporting .NET 3.5 any longer and we hope very few people download that package.

Changing our target framework to .NET 4.5 allows us to start moving forward with the use of some of the great new things that the .NET team has been working on such as Web API. In fact this release has a new plugin system that allows features to plugin their own Web API Routes, and we implemented a small custom web api in our forum feature to handle moderation before sending posts to the forum subscribers as discussed below.

Forum Improvements

This release includes a new per forum setting for Roles That Can Post. We've had several requests for making read only forums and also for limiting posting by role so that only premium members could post. This is useful for example if you are selling site membership levels with Site Membership Pro.

It is now possible also to configure the forums such that notification email is not sent until a moderator approves the post for sending to the list. We really needed that on this site because we have our forums configured to include the post message in the notification email and we had several occasions where someone would register late at night and post a few spamy forum posts that got emailed to our subscribers and this in turn hurts the reputation of our email system. Note that the settings for this are per forum and you must add the moderator emails in the settings so that the moderator gets notified of the new post. The moderator will see new link buttons on the post for either sending the post to the list or marking it as sent so that it does not get sent to the list. There is also a setting to allow users that are marked as "Trusted" in the user management page to have their posts sent to the list without moderation so that you can avoid delays for posts from your active trusted community members.

There are also new settings per forum that control whether new posts get included in the google site map for the forums by default or whether new posts get a NOINDEX meta tag added by default. On this site we've found that forums can be a mixed bag in terms of SEO value, some threads may have worthy content and others may not. You can always edit a thread after the fact to set whether it is included in the google site map or whether it gets a NOINDEX meta, these new forum level settings just control the default for new posts.

This release also includes upgrades to CKEditor 4.4.3 (from 4.3.4) and TinyMCE 4.1.2 (from 4.0.21). We've also included the new moono-dark skin for CKEditor which you can enable by adding this in user.config:

<add key="CKEditor:Skin" value="moono-dark" />

ckeditor moono-dark skin

If you have a dark site skin you might like that better than the default editor skin.

Follow us on twitter or become a fan on Facebook

follow us on twitter become a fan on facebook

UPDATE 2014-09-10

We have been receiving some reports of problems with mojoPortal under .NET 4 hosting. At this time we do not have a solution for those problems (except to migrate the site to 4.5 hosting) so we do not recommend anyone to upgrade to mojoPortal unless you have .NET 4.5 hosting. It can be difficult to determine whether your hosting is 4.0 or 4.5 because 4.5 is really like a service pak for 4.0 that has been out for 2 years now, and if you look under Administration > System Information it will say version 4.0..... even if you are hosted under 4.5. So the best thing to do is ask your host if you have 4.5 or not, and if possible move your site to 4.5 hosting before upgrading.

The problem with our 4.0 build seems to be that even though we target 4.0 in Visual Studio when compiling it, it ends up being compiled for 4.5 because when 4.5 is installed it replaces 4.0. Visual Studio is supposed to use a reference version of 4.0 when compiling projects that target 4.0 but in practice sometimes it does not work and we think this may be the problem with our build. We do not have any machine with Visual Studio that don't also have 4.5 installed so we cannot be sure that our build is really targeting 4.0 as it should. If someone has a machine without 4.5 installed and they have Visual Studio 2013 Pro then they could compile their own build that targets 4.0, but going forward we are not confident that we can produce such builds.

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

Minor Update For Page Manager Pro

I've just posted a minor update to our Page Manager Pro add on product. We've added a link to page permissions in the command menu along with an indicator of whether a page is public or protected by roles.

Page Manager Pro with new permissions link

This is a free update for existing customers who have already purchased Page Manager Pro, the latest version can be downloaded from your purchase history under the "My Account" link at the top of the page after signing in as the user who purchased.

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