Tag

,

Una delle nuove funzionalità che ci mette a disposizione SharePoint Server 2010 è quella di poter votare i contenuti (Rating). Ne consegue che potremmo facilmente arricchire il nostro sito (Intranet o Internet che sia) con una web part che dia risalto ai contenuti più votati.

Ancora una volta, per soddisfare questa esigenza, ci viene incontro la mitica Content Query Web Part.

Quali sono gli step necessari?

Innanzitutto, scrivere l’Xslt per la visualizzazione delle immagini di voto.

Io ho scelto di utilizzare l’immagine OOTB offerta da SharePoint,

Rating

ma è chiaramente possibile crearne di nuove (interessante questo How To: How to Change the Rating Stars in SharePoint 2010).

Siccome i voti sono restituiti in valori compresi fra 0 e 5, nell’xslt bisogna indicare quali sono le immagini (nel mio caso sfrutterò anche le classi css OOTB di SharePoint) da utilizzare a seconda del range di voto:

                    <xsl:choose>
                        <xsl:when test = "@AverageRating &gt;= 5">
                            <img class="ms-rating_5" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:when test = "@AverageRating &gt;= 4">
                            <img class="ms-rating_4" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:when test = "@AverageRating &gt;= 3">
                            <img class="ms-rating_3" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:when test = "@AverageRating &gt;= 2">
                            <img class="ms-rating_2" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:when test = "@AverageRating &gt;= 1">
                            <img class="ms-rating_1" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:when test = "@AverageRating &gt;= 0">
                            <img class="ms-rating_0" alt="{@AverageRating}" src = "/_layouts/Images/Ratings.png" />
                        </xsl:when>
                        <xsl:otherwise>
                            <img class="ms-rating_0" alt="Nessuna valutazione per questo elemento." src = "/_layouts/Images/Ratings.png" />
                        </xsl:otherwise>
                      </xsl:choose>

Una volta salvato l’xslt (è sempre meglio creare un xslt ad hoc), ma in alternativa è possibile personalizzare il foglio di stile predefinito (ItemStyle.xsl) aggiungendo il proprio template alla lista, non ci resta che configurare la Content Query Web Part di modo che sia richiamato il nostro template e che sia visualizzata la colonna di rating (valutazione, in italiano):

Capture

dove average rating è il nome del campo utilizzato nel template, mentre Valutazione (0-5) è il display name del campo di rating.

 

E se invece volessimo mostrare il rating nei risultati di ricerca? Ci viene incontro questo interessante post: Using the New SharePoint 2010 Ratings Feature in Search.

 

Ciao,

B.