Posts in Category: Releases

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.

mojoPortal Released

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

This is a minor release with just a few bug fixes, the primary purpose of this release is to fix a problem in our Shared Files feature and in our alternate File Manager when running under Medium Trust hosting. In the previous release of version we had changed to strong name signed assemblies for NeatUpload and for the NeatUpload Greybox Progress bar. This strong signed version of NeatUpload allows it to be installed in the GAC (Global Assembly Cache) on the server so it can work in Medium Trust, but there was a bug in the previous release because the NeatUpload.GreyboxProgressBar.dll was not compiled with the AllowPartiallyTrustedCallers attribute so it caused an error under Medium Trust. This release addresses that problem, it just required adding the needed attribute and re-compiling the NeatUpload.GreyboxProgressBar.dll. Since most shared hosting uses Medium Trust we felt it important to get a fix out for this quickly.

Fixed Bugs

  • Fix error under Medium Trust in Shared Files and in the Alternate File Manager
  • Fix bug in SQL CE data layer when creating new sites
  • Fix bug where file manager did not overwrite existing files
  • Fix redirect bug in Search Input that could happen on blog detail pages
  • Fix bug in blog when using google maps (this bug was introduced in version when we added an option to use Bing maps in the blog)

Other Stuff

  • Upgrade from CKeditor 3.5 to 3.5.1
  • Updated Italian resources from Diego Mora
  • Updated Persian resources from Asad Samarian
  • Updated Portuguese (Brazil) resources from Fabio Mastaler
  • Updated French resources from Yves Jadin
  • Updated German resources from Jan Aengenvoort
  • Updated Spanish resources from German Barbosa
  • New partial Arabic translation from Sameer Alomari


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. We will submit this release to the Web App Gallery next week after we've had a chance to get any feedback from our early adopters.

New Security Options

  • It is now possible to require approval of new users before they can sign in, a setting in Site Settings enables it and you can specify email addresses to receive notification of new users that need approval, and a new button will appear on the member list page to find users not approved yet if you enable this. This is not a recommended configuration if you are doing eCommerce since it creates more barriers to completing a purchase if the user must wait for approval before he can sign in.
  • It is now possible to require any user to change their password from a setting in user management.
  • From Site Settings, you can now configure it to require a user to change their password after password recovery or reset.
  • There is now a custom error message you can configure in site settings if you are using a regular expression to validate password rules, you can provide an error message that explains the rules.

We also made the MS SQL packages of mojoPortal pre-configured for Medium Trust by default since this is the most common installation issue that people encounter. If you are hosted in Full Trust you can use the Web.fulltrust.config file.

Easier Content Re-Use

There is a new way to mark re-usable content as global content, which makes it available for page editors to add existing content to their pages. Joe Davis of i7MEDIA has made a nice video tutorial showing how to use this new feature, see the Global Content Section on this page.

Blog Improvements

  • Someone asked for the ability to not create a 301 redirect when a post is renamed and the URL changes. By default, we believe this behavior is what should happen to automatically help with SEO when a URL changes, but if you don't want that behavior you can turn it off by adding this to your user.config file: 
    <add key="Blog:Create301OnPostRename" value="false" />
  • It is now possible to use Bing Maps in the blog instead of Google Maps.
  • There have been settings in the blog for a while to allow showing the right and left column content from the main blog page also on the blog post pages. Recently someone asked to be able to show upper and lower content when using skins that have 5 content panes, so we added these Web.config settings that you could add to user.config:
    <add key="Blog:ShowTopContent" value="true" />
    <add key="Blog:ShowBottomContent" value="true" />
  • Improved Feedburner integration. When using Feedburner, we now redirect to the FeedBurner feed instead of direct linking so that you can keep users subscribed to your original blog feed and not lose subscribers if you later decide to stop using Feedburner. See updated documentation Using Feedburner with your Blog.

Miscellaneous Little Improvements

  • There is a new setting in Page Settings that allows you to control if pages appear in the child pages site map separately from if they appear in the menu
  • added config setting to allow using a custom registration page URL
  • added config option to not re-suggest URLs when renaming existing pages
  • made it possible to exclude HTML content instances from search index for landing pages that one doesn't want to come up in search, this is in the feature instance settings for Html Content
  • when moving items in pagelayout.aspx keep the item selected
  • make it possible to move pages to the top or bottom of their page tree node in PageTree.aspx
  • revamp of PageLayout.aspx thanks to Joe Davis - it required additional CSS so skins were all updated as well, see notes in this sticky thread for new CSS you need in your skin
  • CSS and markup improvements in WebStore - thanks to Joe Davis
  • when using excerpts in the feed manager make it possible to open the link in a new window
  • added an instance setting in Image Gallery to control the background color used when resizing images
  • update to a strong name signed version of NeatUpload so it can be installed in the GAC to make it work in Medium Trust hosting
  • upgrade to CKEditor 3.5
  • refactor system content templates and add new 2 column over 1 template from Jamie Eubanks
  • make it possible to specify a different site map data source id for SiteMenu control
  • when not combining CSS make URLs relative
  • updated Italian resources from Diego Mora
  • updated Persian resources from Asad Samarian
  • updated German resources from Jan Aengenvoort

Bug Fixes

  • restore possibility to edit HTML content instances that are loaded by modulewrapper
  • make IE specific CSS and favicon respect page specific skins
  • fix a bug in blog RSS when using folder based child sites it was incorrectly resolving URLs
  • fix bug where the smiley base path was not resolving correctly if running in a virtual directory instead of root
  • fix a bug in pgsql data layer for survey
  • fix a bug in pgsql data layer for content catalog paging
  • fix bug in sqlce data layer when adding features to child sites
  • fix a bug in timepicker - thanks, David Dean
  • fix an issue where export to CSV or word was not working correctly in IE 8 when SSL is enabled
  • fix a bug in webstore - add abstract to offer edit page
  • fix a bug in the forum where external images were handled differently on edit page than thread page
  • fix bug - don't show host name tab in site settings until after new site is created

As always, it is a good idea to backup your site and database before upgrading.

Corresponding Update For Form Wizard Pro

Users who have purchased  Form Wizard Pro should upgrade at the same time to the new version of Form Wizard Pro, released today for compatibility with mojoPortal This was needed because we updated to a new version of NeatUpload and Form Wizard Pro must use the same version of NeatUpload as mojoPortal or it will result in errors.

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.

Whats' New?

  • A new Flickr Gallery feature
  • A new User Sign In Module that can be put on a content page such as the home page
  • A new scroller setting in the Feed Manager to enable a scrolling news ticker
  • Some improvements to the List/Links feature including a new introduction that can be used to place html above the list and a new option for non-ajax paging
  • Thanks to Jamie Eubanks for implementing a way to use both database authentication and LDAP, there is a new config setting for fallback to LDAP if database authentication fails. This allows scenarios where your internal users such as content authors can login with their LDAP credentials while still allowing public users to register and sign in with database credentials.
  • A new option to disable CSS caching while designing by clicking a button that sets a cookie to disable it. The previous way of of disabling it from config still works but this new way may be more convenient. You will find the button under Administration > Advanced Tools > Designer Tools
  • Upgraded to CKeditor 3.4.2
  • Updated Italian resources thanks to Diego Mora
  • Bug fixes for things reported in the forums since the previous release including several fixes in the SQL CE data layer and the Firebird data layer.

flickr gallery screen shot

sign in module screen shot



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.