Sign In  |  Register
 
 DotNetNuke Powered!
DotNetNuke Support Forums

Cutomizing the DotNetNuke Solutions Explorer

Rate this topic:

Please Register to post a reply.
Another benefit of registration is the ability to subscribe to and recieve notifications of new posts.

AuthorMessages
John Mitchell
Posts:2755



05/05/2007 8:46 PM  

The new Solutions Explorer in DotNetNuke 4.5 is a very slick ajax application that can be used for a lot of other things.  Here is a way to quickly coax it out from it's hiding place and make it available for Users other than just Host.

First, log in as Host (Super User) and Navigate to the Host > SQL page, then insert the following SQL and click on the Execute as Script checkbox before running it with the Execute command link.

UPDATE {databaseOwner}{objectQualifier}DesktopModules SET IsAdmin=0 WHERE FriendlyName='Solutions'

After running that SQL you should now have it available as a normal module in your Modules drop-down list.

Now you can add it as a normal Module on any page you like.

OK, that's cool but it's not much in the way of customization is it?
Lets look under the hood to see how we can customize it even further. 

The config file for the Solutions Explorer is very aptly named SolutionsExplorer.opml.config and you can find that file in the root of your website.
           Note: If the file is not in the root of your website, then you probably have not opened up the Solutions Explorer yet.
                     Until the Solutions Explorer is first viewed you will find the config file in the /config folder.

Opening up the config file we can see that it is an XML file that is using the OPML specification.
What this tells us is that the Solutions Explorer can actually be easily configured to read in any OPML formatted list.

Looking at the first < outline node,
we see that the app has been configured
to make a call back to the DNN mothership:
http://marketplace.dotnetnuke.com/rssfeed.aspx?channel=marketplacesolutions&affiliateid=10054

The link above is actually a link to another OPML formatted list, and by viewing that we can see that it is in turn a list of RSS Feeds.

Before we get too far down the road though, lets look back in the original Solutions Explorer config file and see how it helps to define the navigation in the layout.  The outline entry that calls the list above has the attribute category="Tab/marketplace", and the attribute text="Marketplace".

That category and text is what is used to dynamically create the top level tab as shown in the image below:

        Note: If you are interested in just changing the words for localization of the Navigation then you could easily do it here.

So that is where the first level tab names come from. Where do the second level names come from?
That question takes us back to the mothership using the link above.  Looking in that list you can see the three highest < outline level nodes with the corresponding nodes of Modules, Skins, & Other.

So, now we have reached a point where any further customzation of the default content is out of our hands.  The rest of the application and the feeds it pulls in are controlled by DotNetNuke Corporation.  If they wanted to add more content to your site, all they need to do is change their OPML lists to include new or different feeds.

OK then, lets back up again and take a different path. 
Q: If the above link can call an OPML list and pull in the feeds it defines then why can't we have our own? 
A: We can!!  The Solution Explorer is extensible just like most other features of the DotNetNuke Framework.

All we need to do to pull in new content is create a file that is formatted the same way. 
Here is an example:
http://www.snapsis.com/resources/feeds/snowcovered.opml.xml

 Putting the above link in the SolutionsExplorer.opml.config file in it's own < outline node will render a whole new tab with content pulled from a different source.

Ok, pulling in that content works, but there is something wrong with the styling, broken image links, and some of the links do not work properly.
It took a while to track down why, but the /resources/FeedBrowser/scripts/FeedBrowesr.js on line 454 has some code to encode quotes and other characters:

Replacing that line with this one, corrects the output for our new feed nicely.  *Note to self*  Go back and figure out what problems this change may cause.

And here is the result:

 

Side note: As I was monitoring the traffic from my browser with fiddler I also found that there is a call back to DotNetNuke.com to get a js file which results in a 404 (not found) .

404 HTTP www.dotnetnuke.com/Portals/25/SolutionsExplorer/scripts/templates.js

Searching through the source I found out why in the /resources/FeedBrowser/scripts/FeedBrowesr.js file.
On line 137 there is some code that looks like this:

           /* try
            {
             var fbScript = document.createElement("script");
             fbScript.type = "text/javascript";
             fbScript.src = "http://www.dotnetnuke.com/Portals/25/SolutionsExplorer/scripts/templates.js";
                document.getElementsByTagName("head")Ύ].appendChild(fbScript);
            }
            catch(e)
            {
            }
            */           

The code in the .js file seems to want to add some other source in from DotNetNuke.com, but since it is not there then we sure don't need that call.
Lets lighten the load on DotNetNuke.com and comment that out as well.


That's all I have for now.  For the first release of the Solution Explorer I would say we really got our money's worth.  I'll be playing with it more and may even make it into a module with settings so that config files do not need to updated directly if anyone is interested.

 

slhilbert
Posts:5



05/07/2007 8:32 AM  
Pretty Slick John. good tip.

Stuart
http://www.getyourowntots.com
packrat
Posts:64



05/09/2007 6:36 PM  
Hi John,

I have been playing around with this a bit and have some questions and requests.

How do you discover which sites have opml files for use? If I go to a site that has a products rss feed, does this mean that the site has an opml file for use in my opml config file?

How does skinning/templating work? Who controls what in this process? Can the solutions explorer be skinned by the site owner and templating is left up to whoever provides the opml file?

Any hope that you will make an opml file available for Snapsis products and detail your process?

Making this into a module is a great idea, especially if it keeps one from having to make the modifications to the js files.

Thanks for all you do for the dnn community. Look forward to seeing you make this feature stand up and sing:-)

Paul

pinklloyd
Posts:1



08/08/2007 5:22 PM  

Yea i'd like to know too, John?

 

Did you write this?

John Mitchell
Posts:2755



08/08/2007 5:36 PM  

oops, looks like I missed a reply with questions. Sorry about that.

Let me try and answer, but I haven't looked at this in a while (obviously).

OPML is basically a list of rss feeds, so you can make an OPML list yourself, or some apllications (especially blog apps) are including OPML as part of their funtionallity. Expect to see more and more OPML lists whereever you see multiple stand-alone rss feeds.

The skinning of this explorer is actually controlled by some files in the Resources folder off the root of your DNN install. Digging through there and the javascript code will point you to how this is skinned.

The opml file I changed for this tutorial can be added to or modified to make your own OPML config files.

I don't have the spare time to make this into a module right now, but I'd be glad to answer any questions to help someone else that wanted to take on the task.

yehuda
Posts:1



08/09/2007 3:48 PM  
Is there a difference between this and the feed explorer module?
John Mitchell
Posts:2755



08/10/2007 10:23 AM  
What is the feed explorer module? They may be the same thing. Is it something that is delivered with the DotNetNuke install?
John Mitchell
Posts:2755



08/28/2007 10:56 AM  

Ok, I found the Feed Explorer, and yes the are the same thing. Aparently they made this into a module that you can add to a page.

adoucette
Posts:57



10/31/2007 2:23 PM  

Do you know how I could remove this Solutions Explorer from the admin menu? I think that there are applications where it is undesirable.

It doesn't seem that I could just delete the page.

adoucette
Posts:57



11/14/2007 9:13 PM  

Bump.

Is there a way to remove the Solutions Explorer from the admin menu? Would be nice if one could...

John Mitchell
Posts:2755



11/14/2007 9:42 PM  

You can remove the tab by running the following SQL in the Host > SQL window:

 

DELETE FROM {databaseOwner}{objectQualifier}Tabs WHERE TabPath='//Admin//Solutions'

adoucette
Posts:57



11/15/2007 6:08 AM  

That seems to do the trick.

Thanks, John.

N8tvtexan75
Posts:1



02/28/2008 7:30 AM  
John,

I know this has been here for a while. I have been struggling with trying to figure out how to limit the number of items using the Feed Explorer module. Everyone keeps pointing me back to you. If you have a chance, do you think that you might be able to take a look at it and point me in the right direction? Thanks in advance!

N8t
Please Register to post a reply.
Another benefit of registration is the ability to subscribe to and recieve notifications of new posts.

Forums >DotNetNuke Support >Tutorials-Guides > Cutomizing the DotNetNuke Solutions Explorer



ActiveForums 3.7
Visit our Store for great DotNetNuke Modules and Skins
DNNMasters Sitemap/Google Sitemap 3.0

Item codeSM3-01
Price$29.00
Product Information 
DotNetNuke CSS NavMenu 3.3 (Developers)

Item codeCSSNM33DEV
Base Price$149.00
Product Information 
Snapsis PageBlaster 3.3.1 for DotNetNuke - Professional Edition

AuthorJohn Mitchell
Base Price$79.00
Product Information 
XDAkuna (Web 2.0 CSS XHTML Skin)

Item codeXDAkuna
AuthorNina Meiers
Price$49.00
Product Information