Mavention Blog

At the moment I’m working on an Intranet that has to comply completely to the Dutch ‘webrules’ (Webrichtlijnen - http://www.webrichtlijnen.nl/).
One part of this is that the navigation has to be a ‘<ul><li>’- structure instead of the standard SharePoint table-structure.
Therefore we adjusted the rendering of the topnavigation so now neat XHTML is rendered.

The challenge is to make this menu, which is a foldout-menu, compliant to IE6 and IE7.
The folding uses the following css-code for hiding and revealing:

div#menu ul ul ul, div#menu ul ul li:hover ul ul {display: none;}
div#menu ul ul li:hover ul, div#menu ul ul ul li:hover ul {display: block;}

However a hover on a li-element doesn’t function in IE6 en IE7.
The solution is to make use of the following HTC-file:
http://www.xs4all.nl/~peterned/csshover.html#changes.
This file is referenced from out the CSS:
body{ behavior: url("../includes/csshover.htc");}

The result is a browsercompliant accessible foldout topnavigation that uses the standard SharePoint SiteMapDataSource.

Posted: 21-9-2009 11:06:32 by Paul Boelens | with 0 comments


Mavention organiseert op 12 november het SharePoint 2010 event voor (ICT) managers. Tijdens dit event worden de nieuwe mogelijkheden van SharePoint 2010 getoond. Het programma heeft de volgende onderwerpen:
 
Whats new in SharePoint 2010
Bart Wessels is Information Worker specialist van Microsoft en geeft een rondleiding langs de nieuwe mogelijkheden van SharePoint 2010.
 
Maak je intranet socialer met Communities
Rene Jansen van WinkWaves is de deskundige op het gebied van social networking en kennisdeling. Hij doceert hierover ondermeer aan de Universiteit van Amsterdam en Universiteit Nyenrode. Rene Jansen vertelt hoe je intranetomgevingen nog socialer maakt met communities.
 
Verbeterde search binnen SharePoint 2010 met Microsoft FAST
Adriaan Hondelink van ContentStrategy is de kenner op het gebied van zoekmogelijkheden en heeft samen met Microsoft een presentatie gemaakt over FAST search en SharePoint 2010.
 
Migratie SharePoint 2007 naar 2010
Robert Jaakke van Mavention is één van de vijf Certified SharePoint Masters in Nederland. Hij legt tot slot uit hoe een traject er uitziet wanneer u uw SharePoint 2007 omgeving wil migreren naar SharePoint 2010.
 
Meer informatie op http://www.mavention.nl/SharePoint2010

Posted: 15-9-2009 21:29:31 by Joris Engels | with 0 comments


Allot of controls found in Microsoft.SharePoint.WebControls can be used in custum code. Some of these controls get their values from the current SPContext. If you use for instance the ListFieldIterator to show the metadata from a listitem on another web you will get errors because it's using the wrong context. This can be fixed by using SPControl.SetContextWeb() but be awar that this will change the entire conext of the page. It will show your page but the menu and site actions think you are on the web of the listitem. There's no prefect solution for fixing this but one approach is to create an applicationpage and set the context using SPControl.SetContextWeb and load this in a pop-up or iframe.

Posted: 10-9-2009 19:59:36 by Robert Jaakke | with 0 comments


Lately a customer of mine had specific demands regarding their portal site. They wanted menu items containing sub menu items to be unclickable. Now this is not standard SharePoint menu behavior, so I Bang some about this. (Is Bang past tense for Bing?).

Anyways, there is a lot to find about overriding the menu control. Especially Microsoft (http://blogs.msdn.com/sharepoint/archive/2006/12/02/customizing-the-wss-3-0-moss-2007-menu-control.aspx) has some clear explanation on how to do this.

In short: you cannot override the MOSS menu control class because it is sealed. Therefore Microsoft has provided us with source code that can be used for this goal. This class you can override or tweak.

As I mentioned some menu items had to be "unclickable". This I achieved by doing the following:
 
First I added a method:
        private void DisableParentMenuItems(MenuItem menuItem)
        {
            // No kids. Keep this one selectable
            if (menuItem.ChildItems.Count == 0)
                return;
            // Kids. Process them
            foreach (MenuItem childItem in menuItem.ChildItems)
                DisableParentMenuItems(childItem);
            // Kids. This menu item may not be clickable.
            // Menu item with depth=0 is the root item and is the only one exception that should be selectable in case we use portal root site in navigation
            // which we dont here.
            if (menuItem.Depth >= 0)
                menuItem.Selectable = false;
            //menuItem.ToolTip += menuItem.Depth.ToString();
        }


After that I added code to the end of the OnPreRender method:
            // iterate through all top level menu items
            foreach (MenuItem menuItem in this.Items)
                DisableParentMenuItems(menuItem);

Make sure you use the standard procedure to have the menu control deployed (I used a solution for this), having the SafeControl added etc. The last thing to do is to modify the master page in order to use the new menu control (and don't forget the publishing of the page).

Posted: 2-9-2009 19:17:07 by Marcel van der Lem | with 0 comments