Manipulieren der SharePoint Menübar von Listen / Bibliotheken
Soeben habe ich hier einen Artikel gefunden, wie man in SharePoint Einträge der Menübar von Listen und Bibliotheken verstecken kann. Die aufgezeigte Lösung funktioniert auch sehr gut, allerdings hat sich auf der Seite ein kleiner semantischer Fehler eingeschlichen. Das im Artikel ausgedachte Ausblenden von Menüeinträgen - um gewisse Funktionalitäten Benutzern nicht zugänglich zu machen - erachte ich als nicht besonders sinnvoll. Über entsprechende Tools können die Elemente wieder eingeblendet werden, die Funktionalität ist ja weiterhin auf der Seite geladen, sie wird nur versteckt.Eine weitere Idee ist jedoch, Menüeinträge zu manipulieren. Dies kann für verschiedene Anwendungsfälle nützlich sein, z. B.:
- "Standardmenüeinträge" gefallen den Nutzern von den Bezeichnungen nicht
- "Standardmenüeinträge" passen teilweise von den Bezeichnungen nicht zum Inhalt
- Mehrere Sprachen
Während die ersten beiden genannten Szenarien wohl eher als weniger interessant zu sehen sind, ist der letzte Fall durchaus nennenswert und denkbar. Content Owner möchten in einer Site eine Liste pflegen und diese in mehreren Sprachen anbieten. Hierbei könnte per JS die Browsersprache ausgelesen werden - oder auch ein Drop-Down Feld mit eienr Auswahl an Sprachen auf die Page eingefügt werden. Diese Möglichkeiten möchte ich an dieser Stelle nicht weiter verfolgen, sie sollen lediglich Denkanstöße (vielleicht habt ihr in den Kommentaren ja noch mehr?!) dienen.
Der nachfolgende Javascript ist ein Codeauszug, um Menüeinträge umzubenennen. Er wird unter die entsprechende Liste / Bilbiothek in ein "Page Viewer Webpart" gepackt. Der Code stammt im wesentlichen von hier und wurde auf meine Bedürfnisse minimal angepasst.
- <script language="JavaScript">
- var doc = document.getElementsByTagName('ie:menuitem');
- for (var i = 0; i < doc.length; i++) {
- itm = doc(i);
- if (itm.id.match('New0')!=null) {
- itm.setAttribute('text','Auf gehts, neuer Eintrag!',0);
- itm.setAttribute('description','Was wird mal hier wohl machen?!',0);
- }
- // OTHER CODE HERE, e. g. if(itm.id.match('NewFolder')!=null {...}
- }
- </script>
Der Javascript sucht zunächst nach dem Tag "ie:menuitem". Anschließend wird über diesen Array (es gibt mehrere Menüeinträge) iteriert. Nun kommt es auf die persönlichen Bedürfnisse an. Ich habe in dem Beispiel den Menüeintrag "Neuer Eintrag" bearbeitet. Dieser wird unter der ID "New0" geführt. Über die "Standard"-Javascript Methode "setAttribute" kann die Eigenschaft "text" sowie "description" geändert werden. Eine Übersicht über die berschiedenen Menüeinträge inklusive internen Bezeichnungen sind in der nachstehenden Tabelle (Quellezu finden.
| Menüeintrag | Übergeordnetes Menü | Menü Text (en) |
|---|---|---|
| New0 | New | New Document (default click) |
| NewFolder | New | New Folder |
| Upload | Upload | Upload Document |
| MultipleUpload | Upload | Upload Multiple Documents |
| EditInGridButton | Actions | Edit in Datasheet |
| OpenInExplorer | Actions | Open with Windows Explorer |
| OfflineButton | Actions | Connect to Outlook |
| ExportToSpreadsheet | Actions | Export to Spreadsheet |
| ViewRSS | Actions | View RSS Feed |
| SubscribeButton | Actions | Alert Me |
| AddColumn | Settings | Create Column |
| AddView | Settings | Create View |
| ListSettings | Settings | Document Library Settings |
| DefaultView | View | All Documents (in typical library) |
| View1 | View | Explorer View |
| ModifyView | View | Modify this view |
| CreateView | View | Create view |
Übrigens können nicht nur Menüeinträge einer SharePoint Liste oder Bibliothek manipuliert werden, sondern auch Elemente der "Webseitenaktionen", etc. (siehe: hier).


