none
Customizzare LINK FROM ADDRESS nella ribbon Editing Tools -> Insert Sharepoint 2010 RRS feed

  • Domanda

  • Ciao volevo, prima di ogni cosa ringraziare tutti, in particolare Peppe per la disponibilità, efficienza e competenza. GRAZIE.

    Avrei un'altro problema da risolvere. Dovrei customizzare l'azione che scatena il bottone LINK FROM ADDRESS sito nel gruppo Editing Tools all'interno del GROUPS Ribbon.EditingTools.CPInsert.Links -> CONTROLS -> Ribbon.EditingTools.CPInsert.Links.Controls, lo scopo è quello di dare la possibilità all'utente di creare un link esterno con delle ulteriori caratteristische, aggiungendo oltre ai campi Text to display e Address visualizzati nella RTEDialog, altri controlli ad esempio dei Radiobottons o DropDownChoice quale potrebbe essere la saoluzione migliore ?

    Grazie Antonio

     

    giovedì 29 luglio 2010 07:33

Risposte

  • No, il file CMDUI.xml va lasciato così com'è.

    Tu devi creare una nuova feature, che contiene la tua estensione alla barra dei Ribbon (puoi utilizzare il template EmptyElement che trovi su Visual Studio 2010 e scrivere nel file "elements.xml" la tua custom action).
    Per personalizzare la barra dei Ribbon, trovi tutto sulla documentazione:
    http://msdn.microsoft.com/en-us/library/ff630938.aspx

    Nel tuo caso, l'elemento di tipo CommandUIDefinition che scriverai avrà come valore dell'attributo Location, il valore "Ribbon.Link.Link.Properties.Controls._children"

    <CommandUIDefinition Location="Ribbon.Link.Link.Properties.Controls._children">

    All'interno di tale definizione dovrai poi inserire i tuo controlli. trovi un elenco dei controlli disponibili sempre sulla documentazione:
    http://msdn.microsoft.com/en-us/library/ff458373.aspx

    Per quanto riguarda il javascript che dovrai scrivere per permettere la modifica del tuo link, purtroppo ancora sulla documentazione non c'è niente e mi pare che neanche in giro c'è tanto. Quindi, il consiglio che ti do è vederti bene il file SP.UI.Rte.Debug.js e cercare di capire che classi e metodi javascript utilizzare.


    Giuseppe Marchi - SharePoint MVP - www.peppedotnet.it
    giovedì 29 luglio 2010 11:52

Tutte le risposte

  • Ciao Antonio. Figurati ! ;)

    Per fare quanto vuoi, dovresti aggiungere nuovi controlli all'interno del gruppo Ribbon.Link.Link.Properties che è il gruppo che visualizza di defualt i campi "URL" e "Description" del link che è stato inserito e che l'utente vuole modificare.
    Così facendo puoi gestire il tuo link tramite dei comandi javascript che puoi specificare all'interno degli attributi "Command" e "QueryCommand". Questi comandi poi, utilizzeranno il modello di classi javascript esposto da SharePoint 2010. (se vuoi vedere la documentazione su questi attributi la trovi qua: http://msdn.microsoft.com/en-us/library/ff458386.aspx)
    Per vedere un esempio di un controllo, guarda pure la textbox che permette la modifica dell'indirizzo. La trovi all'interno del file "CMDUI.xml" sotto la directory
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML

    cercando l'id: "Ribbon.Link.Link.Properties.LinkAddress"

    se vedi, quel controllo ha la proprietà command="LinkUrlChanged".
    questo nome è il nome che viene passato ad una funzione javascirpt che è presente all'itnerno del file SP.UI.Rte.js (per vederela guarda il file SP.UI.Rte.Debug.js che è molto più leggibile). vedrai che verra usato l'oggetto RTE e il metodo setLinkUrl per modificare via javascript l'indirizzo del tuo link.
    (quel file javascript lo trovi alla directory: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS

    te lo riporto qua, così non ti sbagli:

                case 'LinkUrlChanged':
                    RTE.RichTextEditor.setLinkUrl($p1[CUI.Controls.TextBoxCommandProperties.Value]);

    nel tuo caso, devi scriverti una funzione javascript custom, che tramite l'utilizzo della classe RTE.RichTextEditor modifica il tuo link.
    è un pò complicato, lo ammetto. ma è fattibile..

    ciao !


    Giuseppe Marchi - SharePoint MVP - www.peppedotnet.it
    giovedì 29 luglio 2010 08:38
  • Grazie Peppe.

    Quando parli di aggiungere controlli  all'interno del gruppo Ribbon.Link.Link.Properties li posso inserire direttamente nella CMDUI.xml o occorre fare delle specifiche feature? In quest'ultimo caso dove posso trovare degli es. magari anche su come aggiungere funzioni javascript che implementano il core js di SP. Scusami anticipatamente se per te alcune mie domande risultassero banali.

    Antonio

    giovedì 29 luglio 2010 09:38
  • No, il file CMDUI.xml va lasciato così com'è.

    Tu devi creare una nuova feature, che contiene la tua estensione alla barra dei Ribbon (puoi utilizzare il template EmptyElement che trovi su Visual Studio 2010 e scrivere nel file "elements.xml" la tua custom action).
    Per personalizzare la barra dei Ribbon, trovi tutto sulla documentazione:
    http://msdn.microsoft.com/en-us/library/ff630938.aspx

    Nel tuo caso, l'elemento di tipo CommandUIDefinition che scriverai avrà come valore dell'attributo Location, il valore "Ribbon.Link.Link.Properties.Controls._children"

    <CommandUIDefinition Location="Ribbon.Link.Link.Properties.Controls._children">

    All'interno di tale definizione dovrai poi inserire i tuo controlli. trovi un elenco dei controlli disponibili sempre sulla documentazione:
    http://msdn.microsoft.com/en-us/library/ff458373.aspx

    Per quanto riguarda il javascript che dovrai scrivere per permettere la modifica del tuo link, purtroppo ancora sulla documentazione non c'è niente e mi pare che neanche in giro c'è tanto. Quindi, il consiglio che ti do è vederti bene il file SP.UI.Rte.Debug.js e cercare di capire che classi e metodi javascript utilizzare.


    Giuseppe Marchi - SharePoint MVP - www.peppedotnet.it
    giovedì 29 luglio 2010 11:52
  • Ok grazie Peppe, ci proverò eventualmente dovessi riuscire posto la metodologia javascript implementata se vuoi.
    giovedì 29 luglio 2010 13:01
  • bravissimo ! :)
    Giuseppe Marchi - SharePoint MVP - www.peppedotnet.it
    giovedì 29 luglio 2010 13:08