<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>diploD &#187; Sharepoint</title>
	<atom:link href="http://www.diplod.it/category/webdesigner/sharepoint-webdesigner/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diplod.it</link>
	<description>by Davide Del Monte</description>
	<lastBuildDate>Fri, 13 Feb 2015 14:26:10 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Sharepoint 2010: external list da database SQL esterno alla prova dei fatti</title>
		<link>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/</link>
		<comments>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/#comments</comments>
		<pubDate>Sat, 23 Mar 2013 16:19:11 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[BCS]]></category>
		<category><![CDATA[Businness Connectivity Services]]></category>
		<category><![CDATA[integrazione]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[Sharepoint 2010]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1279</guid>
		<description><![CDATA[Con i BCS (Businness Connectivity Services) è possibile creare liste di Sharepoint 2010 contenenti elementi che in realtà risiedono su un database SQL esterno a Sharepoint. Vediamo come funzionano, per appuntarsi qualche utile consiglio. Il primo passo per poter far funzionare il meccanismo è la definizione di una Secure Store Target Application, ovvero di un [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Con i BCS (<a title="Sharepoint 2010 BCS" href="http://msdn.microsoft.com/en-us/magazine/ee819133.aspx" target="_blank">Businness Connectivity Services</a>) è possibile creare liste di Sharepoint 2010 contenenti elementi che in realtà risiedono su un database SQL esterno a Sharepoint. Vediamo come funzionano, per appuntarsi qualche utile consiglio.</p>
<p>Il primo passo per poter far funzionare il meccanismo è la definizione di una<em> Secure Store Target Application</em>, ovvero di un elemento che memorizza le credenziali di accesso al sistema esterno, al quale Sharepoint farà riferimento per evitare che vengano chieste all&#8217;utente che in quel momento visualizza i dati. E&#8217; tuttavia possibile evitare questo passo, se si desidera che per l&#8217;accesso al database esterno vengano utilizzate le credenziali dell&#8217;utente connesso anzichè credenziali comuni.<br />
La <em>Secure Store Target Application</em> si crea dalla <em>Central Administration</em>. Navigando nella sezione <em>Application Management</em>, e cliccando su <em>Manage Service Applications</em> sotto a <em>Service Applications</em>. Apparirà una schermata con la lista delle service applications, clicchiamo su <em>Secure Store Service</em>. A questo punto clicchiamo su <em>Generate New Key</em> nel ribbon, si apre una finestra che chiede di impostare una pass phrase, servirà per poter modificare la target application, va quindi appuntata da qualche parte (ma questo appunto è superfluo, no?).</p>
<p>A questo punto si può creare una nuova target application e compilare tutti i campi necessari, come da figura sotto. Come email mettiamo quella di un amministratore di sistema, mentre come <em>Target Application Type</em> in genere si mette <em>Group</em>, perchè in questo modo è possibile associare la target application a un gruppo di utenti.</p>
<p><span id="more-1279"></span></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage1.png"><img class="alignnone size-large wp-image-1289" title="BCSmanage1" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage1-1024x574.png" alt="" width="1024" height="574" /></a></p>
<p>Nel passaggio successivo è possibile quali campi associare alla target application, in genere sono sufficienti username e password: saranno poi valorizzati con le credenziali che dovranno impersonificare l&#8217;utente che si collega al database.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage2.png"><img class="alignnone size-large wp-image-1290" title="BCSmanage2" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage2-1024x574.png" alt="" width="1024" height="574" /></a></p>
<p>Ora bisogna specificare per quali utenti sarà disponibile questa target application, e quali sono gli utenti amministratori.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage3.png"><img class="alignnone size-large wp-image-1292" title="BCSmanage3" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage3-1024x334.png" alt="" width="1024" height="334" /></a></p>
<p>Ora che la <em>target application</em> è creata, non resta che settare le credenziali che utilizzerà per gli accessi al database esterno. Selezioniamo la <em>target application</em> dalla lista e premiamo il tasto<em> set credential</em> nel ribbon.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/set-credential.png"><img class="alignnone size-full wp-image-1293" title="set-credential" src="http://www.diplod.it/wp-content/uploads/2011/11/set-credential.png" alt="" width="452" height="202" /></a></p>
<p>Si aprirà una finestra dove inserire username e password, questo utente deve ovviamente avere accesso ai dati sul database esterno al quale vorremo collegare le liste di Sharepoint.</p>
<p>Ora l&#8217;attività si sposta su Sharepoint Designer 2010, per impostare i contenuti esterni e creare le liste che puntano ad essi. La prima cosa da fare è definire un External Content Type: ovvero un contenuto esterno dal quale attingere. Dopo aver aperto un sito, bisogna andare sul menù <em>External Content Type</em> e tramite il comando ribbon crearne uno nuovo.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-content-type.png"><img class="alignnone size-full wp-image-1285" title="external content type" src="http://www.diplod.it/wp-content/uploads/2011/11/external-content-type.png" alt="" width="546" height="190" /></a></p>
<p>Diamo un nome al contenuto esterno e clicchiamo sul link per impostare la connessione verso il sistema esterno.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-content.png"><img class="alignnone size-full wp-image-1286" title="external content" src="http://www.diplod.it/wp-content/uploads/2011/11/external-content.png" alt="" width="931" height="549" /></a></p>
<p>Ora bisogna cliccare sul tasto <em>Add Connection</em> per aggiungere una connessione.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/add-connection.png"><img class="alignnone size-large wp-image-1297" title="add-connection" src="http://www.diplod.it/wp-content/uploads/2011/11/add-connection-1024x357.png" alt="" width="1024" height="357" /></a></p>
<p>Apparirà una serie di schermate dove compilare i dati per l&#8217;accesso al database esterno.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-data-source.png"><img class="alignnone size-full wp-image-1298" title="external-data-source" src="http://www.diplod.it/wp-content/uploads/2011/11/external-data-source.png" alt="" width="312" height="98" /></a></p>
<p>Selezionare come opzione di connessione<em> Connect with Impersonated Custom Identity</em> e mettere il nome della<em> secure store application</em> definita prima sulla <em>Central Administration</em>.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/sql-connection.png"><img class="alignnone size-full wp-image-1299" title="sql-connection" src="http://www.diplod.it/wp-content/uploads/2011/11/sql-connection.png" alt="" width="378" height="256" /></a></p>
<p>Premendo <em>OK </em>il sistema chiederà le credenziali, inserire quelle dell&#8217;utente definito come amministratore della <em>secure store application</em> ai passi precedenti. Una volta validata la connessione, nell&#8217;<em>Operation Designer</em> apparirà tra le connessioni disponibili anche quella appena impostata: si espande l&#8217;albero per trovare la tabella o la vista contenente i dati che dovranno popolare la lista esterna di Sharepoint.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/operation-designer.png"><img class="alignnone size-large wp-image-1302" title="operation-designer" src="http://www.diplod.it/wp-content/uploads/2011/11/operation-designer-1024x539.png" alt="" width="1024" height="539" /></a></p>
<p>Una volta individuata, cliccando col tasto destro sulla tabella o sulla lista, è possibile generare le operazioni che servono (lettura, modifica, cancellazione, ecc..). E&#8217; possibile crearle tutte assieme, cliccando su <em>Create All Operation</em>. Nelle finestre successive dovremo dare un nome alle operazioni, si potranno settare filtri e sarà necessario marcare almeno un campo come <em>identifier </em>(ID di lista).</p>
<p>I filtri sono necessari per limitare il numero di record restituiti: di default è 2000 e a volte questo valore potrebbe non essere sufficiente, causando errore nella visualizzazione della lista tramite il browser sul sito Sharepoint.</p>
<p>Per l&#8217;operazione <em>Read List</em>, conviene settare qualche campo per la visualizzazione nel <em>picker</em>, altrimenti di default saranno visualizzati tutti e lato utente questa cosa risulta scomoda.</p>
<p>andando su <em>List and Libraries</em>, nei ribbon appare il comando <em>Elenco Esterno</em>.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/elenco-esterno.png"><img class="alignnone size-full wp-image-1282" title="elenco-esterno" src="http://www.diplod.it/wp-content/uploads/2011/11/elenco-esterno.png" alt="" width="357" height="144" /></a></p>
<p>Per chi volesse approfondire:</p>
<p><a href="http://blog.concurrency.com/sharepoint/accessing-external-data-using-business-connectivity-services-in-sharepoint-2010/">http://blog.concurrency.com/sharepoint/accessing-external-data-using-business-connectivity-services-in-sharepoint-2010/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impedire la stampa e il copia incolla da pagine wiki su Sharepoint 2010</title>
		<link>http://www.diplod.it/2011/11/22/impedire-la-stampa-e-il-copia-incolla-da-pagine-wiki-su-sharepoint-2010/</link>
		<comments>http://www.diplod.it/2011/11/22/impedire-la-stampa-e-il-copia-incolla-da-pagine-wiki-su-sharepoint-2010/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 11:23:44 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[copia incolla]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[stampa]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1307</guid>
		<description><![CDATA[L'esigenza è semplice: deve essere impedito all'utente medio di poter stampare o fare copia incolla da una pagina wiki di Sharepoint 2010.
Come fare? Ovviamente javascript e css. La rete è piena di esempi per disabilitare il cut&#038;paste o evitare la stampa di una porzione di pagina su carta; per il primo obiettivo useremo uno script semplicissimo, per il secondo un foglio di stile associato alla stampa. ]]></description>
				<content:encoded><![CDATA[<p>L&#8217;esigenza è semplice: <strong>deve essere impedito</strong> all&#8217;<em>utente medio</em> di poter <strong>stampare </strong>o fare <strong>copia incolla</strong> da una pagina wiki di <strong>Sharepoint 2010</strong>. La premessa sull&#8217;utente medio è fondamentale, perchè un utente scafato, in grado di leggere il codice e capire come fare lo troveremo sempre.. non è quindi questo il modo per proteggere fino alla morte un contenuto, si tratta semmai di un modo per sensibilizzare l&#8217;utente circa il contenuto confidenziale pubblicato su una pagina web.</p>
<p>Come fare? Ovviamente javascript e css. La rete è piena di esempi per disabilitare il <em>cut&amp;paste</em> o evitare la stampa di una porzione di pagina su carta; per il primo obiettivo useremo uno script semplicissimo, per il secondo un foglio di stile associato alla stampa. Tutto qui:</p>
<p><code>&lt;script language="JavaScript"&gt;<br />
&lt;!--<br />
// Disable selection of content<br />
function disableselect(e){return false}<br />
function reEnable(){return true}<br />
document.onselectstart=new Function ('return false')<br />
if (window.sidebar){document.onmousedown=disableselectdocument.onclick=reEnable}<br />
// --&gt;<br />
&lt;/script&gt;</code></p>
<p><code>&lt;script language="JavaScript"&gt;<br />
&lt;!--<br />
// Disable right mouse click Script<br />
var message="Function Disabled!";<br />
function clickIE4() {if (event.button==2) {alert(message);return false;}}<br />
function clickNS4(e) {if (document.layers||document.getElementById&amp;&amp;!document.all)<br />
{if (e.which==2||e.which==3){alert(message);return false;}}}<br />
if (document.layers) {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS4;}<br />
else if (document.all&amp;&amp;!document.getElementById) {document.onmousedown=clickIE4;}<br />
document.oncontextmenu=new Function("alert(message);return false")<br />
// --&gt;<br />
&lt;/script&gt; </code></p>
<p><code> &lt;style type="text/css"&gt; @media print { body { display:none } } &lt;/style&gt;</code></p>
<p><span id="more-1307"></span></p>
<p>Con Sharepoint 2010 non è possibile però inserire javascript su una webpart di contenuto, inoltre per raggiungere lo scopo serve mettere alcune righe di codice nel tag <em>&lt;head&gt;</em> della pagina. Dovremo quindi utilizzare <strong>Sharepoint Designer</strong>, dove possiamo entrare nell&#8217;editor della pagina wiki e cliccando su <em>Modalità Avanzata</em> nel ribbon siamo in grado di modificare il codice. Ogni pagina Sharepoint contiene un tag, <em>PlaceHolderAdditionalPageHead</em>, pensato appositamente per aggiungere codice custom nell&#8217;head della pagina.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/designer.png"><img class="alignnone size-full wp-image-1309" title="designer" src="http://www.diplod.it/wp-content/uploads/2011/11/designer.png" alt="" width="870" height="546" /></a></p>
<p>Nell&#8217;immagine sopra ecco un esempio pratico:<strong> risultato raggiunto</strong>! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2011/11/22/impedire-la-stampa-e-il-copia-incolla-da-pagine-wiki-su-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Branding di Sharepoint 2010: ABC e qualche appunto.</title>
		<link>http://www.diplod.it/2011/08/09/branding-di-sharepoint-2010-abc-appunti/</link>
		<comments>http://www.diplod.it/2011/08/09/branding-di-sharepoint-2010-abc-appunti/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 14:20:04 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[customizzazione]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[sharepoint designer]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1226</guid>
		<description><![CDATA[Sharepoint 2010 è sulla scena da ormai oltre un anno, è tempo di mettere nero su bianco qualche appunto ad imperitura memoria, magari tornerà utile ad altri. L&#8217;obiettivo è una semplice e sbrigativa customizzazione di un portale Sharepoint con colori personalizzati, un minimo di vestizione grafica e la scelta della master page e dell&#8217;icona di rappresentanza. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.diplod.it/wp-content/uploads/2011/08/style-library.png"></a>Sharepoint 2010 è sulla scena da ormai oltre un anno, è tempo di mettere nero su bianco qualche appunto ad imperitura memoria, magari tornerà utile ad altri. L&#8217;obiettivo è una semplice e sbrigativa customizzazione di un portale Sharepoint con colori personalizzati, un minimo di vestizione grafica e la scelta della<em> master page</em> e dell&#8217;icona di rappresentanza.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/08/look-and-feel.png"><img class="alignleft size-full wp-image-1240" title="look-and-feel" src="http://www.diplod.it/wp-content/uploads/2011/08/look-and-feel.png" alt="" width="267" height="139" /></a></p>
<p>Tutto parte dal menù del sito su cui si intende intervenire: <em>Site Action</em> -&gt; <em>Site Settings</em>. Sotto al gruppo <em>Look and Feel</em> troveremo varie voci, come nell&#8217;immagine a sinistra. Una prima veloce sistemata ai colori si può dare cliccando su <em>Site theme</em>, da qui possiamo impostare la tavolozza cromatica che desideriamo. Va detto, a onor del vero, che se vogliamo salvare un nuovo tema cromatico dovremo <a title="Using power point create a custom theme in sharepoint 2010" href="http://sqlserverpedia.com/blog/sql-server-bloggers/using-powerpoint-2010-to-create-a-custom-theme-for-sharepoint-2010/" target="_blank">utilizzare Power Point</a>, ma l&#8217;idea di lavorare su un sito web attraverso power point mi sconvolge talmente tanto che non l&#8217;ho presa nemmeno in considerazione. Ma volenti o nolenti prima o poi sarà da fare.</p>
<p>Una volta decisi i colori, possiamo cimentarci nella creazione di una master page personalizzata, da utilizzare come base per la nostra web application, a cui associare un foglio di style CSS che conterrà le nostre personalizzazioni ed una eventuale favicon. Per fare ciò è necessario aprire <a title="sharepoint designer 2010" href="http://office.microsoft.com/it-it/sharepoint-designer-help/introduzione-a-sharepoint-designer-2010-HA010370548.aspx" target="_blank">Sharepoint Designer 2010</a> e caricare il sito web, dal menù di sinistra dobbiamo quindi selezionare la voce &#8220;List and Libraries&#8221; e successivamente entrare nella cartella &#8220;Style Library&#8221; (vedi figura sotto).<br />
<span id="more-1226"></span></p>
<p style="text-align: center;"><a href="http://www.diplod.it/wp-content/uploads/2011/08/Cattura1.png"><img class="size-full wp-image-1325 aligncenter" style="border-style: initial; border-color: initial;" title="Cattura1" src="http://www.diplod.it/wp-content/uploads/2011/08/Cattura1.png" alt="" width="675" height="523" /></a></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/08/Cattura1.png"></a>In questa cartella andremo a creare una nuova cartella, chiamandola &#8220;mystyle&#8221; dove posizioniamo il CSS e la favicon, oltre a eventuali immagini utili per abbellire tramite CSS il nostro sito web.</p>
<p style="text-align: center;"><a href="http://www.diplod.it/wp-content/uploads/2011/08/Cattura2.png"><img class="aligncenter size-full wp-image-1327" title="Cattura2" src="http://www.diplod.it/wp-content/uploads/2011/08/Cattura2.png" alt="" width="415" height="181" /></a></p>
<p>A questo punto è il momento di creare la master page. Come prima, da menù, andiamo sulla voce &#8220;Master Pages&#8221; (vedi figura sotto).</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/08/Cattura3.png"><img class="aligncenter size-full wp-image-1328" title="Cattura3" src="http://www.diplod.it/wp-content/uploads/2011/08/Cattura3.png" alt="" width="511" height="407" /></a></p>
<p>Noteremo che ci sono due pagine fondamentali, una dal nome &#8220;default.master&#8221; e l&#8217;altra &#8220;v4.master&#8221;. Le pagine master definiscono una struttura comune per tutte le pagine Web in Microsoft SharePoint Server. Per impostazione predefinita, quando viene richiesta una pagina, la pagina master e la pagina di contenuto sono combinate per produrre una singola pagina. Utilizzando una pagina master, tutte le pagine di contenuti e applicazioni condividono la stessa struttura della pagina e hanno lo stesso look &amp; feel. La pagina <em>default.master</em> è utile per la retro compatibilità con SharePoint 2007, la versione 2010 utilizza la pagina<em> v4.master</em>, famosa per l&#8217;interfaccia a ribbon tipica di Office.</p>
<p>Per completezza, ecco la descrizione delle master page di default dal sito Microsoft:</p>
<table>
<tbody>
<tr>
<th><strong>NAME / DEFAULT FILE NAME</strong></th>
<th><strong>DESCRIPTION</strong></th>
<th><strong>USES ON A SHAREPOINT SITE</strong></th>
</tr>
<tr>
<td>Primary master<br />
page<strong> </strong></p>
<p style="display: inline !important;"><strong>v4.master</strong></p>
</td>
<td>Used for content and administration pages. Provides the interface and layout for SharePoint 2010.</td>
<td>Team Site home page, list and library pages, and site settings page.</td>
</tr>
<tr>
<td>Minimal master page<br />
<strong> </strong></p>
<p style="display: inline !important;"><strong>minimal.master</strong></p>
</td>
<td>Contains minimal SharePoint content, used for full-screen functionality or embedded applications.</td>
<td>The home and search results pages on a Search Center, pages that host Word or Excel web applications.</td>
</tr>
<tr>
<td>Publishing master page<br />
<strong> </strong></p>
<p style="display: inline !important;"><strong>nightandday.master</strong></p>
</td>
<td>Used for pages on a SharePoint Server publishing-enabled site.</td>
<td>The home page, about us, or press release page on a publishing intranet, extranet, or Internet-facing site.</td>
</tr>
<tr>
<td>2007 default master page<br />
<strong> </strong></p>
<p style="display: inline !important;"><strong>default.master</strong></p>
</td>
<td>Used to support legacy SharePoint sites, which haven’t been visually upgraded to SharePoint 2010.</td>
<td>Home page, site pages, and list pages on a SharePoint 2007 site before visual upgrade.</td>
</tr>
</tbody>
</table>
<p>Copiamo quindi la pagina <em>v4.master</em> e nominiamola ad esempio <em>mypage.master</em>. Ora doppio clic sulla pagina appena creata e si presenterà davanti a noi una schermata, al centro c&#8217;è la voce &#8220;edit file&#8221;, clicchiamoci sopra per fare il check-in della pagina e iniziare a modificarla secondo le nostre esigenze. L&#8217;obiettivo è inserire il riferimento a un CSS che utilizzeremo per modificare esclusivamente ciò che ci interessa. Passiamo quindi alla visualizzazione del codice.</p>
<p>All&#8217;interno del tag <em>&lt;head&gt;</em> possiamo inserire i riferimenti al CSS e ad una favicon specifici.</p>
<p><code>&lt;SharePoint:SPShortcutIcon runat="server" IconUrl="/Style Library/mystyle/favicon.ico"/&gt;<br />
&lt;SharePoint:CssRegistration name="/Style Library/mystyle/style.css" After="corev4.css" runat="server"/&gt;</code></p>
<p>Abbiamo messo il riferimento ai file salvati in precedenza nella cartella appositamente creata. A questo punto dobbiamo salvare e impostare la master page appena creata come pagina di default. Per fare ciò, si può cliccare col tasto destro sul nome del file e selezionare la voce &#8220;Imposta come pagina master predefinita&#8221; oppure dal menù Site Action sul browser selezionare la voce &#8220;Master page&#8221; e impostare la pagina custom come quella predefinita (vedi immagine sotto).</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/08/custom-master.png"><img class="aligncenter size-full wp-image-1252" title="custom master" src="http://www.diplod.it/wp-content/uploads/2011/08/custom-master.png" alt="" width="887" height="360" /></a></p>
<p>Ora siamo liberi di modificare il CSS come meglio crediamo, nel mio caso ad esempio ho inserito questo codice:</p>
<p><code>body {	background: #fff url(bg_erbetta.png) repeat-x bottom left;}<br />
.s4-title {	background: #fafafa url(header_bg.png) no-repeat bottom right;}<br />
.s4-socialdata-notif, s4-socialdata {<br />
background: #fafafa;<br />
/* Fallback for web browsers that doesn't support RGBa */<br />
background: rgb(250, 250, 250);<br />
/* RGBa with 0.6 opacity */<br />
background: rgba(250, 250, 250, 0.9);<br />
/* For IE 5.5 - 7*/<br />
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99fafafa, endColorstr=#99fafafa);<br />
/* For IE 8*/<br />
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99fafafa, endColorstr=#99fafafa)"; }<br />
.s4-ca { background: transparent;}</code></p>
<p>Ovviamente le possibilità di personalizzazione della master page sono tante altre, si possono spostare gli elementi o inserire pezzi di codice specifici. In questi appunti ho trascritto solo l&#8217;ABC, chi più ne ha più ne metta..</p>
<p>Chiudo con alcune utili risorse per chi vuole approfondire il tema:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/gg430141.aspx">http://msdn.microsoft.com/en-us/library/gg430141.aspx</a></li>
<li><a href="http://office.microsoft.com/en-us/sharepoint-designer-help/customize-a-master-page-to-brand-your-site-HA102449505.aspx">http://office.microsoft.com/en-us/sharepoint-designer-help/customize-a-master-page-to-brand-your-site-HA102449505.aspx</a></li>
<li><a href="http://www.thesharepointmuse.com/sharepoint-2010-branding/">http://www.thesharepointmuse.com/sharepoint-2010-branding/</a></li>
<li><a href="http://nonsolosharepoint.wordpress.com/2010/01/26/its-a-ribbon-behaviour/">http://nonsolosharepoint.wordpress.com/2010/01/26/its-a-ribbon-behaviour/</a> -&gt; utile riferimento sul tema ribbon..</li>
<li><a href="http://nonsolosharepoint.wordpress.com/2009/12/23/migrare-una-master-page-da-sharepoint-2007-a-sharepoint-2010/">http://nonsolosharepoint.wordpress.com/2009/12/23/migrare-una-master-page-da-sharepoint-2007-a-sharepoint-2010/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2011/08/09/branding-di-sharepoint-2010-abc-appunti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tecnologie ICT per l&#8217;Enterprise 2.0: tra Project Management e Collaborazione</title>
		<link>http://www.diplod.it/2010/02/21/tecnologie-ict-per-lenterprise-2-0-tra-project-management-e-collaborazione/</link>
		<comments>http://www.diplod.it/2010/02/21/tecnologie-ict-per-lenterprise-2-0-tra-project-management-e-collaborazione/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 08:45:28 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Università]]></category>
		<category><![CDATA[enterprise20]]></category>
		<category><![CDATA[intranet]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[tesi]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=770</guid>
		<description><![CDATA[Durante lo stage e nei mesi a seguire mi sono occupato di PDM (Product Data Management) e di intranet (sorprendendomi di un versatilissimo Sharepoint) in un gran bel gruppo industriale. Avevo già pubblicato qualche idea, ora è il momento del pdf. Il tutto è rilasciato con Licenza Creative Commons.]]></description>
				<content:encoded><![CDATA[<p>Il titolo del post non deve spaventare, si tratta della mia <strong>tesi di Laurea</strong>. Finita la specialistica, è arrivato il momento di pubblicare i miei sforzi: diversi mesi di tirocinio hanno prodotto i loro frutti.</p>
<p>In realtà la laurea è avvenuta a Marzo, i festeggiamenti pure.. in un poetico irish pub addobbato a festa per <a title="San Patrizio" href="http://it.wikipedia.org/wiki/San_Patrizio" target="_blank">San Patrizio</a>.</p>
<p>Durante lo stage e nei mesi a seguire mi sono occupato di <a title="Product Data Management" href="http://it.wikipedia.org/wiki/Product_Data_Management" target="_blank">PDM</a> (Product Data Management) e di <a title="intranet" href="http://it.wikipedia.org/wiki/Intranet" target="_blank">intranet</a> (sorprendendomi di un versatilissimo Sharepoint) in un <a title="Landi Renzo" href="http://www.landi.it/" target="_blank">gran bel gruppo industriale</a>. Avevo già pubblicato <a title="qualche idea per la tesi" href="http://www.diplod.it/2008/07/10/project-management-raccolta-di-idee-per-la-tesi/" target="_self">qualche idea</a>, ora è il momento del <strong>pdf</strong>. Pubblico solo in parte, per ovvi motivi di riservatezza, il capitolo 7 relativo alla intranet sviluppata in azienda.</p>
<p>L&#8217;intero lavoro è rilasciato con licenza Creative Commons.<br />
<a class="download-link" title="tesi del monte davide" href="http://www.diplod.it/wp-content/uploads/2009/10/tesi-final-pubblica.pdf">Scarica il PDF: Tecnologie ICT per l&#8217;Enterprise 2.0: tra Project Management e Collaborazione</a></p>
<blockquote><p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/it/"><img style="border-width:0" src="http://i.creativecommons.org/l/by-nc-nd/2.5/it/88x31.png" alt="Creative Commons License" /></a><br />
<span>Tecnologie ICT per l&#8217;enterprise 2.0: tra project management e collaborazione</span> by <a rel="cc:attributionURL" href="www.diplod.it">Davide Del Monte</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/it/">Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia License</a>.<br />
Permissions beyond the scope of this license may be available at <a rel="cc:morePermissions" href="www.diplod.it">www.diplod.it</a>.</p></blockquote>
<p>Di cosa parla questo lavoro? Il sommario vale più di mille parole:</p>
<p><span id="more-770"></span></p>
<blockquote><p><strong> 1.Introduzione&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	11<br />
</strong><br />
<strong> 2.Lo scenario&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	13</strong><br />
(a)Project Management in R&amp;D&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	14<br />
(b)La struttura organizzativa&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	18<br />
(c)Importanza della gestione progetti e Open Innovation&#8230;&#8230;&#8230;&#8230;..	21<br />
(d)Intranet: condivisione e architetture Service Oriented&#8230;&#8230;&#8230;&#8230;&#8230;	25<br />
(e)Gestione documentale abbinata ai progetti&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	27</p>
<p><strong> 3.Gli strumenti per l&#8217;innovazione&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	31</strong><br />
(a)Ai confini del Knowledge Management&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	32<br />
(b)Crowdsourcing&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	35<br />
i.caso Goldcorp&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	37<br />
ii.caso Colgate-Palmolive&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	38<br />
(c)Triz Innovation&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	38</p>
<p><strong> 4.Social Network e analisi delle reti di persone&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	45</strong><br />
(a)Enterprise 2.0 e reti sociali&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	44<br />
(b)I bisogni emergenti: Social Network e Appartenenza aperta&#8230;&#8230;.	47<br />
(c)Social Network Analysis e Value Network Analysis&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	53<br />
(d)Gli strumenti per l&#8217;analisi delle reti sociali&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	59<br />
Approfondimento tecnico: il software Ucinet&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	64<br />
(e)Small world network e i 6 Degrees su Facebook&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	68<br />
(f)Le reti a invarianza di scala e la dinamica dei sistemi complessi..	70<br />
(g)Elementi teorici per la costruzione di un Social Network&#8230;&#8230;&#8230;&#8230;.	74</p>
<p><strong> 5.Governance ICT: integrazione e architetture service oriented&#8230;&#8230;&#8230;&#8230;&#8230;	83</strong><br />
(a)complessità crescente e bisogno di integrazione&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	84<br />
(b)Service Oriented Architecture (SOA) e  Software as a Service<br />
(SaaS), Business Process Management (BPM) e Rich Internet Applications (RIA) nei modelli organizzativi rizomatici&#8230;&#8230;&#8230;&#8230;&#8230;	85<br />
(c)Dalle prime forme di scambio informazioni alla Enterprise<br />
Application Integration (EAI)&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	93<br />
(d)Accoppiamento del software: bene o male?&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	97<br />
(e)Il ruolo dell&#8217;ICT: Perché i progetti falliscono&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	99</p>
<p><strong> 6.Gli strumenti della Social Era…&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	103</strong><br />
(a)Virtual workspaces: tra wiki, blog e team di lavoro&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	104<br />
i.caso Lago&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	109<br />
ii.caso Serena&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	111<br />
(b)Sharepoint e Project Web Access: la collaborazione sui progetti<br />
secondo Microsoft&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	112<br />
(c)Qualche cenno sui vendor internazionali e i player italiani&#8230;&#8230;&#8230;	119<br />
(d)Qualche cenno sul mondo Open Source&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	124</p>
<p><strong> 7.Il caso LandiRenzo SpA: intranet per il reparto R&amp;D…&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	129</strong><br />
(a)L&#8217;azienda e l&#8217;unità R&amp;D&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	130<br />
(b)L&#8217;analisi di partenza&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	133<br />
i.Persone e progetti&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	133<br />
ii.Metodologie e prassi lavorative&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	134<br />
iii.La collaborazione e gli strumenti&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	136<br />
iv.I network relazionali&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	138<br />
v.I rapporti con le sedi estere&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	141<br />
(c)Il re-design della intranet R&amp;D: metodologie e problematiche..	142<br />
(d)Sharepoint e PWA: personalizzazioni della piattaforma e Web Parts&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	145<br />
i.Utenti, sincronizzazione Active Directory e<br />
ristrutturazione RBS&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	149<br />
ii.Calendari condivisi per i banchi e la strumentazione<br />
tecnica&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	152<br />
iii.Template Landi&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	155<br />
Approfondimento tecnico: Creazione tema 	Sharepoint&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	156<br />
iv.Realizzazione prototipo di project workspace: uno spazio collaborativo con wiki e blog&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	159<br />
(e)Product Data Management con il software CoCreate Model<br />
Manager: workflow e integrazione SAP&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	166<br />
i.Creazione di una nuova classe documentale&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	174<br />
ii.Creazione di nuovi materiali&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	176<br />
iii.Definizione workflow di approvazione disegni&#8230;&#8230;&#8230;&#8230;&#8230;.	178<br />
(f)Punti di forza e debolezza dei sistemi e ipotesi di sviluppo&#8230;&#8230;&#8230;	180<br />
i.PWA: i Key Users&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	181<br />
ii.PDM: integrazione SAP&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	183<br />
iii.Scarso utilizzo e mancanza di incentivi&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	184<br />
iv.Web Services con PDM&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	185<br />
v.Integrazione tra Sharepoint e SAP Portal&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.	186</p>
<p><strong> 8.Conclusioni: una nuova intranet di Gruppo&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	191<br />
</strong><br />
<em>Riferimenti Bibliografici&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	199<br />
Appendice A: Una Web Part con le news da Google, XML e XSL all&#8217;opera	202<br />
Appendice B: procedura per il deploy di un Application Template Sharepoint&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;	206<br />
Ringraziamenti&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..	209</em></p></blockquote>
<p>Mi piacerebbe se da questo lavoro nascessero <strong>spunti di riflessione,</strong> se qualcuno si facesse avanti per indicarmi <strong>esperienze simili</strong>, per scambiare <strong>pareri</strong> e <strong>conoscenze</strong>. Buona lettura ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2010/02/21/tecnologie-ict-per-lenterprise-2-0-tra-project-management-e-collaborazione/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Libri in Azienda: un esperimento 2.0 con Anobii</title>
		<link>http://www.diplod.it/2010/02/17/libri-in-azienda-un-esperimento-2-0-con-anobii/</link>
		<comments>http://www.diplod.it/2010/02/17/libri-in-azienda-un-esperimento-2-0-con-anobii/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:58:33 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[cultura]]></category>
		<category><![CDATA[enterprise20]]></category>
		<category><![CDATA[formazione]]></category>
		<category><![CDATA[intranet]]></category>
		<category><![CDATA[libri]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=991</guid>
		<description><![CDATA[[Foto Flickr] Questa dei libri in azienda l&#8217;ho sentita per la prima volta ad una conferenza su Sharepoint organizzata da Amicucci Formazione. A detta di molti, Sharepoint sembra essere il non plus ultra per creare una intranet 2.0 come si deve: ormai è pubblicizzato in ogni dove come miglior piattaforma, io ancora devo convircermi fino [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-996 aligncenter" title="book" src="http://www.diplod.it/wp-content/uploads/2010/02/book.jpg" alt="book" width="400" height="266" /><small>[<a href="http://www.flickr.com/photos/patrickgage/3738107746/">Foto Flickr</a>]</small></p>
<p>Questa dei libri in azienda l&#8217;ho sentita per la prima volta ad una conferenza su Sharepoint organizzata da <a title="Amicucci Formazione" href="http://www.amicucciformazione.com/" target="_blank">Amicucci Formazione</a>. A detta di molti, Sharepoint sembra essere <a title="Best Intranet made with Sharepoint" href="http://leedale.wordpress.com/2009/01/16/best-intranets-of-2009-show-dramatic-increase-in-the-use-of-sharepoint/" target="_blank">il non plus ultra per creare una intranet 2.0</a> come si deve: ormai è pubblicizzato in ogni dove come miglior piattaforma, io ancora devo convircermi fino in fondo: il <a title="sharepoint browser" href="http://blogs.technet.com/sharepoint_attack/archive/2008/04/22/browser-supportati-da-moss-2007-wss-3-0.aspx" target="_blank">basso supporto di browser diversi da IE</a> e la non validità del codice <a title="sharepoint and accessibility" href="http://planetmoss.blogspot.com/2007/09/sharepoint-accessibility.html" target="_blank">secondo i canoni di accessibilità W3C</a> mi fa pensare.. Vuoi per il buon marketing che sanno fare dalle parti di Microsoft, vuoi perchè effettivamente si tratta di una piattaforma duttile, questo cosino inizia a piacermi sul serio.</p>
<p>Così, tra le verie idee, ve n&#8217;era una che mi ha catturato più di altre: <strong>Libri in Azienda</strong>. Alla base di tutto c&#8217;è la volontà di diffondere proposte di lettura ai dipendenti; la novità è che il tutto viene realizzato secondo le logiche 2.0. Ai dipendenti è lasciata facoltà di commentare e recensire i libri proposti, loro stessi possono proporli. L&#8217;azienda può limitarsi a dare consigli di lettura oppure istituire una biblioteca vera e propria, in qualche stanzino vicino alla sala caffè: dove le persone possono recarsi per prendere in prestito i libri.</p>
<p>Ho pensato di mettere in pratica la faccenda (solo a livello virtuale), con ciò che avevo a disposizione: WSS e <a title="sharepoint designer" href="http://office.microsoft.com/it-it/sharepointdesigner/FX100487631040.aspx" target="_blank">Sharepoint Designer</a>. Ecco allora che che i titoli sono presentati attraverso la intranet, che l&#8217;azienda apre un profilo su <a title="Anobii" href="http://www.anobii.com/" target="_blank">Anobii</a> e tramite i feed RSS la libreria viene presentata su una <strong>xml web part</strong>.</p>
<p><span id="more-991"></span></p>
<p>Le strade possibili erano due:</p>
<ul>
<li>Utilizzare due liste Sharepoint, dove vengono catalogati libri e recensioni.</li>
<li>Utilizzare un social network esterno come Anobii, presentandone l&#8217;attività tramite i feed RSS</li>
</ul>
<p>Cosa è meglio? Beh.. non si tratta di business, semmai di formazione collaterale del personale. Non ci sono dati sensibili, non ci sono dati da salvare; la scelta è presto fatta: servizio esterno!</p>
<p>Tramite un tenplate XSL si può processare il feed di Anobii e il codice è piuttosto snello:<br />
<code><br />
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&lt;xsl:stylesheet xmlns:xsl="<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>"<br />
xmlns:atom="<a href="http://www.w3.org/2005/Atom">http://www.w3.org/2005/Atom</a>"<br />
xmlns:rdf="<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns</a>#"<br />
xmlns:foo="<a href="http://purl.org/rss/1.0/">http://purl.org/rss/1.0/</a>"<br />
xmlns:dc="<a href="http://purl.org/dc/elements/1.1/">http://purl.org/dc/elements/1.1/</a>"<br />
xmlns:sy="<a href="http://purl.org/rss/1.0/modules/syndication/">http://purl.org/rss/1.0/modules/syndication/</a>"<br />
xmlns:admin="<a href="http://webns.net/mvcb/">http://webns.net/mvcb/</a>"<br />
xmlns:content="<a href="http://purl.org/rss/1.0/modules/content/">http://purl.org/rss/1.0/modules/content/</a>"<br />
xmlns:wfw="<a href="http://wellformedweb.org/CommentAPI/">http://wellformedweb.org/CommentAPI/</a>"<br />
version="1.0" xmlns:ddwrt2="urn:frontpage:internal"&gt;<br />
&lt;xsl:template match="/rss" xmlns:atom="<a href="http://www.w3.org/2005/Atom">http://www.w3.org/2005/Atom</a>" xmlns:rdf="<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns</a>#" xmlns:foo="<a href="http://purl.org/rss/1.0/">http://purl.org/rss/1.0/</a>" xmlns:dc="<a href="http://purl.org/dc/elements/1.1/">http://purl.org/dc/elements/1.1/</a>" xmlns:sy="<a href="http://purl.org/rss/1.0/modules/syndication/">http://purl.org/rss/1.0/modules/syndication/</a>" xmlns:admin="<a href="http://webns.net/mvcb/">http://webns.net/mvcb/</a>" xmlns:content="<a href="http://purl.org/rss/1.0/modules/content/">http://purl.org/rss/1.0/modules/content/</a>" xmlns:wfw="<a href="http://wellformedweb.org/CommentAPI/">http://wellformedweb.org/CommentAPI/</a>" xmlns:ddwrt="<a href="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">http://schemas.microsoft.com/WebParts/v2/DataView/runtime</a>"&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;style type="text/css"&gt;<br />
img {border: none;}<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div&gt;<br />
&lt;ul style="list-style: none; margin: 0; padding:0"&gt;<br />
&lt;xsl:for-each select="channel/item"&gt;<br />
&lt;li style="border: 1px dotted #ccc; margin: 5px; padding: 5px; background: #f9f9f9;"&gt;<br />
&lt;xsl:element name="a"&gt;<br />
&lt;xsl:attribute name="href"&gt;<br />
&lt;xsl:value-of select="link"/&gt;<br />
&lt;/xsl:attribute&gt;<br />
&lt;xsl:value-of select="title"/&gt;<br />
&lt;/xsl:element&gt;<br />
&lt;br/&gt;<br />
&lt;small style="color: #666; text-align: right"&gt;&lt;xsl:value-of select="pubDate" /&gt;&lt;/small&gt;<br />
&lt;xsl:value-of select="content:encoded" disable-output-escaping="yes" /&gt;<br />
&lt;/li&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div id="footer" style="display: none;"&gt;<br />
&lt;xsl:value-of select="channel/copyright" /&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
</code></p>
<p>Dal punto di vista tecnico è tutto ok, adesso si tratta solo di seguire gli sviluppi e i risultati dell&#8217;esperimento! <strong>Qualcuno ha provato cose del genere?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2010/02/17/libri-in-azienda-un-esperimento-2-0-con-anobii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dataview che filtra per data gli elementi di una lista Sharepoint: che fatica!</title>
		<link>http://www.diplod.it/2009/12/28/dataview-che-filtra-per-data-gli-elementi-di-una-lista-sharepoint-che-fatica/</link>
		<comments>http://www.diplod.it/2009/12/28/dataview-che-filtra-per-data-gli-elementi-di-una-lista-sharepoint-che-fatica/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:35:24 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[calendario]]></category>
		<category><![CDATA[dataview]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[filtro]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[webpart]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=938</guid>
		<description><![CDATA[Il concetto è semplice: ho una lista calendario in Sharepoint e voglio ottenere una dataview in grado di filtrare gli avvenimenti occorsi in un dato intervallo di tempo. A cosa può servire? Immaginiamo che il calendario in questione serva per segnare le ferie degli utenti e qualcuno sia interessato a vedere quante persone sono in [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>Il concetto è semplice: ho una lista calendario in Sharepoint e voglio ottenere una dataview in grado di filtrare gli avvenimenti occorsi in un dato intervallo di tempo.</strong> A cosa può servire? Immaginiamo che il calendario in questione serva per segnare le ferie degli utenti e qualcuno sia interessato a vedere quante persone sono in ferie oggi, oppure dal 25 dicembre al 6 gennaio, per organizzare meglio il proprio lavoro..</p>
<p>Che ci sarà di così difficile? Nulla, se non il fatto che WSS è davvero poco user friendly quando si tratta di date.</p>
<p>Le prime cose da sapere riguardano la manipolazione delle date con XSL, bisogna <a title="Date con XSL" href="http://msdn.microsoft.com/en-us/library/ms256099.aspx" target="_blank">partire dalle basi</a> e poi da <a title="Date con XSL - esempi" href="http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/" target="_blank">qualche esempio</a>. Le date gestite su Sharepoint sono la <em>@EventDate</em> (data di inizio) e la <em>@EndDate</em> (data fine) e vengono restituite generalmente nel formato seguente: <em>2009-25-19T11:15:02Z</em>.</p>
<p>Ovviamente l&#8217;ambiente di lavoro è <strong>Sharepoint Designer</strong>. Per prima cosa, una volta creata la nuova <strong>dataview</strong> webpart, bisogna associargli un form (una DataForm WebPart) tramite il quale passare gli intervalli di selezione delle date. Pubblico subito il codice sorgente di questo form:</p>
<p><span id="more-938"></span></p>
<p><code>&lt;SCRIPT type="text/javascript" src="dhtmlgoodies_calendar/dhtmlgoodies_calendar.js?random=20060118"&gt;&lt;/script&gt;<br />
&lt;link type="text/css" rel="stylesheet" href="dhtmlgoodies_calendar/dhtmlgoodies_calendar.css?random=20051112" media="screen"&gt;&lt;/LINK&gt;<br />
&lt;table&gt;<br />
&lt;script language="JavaScript"&gt;<br />
function setStartTimeNow()<br />
{<br />
var d = new Date();<br />
var currYear = d.getFullYear();<br />
var currMonth = d.getMonth() + 1;<br />
var currDate = d.getDate();<br />
var currHour = d.getHours();<br />
var currMin = d.getMinutes();<br />
timeA = currYear + "" + currMonth + "" + currDate + "0001";<br />
timeB = currYear + "" + currMonth + "" + currDate + "2359";<br />
theInputA = document.getElementById('dataa');<br />
theInputA.value = timeA;<br />
theInputB = document.getElementById('datab');<br />
theInputB.value = timeB;<br />
}<br />
&lt;/script&gt;<br />
&lt;tr&gt;&lt;td&gt;Data e ora Inizio: &lt;/td&gt;&lt;td&gt;&lt;td&gt;&lt;input id="dataa" type="text" value="" readonly name="<strong>T1</strong>"&gt;&lt;input type="button" value="Seleziona data e ora.." onclick="displayCalendar(document.getElementById('dataa'),'<strong>yyyymmddhhii</strong>',this,true)"&gt;&lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;Data e ora Fine: &lt;/td&gt;&lt;td&gt;&lt;td&gt;&lt;input id="datab" type="text" value="" readonly name="<strong>T2</strong>"&gt;&lt;input type="button" value="Seleziona data e ora.." onclick="displayCalendar(document.getElementById('datab'),'<strong>yyyymmddhhii</strong>',this,true)"&gt;&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;br/&gt;<br />
&lt;input type="button" value="Voglio sapere gli assenti di oggi.." onclick="setStartTimeNow()"/&gt;<br />
&lt;input type="button" value="Mostra Risultati" onclick="javascript:_SFSUBMIT_"/&gt;</code></p>
<p>Per creare questo form ho utilizzato il comodissimo javascript <strong><a title="Date Picker Javascript" href="http://www.dhtmlgoodies.com/index.html?page=calendarScripts" target="_blank">dhtmlgoodies_calendar</a></strong>, che permette di avere il classico calendarietto tramite il quale selezionare la data. La particolarità è che il formato della data passato all&#8217;input element del form è del tipo <em>yyyymmddhhii</em>, ovvero vengono passate data e ora sottoforma di numero. Ad esempio, la data 25/12/2009 &#8211; 13:52, viene passata come 200912251352. In questo modo sarà possibile confrontarla con altre date tramite gli operatori logici (maggiore, minore, uguale..).<br />
T1 e T2 sono i parametri del form che verranno connessi alla web part XML.</p>
<p>Veniamo ora al dunque della web part che deve mostrare i dati, tramite Sharepoint Designer è necessario attivare due parametri: che chiameremo per comodità T1 e T2 (esattamente come gli elementi del form).</p>
<p><img class="size-full wp-image-939 alignnone" title="spdesigner" src="http://www.diplod.it/wp-content/uploads/2009/12/spdesigner.png" alt="spdesigner" width="680" height="400" /></p>
<p>Una volta fatto ciò, il grosso del lavoro sta tutto nell&#8217;impostare correttamente il filtro attraverso una espressione XSL. Prima il codice, poi i commenti:</p>
<p><code>&lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[ ( ddwrt:FormatDateTime(string(@EventDate) ,1033 ,'yyyyMMddHHmm') &amp;lt;= $T1 and ddwrt:FormatDateTime(string(@EndDate) ,1033 ,'yyyyMMddHHmm') &amp;gt;= $T1 )  or  ( ddwrt:FormatDateTime(string(@EventDate) ,1033 ,'yyyyMMddHHmm') &amp;lt;= $T2 and ddwrt:FormatDateTime(string(@EndDate) ,1033 ,'yyyyMMddHHmm') &amp;gt;= $T2 )  or  ( ddwrt:FormatDateTime(string(@EventDate) ,1033 ,'yyyyMMddHHmm') &amp;gt;= $T1 and ddwrt:FormatDateTime(string(@EndDate) ,1033 ,'yyyyMMddHHmm') &amp;lt;= $T2 ) ]"/&gt;</code></p>
<p>Cosa fa questa funzione? Posto che i parametri T1 e T2 identificano rispettivamente la data di inizio e la data di fine dell&#8217;intervallo di selezione (il periodo per cui vogliamo sapere chi era assente), il codice del filtro trasforma tutte le date nel formato numerico descritto sopra, e le confronta in base ai parametri T1 e T2, verificando se esistono eventi iniziati prima della data T1 e ancora in corso nell&#8217;intervallo [T1;T2], iniziati e conclusi all&#8217;interno dell&#8217;intervallo oppure iniziati in [T1;T2] e con conclusione dopo T2. In questo modo si ottiene la lista di tutti gli assenti all&#8217;interno di un determinato periodo, anche degli assenti per solo alcuni giorni e non per tutto l&#8217;intervallo stesso.</p>
<p><img class="alignnone size-full wp-image-947" title="webpart" src="http://www.diplod.it/wp-content/uploads/2009/12/maschera2.png" alt="webpart" width="600" height="336" /></p>
<p>Nota bene, in linea di massima anche questo filtro dovrebbe essere corretto:</p>
<p><code>&lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[ ( substring(translate(translate(translate(translate(@EventDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;lt;= $T1 and substring(translate(translate(translate(translate(@EndDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;gt;= $T1 )  or  ( substring(translate(translate(translate(translate(@EventDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;lt;= $T2 and substring(translate(translate(translate(translate(@EndDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;gt;= $T2 )  or  ( substring(translate(translate(translate(translate(@EventDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;gt;= $T1 and substring(translate(translate(translate(translate(@EndDate,'-',''),':',''),'T',''),'Z',''),1,12) &amp;lt;= $T2 ) ]"/&gt;</code></p>
<p>La funzione <em>translate</em> depura la stringa della data dai vari caratteri e lascia solo 14 numeri, la funzione <em>substring</em> leva gli ultimi due numeri (relativi ai secondi dell&#8217;ora della data). Ma così non funziona, per un qualche strano motivo Sharepoint anticipa di un&#8217;ora la data di tutti gli eventi, e ciò che concettualmente era infallibile, decade durante la prova effettiva, con buona pace per tutto il tempo trascorso sopra a ragionarci.. Argh!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/12/28/dataview-che-filtra-per-data-gli-elementi-di-una-lista-sharepoint-che-fatica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint: nascondere campi nei form tramite javascript</title>
		<link>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/</link>
		<comments>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 05:37:38 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[fields]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=908</guid>
		<description><![CDATA[Tutto inizia da questo interminabile quanto esaustivo articolo: utilizzare un javascript per nascondere i campi nel form di inserimento (NewForm.aspx) oppure dal form di visualizzazione (DispForm.aspx) di una lista Sharepoint.
L'utilità? Lasciare ai soli amministratori la possibilità di editing di determinati campi.
Ecco come utilizzare al meglio il javascript!]]></description>
				<content:encoded><![CDATA[<p>Tutto inizia da questo <a title="Sharepoint - hide form fields using javascript" href="http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/" target="_blank">interminabile quanto esaustivo articolo</a>: utilizzare un javascript per nascondere i campi nel form di inserimento (<em>NewForm.aspx</em>) oppure dal form di visualizzazione (<em>DispForm.aspx</em>) di una lista <strong>Sharepoint</strong>.</p>
<p>L&#8217;<strong>utilità</strong>? Lasciare ai soli amministratori la <strong>possibilità di editing di determinati campi</strong>.</p>
<p>Questo il codice di base proposto:</p>
<p><code>&lt;script language="javascript" type="text/javascript"&gt;<br />
_spBodyOnLoadFunctionNames.push("avvioControlli");<br />
function avvioControlli() {<br />
hideFields();<br />
}<br />
function findacontrol(FieldName) {<br />
   var arr = document.getElementsByTagName("!");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
}<br />
function hideFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="none";<br />
   control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="none";<br />
}<br />
&lt;/script&gt;</code></p>
<p><span id="more-908"></span></p>
<p>Dove si mette? Appena soto al <em>PlaceHolderMain</em>, nella pagina <em>NewForm.aspx</em> della relativa lista, tramite <strong>Sharepoint Designer</strong>: una figura vale più di mille parole. Dopo aver aperto l&#8217;albero della lista su Sharepoint Designer, è sufficiente editare il codice della pagina.</p>
<p><img class="aligncenter size-full wp-image-909" title="Sharepoint Designer" src="http://www.diplod.it/wp-content/uploads/2009/11/Cattura1.PNG" alt="Sharepoint Designer" width="896" height="409" /></p>
<p>L&#8217;approccio è perfetto e geniale, il javascript non fa altro che ricercare nel documento i commenti per poi oscurare tramite una proprietà CSS la visualizzazione. Ci sono però alcuni difetti su questo codice: piace a internet explorer e non agli altri browser.<br />
Ecco allora <strong>come modificarlo per renderlo compatibile</strong> con i vari Firefox, Chrome e compagnia bella:</p>
<p><code>&lt;script language="javascript" type="text/javascript"&gt;<br />
_spBodyOnLoadFunctionNames.push("avvioControlli");<br />
function avvioControlli() {<br />
hideFields();<br />
}<br />
function findacontrol(FieldName) {<br />
//se browser Internet Explorer cerco i commenti<br />
if (navigator.userAgent.indexOf("MSIE")!=-1) {<br />
   var arr = document.getElementsByTagName("!");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
   }<br />
//se browser diverso da Internet Explorer cerco i titoletti<br />
   else {<br />
   var arr = document.getElementsByTagName("H3");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
}<br />
}<br />
function hideFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="none";<br />
var control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="none";<br />
}<br />
&lt;/script&gt;</code></p>
<p>Se poi volessi piazzare da qualche parte un pulsantino per far riapparire questi campi, magari solo per determinati utenti, sarà sufficiente creare questa funzione:</p>
<p><code>function showFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="block";<br />
var control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="block";<br />
}</code></p>
<p><strong>Buona personalizzazione!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sharepoint: feed reader RSS con XML webpart</title>
		<link>http://www.diplod.it/2009/09/29/sharepoint-feed-reader-rss-con-xml-webpart/</link>
		<comments>http://www.diplod.it/2009/09/29/sharepoint-feed-reader-rss-con-xml-webpart/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 12:52:02 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[reader]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[web part]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=855</guid>
		<description><![CDATA[Creare una webpart Sharepoint che legga un feed RSS? Si può fare, basta utilizzare una XML Web Part, dalla gallery standard e scrivere qualche riga di codice XSL.
Sharepoint si conferma quindi un prodotto estremamente adattabile, anche se dal punto di vista dell'elaborazione dei feed mi sarei aspettato qualcosa di più. Va detto che in giro si trovano diversi strumenti per giocare coi feed in un sito sharepoint.]]></description>
				<content:encoded><![CDATA[<p><strong>Creare una webpart Sharepoint che legga un feed RSS?</strong> Si può fare, basta utilizzare una XML Web Part, dalla gallery standard e scrivere qualche riga di codice XSL.<br />
Sharepoint si conferma quindi un prodotto estremamente adattabile, anche se dal punto di vista dell&#8217;elaborazione dei feed mi sarei aspettato qualcosa di più. Va detto che in giro si trovano diversi strumenti per giocare coi feed in un sito sharepoint:</p>
<ul>
<li><a href="http://www.codeplex.com/FeedReader/">http://www.codeplex.com/FeedReader/</a> - Web part per aggrerare feed multipli, progetto ospitato su Codeplex</li>
<li><a href="http://sharepointrss.com/">http://sharepointrss.com/</a> - Una utility per generare una webpart in <em>dwp</em>, caricabile direttamente sul proprio sito sharepoint</li>
</ul>
<p> Se vogliamo però utilizzare le funzionalità standard, è possibile fare in casa con una semplice XML Web Part. Nel campo <em>XML Link</em> si riporta l&#8217;url del feed RSS, vedi figura sotto:</p>
<p><span id="more-855"></span></p>
<p><img class="size-full wp-image-856 alignnone" title="webpart" src="http://www.diplod.it/wp-content/uploads/2009/09/webpart.PNG" alt="webpart" width="243" height="414" /></p>
<p>Nell&#8217;<em>editor XSL</em>, inserire il codice seguente:</p>
<p><code>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;<br />
&lt;xsl:template match="/rss"&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
 &lt;link href="xsl.css" rel="stylesheet" type="text/css" /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
 &lt;div id="logo" style="border-bottom: 1px solid #ccc; margin-bottom: 5px; font-size: 1.2em; font-weight: bold;"&gt;<br />
  &lt;xsl:element name="a"&gt;<br />
   &lt;xsl:attribute name="href"&gt;<br />
    &lt;xsl:value-of select="channel/link" /&gt;<br />
   &lt;/xsl:attribute&gt;<br />
   &lt;xsl:value-of select="channel/title" /&gt;<br />
  &lt;/xsl:element&gt;<br />
 &lt;/div&gt;<br />
 &lt;div&gt;<br />
  &lt;ul style="list-style: none; margin: 0; padding:0"&gt;<br />
   &lt;xsl:for-each select="channel/item"&gt;<br />
     &lt;li&gt;<br />
      &lt;xsl:element name="a"&gt;<br />
       &lt;xsl:attribute name="href"&gt;<br />
        &lt;xsl:value-of select="link"/&gt;<br />
       &lt;/xsl:attribute&gt;<br />
       &lt;xsl:value-of select="title"/&gt;<br />
      &lt;/xsl:element&gt;<br />
      &lt;small style="color: #ccc; text-align: right"&gt;&lt;xsl:value-of select="pubDate" /&gt;&lt;/small&gt;<br />
     &lt;/li&gt;<br />
  &lt;/xsl:for-each&gt;<br />
  &lt;/ul&gt;<br />
 &lt;/div&gt;<br />
 &lt;div id="footer" style="display: none;"&gt;<br />
  &lt;xsl:value-of select="channel/copyright" /&gt;<br />
 &lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;</code></p>
<p>Apparirà così una web part che riporta i titoli e la data di pubblicazione degli elementi del feed. Se volessimo far apparire anche il corpo degli elementi (ad esempio il testo degli articoli di un feed), si può utilizzare il seguente codice XSL, all&#8217;interno del ciclo <em>&lt;xsl:for-each select=&#8221;channel/item&#8221;&gt;</em> :</p>
<p><code>&lt;xsl:value-of disable-output-escaping="yes" select="description" /&gt;</code></p>
<p>Se dobbiamo leggere un feed da una lista sharepoint c&#8217;è un passaggio fondamentale per far in modo che tutto funzioni: è necessario attivare l&#8217;accesso anonimo sulla lista che produce il feed. Nei <em>Settings</em> della lista, sotto a <em>Permissions and Management</em> -&gt; <em>Permissions for this list</em>, nel menu <em>Settings</em> -&gt; <em>Anonymous Access</em>, abilitare in visualizzazione l&#8217;accesso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/09/29/sharepoint-feed-reader-rss-con-xml-webpart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint Designer: inviare mail a più utenti con un workflow</title>
		<link>http://www.diplod.it/2009/08/13/sharepoint-designer-inviare-mail-a-piu-utenti-con-un-workflow/</link>
		<comments>http://www.diplod.it/2009/08/13/sharepoint-designer-inviare-mail-a-piu-utenti-con-un-workflow/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 16:27:05 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[notifiche]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[sharepoint designer]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=779</guid>
		<description><![CDATA[Uno dei tanti limiti di Sharepoint Designer è quello di non poter creare un workflow in grado di inviare mail a diversi utenti prendendoli da un campo di tipo person picker quando questo è impostato per accettare più di un solo utente. Se infatti si permette di poter inserire diversi utenti o gruppi di utenti nel person picker, al momento della creazione del workflow non sarà visibile tale campo tra quelli selezionabili come destinatari della mail. Ecco come fare per risolvere il problema!]]></description>
				<content:encoded><![CDATA[<p>In questo articolo una dritta estiva per aggirare un rognoso problemino di <strong>Sharepoint Designer</strong>, da qualche tempo rilasciato gratuitamente da Microsoft, tool essenziale per personalizzare <strong>Sharepoint</strong>, la famosa piattaforma di condivisone made in Redmond.</p>
<p>Uno dei <span style="text-decoration: line-through;">maggiori</span> tanti limiti di Sharepoint Designer è quello di non poter creare un <strong>workflow</strong> in grado di <strong>inviare mail a diversi utenti</strong> prendendoli da un campo di tipo <em>person picker,</em> quando questo è impostato per accettare più di un solo utente. Se infatti si permette l&#8217;inserimento multiplo, al momento della creazione del workflow non sarà visibile tale campo tra quelli selezionabili come destinatari della mail.</p>
<p><img class="alignnone size-full wp-image-780" title="avviso" src="http://www.diplod.it/wp-content/uploads/2009/08/avviso.PNG" alt="avviso" width="349" height="303" /></p>
<p>Il mio obiettivo è dare la possibilità all&#8217;utente, in una lista di tipo calendario, di invitare diverse persone ad un evento e far partire un workflow che avvisi via mail queste persone al momento del salvataggio dell&#8217;appuntamento. Ovviamente gli invitati posso essere più di uno, nonchè un gruppo di utenti.<br />
Ho trovato una soluzione, un workaround, che può sempre tornare utile condividere: <strong>semmai qualcuno avesse idee migliori</strong>..<br />
Questa soluzione non prevede l&#8217;utilizzo di Visual Studio, che è <a title="Soluzione con Visual Studio" href="http://rapidapplicationdevelopment.blogspot.com/2007/04/multi-value-columns-solution-2-custom.html" target="_blank">decisamente più fastidioso</a>.</p>
<p><span id="more-779"></span></p>
<p>Innanzi tutto bisogna creare nella lista in questione un <strong>campo di appoggio</strong>, che possiamo chiamare come ci pare, di tipo <em>single line text</em> e non obbligatorio. Utilizzeremo questo campo per salvarci dentro i valori presenti nel campo di tipo <em>person picker</em>.<br />
Una volta fatto ciò dobbiamo oscurare questo campo dal modulo di inserimento di un nuovo appuntamento.<br />
Per far ciò ci sono diverse strade:</p>
<ol>
<li>La prima prevede il solo intervento sulle configurazioni della lista.<br />
Andiamo in <em>List Settings -&gt; Advanced Settings</em> e mettiamo <em>yes</em> nell&#8217;opzione <em>Allow management of content types?<br />
</em>Fatto ciò basta tornare nei <em>List Settings</em>, dove sarà presente una sezione riguardante i <em>Content Types<br />
</em><img class="alignnone size-full wp-image-782" title="content" src="http://www.diplod.it/wp-content/uploads/2009/08/content.PNG" alt="content" width="456" height="156" /><br />
Cliccando sopra si aprirà la lista dei <em>content type</em>, dove è possibile decidere di rendere <em>hidden</em> l&#8217;elemento Appoggio appena creato</li>
<li>L&#8217;altra strada prevede l&#8217;intervento via Sharepoint Designer, utilizzando un javascript che vada ad oscurare il campo. Nella pagina <em>NewForm.aspx</em> della lista in questione, dopo il pezzo di codice &lt;asp:Content ContentPlaceHolderId=&#8221;PlaceHolderMain&#8221; runat=&#8221;server&#8221;&gt;, si può inserire un javascript di questo tipo:<br />
<code><br />
&lt;script language="javascript" type="text/javascript"&gt;<br />
function Oscura() { <br />
 document.forms[0].NameDelCampoInputAppoggio.disabled=true;<br />
 }<br />
_spBodyOnLoadFunctionNames.push("Oscura");<br />
&lt;/script&gt;</code><br />
Dove al posto di &#8220;NameDelCampoInputAppoggio&#8221; mettiamo la stringa dell&#8217;attributo <em>name</em> dell&#8217;input relativo ad Appoggio, ricavabile dall&#8217;HTML del form visualizzato da un browser.</li>
</ol>
<p>Fatto questo siamo pronti per impostare il <strong>workflow</strong> da Sharepoint Designer.<br />
I passi sono semplici: sulla lista in questione, all&#8217;atto di creazione di un nuovo item, al primo passo impostiamo nel campo Appoggio il valore del campo Avviso (quello del <em>person picker</em> con la possibilità di scegliere più utenti), se quest&#8217;utlimo contiene valori.</p>
<p><img class="alignnone size-full wp-image-783" title="passaggio1" src="http://www.diplod.it/wp-content/uploads/2009/08/passaggio1.PNG" alt="passaggio1" width="732" height="542" /></p>
<p>Al passo 2 inviamo la mail utilizzando come destinatario il campo Appoggio.</p>
<p><img class="alignnone size-full wp-image-786" title="passaggio2" src="http://www.diplod.it/wp-content/uploads/2009/08/passaggio21.PNG" alt="passaggio2" width="734" height="372" /></p>
<p><strong>Funziona!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/08/13/sharepoint-designer-inviare-mail-a-piu-utenti-con-un-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
