<?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; magazine</title>
	<atom:link href="http://www.diplod.it/tag/magazine/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>WordPress: creare uno sliseshow con gli articoli in rilievo stile magazine</title>
		<link>http://www.diplod.it/2009/09/06/wordpress-creare-uno-sliseshow-con-gli-articoli-in-rilievo-stile-magazine/</link>
		<comments>http://www.diplod.it/2009/09/06/wordpress-creare-uno-sliseshow-con-gli-articoli-in-rilievo-stile-magazine/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 23:19:02 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[notizie]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=845</guid>
		<description><![CDATA[Quante volte abbiamo visto siti di magazine dotati di spettacolari slideshow a centro pagina che presentano gli ultimi articoli con immagini a ripetizione? La soluzione che propongo in questo articolo pubblica invece la prima foto allegata al post e la fa girare a rotazione assieme al titolo e all'excerpt (il riassunto). Il risultato finale è visibile in una demo.]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: center; "><img class="size-full wp-image-851  aligncenter" title="Anteprima Slideshow" src="http://www.diplod.it/wp-content/uploads/2009/08/demo.png" alt="Anteprima Slideshow WordPress" width="430" height="312" /></p>
<p>Quante volte abbiamo visto <strong>siti di magazine</strong> dotati di <strong>spettacolari slideshow</strong> a centro pagina che presentano gli <strong>ultimi articoli</strong> con immagini a ripetizione? Basta guardare il sito di <a title="Wired Italia" href="http://www.wired.it/" target="_blank">wired</a> o dell&#8217;<a title="Economist" href="http://www.economist.com/" target="_blank">Economist</a>.. Molti temi wordpress per magazine presentano soluzioni di questo tipo, spesso però pescano le immagini da presentare tra i <em>custom fields</em> di wordpress.</p>
<p>La soluzione che propongo in questo articolo pubblica invece la prima foto allegata al post e la fa girare a rotazione assieme al titolo e all&#8217;excerpt (il riassunto). <strong>Il risultato finale è <a title="diploD Magazine Demo" href="http://lab.diplod.it/demo/index.php?wptheme=diploD%20Magazine" target="_blank">visibile in questa demo</a></strong>.</p>
<p>Per fare il tutto ho scelto un javascript gratuito: <a title="Slideshow javascript" href="http://www.electricprism.com/aeron/slideshow/" target="_blank">Slideshow2!</a> Grazie a questa splendida classe per <a title="Mootools" href="http://mootools.net/" target="_blank">Mootools</a> è possibile creare in pochi istanti effetti davvero accattivanti.<br />
Ci sono diversi  plugin per wordpress in giro che utilizzano i più noti script per generare slideshow e gallerie, ma tutti quelli che ho visto servono per creare una gallery a partire da un singolo post. Il mio obbiettivo era diverso: <strong>creare uno slideshow con la prima immagine degli ultimi articoli pubblicati</strong>. Vediamo come fare..</p>
<p><span id="more-845"></span></p>
<p>Prima di tutto il codice.</p>
<p><code>&lt;link rel="stylesheet" type="text/css" href="&lt;?php bloginfo('template_url'); ?&gt;/css/slideshow.css" media="screen" /&gt;<br />
&lt;script type="text/javascript" src="&lt;?php bloginfo('template_url'); ?&gt;/js/mootools.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="&lt;?php bloginfo('template_url'); ?&gt;/js/slideshow.js"&gt;&lt;/script&gt;<br />
</code></p>
<p>Questa prima parte va aggiunta nell&#8217;elemento &lt;head&gt;, nel file <em>header.php</em> del template wordpress. Non fa altro che caricare un file CSS, la libreria mootools e lo script slideshow. Sempre all&#8217;interno dell&#8217;elemento &lt;head&gt; va inserito il codice sottostante. Si può posizionare questa porzione di codice anche appena prima del <em>div</em> in cui si desidera far apparire lo slideshow, tipicamente nel file <em>index.php</em> del template wordpress.</p>
<p><code>&lt;script type="text/javascript"&gt;<br />
//&lt;![CDATA[<br />
window.addEvent('domready', function(){<br />
var data = {<br />
&lt;?php $temp_query3 = $wp_query; ?&gt;<br />
&lt;?php query_posts('<strong>showposts=5&amp;cat=4</strong>'); ?&gt;<br />
&lt;?php if (have_posts()) : ?&gt;<br />
&lt;?php $conta=0; ?&gt;<br />
&lt;?php while (have_posts()) : the_post(); ?&gt;<br />
&lt;?php<br />
// Rileva ID del post<br />
$iPostID = $post-&gt;ID;<br />
// Rileva immagini per questo post<br />
$arrImages =&amp; get_children('post_type=attachment&amp;post_mime_type=image&amp;post_parent=' . $iPostID );<br />
// Se esistono immagini allegate al post<br />
if($arrImages) {<br />
// Rileva array con le chiavi che rappresentano le immagini allegate<br />
$arrKeys = array_keys($arrImages);<br />
// Rileva la prima immagine allegata<br />
$iNum = $arrKeys[0];<br />
// Rileva url thumbnail<br />
// $sThumbUrl = wp_get_attachment_thumb_url($iNum);<br />
// Rileva url full-size<br />
$sUrl = wp_get_attachment_image_src($iNum,'full');<br />
// Rileva excerpt - riassunto del post<br />
$descrizione = get_the_excerpt();<br />
// Rimpiazza caratteri particolari<br />
$descrizione = str_replace("'", "\'", $descrizione);<br />
$descrizione = str_replace("\n", " ", $descrizione);<br />
?&gt;<br />
&lt;?php if ($conta&gt;0) { ?&gt;, &lt;?php } ?&gt;&lt;?php } ?&gt;&lt;?php $conta++; ?&gt;<br />
'&lt;?php echo($sUrl[0]) ?&gt;': { caption: '&lt;p&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Permanent Link a &lt;?php the_title(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;br/&gt;&lt;?php echo($descrizione) ?&gt;&lt;/p&gt;' }</code></p>
<p><code> &lt;?php } ?&gt;<br />
&lt;?php endwhile; ?&gt;<br />
&lt;?php endif; ?&gt;<br />
&lt;?php //Reset Query<br />
wp_reset_query(); ?&gt;<br />
};<br />
var myShow = new Slideshow('<strong>show</strong>', data, {captions: true, controller: true, delay: 5000, duration: 2000, height: 300, thumbnails: false, width: 780});<br />
});<br />
//]]&gt;<br />
&lt;/script&gt;</code></p>
<p>Questa seconda parte serve per far apparire lo slideshow nel <em>div</em> con <em>ID=&#8221;show&#8221;</em>. All&#8217;inizio vengono indicati il numero di post e la categoria relativa che si desidera far apparire, nella funzione <em>query_posts()</em>. Il codice è ben commentato e non fa altro che rilevare la prima immagine di ogni post per pubblicarla assieme al titolo e al riassunto del post.<br />
La parte HTML necessaria all&#8217;interno del &lt;body&gt; è questa:</p>
<p><code>&lt;div id="show"&gt;<br />
&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/default.jpg" alt="welcome" /&gt;<br />
&lt;/div&gt;</code></p>
<p>Dove come <em>default.jpg</em> verrà caricata una immagine standard, utile nel caso non ci siano articoli da visualizzare oppure l&#8217;utente abbia disabilitato javascript.<br />
Per aggiungere l&#8217;<strong>effetto di zoom in movimento</strong> è possibile utilizzare l&#8217;estensione kenburns dello script Slideshow. Caricando nell&#8217; &lt;head&gt; un altro javascrip:</p>
<p><code>&lt;script type="text/javascript" src="&lt;?php bloginfo('template_url'); ?&gt;/js/slideshow.kenburns.js"&gt;&lt;/script&gt;</code></p>
<p>e modificando le ultime righe dello script sopra in questo modo:</p>
<p><code>var myShow = new Slideshow.KenBurns('show', data, {captions: true, controller: true, delay: 5000, duration: 2000, height: 300, thumbnails: false, width: 670, zoom: 50, pan: [25, 75]});</code></p>
<p>Le proprietà di <em>zoom</em> e <em>pan</em> sono da regolare per ottenere effetti diversi.</p>
<p>Il <strong>risultato HTML</strong> è il seguente:</p>
<p><code>&lt;script type="text/javascript" src="http://lab.diplod.it/demo/wp-content/themes/diplo-magazine/js/slideshow.kenburns.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
//&lt;![CDATA[<br />
<span style="white-space: pre;"> </span>window.addEvent('domready', function(){<br />
<span style="white-space: pre;"> </span>//avvio slideshow<br />
<span style="white-space: pre;"> </span>var data = {<br />
<span style="white-space: pre;"> </span>'http://lab.diplod.it/demo/wp-content/uploads/2009/08/3691087551_74e61f4da0_b.jpg': { caption: '&lt;p&gt;&lt;a href="http://lab.diplod.it/demo/2009/08/29/campo-di-grano/" rel="bookmark" title="Permanent Link a Campo di Grano"&gt;Campo di Grano&lt;\/a&gt;&lt;br/&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.&lt;\/p&gt;' },<br />
<span style="white-space: pre;"> </span> 'http://lab.diplod.it/demo/wp-content/uploads/2009/08/3691896442_cafb3a1487_b.jpg': { caption: '&lt;p&gt;&lt;a href="http://lab.diplod.it/demo/2009/08/29/le-braccia-del-costruttore/" rel="bookmark" title="Permanent Link a Le braccia del Costruttore"&gt;Le braccia del Costruttore&lt;\/a&gt;&lt;br/&gt;Le braccia del costruttore ha un riassunto molto breve..&lt;\/p&gt;' },<br />
<span style="white-space: pre;"> </span> 'http://lab.diplod.it/demo/wp-content/uploads/2009/08/3166795508_d5cd33c968_b.jpg': { caption: '&lt;p&gt;&lt;a href="http://lab.diplod.it/demo/2009/08/29/secondo-articolo-in-rilievo/" rel="bookmark" title="Permanent Link a Secondo Articolo in Rilievo"&gt;Secondo Articolo in Rilievo&lt;\/a&gt;&lt;br/&gt;Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem&lt;\/p&gt;' },<br />
<span style="white-space: pre;"> </span> 'http://lab.diplod.it/demo/wp-content/uploads/2009/08/3691094985_4327680ea2_b.jpg': { caption: '&lt;p&gt;&lt;a href="http://lab.diplod.it/demo/2009/08/29/primo-articolo-in-rilievo/" rel="bookmark" title="Permanent Link a Primo articolo in Rilievo"&gt;Primo articolo in Rilievo&lt;\/a&gt;&lt;br/&gt; Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat [...]&lt;\/p&gt;' },<br />
<span style="white-space: pre;"> </span> };<br />
<span style="white-space: pre;"> </span> var myShow = new Slideshow.KenBurns('show', data, {captions: true, controller: true, delay: 5000, duration: 2000, height: 300, thumbnails: false, width: 670, zoom: 50, pan: [25, 75]});<br />
<span style="white-space: pre;"> </span> });<br />
<span style="white-space: pre;"> </span> //]]&gt;<br />
&lt;/script&gt;</code></p>
<p>Per quanto riguarda il <strong>CSS</strong>, quello proposto assieme allo script è sicuramente un buon <strong>punto di partenza</strong>, da sistemare se si vogliono cambiare le dimensioni del <em>div</em> che presenta lo slideshow.</p>
<p><strong>Buon design a tutti..</strong></p>
<p>PS: Nel caso in cui qualcuno si stesse domandando da dove provenga il design della demo sopra.. beh: seguite questo blog, prossimamente arriverà un tema wordpress in stile magazine, completamente personalizzabile dal pannello di amministrazione e soprattutto italianissimo. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/09/06/wordpress-creare-uno-sliseshow-con-gli-articoli-in-rilievo-stile-magazine/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
