Mettiamo la Ribbon su SharePoint 2007
In questi giorni al TechEd 2009 sono state rese pubbliche alcune informazioni sulle next wave di Office e SharePoint 2010. Il grosso naturalmente non verrà svelato in attesa della SharePoint Conference 2009.
Ci sono però una serie di informazioni che sono state rese pubbliche. Una di queste è una novità in merito alla UI di SharePoint 2010, ovvero che sarà migliorata notevolmente con l’introduzione di controlli SilverLight e la Ribbon di Office. Per chi non sapesse cos’è, la Ribbon è la toolbar presente sulle applicazoni del pacchetto Office 2007. Ecco qui sotto come si presenta la Ribbon di Word.
Al che sono fatto una domanda “Non potremmo mettere la Ribbon già su alcune toolbar di SharePoint 2007 ? "
In particolare mi è venuto in mente di sostituire la toolbar della Console di Publishing con la Ribbon. Navigando sul forum della Telerik ho trovato un thread molto interessante che spiega come inserire la ribbon sulle applicazioni ASP.NET fruttando dei controlli Telerik. Russell Mason mi ha preceduto, sviluppando un componente in grado di renderizzare la Ribbon.
Così con poche righe di codice ho integrato la Ribbon su SharePoint. A sviluppo completato il risultato è stato davvero notevole come si può vedere degli screenshot.
Dettaglio del menù Page
Dettaglio del menù Workflow
Dettaglio del menù Tools
Com’è stato ottenuto questo risultato?
A grandi linee ecco come inserire la Ribbon su SharePoint 2007:
- Creare una master page (RibbonMinimalMasterPage.ascx) partendo dalla Minimal Master Page pubblicata su MSDN
- Creare uno user control (RibbonPublishingControl.ascx) per generare la Ribbon e scrivere un pò di codice per inserire le voci di menù e relative funzionalità che si ottengono navigando l’oggetto XmlDataSource del EditingMenu. Importante: leggere il thread sopra indicato per ottenere delle specifiche su come utilizzare il controllo della Ribbon. Segnalo che è necessario scaricare e installare gli assembly Telerik.Web.UI e RusselMason.Web.UI.Office2007
- Modificare la master page sostituendo il link dello user control PublishingControl
1: da
2: <%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/PublishingConsole.ascx" %>
3: a
4: <%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/RibbonPublishingConsole.ascx" %>
- Impostare la nuova master page sulla site collection agendo da Site Actions –> Site Settings –> Modify all site sittings –> Master Page (dalla colonna Look and Feel)
NOTA: la soluzione descritta è stata sviluppata a scopo didattico. Non sono mai stati fatti dei test approfonditi sulle funzionalità. Se qualcuno volesse darmi una mano sia per i test e per le fix mi faccia sapere; sarò lieto di condividere i sorgenti.