Posts From July, 2009

mojoPortal 2.6

mojoPortal 2.6

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?

Head over to our GitHub Releases Page.

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.

To learn more about SuperFlexi, check out the documentation. We've also created a new Forum, just for SuperFlexi.

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

  • Added Display Settings for the Blog module to allow for easier skinning via CSS classes
  • 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:

  • "Site Title" field moved to the General tab
  • "New Site" link removed (to add another site, go to Administration > Site List)
  • Skin options grouped on the General tab
  • Content Editor options grouped on the General tab
  • Registration options grouped on the Security > Main tab
  • User Account options grouped on the Security > Main tab
  • "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.

Core

  • Updated mojoPortal to ASP.NET 4.6.2 and C# 7
  • Updated mojoPortal source code to use latest NuGet package management
  • Added RazorBridge method to allow use of MVC Razor Templating in Web Forms controls
  • Added MVC HTML Helper for internal Avatar and Gravatar use in Razor templates
  • Added Link control for inside/outside markup of the link
  • Added AutoEscapeStringForCsv method for exporting data in CSV format
  • Updated Gravatar in Forums to link to mojo user profile by default
  • Fixed File Manager/Page Picker for folder sites and sites running in a virtual directory
  • Moved First Name and Last Name fields to the General tab in the User Profile.
  • Added option to include comment body in notifications
  • Added ExportDynamicListToCSV method to ExportHelper
  • Added ImportHelper with GetDynamicListFromCSV method
  • Removed calls to jQueryFileTree and removed from ClientScripts
  • Removed calls to jQueryLayout
  • Removed call to greybox from Contact Form
  • Fixed possible XSS bug in help dialog
  • Removed WebStore from core (will be available as a separate download from the AddOn store)
  • Cleaned up user.config.sample file
  • Standardized on "Login" instead of "Sign In" (both were used before now)
  • Added Security Protocol information to "Security Advisor" (Administration > Security Advisor)
  • Added CombinePath method to DiskFileSystem file system provider.
  • Added FolderVirtualPath property to WebFile
  • 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)
  • Updated CSSHander to allow for "https://" and non-http-specified ("//my-domain.com/") url calls
  • Updated Avatar.cs with new ExtraCssClass property
  • Cleaned up markup of CommentsWidget
  • Added themeable properties to CommentsWidget to help with skinning
  • Added themeable display settings for Contact Form
  • Cleaned up markup of the RelatedNewsletterSetting control
  • Cleaned up markup of HTMLCompare feature (used by version history)
  • Fixed Inline Editing in HTML Module for selecting files/images
  • Fixed CSSHandler for HTTPS URL calls
  • Fixed missing CKEditor Image2 Alignment Classes
  • Added InsideTopMarkup to replace LiteralExtraTopContent in BasePanel
  • Added InsideBottomMarkup to replace LiteralExtraBottomContent in BasePanel
  • Removed the .LESS CSS Utility from the Administration area. We recommend using a tool like Prepros for LESS management.

Super Secret Meeting at Microsoft via Channel 9

Woot! I'm in a video on Channel 9

http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Inside-Secret-Microsoft-Meeting-Rooms-What-Laptop-do-Alpha-Geeks-Use/

Having fun in Redmond!

UPDATE 2009-07-09

Thought I should update this post since it was really more like a tweet than a blog post.

So as you see in the video I was invited out to Redmond for a meeting at Microsoft. I had thought maybe I would be able to talk about it when I got back but I can't talk about it yet. For sure I will be able to tell all about it but not yet, probably in a month but there is not a specific date so don't hold me to it. For now you can be sure that I will talk about it at some point and lets enjoy the mystery and suspense for a little while ;-), but don't expect something really earth shaking or you may be dissappointed. 

I think I can say this without getting into trouble. Microsoft wanted to talk with a number of people about something they thought might interest us, they wanted to know if it does interest us and they wanted input and feedback. There are others that were not in the video or the meeting that are providing their feedback as well so don't over interpret the combination of people in the video. This was during a restroom break so some people were out of the room as well. For my part I can say I am interested in it and indeed excited about it.

Other than that, for the moment I can only share how much I enjoyed this opportunity to meet some folks I've followed in the blogosphere like Scott Hanselman, Phil Haack, and Bertrand Le Roy, as well as some other Microsoft folks who are very brilliant but I had not known of them before. I also got to meet some great folks involved in the Web Application Gallery which was very nice.

You may also be interested in my impressions of the experience visiting the Redmond campus. It turns out they do not all ride around on jetpacks as I had supposed ;-) Nor do they all think with one hive mind, it seems they are all quite individual and have opinions in common with one another and also differing opinons among them just like most cases where there are lots of people. A meeting at Microsoft did not strike me as much different than meetings at other companies. I did not see the entire campus of course, the parts I saw were newer from what I understand. It seemed a lot like a nice college campus appended to a classy mall and food court. I saw the company store and even got to poke around on a Surface in the little museum they have.

I also got to meet Shaun Walker and Scott Willhite of DotNetNuke. You may wonder what was it like fraternising with the competition. While we acknowledged that we do compete I found them to be really nice guys who I have a lot in common with and I felt some sense of kinship with because of our common heritage in IBuySpy and because it was easy to talk with them about our experiences as open source developers in the .NET world. I have always admired and respected what DotNetNuke has accomplished as a succesful open source project and now that I know what nice guys they are I admire and respect them even more. I would even say that their success has been a model which gives me hopes that I can achieve my own aspirations for mojoPortal. They proved it was possible to build a business around open source in the Microsoft stack and I'm not sure I would have thought it possible enough to pursue it myself had they not done it first.  I was very glad to become friends with them. I have not yet achieved the business success that I'm hoping for with mojoPortal but I feel I am making progres and will get there.

dinner with Microsoft

Bottom row Bertrand Le Roy, Phil Haack, and Bradley Millington, top row myself and Shaun Walker, this was at dinner, not the greatest photo, my iPhone is not the new model so the camera is not so good especially in dark lighting. 

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

Next Release of mojoPortal WebStore Will Empower Musicians

Just a quick note to share some cool improvements I've been working on in the WebStore feature for the last couple of days. As a musician I've often thought I should make an mp3 store to make it easy for musicians to sell mp3 files on their own sites. For a while I figured I would implement this as a separate feature and possibly even make it a for sale add on feature so I could make a little money on it. But recently I thought why not just enhance the main web store to support this scenario since we already suport download products all that was really needed was the ability to have a teaser file and a media player to allow previewing a clip of an mp3 like in the iTunes store and other media stores. So I implemented the additional logic to have a teaser file and I also integrated the super simple Yahoo Media player. You can see it in action now on storedemo.mojoportal.com.

screensot of mp3 store with play buttons

So now you will be able to upload teaser clips for mp3 products and automatically have play buttons for them. You can easily make the clips using the free mp3splt, thats how I made them for the demo.

The teaser file implementation may also be useful for other scenarios like selling PDF files, you could have a free chapter or fragment of the full content to help encourage purchase of the full file.

Look for this in the next release of mojoPortal.

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