Posts in Category: Development

WebParts have landed in svn branches/2.1

You may have noticed the new MyPage link at the top of this site. The appearance of this link signifies completion of the first iteration in implementing WebParts in mojoPortal. WebParts allow page personalization kind of like My Yahoo or Google personalized pages. To customize the page and see how it works you have to login to this site, otherwise you just see the default content I have enabled on MyPage.

I've started some documentation on the MyPage feature here. Any content in the site can be made available for the MyPage Catalog and users can pick which content to show on MyPage and the site will remember their settings. You can also drag and drop the content into any of the 3 columns.

There is an upgrade script in svn for MS SQL, MySQL, and PostgreSQL. I still have some work left for the SQLite implementation. Of course backup your db and site completely before trying this out.

I know the mono users will be dissapointed this is only for Windows at this time but be patient, when the mono 2.0 stack is ready you will be able to upgrade.

There is also a new Content Manager module and content module instances have been de-coupled form pages so you can have the same content on any number of site pages and you can even have content that is not on any page but is available for MyPage.

Any developers out there who play with this please give me your feedback on any problems you find. It should be fairly stable as this site is running on it. We are probably getting close to a 2.1 release depending on what people report.

Those of you who have contributed translations, now would be a good time to update the translation files to get them updated before the next release. There are a lot of new items in the cultureusa.config file, it would be nice to get the others updated before we make a release.

On another note, svn commit email notification hasn't been working lately but believe me there have been a lot of commits. I've notified Paul at Novell forge about the problem so it will probably be cleared up soon. Most likely its releated to some transition of the project administration to media wiki. In the past I have added users 1 by 1 to the svn list when they let me know they would like to be on it, but going forward we will have a mailing list for svn commits and people can opt in or out as they please. To sign up for the list just visit this page
http://forge.novell.com/mailman/listinfo/mojoportal-svncommits

Cheers,

Joe

Update - some additional notes for those upgrading from svn, ignore if doing a clean install

In addition to the normal backup your db and site completely before upgrading, you should be aware of a few manual steps you will want to take after the upgrade to enable some new features.

First you will want to add the new Content Manager module. Go to Admin > Feature Modules and click add new module. For the Feature Name type "Content Manager", for the Control Source, tpye Admin/ContentManager.ascx. Leave Is Admin unchecked for now but after we add this to a page come back in here and set it to true so that it cannot be added to any other pages. Save the Feature and then go back into it and you will see a new link for "Configure Settings", click this link and add a new setting:
ContentListPageSize
TextBox
15
^[1-9][0-9]{0,2}$

Now while we are in here there are some new settings for the Forums module. Go back to Admin > Feature Modules and click the gear for Forums then click the Configure Settings link. Add the following settings:

ForumEnableRSSAtModuleLevel
CheckBox
false

ForumEnableRSSAtForumLevel
CheckBox
false

ForumEnableRSSAtThreadLevel
CheckBox
false

this is just making the deafult setting false, if you want to enable this for a specifi forum you will be able to do that as these new settings will show up in the module settings for each forum instance.

A Good Example of a Site Using WebParts

If you follow my blog posts you probably know I am working on converting the built in mojoPortal features into WebParts. Actually I'm working on the Personalization and Membership APIs first which is the foundation for getting the most out of WebParts.

Probably not everyone really knows what kind of cool things you can do with WebParts. I just learned about http://www.pageflakes.com/ from someone's forum post at www.asp.net

pageflakes.com uses the ASP.NET WebPart framework. notice how you can drag things around and arrange the page and add or remove content. You don't even have to login to try it. Mouse over any of the module titles on their site and your cursor changes to the drag cursor. Click the Edit link to add or remove content.

In the not too distant future it will be possible to do things like this in mojoPortal. My plan is to make it configurable so that you can have pages the user cannot modify but you can also have pages they can customize

I think that is way cool. What do you think?

SVN Update

Just wanted to let everyone know that the subversion repository for mojoPortal source code is back up and running on the new server.

I have updated the documentation here to reflect the new change. Basically, ssh access is only available to those with commit access but https access is available both to anonymous users and those with commit access. The urls to use in TortoiseSVN are now

https://forgesvn1.novell.com/svn/mojoportal/trunk  for the 1.x branch
and
https://forgesvn1.novell.com/svn/mojoportal/branches/2.1 for the 2.x branch

On initial checkout you will be prompted to accept a security certificate.

https access is better anyway because most companies have the port for https open on their firewalls while not all have the port open for ssh.

Thanks go out to Paul at Novell for all his hard work in this transition!

Just Updated This Site to Latest svn

In preparation for the release, I've just updated this site to the latest code from svn. A lot of layout and style has changed, if anything looks funky, you may need to refresh the browser a couple of times to get the latest css stylesheet. It was cached in my browser when I first viewed the site after the update and the forums looked funky but refreshing the page fixed it.

If you notice any problems in this site that don't go away after a refresh be sure and let me know

A New Release Soon

A new release of mojoPortal is coming soon, either this Sunday or the following one if all goes well.

Hopefully we will release version 2.0.1 for Windows/2.0 .NET and version  1.0.1 for 1.1 .NET or Mono.

Most of my recent work has been in the 2.x branch. The 2.0 release of mojoPortal was just compiled against the 2.0 .NET framework, it did not use any of the 2.0 .NET features per se, but the upcoming 2.0.1 release will use a number of 2.0 .NET features.

Changes for the 2.0.1 version

  • MasterPages, previously we were using Paul Wilson's MasterPages which made this an easy change
  • Themes, using a custom VirtualPathProvider and VirtualFile, I am storing the theme.skin files in the same folder with the other skin elements like layout.master and style.css and images under ~/Data/Sites/[SiteID]/skins/[skinname] instead of in the default App_Themes folder. Themes give you awesome control over the visual properties of all the built in server controls. I have stubbed out most of the server control properties in the skin.theme files with the default properties to make it easy for designers to know what properties are available.
  • I implemented a custom SiteMapProvider and am now using the new ASP.NET Menu control for the menu instead of skmMenu. The skmMenu is still there if you want to use it there is a setting to allow that and you can also use the new TreeView control for the menu if you wish.
  • I reduced the number of included skins but the ones I kept are all using css layout with no tables.
  • I removed table layouts from most of the modules and supporting pages except where displaying tabular data
  • The site is in general now XHTML compliant though it may still be possible in some cases that you could manage to get non compliant markup into the database. To get my sites compliant I had to do some cleanup of existing content in the db.

Changes for both 2.0.1 and 1.0.1 versions

  • Update to the latest version of NeatUpload, the awesome upload control by Dean Brettle
  • Dean Brettle is also working on a new Cross Site Scripting (XSS) prevention technique that will hopefully be in this release
  • The last release added support for LDAP Authentication against OpenLDAP contributed by TJ Fontaine, this release we add support for Active Directory authentication as well as regular Windows NTLM authentication with help from Haluk Eryuksel, who also contributed the Turkish translation
  • Joseph Hill added a whole new data layer for SQLite and also provided a feature to expose the forums as RSS
  • I implemented a feature to automatically create initial site data for new installations and when creating new sites. Previously we had separate data creation scripts for each data layer and over time they had become inconsistent. This feature eliminates the need to maintain data creation scripts and makes the initial data consistent no matter which data layer is used. The initial data is retrieved from text files with a .config extension stored under Data/MessageTemplates and can be localized or customized

Numerous other little changes and fixes have also been done. If any of you think of anything major I've forgotten to mention let me know and I'll update this post.

For the current release, there will be no difference in the data schema between the 1.0.1 and the 2.0.1 versions but going forward the 2.x branch will begin to diverge as I add tables and columns to support the Personalization and Membership APIs and other plumbing to prepare for converting the modules into WebParts.

Its been several weeks since I have done any serious testing of the mono 2.0 stack. At my last test it was still broken in a number of places. I know they have been working hard on it though and I plan to get back on the testing and bug reporting after this release is shipped. Once the 2.0 mono stack is ready and stable we will drop the 1.x branch and get back to supporting just one version on all platforms.