lørdag, januar 10, 2009

Egne underpunkter i SharePointlisters menuer

Jeg har i løbet af den sidste måneds tid kigget på hvordan man kan tilpasse menupunkterne i en SharePointliste.

I dette tilfælde ønskede man at tilføje et menupunkt til "New" sektionen på et dokumentbibliotek, således at brugeren kan vælge en dokumentskabelon fra en central liste, frem for at liste samtlige 45 skabeloner i downdown'en.



Jeg viste fra et tidligere SharePointkursus at jeg skulle ændre i featurelisten under 12'er folderen for at tilpasse menuerne.




MSDN har en glimrende artikel om emnet som jeg brugte som udgangspunkt. Resultatet af denne artikel er at du har nye menupunkter på alle de steder du kunne ønske det.

Et webcast der viser stort set det samme kan du finde her

Da kunden specifikt havde ønsket at et klik på "New" skulle aktivere det specielle menupunkt kiggede jeg på hvordan jeg kunne sikre dette. Tilsyneladende kan man ikke direkte angive hvilket af de underliggende menupunkter der aktiveres når man klikker på "New", det vil altid det første menupunkt der aktiveres.

Løsningen på dette kundeønske var i dette tilfælde at fjerne evt. contant types således at der ikke længere findes en default content type. "Allow management of content types" under "Advanced Settings" skal være slået til, for eller dukker der automatisk en default content type op.

Uden Folder






Om brugeren skal have mulighed for at skabe nye foldere er helt op til dig, det påvirker ikke den ønskede funktionalitet.


Med Folder


Jeg er endnu ikke kommet helt i mål, selv om mit nye menupunkt er det eneste under "new" så er det ikke en content type og vil derfor ikke blive aktiveret når brugeren klikker på "New". I dette tilfælde er den fundne løsning sandsynligvis tilstrækkelig idet et klik på "New" blot vil åbne den underliggende menu, hvor brugeren så kan vælge det korrekte menupunkt :-)

Af ukendte årsager indeholder artiklens eksempel ikke attributen ImageUrl som specificerer ikonet som du ønsker at vise i forbindelse med dit menupunkt, f.eks. ImageUrl="/_layouts/images/ICEML.GIF", og så ser det sådan ud.