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.

Blog

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…

Forums

Removed old inline styling on table elements

Standardized on "thread" vs "topic" and capitalization of other phrases/words

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.

Today, we're pleased to announce the release of mojoPortal 2.6. We had planned on releasing this version much sooner but we kept adding features! In the future, we're planning on releasing about once per month. Larger features will take more time but our community shouldn't wait for smaller enhancements.

With this release, we're introducing SuperFlexi and the Blog Post List modules. We also have a lot of enhancements and new features for existing modules. Finally, we've made some improvements to Framework and we're releasing a new free skin called "Scout", which can be downloaded from the mojoSkins project.

Where to Get It?

SuperFlexi

The SuperFlexi module is intended to serve as an easy templating system that works as a go-between for front-end developers and users. Developers can easily create "Solutions" that determine, to a large extent, the module's uses; controlling both what kind of input users can store in the database and what markup is created on the page. Users can then simply select a "Solution" in the module settings, and create their content with straightforward easily-understood forms, which will then be rendered as determined by the developers defined markup.

SuperFlexi aims to give end users much easier control over their content, even when that content might normally be quite complicated (as in the case of sliders, tables, structured or gridded HTML, and many other things). Possible uses for SuperFlexi are virtually limitless and we're really excited to be adding it as a core module in mojoPortal 2.6.

With mojoPortal 2.6, we're including 8 solutions; Accordion, Banner Slider, Icon Blocks, Image Blocks, Personnel List, Quick Links, Social Media Links, and Tabs. Each of these is demonstrated on the mojoPortal Demo Site. Please note, SuperFlexi does not currently support SQLite and PGSQL. We should have support for those database platforms in a couple of weeks.

Blog Post List Module

So, for a very long time, the official guidance for showing a list of blog posts on pages other than the page your blog is on was to use the Feed Manager to consume your blog's RSS Feed. This meant that the Feed Manager had to make an http(s) connection back to your site, consume the feed, cache the feed contents in the database, and then query the database for the cached contents. Granted, the connection and subsequent caching only happened on a set interval but it was very unnecessary. We decided to cut out the middle-man (Feed Manager) and create a module which connects directly to a chosen Blog module and displays the posts. We went a step further by creating a Razor View Engine for this new module. Yes, you read that right, Razor. You can create Razor views to control the display of this new module.

To learn more about the Blog Post List module, head over to the documentation.

Blog Updates

We spent some time on the Blog and besides the wonderful new Razor-enabled Blog Post List, we have added Post Featured Image, Blog Featured Post, and automatic Meta Content creation for Facebook, Twitter, and Schema.org.

Post Featured Image

You can now easily add a featured image to each of your blog posts. This image will be used in the meta elements added to the page for Facebook, Twitter, and other social media outlets. The image is also treated a bit special by the Blog in that it is shown at the top of posts. More on the Post Featured Image.

Featured Post

This feature allows you to set a single post in your blog as "Featured". That post will always be at the top of the post list, even when using the Blog Post List module. More on the Blog Featured Post.

Automatic Meta Content Creation

Sharing posts on social media is a lot easier now because the special meta content markup that is necessary for sites like Twitter and Facebook to show correct titles and post images is now automatically added when you create a post. You can even edit the meta content that is created by editing the post and clicking the "Page Meta Data" tab (we're gonna change that to "Post Meta Data" in the next release).

Other Blog Updates

Updated to actually move the blog navigation in markup instead of changing places with CSS * floats for easier styling

Cleaned up a lot of the default markup

Panels with no child elements will no longer be rendered

Added option to include comment body in comment notifications

Added SkinID="Blog" to CommentsWidget

Removed "Feed Links". These were links to old MSN, Yahoo and other defunct feed managers.

Added option to allow Post Title to be used as Page Heading when the PageHeading (or PageTitle) control is used in the layout.master for the skin

ASP.NET 4.6.2

mojoPortal now requires ASP.NET 4.6.2, which was released in August of 2016. Most hosting providers already support 4.6.2 so you should be fine upgrading your site. If your host doesn't support it and you purchase a hosting plan with i7MEDIA, we'll move your site for free.

TLS 1.2

mojoPortal will now enforce using TLS 1.2 for outgoing connections. This is important for connections to payment processors like Authorize.Net, WorldPay and PayPal.

Site Settings

The Site Settings page has a lot of options for configuring your site. We're actually working on moving more stuff from the web.config to the UI so it'll be easier to configure your site. Knowing that we are going to be adding even more to Site Settings, we implemented a few changes and reorganized some things to make using the Site Settings page easier. In the future, we plan on breaking this single page up into several smaller and more task oriented pages. In this release, you'll notice the following:

"Avatar System" option moved to User Account group under Security > Main tab

Password options grouped on the Security > Main tab

Security > OpenID tab renamed to "3rd Party Auth"

OpenID options grouped on the 3rd Party Auth tab

Windows Live options grouped on the 3rd Party Auth tab

"Host Name Mapping" and "Folder Name Mapping" moved to a single tab called "Site Mappings".

"SMTP Settings" tab renamed to "Mail Settings"

"Mail Settings" tab is always visible with information on how to enable the fields there. New sites will, by default, use this area for SMTP settings. You can enable this on your site by following the instructions here.

"Default Email From Address" and "Default Email From Alias" moved to "Mail Settings" tab

Reordered Recaptcha Site/Secret keys to match order on Recaptcha site

Added several contextual notes throughout the Site Settings page

Change Log

This change log isn't exhaustive because a lot of changes are already listed above. If we didn't list it above, it should be listed below.

Added NameProperty and ContentProperty to ContentMeta. This allows for creation of meta elements with custom names <meta property="foo" value="bar" /> instead of only allowing for <meta name="foo" content="bar" />

Skinning

Added FormGroupPanel control for settingrows to control their classes

Updated Site Settings page to use new FormGroupPanel control

Updated the Layout.Master.cs to expose SiteSettings (siteSettings), PageSettings (currentPage), isCmsPage and isMobileDevice to the Layout.Master for richer skinning functionality (Check out the layout.master in the Nature theme)

mojoPortal has been getting some media attention lately, like this article from HostingAdvice.com. We've got some exciting new updates coming soon too, including new modules, expanded blog features, and new content creation tools. We've been working hard on things and hope to have a release ready soon.

We can truly appreciate a CMS that simplifies content entry and management for novice website owners without compromising the functionality demanded by seasoned developers. Kudos to the mojoPortal team for optimizing web development for folks across the board!

Page Manager Pro has been added to the mojoPortal core. Now, everyone can enjoy easier page management with the new Page Manager. Drag-and-drop functionality makes it easy to move pages while the enhanced UI makes understanding a site's hierarchy much simpler, particularly on larger sites. We're still building the documentation on this feature but it's really self-explanatory.

Minor Improvements and Changes

CKEditor 4.6.2 (image2 extension is included by default now) with new moono, moono-dark, and moono-lisa (default) skins.

Added web.config setting to control showing feed links with https. Defaults to true. Set to false if this causes you problems with a feed reader.<add key="UseSSLForFeedLinks" value="true" />

Added Framework as the default skin and removed Artisteer skins. Artisteer is still supported but we recognize that the included Artisteer skins aren't very pretty so they have been removed from the release.

Renamed "Page List" and "Add/Edit Pages" to "Page Manager".

Bug Fixes

Removed unneeded apple-touch-icon.png from the root of the install. This was causing the mojo dog image to show up on tablets. Skin developers should follow these instructions for adding touch icons to their skins.

Fixed WebStore FlexCartLink where IncludeCartTotalWhenZero did not do anything.

Fixed WebStore FlexCartLink where ModuleGuid was actually supposed to be StoreGuid. Neither are really needed so we don't do anything with ModuleGuid on this control anymore.

Fixed an issue where when you create a new site it wouldn't copy over folders inside a skin that were more than 1 level deep.

Our team at i7MEDIA have been developing mojoPortal skins for a long time, and we've done a lot of fine-tuning of our skinning process over the years. Now we want to make the fruit of our labor, the Framework skin, available for the whole mojoPortal community, for free! In light of this, we've just launched our new mojoSkins project with a version 1.0 release. This first release comes as a package of 5 skins: Framework v3.3.7, and four skins created out of Framework using Bootswatch.

Expect Much More to Come!

Framework was always intended to be a very basic skin which we would then build our designs on top of. With this new project, we're going to have to change that direction a little bit, making improvements for its use by all of you. For instance, because it's been a very long time since any of our clients used the Webstore feature in mojoPortal, the current version of Framework in this release doesn't include styles for it. We will be fixing this, as well as adding styles for all of the Pro modules in the near future, fixing any bugs that arise, and making quality-of-life improvements for the end users where we can.

We want to ensure that everything is as good as possible while also keeping the skins as small as possible, since after all Framework is intended to be a base that you use to build your own design on top of, which is why we are also going to be adjusting mojoPortal's core code to better suit being used with skinning systems like Bootstrap and will adjust the Framework skin as needed to reflect those changes. We believe we can greatly reduce the amount of CSS needed in Framework by doing this (though it is already reasonably small).

While the skins in this first release are primarily targeted at other developers, who we want to provide with a solid foundation for skin creation in mojoPortal, we believe they will work well for anyone, developer or not, who wants to create a very clean mojoPortal site.

How Can I use it?

Using the new skins from this project is incredibly easy, here's the step-by-step:

Each of the skins is included in the root of the zip in their own folder. Choose which skin(s) you'd like to use, and copy those folder(s) into the Data/Sites/1/Skins directory in your mojoPortal installation.*

Sign into your mojoPortal site as an administrator.

Click "Administration", then "Site Settings", and on that page, scroll down until you find the select input labeled "Skin".

Your new skin(s) should be visible in the drop-down, select it and hit save.

That's it, you should now see the skin on your own site!

* Note: If you have a multiple site install, change the /1/ in the path described in step 3 to be /#/, where # is the site number of the mojoPortal site you'd like the skin to appear on.

How can I contribute?

We have already begun tracking issues in the project's GitHub repo, and look forward to community involvement as the project evolves. Please report any issues you notice, and feel free to do a pull request if you've managed to fix an issue yourself.