<?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; jquery</title>
	<atom:link href="http://www.diplod.it/tag/jquery/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>Ajax con jquery: la chiamata perfetta. Locale e cross domain, SEO friendly.</title>
		<link>http://www.diplod.it/2014/07/18/ajax-con-jquery-la-chiamata-perfetta-locale-e-cross-domain-seo-friendly/</link>
		<comments>http://www.diplod.it/2014/07/18/ajax-con-jquery-la-chiamata-perfetta-locale-e-cross-domain-seo-friendly/#comments</comments>
		<pubDate>Fri, 18 Jul 2014 13:57:22 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[chiamata]]></category>
		<category><![CDATA[cross domain]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[jsonp]]></category>
		<category><![CDATA[perfetta]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1452</guid>
		<description><![CDATA[I primi esempi di codice per fare una chiamata ajax erano brutti. Punto. C'era l'inevitabile if per gestire i diversi browser e qualche oggetto in più da maneggiare. Ora, grazie a jquery e a browser più umani, si riesce a gestire una chiamata ajax molto più agevolmente. Restano però alcuni aspetti critici: tra cui le chiamate cross domain e gli url SEO friendly.
Esiste quindi la chiamata perfetta? Si, ma come tutte le cose perfette, è sicuramente perfettibile.]]></description>
				<content:encoded><![CDATA[<p>I primi esempi di codice per fare una chiamata <strong>ajax</strong> erano brutti. Punto. C&#8217;era l&#8217;inevitabile if per gestire i diversi browser e qualche oggetto in più da maneggiare. Ora, grazie a <strong>jquery</strong> e a browser più umani, si riesce a gestire una chiamata ajax molto più agevolmente. Restano però alcuni aspetti critici: tra cui le chiamate <strong>cross domain</strong> e gli url <strong>SEO friendly</strong>.</p>
<p>Esiste quindi la <strong>chiamata perfetta</strong>? Si, ma come tutte le cose perfette, è sicuramente perfettibile.</p>
<p>Nell&#8217;esempio che segue c&#8217;è una pagina con due pulsanti: il primo esegue una chiamata ajax per caricare una pagina locale, il secondo esegue una chiamata cross-domain (nello specifico a Facebook) attraverso JSONP.</p>
<p>Sono arrivato all&#8217;esempio finale partendo da questi tre utilissimi spunti:</p>
<ul>
<li><a href="http://jquery-howto.blogspot.it/2013/09/jquery-cross-domain-ajax-request.html" target="_blank">4 jQuery cross domain ajax request methods</a></li>
<li><a href="http://kyleschaeffer.com/development/the-perfect-jquery-ajax-request/" target="_blank">The perfect jquery ajax request</a></li>
<li><a href="http://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate" target="_blank">Create crawlable, link-friendly ajax websites using pushState()</a></li>
</ul>
<p>Ed ecco il <a title="ajax chiamata perfetta" href="http://lab.diplod.it/ajaxcall/" target="_blank"><strong>risultato finale in funzione</strong></a>.</p>
<p><span id="more-1452"></span></p>
<p>Il codice html della pagina è il seguente:</p>
<p><code>&lt;div id="container"&gt;<br />
&lt;h1&gt;Esempi Chiamate Ajax con jQuery&lt;/h1&gt;<br />
&lt;a class="button" id="call" href="test.html" &gt;Esegui chiamata normale&lt;/a&gt;<br />
&lt;a class="button" id="call-cross" href="facebook.html"&gt;Esegui chiamata Cross Domain&lt;/a&gt;<br />
&lt;div id="ajax-panel"&gt;Questo div contiente il risultato della chiamata&lt;/div&gt;<br />
&lt;/div&gt;</code></p>
<p>Il codice javascript della chiamata locale è il seguente: di fatto viene usato il metodo $.ajax() per fare la chiamata. Nel <em>beforeSend</em> &#8211; codice eseguito prima di fare la chiamata vera e propria &#8211; viene eseguita una funzione che carica una immagine di cortesia; nel <em>success</em> &#8211; codice eseguito in caso di chiamata con esito positivo &#8211; viene elaborata la risposta, cambiando il contenuto di un div della pagina; nell&#8217;<em>error</em> &#8211; codice eseguito in caso di errore &#8211; viene mostrato un messaggio all&#8217;interno dello stesso div.</p>
<p><code>$("#call").click(function (e) {<br />
<strong>//SEO friendly</strong><br />
url = $(this).attr('href');<br />
<strong>//aggiorno l'indirizzo sulla barra del browser ed evito che si apra il link</strong><br />
history.pushState({}, '', url);<br />
e.preventDefault();<br />
<strong>//chiamata ajax</strong><br />
$.ajax({<br />
url: 'test.html',<br />
beforeSend: function () {<br />
<strong>// qui mettiamo un'immagine di caricamento: appare solo se dobbiamo caricare qualcosa di pesante</strong><br />
$('#ajax-panel').html('&lt;div class="loading"&gt;&lt;img src="http://lab.diplod.it/ajaxcall/images/ajax-loader.gif" alt="Loading..." /&gt;&lt;/div&gt;');<br />
},<br />
success: function (data) {<br />
<strong>// richiesta riuscita</strong><br />
$('#ajax-panel').empty();<br />
$('#ajax-panel').html(data);<br />
},<br />
error: function () {<br />
<strong>// richiesta fallita</strong><br />
$('#ajax-panel').html('&lt;p class="error"&gt;&lt;strong&gt;Oops!&lt;/strong&gt; Qualcosa &amp;egrave; andato storto.&lt;/p&gt;');<br />
}<br />
});<br />
</code><br />
Il codice della chiamata <strong>cross domain</strong> differisce di poco da quello precedente, se non per l&#8217;utilizzo di JSON<strong>P</strong> (attenzione: non JSON) come dataType.</p>
<p><code>$('#call-cross').click(function (e) {<br />
<strong>//SEO friendly</strong><br />
url = $(this).attr('href');<br />
<strong>//aggiorno l'indirizzo sulla barra del browser ed evito che si apra il link</strong><br />
history.pushState({}, '', url);<br />
e.preventDefault();<br />
<strong>//chiamata ajax</strong><br />
$.ajax({<br />
type: "POST",<br />
url: "https://graph.facebook.com/emergency.ong",<br />
dataType: "jsonp",<br />
beforeSend: function () {<br />
<strong>// qui mettiamo un'immagine di caricamento: appare solo se dobbiamo caricare qualcosa di pesante</strong><br />
console.log('loading..'); //scrivo qualcosa in console: si può omettere<br />
$('#ajax-panel').html('&lt;div class="loading"&gt;&lt;img src="http://lab.diplod.it/ajaxcall/images/ajax-loader.gif" alt="Loading..." /&gt;&lt;/div&gt;');<br />
},<br />
success: function (data) {<br />
<strong>// richiesta riuscita</strong><br />
console.log(data); //scrivo il risultato in console: si può omettere<br />
var obj = $.parseJSON(JSON.stringify(data));<br />
$('#ajax-panel').html('&lt;p&gt;Tutto ok&lt;/p&gt;&lt;p&gt;Descrizione dell\'oggetto JSON restituito: ' + obj.about + '&lt;/p&gt;');<br />
},<br />
error: function () {<br />
<strong>// richiesta fallita</strong><br />
$('#ajax-panel').html('&lt;p class="error"&gt;&lt;strong&gt;Oops!&lt;/strong&gt; Qualcosa &amp;egrave; andato storto.&lt;/p&gt;');<br />
}<br />
});<br />
});</code></p>
<p><strong>Vuoi provare l&#8217;esempio completo in azione e lavorarci su?</strong> <a title="chiamata ajax perfetta" href="http://www.diplod.it/wp-content/uploads/2014/07/AjaxCall.zip">Scarica tutti i sorgenti in uno zip</a> oppure <a title="chiamata ajax perfetta" href="http://lab.diplod.it/ajaxcall/" target="_blank">guardalo direttamente in funzione</a>.<a href="http://www.diplod.it/wp-content/uploads/2014/07/AjaxCall.zip"><br />
</a></p>
<p>Commenti e suggerimenti sono ben accetti. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2014/07/18/ajax-con-jquery-la-chiamata-perfetta-locale-e-cross-domain-seo-friendly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flexslider applicato coi Rio: uno slider jquery davvero flessibile.</title>
		<link>http://www.diplod.it/2012/10/01/flexslider-applicato-coi-rio-uno-slider-jquery-davvero-flessibile/</link>
		<comments>http://www.diplod.it/2012/10/01/flexslider-applicato-coi-rio-uno-slider-jquery-davvero-flessibile/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 14:07:32 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[flexslider]]></category>
		<category><![CDATA[i rio]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rio]]></category>
		<category><![CDATA[slider]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1359</guid>
		<description><![CDATA[Di slider e slideshow ce ne sono una infinità. Col tempo ne ho provati e utilizzati diversi, ma come flexslider ce ne sono pochi. Credo di aver finalmente trovato ciò che cercavo: flessibile, altamente configurabile ed adattabile, semplice, e soprattutto funzionante anche con dispositivi touch (iphone, ipad, android, ecc..). Si tratta di una creazione di [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Di <strong>slider</strong> e <strong>slideshow </strong>ce ne sono una infinità. Col tempo ne ho provati e <a title="Slideshow wordpress" href="http://www.diplod.it/2009/09/06/wordpress-creare-uno-sliseshow-con-gli-articoli-in-rilievo-stile-magazine/" target="_self">utilizzati </a>diversi, ma come <strong><a title="Flexslider" href="http://www.woothemes.com/flexslider/" target="_blank">flexslider</a> </strong>ce ne sono pochi. Credo di aver finalmente trovato ciò che cercavo: flessibile, altamente configurabile ed adattabile, semplice, e soprattutto funzionante anche con dispositivi <em>touch </em>(iphone, ipad, android, ecc..). Si tratta di una creazione di <a title="Woothemes" href="http://www.woothemes.com" target="_blank">Woothemes</a>, rilasciata gratuitamente e utilizzabile da chiunque. Per vederlo subito all&#8217;opera, nel modo in cui l&#8217;ho impiegato, basta aprire il sito dei <a title="i Rio" href="http://www.rioofficial.it" target="_self">Rio</a> o di <a title="Bluebeet recording studio" href="http://www.bluebeet.it" target="_blank">Bluebeet Studio</a>. Questo per dire che ho aggiornato il portfolio, ogni tanto è bene farlo. ;)</p>
<p>Per capire come utilizzare lo slideshow di immagini si può dare un&#8217;occhiata alle demo sul sito ufficiale, ma credo che il meglio di questo slider sia nelle possibilità di utilizzo con pezzi di codice formattato (con testo e immagini), per poter creare fluide e accattivanti presentazioni di news o quant&#8217;altro.</p>
<p>Andiamo subito al sodo e vediamo come si può utilizzare all&#8217;interno di un tema <strong>wordpress</strong> per presentare articoli o elementi di altro tipo.</p>
<p><span id="more-1359"></span></p>
<p>Ci sono tre cose fondamentali: il <strong>codice javascript</strong>, il <strong>codice html</strong> e il <strong>codice CSS</strong>. Partiamo con javascript; all&#8217;interno del tag &lt;head&gt; dovremo mettere questo pezzo di codice:</p>
<p><code> &lt;script type="text/javascript"&gt;<br />
$(window).load(function() {<br />
$('#flexslider').flexslider({<br />
animation: "slide",<br />
controlsContainer: "#flex-container",<br />
prevText: "Prec",<br />
nextText: "Succ"    });<br />
});<br />
</code></p>
<p>Mentre nel codice <strong>php </strong>che presenta gli articoli, ad esempio nel file <em>home.php</em>, dovremo utilizzare questo:</p>
<p><code><br />
&lt;?php query_posts('showposts=6&amp;cat=3'); //prendo gli ultimi 6 articoli delle top news ?&gt;<br />
&lt;?php if (have_posts()) : ?&gt;<br />
&lt;div&gt;<br />
&lt;div id="flex-container"&gt;<br />
&lt;div id="flexslider"&gt;<br />
&lt;ul&gt;<br />
&lt;?php while (have_posts()) : the_post(); ?&gt;<br />
&lt;li&gt;<br />
&lt;h1&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h1&gt;<br />
&lt;div&gt;<br />
&lt;?php if ( has_post_thumbnail()) : ?&gt;<br />
&lt;?php the_post_thumbnail('medium', array('class' =&gt; 'img-news')); ?&gt;<br />
&lt;?php endif; ?&gt;<br />
&lt;?php the_excerpt(); ?&gt;<br />
&lt;a href="&lt;?php the_permalink() ?&gt;" title="&lt;?php the_title(); ?&gt;"&gt;Leggi tutto...&lt;/a&gt;<br />
&lt;div&gt;&lt;div data-href="&lt;?php the_permalink() ?&gt;" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false" data-font="lucida grande"&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/li&gt;<br />
&lt;?php endwhile; ?&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;?php endif; ?&gt;<br />
&lt;?php // Reset Query<br />
wp_reset_query(); ?&gt;<br />
</code></p>
<p>Il mestiere di questo pezzo di codice non è altro che recuperare gli ultimi 6 articoli di una determinata categoria (con ID=3), tramite la function <em>query_posts()</em>; per poi presentare ogni articolo con la sua immagine in evidenza e il suo riassunto. Al di là delle classi css attribuite agli elementi, che sono comunque poco rilevanti per il nostro esempio, ciò che mi preme far notare è che tutti questi elementi stanno racchiusi in un elemento di lista <em>&lt;li&gt;</em>, che sarà uno dei 6 slide che ruoteranno.</p>
<p>Veniamo ora al bello: il<strong> foglio di stile</strong>. Di seguito il mio CSS riadattato partendo da quello di default.<br />
<code><br />
/* jQuery FlexSlider v2.0 */<br />
/* Browser Resets */<br />
.flex-container a:active,<br />
.flexslider a:active,<br />
.flex-container a:focus,<br />
.flexslider a:focus  {outline: none;}<br />
.slides,<br />
.flex-control-nav,<br />
.flex-direction-nav {margin: 0; padding: 0; list-style: none;}<br />
/* FlexSlider Necessary Styles<br />
*********************************/<br />
.flexslider {margin: 0; padding: 0;}<br />
.flexslider .slides &gt; li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */<br />
/*.flexslider .slides img {width: 100%; display: block;} */<br />
.flex-pauseplay span {text-transform: capitalize;}<br />
/* Clearfix for the .slides element */<br />
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}<br />
html[xmlns] .slides {display: block;}<br />
* html .slides {height: 1%;}<br />
/* No JavaScript Fallback */<br />
/* If you are not using another script, such as Modernizr, make sure you<br />
* include js that eliminates this class on page load */<br />
.no-js .slides &gt; li:first-child {display: block;}<br />
/* FlexSlider Default Theme<br />
*********************************/<br />
.flex-container { position: relative;}<br />
.flexslider {margin: 0 0 5px 0; position: relative;}<br />
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}<br />
.loading .flex-viewport {max-height: 300px;}<br />
.flexslider .slides {zoom: 1;}<br />
.carousel li {margin-right: 5px}<br />
/* Direction Nav */<br />
.flex-direction-nav { display: block; position: absolute; top: 50%; background: transparent; width: 100%;<br />
opacity: 0.2;<br />
transition:opacity 1s;<br />
-moz-transition:opacity 1s; /* Firefox 4 */<br />
-webkit-transition:opacity 1s; /* Safari and Chrome */<br />
-o-transition:opacity 1s; /* Opera */ }<br />
.flex-container .flex-direction-nav:hover { opacity: 1; }<br />
.flex-direction-nav a {width: 30px; height: 30px; margin: -30px 0 0; display: block; background: url(../images/bg_direction_nav.png) no-repeat 0 0; position: absolute; cursor: pointer; text-indent: -9999px; }<br />
.flex-direction-nav .next {background-position: 100% 0; right: 5px;}<br />
.flex-direction-nav .prev {left: 5px;}<br />
/* Control Nav */<br />
.flex-control-nav {width: 100%; position: relative; bottom: 0px; text-align: center;}<br />
.flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;}<br />
.flex-control-nav li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);}<br />
.flex-control-nav li a:hover { background: #333; background: rgba(0,0,0,0.7); }<br />
.flex-control-nav li a.active { background: #000; background: rgba(0,0,0,0.9); cursor: default; }<br />
.flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);}<br />
.flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); }<br />
.flex-control-paging li a.active { background: #000; background: rgba(0,0,0,0.9); cursor: default; }<br />
.flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;}<br />
.flex-control-thumbs li {width: 25%; float: left; margin: 0;}<br />
.flex-control-thumbs img {width: 100%; display: block; opacity: .7; cursor: pointer;}<br />
.flex-control-thumbs img:hover {opacity: 1;}<br />
.flex-control-thumbs .active {opacity: 1; cursor: default;}<br />
</code></p>
<p>Con un pizzico di CSS3 è possibile fare in modo che le frecce di navigazione appaiano evidenti solo al passaggio del mouse, mentre rimangano in trasparenza mentre scorrono le notizie. Il risultato finale si può <a title="Rio" href="http://www.rioofficial.it/" target="_blank">vedere qui</a>.</p>
<p>Buono slideshow a tutti. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2012/10/01/flexslider-applicato-coi-rio-uno-slider-jquery-davvero-flessibile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alla NASA utilizzano JQuery</title>
		<link>http://www.diplod.it/2012/08/07/alla-nasa-utilizzano-jquery/</link>
		<comments>http://www.diplod.it/2012/08/07/alla-nasa-utilizzano-jquery/#comments</comments>
		<pubDate>Tue, 07 Aug 2012 08:18:19 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[curiosity]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[marte]]></category>
		<category><![CDATA[nasa]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1339</guid>
		<description><![CDATA[Ma qualcuno di voi si è accorto di come hanno realizzato l&#8217;animazione che illustra l&#8217;atterraggio del Curiosity su Marte? Se date una sbirciatina al codice troverete un sacco di &#8220;cose interessanti&#8221;: la prima operazione da fare è muovere la rotellina del mouse, e noterete che attraverso lo scrolling vengono gestite le informazioni che appaiono in [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.diplod.it/wp-content/uploads/2012/08/mars.png"><img class="aligncenter size-full wp-image-1341" title="mars" src="http://www.diplod.it/wp-content/uploads/2012/08/mars.png" alt="" width="460" height="250" /></a></p>
<p>Ma qualcuno di voi si è accorto di come hanno realizzato l&#8217;animazione che illustra l&#8217;<a title="How do I land on Mars?" href="http://mars.jpl.nasa.gov/msl/multimedia/interactives/edlcuriosity/index-2.html" target="_blank"><strong>atterraggio del Curiosity su Marte</strong></a>?</p>
<p>Se date una sbirciatina al codice troverete un sacco di &#8220;cose interessanti&#8221;: la prima operazione da fare è muovere la rotellina del mouse, e noterete che attraverso lo scrolling vengono gestite le informazioni che appaiono in alto a destra. La conferma, semmai ce ne fosse bisogno, che si può fare senza flash.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2012/08/07/alla-nasa-utilizzano-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 e jQuery: finalmente un player audio video coi fiocchi</title>
		<link>http://www.diplod.it/2011/04/08/html5-e-jquery-finalmente-un-player-audio-video-coi-fiocchi/</link>
		<comments>http://www.diplod.it/2011/04/08/html5-e-jquery-finalmente-un-player-audio-video-coi-fiocchi/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 15:58:09 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1209</guid>
		<description><![CDATA[Si chiama Projekktor, ed è davvero ciò che cercavo da tempo. Un player senza fronzoli, che funzioni su tutti i browser. Senza flash, che quegli aggeggi piccoli e cool così come gli attrezzi grossi e prestanti non supportano. jQuery certo, ma anche il pulitissimo HTML5.]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.diplod.it/wp-content/uploads/2011/04/thisisprojekktor.png"><img class="size-medium wp-image-1210 aligncenter" title="thisisprojekktor" src="http://www.diplod.it/wp-content/uploads/2011/04/thisisprojekktor-300x208.png" alt="" width="300" height="208" /></a></p>
<p>Si chiama <strong><a title="projekktor" href="http://www.projekktor.com" target="_blank">Projekktor</a></strong>, ed è davvero ciò che cercavo da tempo. Un player senza fronzoli, che funzioni su tutti i browser. Senza flash, che quegli <a title="iphone" href="http://www.apple.com/it/iphone/" target="_blank">aggeggi piccoli e cool</a> così come gli <a title="flash player 64 bit" href="http://www.adobe.com/it/support/flashplayer/ts/documents/6b3af6c9.htm" target="_blank">attrezzi grossi e prestanti</a> non supportano. jQuery certo, ma anche il pulitissimo HTML5.</p>
<p>Adoro questo pezzo di codice:<br />
<code><br />
&lt;video id="player_a" poster="intro.png" title="this is Projekktor" width="640" height="385" controls&gt;<br />
&lt;source src="intro.ogv" type="video/ogg" /&gt;<br />
&lt;source src="intro.mp4" type="video/mp4" /&gt;<br />
&lt;source src="intro.webm" type="video/mp4" /&gt;<br />
&lt;/video&gt;<br />
&lt;script type="text/javascript"&gt;$(document).ready(function() {projekktor('#player_a'); // instantiation<br />
});&lt;/script&gt;<br />
</code><br />
Chiaro e leggibile, grazie al nuovo tag <a title="HTML video tag" href="http://www.w3schools.com/html5/tag_video.asp" target="_blank">&lt;video&gt; HTML5</a> ormai supportato da diversi browser. In sostanza viene specificata nell&#8217;attributo poster una immagine di partenza da far visualizzare al caricamento dell&#8217;oggetto e diverse sorgenti video, questo per garantire una maggiore compatibilità sui diversi sistemi.</p>
<p>Il plugin jQuery si occupa del resto: <a href="http://www.projekktor.com/docs/playlists" target="_blank">playlist</a>, gestione dei <a href="http://www.projekktor.com/docs/theming">temi grafici</a>.. ci sono pure le <a href="http://www.projekktor.com/docs/api">API</a> disponibili.</p>
<p>Perfetto insomma!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2011/04/08/html5-e-jquery-finalmente-un-player-audio-video-coi-fiocchi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Un menu duttile, con un po&#8217; di javascript e css</title>
		<link>http://www.diplod.it/2009/06/02/un-menu-duttile-con-un-po-di-javascript-e-css/</link>
		<comments>http://www.diplod.it/2009/06/02/un-menu-duttile-con-un-po-di-javascript-e-css/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 22:43:45 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[segnalazione]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=771</guid>
		<description><![CDATA[Arrivano le feste e finalmente c'è tempo per dedicarsi a ciò che più piace. JQuery e un pizzico di CSS sono sufficienti per rendere accattivante un menù, creando tendine a cascata sul mouse-hover o affascinanti barre di navigazione, perfette per i menù in stile magazine. Tutta la faccenda è frutto di un comodo plugin di jquery: superfish.]]></description>
				<content:encoded><![CDATA[<p>Arrivano le feste e finalmente c&#8217;è tempo per dedicarsi a ciò che più piace. <a title="JQuery" href="http://jquery.com/" target="_blank"><strong>JQuery</strong></a> e un pizzico di <strong>CSS</strong> sono sufficienti per rendere accattivante un menù, creando <strong>tendine a cascata</strong> sul mouse-hover o affascinanti <strong>barre di navigazione</strong>, perfette per i menù in stile magazine. Tutta la faccenda è frutto di un comodo plugin di jquery: <a title="Superfish" href="http://users.tpg.com.au/j_birch/plugins/superfish/" target="_blank">superfish</a>.</p>
<p>Per vederlo subito all&#8217;opera basta dare un&#8217;occhiata agli <a title="Demo Superfish" href="http://users.tpg.com.au/j_birch/plugins/superfish/#sample1" target="_blank">esempi che ci sono sul sito ufficiale</a>.</p>
<p>Questo plugin torna veramente utile se accoppiato ai classici menù per wordpress, dove tipicamente la sintassi html è la seguente:</p>
<p><code>&lt;ul <strong>class="sf-menu"</strong>&gt;<br />
&lt;li class="page_item"&gt;&lt;a href="#" title="Home"&gt;Home&lt;/a&gt;&lt;/li&gt;<br />
&lt;li class="page_item page-item-1"&gt;&lt;a href="#" title="About"&gt;About&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li class="page_item page-item-2"&gt;&lt;a href="#" title="Sottopagina Uno"&gt;Sottopagina Uno&lt;/a&gt;&lt;/li&gt;<br />
&lt;li class="page_item page-item-3"&gt;&lt;a href="#" title="Sottopagina Due"&gt;Sottopagina Due&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li class="page_item page-item-4"&gt;&lt;a href="#" title="Contatti"&gt;Contatti&lt;/a&gt;<br />
&lt;/ul&gt;</code></p>
<p>Questa sintassi viene generata dalla funzione <a title="wordpress codex" href="http://codex.wordpress.org/Template_Tags/wp_list_pages" target="_blank">wp_list_pages()</a>, indicando come argomento depth=2. E&#8217; sufficiente assegnare la classe &#8220;sf-menu&#8221; alla lista (&lt;ul&gt;) che compone il menù e lo script farà il resto del lavoro, individuando le liste annidate e nascondendole. Quando l&#8217;utente passerà con il mouse sulla pagina padre, allora saranno mostrate a cascata le pagine figlie.</p>
<p>Ovviamente per far funzionare il tutto è necessario includere nella testata della pagina qualche riga di codice, per caricare jquery, il plugin e alcuni file css:</p>
<p><code>// link al file CSS<br />
&lt;link rel="stylesheet" type="text/css" media="screen" href="superfish.css" /&gt;<br />
// link al javascript (hoverIntent è opzonale)<br />
&lt;script type="text/javascript" src="hoverIntent.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="superfish.js"&gt;&lt;/script&gt;<br />
// inizializzazione di Superfish, sf-menu è la classe su cui sarà attivo l'effetto<br />
&lt;script type="text/javascript"&gt;<br />
$(document).ready(function(){<br />
$("ul.sf-menu").superfish();<br />
});<br />
&lt;/script&gt;</code></p>
<p>I temi rilasciati su <a title="Elegantthemes" href="http://www.elegantthemes.com/" target="_blank">eleganthemes</a> fanno abbondantemente uso di questo plugin e gli effetti sono piuttosto gradevoli. Credo proprio che mi divertirò nei prossimi giorni.. <strong>Conoscete altri script altrettanto versatili e pronti all&#8217;uso?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/06/02/un-menu-duttile-con-un-po-di-javascript-e-css/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Shadowbox JS: una media gallery nel plugin per wordpress</title>
		<link>http://www.diplod.it/2008/04/15/shadowbox-js-una-media-gallery-nel-plugin-per-wordpress/</link>
		<comments>http://www.diplod.it/2008/04/15/shadowbox-js-una-media-gallery-nel-plugin-per-wordpress/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 23:28:12 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[ext]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scriptaculous]]></category>
		<category><![CDATA[shadowbox]]></category>
		<category><![CDATA[slimbox]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.diplod.it/2008/04/15/shadowbox-js-una-media-gallery-nel-plugin-per-wordpress/</guid>
		<description><![CDATA[Sto mettendo in ordine il portfolio (tra qualche settimana tutte le novità) e per l&#8217;occasione ho integrato su questo sito il famoso javascript Shadowbox. Si tratta del solito box elegante all&#8217;interno del quale far apparire immagini, ma non solo.. Si ispira infatti ai noti Lightbox (scritto per il framework prototype) e Slimbox (scritto per il [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Sto mettendo in ordine il <a href="http://www.diplod.it/portfolio/" title="Portfolio" target="_blank">portfolio</a> (tra qualche settimana tutte le novità) e per l&#8217;occasione ho integrato su questo sito il famoso javascript <a href="http://mjijackson.com/shadowbox/" title="Shadowbox" target="_blank">Shadowbox</a>. Si tratta del solito box elegante all&#8217;interno del quale far apparire immagini, ma non solo.. Si ispira infatti ai noti <a href="http://www.lokeshdhakar.com/projects/lightbox2/" title="Lightbox" target="_blank">Lightbox</a> (scritto per il framework <a href="http://prototypejs.org/" title="prototype" target="_blank">prototype</a>) e <a href="http://www.digitalia.be/software/slimbox" title="Slimbox">Slimbox</a> (scritto per il framework <a href="http://mootools.net/" title="mootools">mootools</a>). Ma non è un semplice clone, perchè le funzioni di Shadowbox vanno al di là della semplice <strong>galleria per immagini</strong>. E&#8217; infatti possibile inserire all&#8217;interno <strong>qualsiasi tipo di media</strong>: dal filmato youtube a una pagina web esterna, dalle immagini ai filmati flash. Il modo migliore per capirne le potenzialità è fare un giro sulle <a href="http://mjijackson.com/shadowbox/index.html" title="shadowbox">demo del sito ufficiale</a>.</p>
<p>Ne ha parlato <a href="http://www.tomstardust.com/archives/shadowbox-soluzione-javascript-per-gallerie-di-immagini/" title="post di Tomstardust" target="_blank">tom</a> qualche giorno fa. Oltre ad essere cross-browser e compatibile agli standard, il vero punto di forza di questa galleria è il supporto a diversi framework javascript, questo permette di utilizzarla in tutti i contesti: supporta infatti <strong>YUI</strong>, <strong>Prototype + Scriptaculous</strong>, <strong>jQuery</strong>, <strong>Ext</strong>, <strong>Dojo</strong> e <strong>MooTools</strong>. Una meraviglia, visto che generalmente è proprio la difficile integrazione tra i diversi framework a impedire l&#8217;utilizzo di questi eleganti metodi di presentazione.</p>
<p><span id="more-520"></span></p>
<p>Ho cercato un <strong>plugin che integrasse su wordpress questa galleria</strong>, per utilizzarla nella presentazione del portfolio. Detto fatto: <a href="http://sivel.net/2008/02/shadowbox-js/" title="Shadowbox Plugin" target="_blank">Shadowbox JS Plugin</a>. Per onor di cronaca esiste pure un plugin italiano con lo stesso intento, ma non c&#8217;è la possibilità di scegliere quale framework javascript utilizzare. Questo è fortemente limitante, dato che l&#8217;arma vincente di shadowbox è proprio la possibilità di utilizzo sui diversi framework.</p>
<p>Ho fatto quindi una traduzione in italiano del suddetto plugin, nulla di travolgente: ho semplicemente modificato i commenti al file del plugin per impostare i parametri e cambiato le scritte &#8220;next&#8221; &#8220;prev&#8221; e &#8220;close&#8221;. Su un sito completamente italiano sta meglio la scritta &#8220;chiudi&#8221;.. ;)</p>
<p>Se volete provarlo, potete <a href="http://sivel.net/2008/02/shadowbox-js/" title="Shadowbox wordpress plugin" target="_blank">scaricare il plugin dal sito ufficiale</a> e sovrascrivere questi files (tradotti in italiano):</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2008/04/shadowbox-ita-files.zip" title="Shadowbox - zip con files in italiano">Shadowbox &#8211; zip con files in italiano</a><a href="http://www.diplod.it/wp-content/uploads/2008/04/shadowbox.js" title="js/shadowbox.js"></a><a href="http://www.diplod.it/wp-content/uploads/2008/04/shadowbox-js.php" title="shadowbox-js.php"> </a></p>
<p><strong>Installazione</strong></p>
<ol>
<li>Caricare la cartella `shadowbox-js` in `/wp-content/plugins/`</li>
<li>Attivare il plugin dal &#8216;Plugins&#8217; menu in WordPress</li>
<li>Aprire il file shadowbox-js.php e modificare $jsLib e $lightCSS in base alle istruzioni presenti nel file.</li>
</ol>
<p><strong>Utilizzo</strong></p>
<p>Per far apparire un media all&#8217;interno di shadowbox basta inserire un link in questa forma:<br />
<code><br />
&lt;a href="http://domain.tld/directory/to/image.jpg" rel="shadowbox[album]"&gt;Image&lt;/a&gt;<br />
</code><br />
Il link può puntare a immagini, siti web, file flash, video su youtube, contenuto in linea. Basta assicurarsi di inserire `rel=&#8221;shadowbox&#8221;` poichè questo codice attiva il plugin.<br />
Inserendo il codice `rel=&#8221;shadowbox[album]&#8220;` si possono inoltre raggruppare più immagini all&#8217;interno dello stesso album.</p>
<p><strong>Integrazione con lightbox</strong>: se state già utilizzando lightbox sul vostro sito, non dovrete modificare nulla. Il plugin legge in automatico il codice &#8216;rel=&#8221;lightbox&#8221;&#8216; e lo interpreta normalmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2008/04/15/shadowbox-js-una-media-gallery-nel-plugin-per-wordpress/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>E così Marina ha un nuovo blog</title>
		<link>http://www.diplod.it/2007/11/26/e-cosi-marina-ha-un-nuovo-blog/</link>
		<comments>http://www.diplod.it/2007/11/26/e-cosi-marina-ha-un-nuovo-blog/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 23:31:29 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Progetti]]></category>
		<category><![CDATA[FAlbum]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.diplod.it/2007/11/26/e-cosi-marina-ha-un-nuovo-blog/</guid>
		<description><![CDATA[Ultimamente sono mancato un po&#8217; su queste pagine, solo perchè sono stato preso da questo lavoro. Marina Remi è un&#8217;attrice genovese, che mi ha contattato per creare ex novo un blog su wordpress: ecco fatto. Non è stato semplice ma alla fine ho imparato molto.. Devo ringraziare lei e tutti coloro che hanno collaborato nella [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.diplod.it/wp-content/uploads/2007/11/port-marina.gif" alt="Portfolio - Marina Remi Weblog" /></p>
<p>Ultimamente sono mancato un po&#8217; su queste pagine, solo perchè sono stato preso da <a href="http://www.marinaremi.com/diario/" title="Marina Remi" target="_blank">questo lavoro</a>. Marina Remi è un&#8217;attrice genovese, che mi ha contattato per creare ex novo un blog su wordpress: ecco fatto. Non è stato semplice ma alla fine ho imparato molto.. Devo ringraziare lei e tutti coloro che hanno collaborato nella realizzazione: in bocca al lupo!</p>
<p>In queste poche righe voglio riassumere i plugin utilizzati e le tecniche implementate per realizzare il sito di Marina.</p>
<p><span id="more-420"></span></p>
<h4>Menu con icone che zoomano al passaggio del mouse</h4>
<p>Noterete subito il menù stile mac che raccoglie le pagine del blog. E&#8217; stato realizzato utilizzando il framework <a href="http://jquery.com/" title="jQuery" target="_blank">jQuery</a> e la sua utilissima estensione grafica <a href="http://interface.eyecon.ro/" title="Interface" target="_blank">Interface</a>. Lo script deve essere configurato e si può personalizzare via CSS, lo potete vedere in azione nelle demo di Interface: <a href="http://interface.eyecon.ro/demos" title="Interface Demos" target="_blank">Fisheye Menu</a>.</p>
<p><img src="http://www.diplod.it/wp-content/uploads/2007/11/marina-menu.gif" alt="Menu in stile Mac" /></p>
<h4>Il form dei commenti</h4>
<p>A volte si può essere eleganti anche con un semplice javascript.. Lo so, i puristi diranno che son meglio i tag &lt;label&gt;, ma ogni tanto anche l&#8217;occhio vuole la sua parte.</p>
<p><img src="http://www.diplod.it/wp-content/uploads/2007/11/marina-commenti.gif" alt="Form commenti" /></p>
<h4>Le foto da Flickr</h4>
<p><a href="http://www.randombyte.net/blog/projects/falbum/" title="FAlbum per wordpress" target="_blank">FAlbum</a> è un plugin per wordpress che si collega ad un account Flickr e pubblica le foto sul proprio blog.<br />
Se vogliamo inserire la visualizzazione delle immagini in una pagina bisogna creare un template di pagina. Per farlo è sufficiente inserire questo codice all&#8217;inizio della nuova pagina falbum.php<br />
<code><br />
&lt;?php<br />
/*<br />
Template Name: FAlbum<br />
*/<br />
?&gt;<br />
</code></p>
<p>Mentre nel corpo della pagina dovremo inserire questo codice dove si vogliono far apparire le foto</p>
<p><code><br />
&lt;!--&lt;script type="text/javascript" src="&lt;?php bloginfo('url'); ?&gt;/wp-content/plugins/falbum/res/falbum.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="&lt;?php bloginfo('url'); ?&gt;/wp-content/plugins/falbum/res/overlib.js"&gt;&lt;/script<br />
&lt;script type="text/javascript" src="&lt;?php bloginfo('url'); ?&gt;/wp-content/plugins/falbum/res/prototype.js"&gt;&lt;/script&gt;--&gt;<br />
&lt;div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"&gt;&lt;/div&gt;<br />
&lt;?php $falbum-&gt;show_photos(); ?&gt;<br />
</code></p>
<p>Per utilizzare gli effetti di visualizzazione dovremo togliere i commenti all&#8217;inclusione del codice javascript.</p>
<p>Per mettere qualche immagine nella sidebar invece si può usare questa funzione</p>
<p><code><br />
&lt;?php require_once(ABSPATH.'/wp-content/plugins/falbum/falbum.php');<br />
global $falbum; ?&gt;<br />
&lt;?php echo $falbum-&gt;show_recent($num = 3, $style = 0, $size= 's'); ?<br />
</code></p>
<p>Tutta <a href="http://www.randombyte.net/wiki/falbum/falbum" title="FAlbum documentation" target="_blank">la documentazione circa il plugin la si trova qui</a>, ben fatta e dettagliata.</p>
<h4>All in One SEO Pack</h4>
<p>E&#8217; un <a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" title="All in one SEO Pack" target="_blank">utilissimo plugin</a> per l&#8217;ottimizzazione delle proprie pagine in ottica SEO (<a href="http://it.wikipedia.org/wiki/Ottimizzazione_%28motori_di_ricerca%29" title="SEO" target="_blank">Search Engine Optimization</a>). Da un comodo pannello di amministrazione è possibile inserire una descrizione globale del sito e le parole chiave. Per ogni post o pagina è possibile inserire descrizioni specifiche e parole chiave diverse. L&#8217;utilità non si vede ad occhio nudo, ma trattare bene i motori di ricerca aiuta sempre a generare visite.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2007/11/26/e-cosi-marina-ha-un-nuovo-blog/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
