Posts in Category: Features

mojoPortal 2.3.3.2 Released

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

New Features

Custom Meta Data

We have a new custom meta data system allowing you to add custom meta data to your pages in addition to the standard keywords and description. Specifically the system was designed to support the use of Dublin Core Meta Data, but it can be used for any html meta data.

Dublin Core Meta Data

The new meta data system has been integrated into CMS pages, Blog Posts as well as Web Store Products and Offers.

Page Comments

While it still remains a to do item on our Road Map to implement an internal comment system that can be attached to pages and content features, in the mean time we have added support to allow you to attach IntenseDebate or Disqus comments to the bottom of any CMS page. The Blog of course already has the option to use it's own internal comment system or one of these services. Actually I recommend IntenseDebate because of bugs I encountered with Disqus. I have reported the issues and even identified the line of code in their javascript where the problems occur so hopefully they will fix it. There are new settings in Site Settings > API Keys to enable these services and a setting in Page Settings to enable it on a page.

Google Translate Integration

You can now easily add Google Translate widget to a page or to every page in your site. As you can see I've added it to all pages in this site. Not sure if I will always keep it there but we shall see what the user feedback on it is and whether people find it helpful or not.

A New IFrame Feature

It is already easy to add iframes to the Html content feature using the source view of the editor, but for less html saavy users having a feature to make it easy may be helpful. Eric Stoffers, a community member sent me on he had put together for his users and I made one based on his example but according to my own coding preferences.

Contact Form Improvement

Added an enhancement to the contact form so it can be configured to give the user a choice of who receives the email notification, so you can have different departments or user receive the submission depending on the user choice. See Using The Contact Form for more details.

Forum Improvement

Made it a little easier for users to notice the email notification subscriptions in the forums to encourage users to subscribe and participate in the forums. Users in edit roles will also see a link allowing them to review who is subscribed and unsubscribe users if needed. There is also a new setting if you want all users to be able to see the number of subscribers to the forums (but not the link to review them obviously).

Shared Files Improvement

Added a description to shared files, it is not currently surfaced in the UI except for the editing UI where descriptions can be edited. The main benefit of the description field is that it is indexed into the search engine. Previously you could only find search results based on the title of the file as we do not have an easy way to index Word Documents or PDF files. Now you can paste plain text of the content from these documents into the description in order to index the content of the documents and improve search matching.

Major CSS Re-organization

Back in version 2.3.1.7, based on community feedback we combined CSS from separate files where we previously had things separated too granularly in files like stylelayout.css, styleimages.css, styleborders.css, styletext.css. These were all combined into style.css for included skins. The problem is we used a CSSTidy script to do the combining and it produced a correct result without breaking any styles but it did not organize the CSS selectors into any groupings that make sense to people, they were just scattered kind of randomly on the style.css file. The result was that it did not have the intended result of making it easier to find what you are looking for. For this release I went through the included skins 1 by 1 and manually moved the CSS selectors around into logical groupings for layout, headings, form styling so that it really is easy to find what you are looking for. This was a very tedious manual task, I spent nearly 40 hours on this working as fast but as carefully as I could. In the end I was very glad to be finished but I feel it was a very important task to make the included skins more approachable as a starting point for customization.

I also went through the features and made more consistent use of styles on grids and tables. In many places we were using the YUI table javascript just for styling tables but this did not lend itself well to styling them according the skin design, it just made a very neutral looking table. I found some nice free GridView themes and put them in a common location under /Data/style and modified them a little according to my needs. I then chose the one that looked the best for each included skin and added it to the style.config file for combining. Those of you with custom skins or upgrading should add one of them to your style.config as well. Note we hve several to choose from and may add more later.

<file cssvpath="/Data/style/gridview/WhiteChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>

<!--
<file cssvpath="/Data/style/gridview/ChromeBlackGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/ChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/GlassBlackGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/SoftGreyGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/WhiteChromeGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
<file cssvpath="/Data/style/gridview/YahooGridView.css" imagebasevpath="/Data/style/gridview/">none</file>
-->

Other Miscellaneous Improvements

Because editing Html for email newsletters has such different requirements than normal site content, I added a new site setting so you can specify a different editor preference for the newsletter than for site content. I prefer TinyMCE for Newsletter editing because it has a little better preview feature, but I'm growing more fond of CKeditor for editing site content.

Upgraded to CKeditor 3.0.2 and managed to get our Content Template System and Content Style System integrated and working. I am still noticing a few little issues here and there with CKeditor but I think it has a lot of promise and look forward to it improving over time.

 

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 2.3.2.9 Released

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

Newsletter Improvements

The primary focus of this release is improvements to our newsletter.  We have had a lot of consistent feedback from the community asking for Newsletter improvements and we were long overdue to complete this. The improvements made are as follows:

  • Users can subscribe to Newsletters without registering on the site
  • A Newsletter Sign Up feature has been implemented so that you can put it on any page(s) you like and configure it with various settings to control what is displayed. Since you can have as many newsletters as you like, the sign up can be configured to show a list where users can choose which newsletters they would like to receive, or you can not show the list and it just subscribes to the default newsletter, which is the first one in the list. If the user is not authenticated then a confirmation email is sent to confirm ownership of the email address.
  • Each newsletter can be configured whether to opt in by default when a user registers on the site.
  • Each newsletter can be configured whether to allow viewing previous editions as a web page. If your newsletter has compelling content, browsing previous newsletters may encourage more subscriptions.
  • A progress bar so you can monitor progress as the newsletter is sent to the list.

newsletter progress bar

Editor Updates

Upgrade to TinyMCE 3.2.7
Upgrade to FCKeditor 2.6.5
Upgrade to CKeditor 3.0.1

Added more options to our TinyMCE configuration file, including setting for configuring the default language for the spelling checker.  Added a new toolbar for the Newsletter editor since it has different needs than web page content. Fixed an issue where TinyMCE would remove iframes entered in html view.

SEO Improvements

Added an option in page settings for overriding the canonical url. This is mainly for use on your home page. Since it is the default page of the site it is visible using the url http://yoursiteroot/, http://yoursiteroot/Default.aspx, and http://yoursiteroot/home.aspx, by default it would make the canonical url use the generated friendly url for the page, in this example it would use http:/yoursiteroot/home.aspx, but you may prefer to have http://yoursiteroot/ a the canonical url so this override setting allows you to do that.

Added a separate setting in page settings for including a page in the search engine site map. Previously we used the same setting for the search engine site map as for the main user site map. For example you could create a page and then point it to http://www.gogle.com and it would be listed in the menu and site map the same as any other page, however, for the search engine site map, google webmaster tools would find this as an error in your site map. So we added a separate setting so you can easily exclude pages from the search engine site map if they are just pointers to external pages.

Updated Translations

Updated Italian resource files form Diego Mora

Updated Persian resource files from Asad Samarian

New, French-Canadian resources thanks to Benoit Houle

Miscellaneous

Added a new setting under Site Settings > Permissions for "Users that can create root level pages".

Made it possible to disable the default database authentication if you want to use only Windows Live and/or OpenID

Added a config setting to exclude specific admin email addresses from site registration notifications and work flow notifications.

Other miscellaneous tweaks and bug fixes for things reported in the forums since the last release.

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 2.3.1.9 Released

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

Whats' New

Easy content animation/slide shows

Our Html Content feature now has content animation built in. You can enable it in the settings of an Html Content instance and it will create a slide show based on the content using cool transitions that you can also configure in the settings. The animation uses the jQuery Cycle Plugin. It can rotate images paragraphs or any html content. People often ask how to rotate images in their custom skins, so I've also added image rotation in the andreasvicklund-02-alt2 skin to give an example how to do this.

Integrated Image Cropping

We now have easy to use image cropping built into the image browser/uploader in our editors. We also have image cropping integrated into the user uploaded avatar system so users can upload a larger image then crop it to create their avatar. We used the jQuery jCrop plugin to implement the user interface for cropping.

screen shot of image cropper

Integrated Twitter Widgets

We now have built in widgets that can be used to show your tweets or twitter search results.

screen shot of twitter search widget

New Configuration file for TinyMCE

Due to community requests to have more control over which plugins and toolbar items are displayed, I've implemented an xml config file that gives you control over these items. The file mojoTinyMCE.config located in the root is used by default. To customize it you should copy and rename this file then change the setting in Web.config to point to your custom file.

Bulk Image Upload in the Image Gallery

We added bulk upload to the Folder Gallery in the last release and users have been asking for the same thing in the other Image Gallery so we have added it there as well.

Usability Improvements

Also due to community feedback and my own observation from support questions, the use of the gear icon for feature instance settings was changed to use a text link by default. Those who prefer the icons can add this to their user.config file to override the new default.
<add key="UseTextLinksForFeatureSettings" value="false" />
I wanted to make the same default change to use text links also for the main administration links but I found that forcing it globally could affect the layout of existing custom skins, so I kept the default to use the icons but added an option that can be specified on the StyleSheetCombiner control in the layout.master file of a skin to specify whether to use icons or text links:
<portal:StyleSheetCombiner id="StyleSheetCombiner" runat="server" UseIconsForAdminLinks="false" />
The default setting is to use icons, but for most of the included skins I changed it to use text links and updated the skin layout so that the text links could render without affecting the layout. Note that if you are upgrading and want to use the latest versions of the skins you will need to copy them from /Data/skins to /Data/Sites/1/skins after upgrading because we only update the skins in the library not in individual sites.

Miscellaneous

Updated Italian resources thanks to Diego Mora

Updated Spanish resources thanks to Matias Molleja

Various bug fixes for things reported in the forums since the last release.

vote for mojoPortal in the 2009 CMS Awards

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

mojoPortal 2.3.1.7 Released

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

More Editor Improvements

The File Browser/Uploader that we implemented previously in TinyMCE is now also working in FCKeditor and CKeditor so that users have a common browse and upload experience in each of these editors. So we now have equivalent functionality in TinyMCE and FCKeditor but in CKeditor we do not yet have integration with our content template system or content style system.

New User Avatar System

We've had a lot of requests for an avatar system that allowed users to upload their own avatar. There is a new setting for Avatar System in Site Settings where you can choose User Upload or Gravatar. If user upload is enabled then an upload button will appear on the user profile page allowing them to upload an image. The image will be resized according settings in the Web.config file for AvatarMaxHeight and AvatarMaxWidth.

Image Gallery Improvements

We now have support for the Vertigo Slideshow which uses Silverlight to create a really nice slide show of images in the gallery. You can enable it from settings in the gallery. Since the Vertigo Slideshow can also consume images from your Flickr account, we also added a new Flickr Gallery  Feature which also uses the Vertigo Slideshow.

silverlight slide show screen shot

Blog Improvements

We've added support for using IntenseDebate or Disqus for the comment system in the blog. For the moment I recommend IntenseDebate because there are some issues I encountered with Disqus. Specifically, I could not get it to work correctly n IE 8 though it works reasonably well in Firefox and Chrome. But even when using Firefox or Chrome it does not work correctly if you try to post a comment as an anonymous guest. The integration steps are trivial so I don't think I've done it wrong but believe the problem can be fixed on their end. I've let them know about it and hope they can resolve it. Give it a try if you like but be aware about these issues since at the time of this writing they are not resolved. I'm now using IntenseDebate in this blog. I implemented it such that if you have existing posts with comments in the internal comment system those posts will continue to use the internal comments but new posts will use the current setting.

Its now also possible to post future posts from Windows Live Writer. Previously it was ignoring the publish date passed in from Live Writer.

Its also now possible to require users to sign in to view the full blog post when using excerpts in the main blog page.

Re-Organized Css In Included Skins and a New Skin

Based on community feedback I've re-organised the css for included skins to make it easier to find what you are looking for. Previously we had things separated a little too cleverly with colors in one css, borders in another and text related settings in another. This made the css a little less approachable and less intuitive. I've combined those files into one style.css file and renamed some other css files so they sort together in the file system and are easier to find. You can of course organize the css files in a custom skin any way you like by listing which file to include in the style.config file. Ultimately they are all combined and minified into one request by our CSSHandler. The style config file for included skins now are including the following files:


<file csswebconfigkey="YUITabCss" imagebasewebconfigkey="YUISkinImagePath">none</file>
<file cssvpath="/ClientScript/oomph/oomph.css" imagebasevpath="/ClientScript/oomph/">none</file>
<file cssvpath="/Data/style/cluetip/jquery.cluetip.css" imagebasevpath="/Data/style/cluetip/">none</file>
<file>style.css</file>
<file>stylemenu.css</file>
<file>styletreeview.css</file>
<file>styleblog.css</file>
<file>styleforum.css</file>
<file>stylefeedmanager.css</file>
<file>styleformwizard.css</file>
<file>stylewebstore.css</file>
<file>styleaspcalendar.css</file>
<file>styledatacalendar.css</file>

so we still have some separation but the main style.css has most of the common css.

We also have a nice new skin with a cool menu style thanks to Joe Davis of i7MEDIA

What Else?

Updated Polish Translation - thanks to Przemyslaw Luniewski.

Updated Italian Translation - thanks to Diego Mora.

A number of bug fixes for things reported in the forums since the last release.

nominate mojoportal for the 2009 cms awards

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

mojoPortal 2.3.1.6 Released

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

More Improvements in our TinyMCE editor integration

This release comes fast on the heals of our 2.3.1.5 release and it is primarily focused on polishing up our Tiny MCE editor integration. Thanks to all who provided great feedback in the forums, especially Eric Stoffers who helped make our file browse layout a little prettier and more informative. Here is a screen shot of our file browser/uploader:

screen shot of our TinyMCE file browser

The most significant improvement is that we now have automatic image size adjustment for the web. Its optional, users may uncheck the box and no resizing will occur for cases where you are uploading images that you have already optimized for the web. The default resizing options come from the Web.config but users are able to override them by setting the Max Width or Max Height according to their own preferences. We've all seen our users upload huge images right from their 10 mega pixel cameras then just set a width and height on the img tag to make it display the right size. But the result of that is a page that loads very slow because it has the mega large images and disk space is consumed rapidly as well. So, our new solution is designed to make it easy to do it right but not take away control from more savvy users.

Also requested was an option to configure the skin used by TinyMCE. We now have a setting in Web.config that you can override in user.config to set the skin for TinyMCE. 

<!--- valid options for the TinyMCE skin are: default, o2k7default, o2k7silver, o2k7black -->

<add key="TinyMCE:Skin" value="default" />

To my eyes the default skin looks the best and cleanest of them.

I purposely remove some toolbar items from the editors because they are not suitable for a skinnable content management system. Items for selecting fnt size, font face, font color and background color, are all things that put hard coded styles into your content and then the content is not subject to skinning. In order to be able to completely change the look of your site by changing skins you need to avoid hard coding any kind of style into the content itself and always use CSS. Our style template system allows you to create items in the style drop down of the editor that corresponds to css classes in your skin. So you can make some pre-defined styles to help your users rather than let them hard code styles. Now I'm not trying to force this on anyone, I'm just trying to make it easy to do the right thing and a little more difficult to do the wrong thing. If you really want those hard coded style toolbar items in your editor you can enable it in Web.config/user.config with by changing this setting to true:

<add key="TinyMCE:IncludeHardCodedStyleTools" value="false" />

but, my opinion is that one day you will regret it when you decide to re-design your site with a new skin and none of this hard coded content looks right in the new design.

After switching to TinyMCE here on mojoportal.com I had noticed that the forums were starting to get juinked up due to things users paste into the editor. In FCKeditor I was already forcing paste as plain text in the forums but now I have implemented the same thing in TinyMCE. This helps avoid page validation problems when users copy and paste from word or html pages. You can get invalid markup and missing closing tags that can mess up the page. This was very common when pasting errors or code fragments.

Also there were two bugs reported about our TinyMCE integration and these have been fixed. The first was that although our file browser was always using urls relative to the root of the site, TinyMCE was changing them to relative to the current page and this could make links incorrect if you viewed the content on a different page like in the content manager. It also could prevent us from correctly restoring the absolute url on outbound feeds for images or links that were posted in the blog. This was merely a configuration issue, it is the default behavior of TinyMCE, but it was easily disabled once I realized it was doing that. The second bug was that when running mojoPortal as an application in a sub directory instead of as a root site, the file browser was incorrectly resolving the root for uploads at the root of the main site rather than the root of the mojoportal application. This has also been fixed.

This release also includes a minor enhancement in our content manager. It now shows the use count of content instances making it easy to spot content that is not published anywhere.

There was also a bug fixed in the search index where page titles and content instance titles were not causing a match in search results unless the content itself also had the search term.

A Note About Our Versioning Scheme

In a post on CMSREport.com, Bryan Ruby commented that

Although you wouldn't expect an application with the version number of 2.3.1.5 to contain anything but bug fixes, in the world of mojoPortal almost every release contains new features for the CMS.

I thank Bryan both for the coverage and the comment. I suppose my use of versions is a bit different than many other projects so its worth mentioning what my versioning strategy is based on and clear up any confusion about what if anything is implied in the version number.

For most projects I think versions come down to major.minor.build.revision and often features are targeted for a new major version number. We use the same kind of format like 2.3.1.6 but our versioning is simply incremental and is based on our upgrade system. Any time we need to run a new script for any of the db platforms we increment the version. We only use a single digit between each . so we never have versions like 2.3.90.20, its just simple incrementing. So as soon as I need to run a new script I will create the next script file named 2.3.1.7.config (different script with the same name for each db platform). I may not need to run a script against every db platform but I keep the versions the same and create an empty script file if needed since we have different sets of upgrade scripts for each db platform. I then change a version variable in the code also to version 2.3.1.7 and this is how mojoPortal determines that it needs to run upgrade scripts, because each script increments the schema version stored in the db itself, so if the code is a higher version than what the current schema shows it knows it needs to run upgrade scripts to get the schema to the same version as the code. This scheme makes it easier to sort the script files correctly to run them in the right order. Sometimes the version will increment several times between releases but it does just increment linearly and really has no special significance for implying some magnitude of release or major milestone. This corresponds to our incremental short release cycle. We target a few things for the next release, make a development sprint, and as soon as we feel its stable we make a new release.

Probably the biggest problem we have with our short release cycles is release fatigue. People do get tired of upgrading but its really up to them how frequently they upgrade. If the new release has new features or fixes that you're dying to have then you have the choice to upgrade. I think that is better than making you wait a long time for features that are ready or bugs that are already fixed. I don't sleep well at night if I know people are still downloading a version with a bug that I have already fixed. I mean some bugs are trivial but if its something that I think is causing a nuisance to people on a daily basis I like to get the fix out as quickly as possible.

Some of you may find it better to wait a bit after a new release and keep your eyes on the forums for bug reports, but then if everyone does that it just delays the feedback cycle so its helpful to me if many of you do try each new release. I'm always dogfooding the latest release and new builds in between releases on this site to try and find any bugs before making a new release. I don't have a team of Quality Assurance testers other than the testing that comes from the community. Those of you working with the latest releases and especially those of you working with the code from svn trunk and making your own builds and providing feedback in between releases are a huge help and I thank you for that.

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