Archive
Monthly
Go
|
|
DNN Blog
Apr
1
Posted by:
Chris Paterra
4/1/2007
I was looking around for some details on the xml node available for an installable DNN module labeled compatibleversions. I was able to find a forum post in our private team forums where Shaun talks about this (from back in November) and I figured I would share with the community. This node can be placed in the .dnn manifest file, used by the DotNetNuke module installer, and can set the minimum required DotNetNuke core version a module requires.
For example, the next major forum release requires DotNetNuke core 4.4.0 or greater. In order to handle the potential support issues which would arise from users trying to install in DotNetNuke 4.3.5, for example, this node allows me to specify in the .dnn manifest file the lowest compatible core DotNetNuke version my module requires.
To use this in my module, I structured my .dnn manifest file as such:
<?xml version="1.0" encoding="utf-8" ?>
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>
<name>Forum</name>
<friendlyname>Forum</friendlyname>
<foldername>Forum</foldername>
<modulename>DNN_Forum</modulename>
<description>The core forum module for DotNetNuke.</description>
<version>04.04.00</version>
<businesscontrollerclass>DotNetNuke.Modules.Forum.ThreadController, DotNetNuke.Modules.Forum</businesscontrollerclass>
<compatibleversions>^[0-9]{1}[4-9]{1}.[0-9]{1}[4-9]{1}.[0-9]{1}[0-9]{1}$</compatibleversions>
<resourcefile>Resources.zip</resourcefile>
<modules>
<module>
<friendlyname>Forum</friendlyname>
<cachetime>-1</cachetime>
<controls>
<control>
<title>Forum</title>
<src>Forum_Container.ascx</src>
<type>View</type>
</control>
As you can see above, I have higlighted the area that we are discussing here (I also didn't post the remainding section of the example .dnn manifest file). This node uses a regular expression to set the minimum DotNetNuke core version. You can test for a proper match at http://www.regextester.com/. The above example requires DotNetNuke 4.4.0 or greater. (Remember that DotNetNuke uses the xx.xx.xx format)
I believe this support has existed since DotNetNuke 3.3.6/4.3.6. (If not these, I know the x.x.7 series has this capability in there) If you add this node and someone tries to install in a verion prior to those, the check will not be done but the module install will fail because the schema for the manifest file in those versions had no idea what compatibleversions was. If someone tried to install the example forum in a DotNetNuke core 4.3.7, a message would be displayed about the core version being incompatible. If the version is compatible, however, the install process will complete as before.
Just a note, if you wanted to support a module on both 3.x and 4.x you can do something like:
^[0-9]{1}[3-9]{1}.[0-9]{1}[3-9]{1}.[0-9]{1}[0-9]{1}$
This means that 03.03.00 - 09.03.99 will pass and 02.02.02, 03.01.00 would fail.
Hope this comes in handy!
5 comment(s) so far...
Re: Minimum DotNetNuke Core Version Support
Good post Chris, thanks for the info. I didn't know that was in there.
The regex needs to be tweak a little to handle versions such as 04.13.00 or 05.00.00. To match these you'd have to change to the following:
^[0-9]{1}[4-9]{1}.[0-9]{1}[4-9]{1}.[0-9]{2}|[0-9]{1}[4-9]{1}.[1-9]{1}[0-9]{1}.[0-9]{2}$
Let's hope we don't get to rev 13 :)
By dnnstuff on
4/5/2007
|
Re: Minimum DotNetNuke Core Version Support
Hi again Chris. I've finally got around to trying this in a manifest for my module because I'm targeting the new DNN 4.5.0+ now and I was getting installer errors when trying to install in DNN 4.4.0 or DNN 4.4.1.
I found the problem was because I had the compatibleversions node after the resourcefile node. After I reordered the nodes it started working. I'm not sure why the order of nodes makes a difference but wanted to mention this in case anyone else had the same problem. I think this must be a bug in the installer. Node order shouldn't be an issue with an xml format.
By dnnstuff on
4/7/2007
|
Re: Minimum DotNetNuke Core Version Support
The order of the nodes are important because they are defined in the xsd file which can be found at: DotNetNuke\Website\Components\ResourceInstaller\ModuleDef_V3.xsd.
By Crispy on
4/7/2007
|
Re: Minimum DotNetNuke Core Version Support
Just a note, it seems there is a bug in core 4.4.1 which doesn't allow the installer to use this feature. I know it is working properly in 4.5 though, so please keep this in mind.
By Crispy on
4/10/2007
|
Re: Minimum DotNetNuke Core Version Support
FYI - this didn't work in v4.06.02. It worked prior though. I had to make the preceding zero optional: ^[0]?[3-9]{1}\.[0-9]{1}[3-9]{1}\.[0-9]{1}[0-9]{1}$
By hismightiness on
1/28/2008
|
|