Riporto l'articolo scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_sharepoint-2007---creare-un-menu-persona_664.aspx riguardante la creazione di un custom action personalizzato.
Introduzione
In questo articolo, vedremo come creare con il linguaggio Visual Basic Net e C#, un menu personalizzato per una raccolta elenco, la voce di menu avrà il compito di copiare il file selezionato in una determinato elenco (documenti library).
Utilizzeremo i file xml per l'installazione di tale voce (figura 1) ed una pagina web, che avrà il compito di copiare il file selezionato in una raccolta elenchi (denominata Amministrazione) creata in precedenza.
Utilizzeremo la classe spfoleder, spfile, listitem e list, per la gestione del file, liste, e cartelle.
Figura 1
Creazione del file xml feature e customAction.
In questa parte, vedremo la creazione dei file xml, che permetteranno di gestire il menu personalizzato, i file xml sono due, uno denominato feature, che avrà il compito di visualizzare nelle impostazioni della raccolta elenco siti di Sharepoint 2007 il componente, mentre il file UICustomAction.xml (il nome può variare) contiene le informazioni riguadante il menu.
Ma vediamo in dettaglio i vari file.
Di seguito si riporta un esempio del file Feature.xml
feature
id ="46F90BDF-416F-4eb7-B7CC-23FD5488403A"
<
ElementManifests
>
<
ElementManifest Location="UICustomActions.xml"
/>
<
/ElementManifests
>
Il tag Id, è un guid, per generare tale valore, tramite l'ambiente di sviluppo visual studio 2005 o versione successiva, selezionare dal menu Strumenti (tools per la versione inglese) la voce crea guid (create guid). Nella finestra che viene aperta facciamo click sul pulsante copy, in questo modo che si copia il codice guid, lo applichiamo a tale campo.
Per il tag Title, impostiamo un titolo. Mentre il tag Description, sarà la descrizione, entrambi visibili nella pagina caratteristiche raccolta siti.
Il tag vesion, indica la versione.
Il tag Scope, è un tag molto importante, infatti, se lo impostiamo con il valore web, questo componente verrà installato nel sotto sito che indichiamo ,ossia se abbiamo diversi siti nel nostro portale, possiamo far in modo che tale componente venga installato nel sotto sito specifico.
Se invece impostiamo il tag Scope con il valore Site, questo componente verrà installato per tutto il sito compresi i sotto siti.
Ora passiamo all'altro file xml ossia UICustomAction.xml, questo file, riguarderà le impostazioni relative al menu che dovrà essere visualizzato nel singolo elemento della raccolta elenco.
Di seguito si riporta il frammento di codice del file xml.
CustomAction
Il tag ID, sta per nome del menu, mentre il tag RegistrationTypy si riferisce al tipo di oggetto che andremo a pesronalizzare, e quindi una lista, mentre il tag RegistrationID, l'id del tipo di menu.
Il tag imageUrl, indica l'immagine, che verrà visualizzata accanto alla voce di menu, mentre il tag Seguence, l'ordine in cui visualizzarlo.
Il tag Title, indica il testo che verrà visualizzato nel menu.
Fate attenzione al tag UrlAction, questo tag è molto importante, perchè una volta selezionata la voce di menù, verrà caricata una pagina (che l'utente non vedrà, perchè ritornerà indietro ) nella quale si trovano le istruzioni per copiare il file nella raccolta elenchi amministrazione.
I parametri che vengono passati, riguardano la lista e l'elemento selezionato, infatti con il parametro ItemId, otteniamo il codice identificativo dell'elemento, mentre con il parametro ListId, otteniamo il codice identificatvo della lista.
Essendo un sotto sito, si è inserito l'urlo del server più il sotto sito, nel caso non era un sottosito, si poteva omettere.
Creazione della pagina.
Terminata la creazione dei file XML, occorre creare la pagina Aspx, la quale avrà il compito di copiare il file selezionato nella raccolta elenchi denominata Amministrazione, e ritornare nella cartella documenti condivisi, una volta terminata tale operazioni. Faccio presente un aspetto da non sottovalutare, infatti, la nostra pagina avrà il compito di cambiare il valore di una colonna della lista Documenti condivisi, e di copiare il file, ma nel caso, che l'utente non ha il ruolo di amministratore o un ruolo di modifica che succede? Semplice, non potrà eseguire il codice, per questo motivo, dobbiamo impersonare il ruolo di amministratore per far si che, la copia del file, avvenga con successo.
<script runat="server">
SPListItem MioFile = NewFile.Item;
}
esegui();
script>
Installazione.
A questo punto, non ci resta che installare i componenti, per prima cosa, occorre installare il file feature xml, tramite il comando stsadm, come si vede qui di seguito.
Come si vede, dopo essersi posizionati nella cartella Bin, che contiene diversi tools, viene eseguito il comando stsadm, con i parametri per l'installazione del componente.
Se tutto procede in modo corretto, occorre attivare il componente UICustomAction, ossia il file xml collegato al feature.
Di seguito si riporta il comando per attivare tale componente:
Per attivarlo, utilizziamo sempre il comando stsadm, ma tra i vari parametri , utilizziamo activatefeature, che permette l'attivazione del componente.
Faccio presente che dopo il parametro -url, viene digitato il sottosito denominato contabile, che fa parte del sito principale, in questo modo, il componente non sarà installato su tutti siti, ma benì, su quello specificato.
Figura 2
Verifica
A questo punto non ci resta che testare il nostro menu personalizzato.
Prima di tutto occorre creare nella raccolta elenchi documenti condivisi, del nostro sotto sito una colonna denominata stato, ed una raccolta elenchi, denominata Amministrazione.
Conclusioni:
L'articolo proposto, ha voluto illustrare una tecnica di come personalizzare il portale Microsoft Sharepoint 2007, in particolare aggiungendo una propria voce, nel menu di una raccolta elenco.
In allegato a tale articolo, si può scaricare i sorgenti utilizzati, tramite la parola download.
1 commento:
Ciao Emanuele
prima di tutto complimenti per l'articolo. Non ho però capito una cosa: le pagine .ASPX come si deploiano nel sito Sharepoint?
Grazie in anticipo
Posta un commento