<?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>Italian webdesign &#187; Developing</title>
	<atom:link href="http://www.italianwebdesign.it/category/cms-e-developing/developing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.italianwebdesign.it</link>
	<description>La community per aspiranti webdesigner</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:42:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Guida php e scripting su Web Magazine</title>
		<link>http://www.italianwebdesign.it/guida-php-e-scripting-su-web-magazine/</link>
		<comments>http://www.italianwebdesign.it/guida-php-e-scripting-su-web-magazine/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 12:10:57 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=7641</guid>
		<description><![CDATA[A partire dal nuovo anno Web Magazine ci ha proposto nuove rubriche interessanti da seguire. Una fra le tante è la guida al php, scritta da Federico e che è già giunta all&#8217;ottava puntata. Inutile dirvi che per chi inizia con il web development è una manna. Buono studio! Libri da non perdere:Amazon-Box creato da [...]]]></description>
			<content:encoded><![CDATA[<p>A partire dal nuovo anno Web Magazine ci ha proposto nuove rubriche interessanti da seguire. Una fra le tante è la <a href="http://www.web-magazine.it/category/web-design-lavoro-e-professioni/scripting-web-design-lavoro-e-professioni/">guida al php</a>, scritta da Federico e che è già giunta all&#8217;ottava puntata.</p>
<p>Inutile dirvi che per chi inizia con il web development è una manna. Buono studio!</p>
<p style="text-align: center;"><a href="http://www.web-magazine.it/category/web-design-lavoro-e-professioni/scripting-web-design-lavoro-e-professioni/"><img class="aligncenter size-full wp-image-7642" title="php" src="http://www.italianwebdesign.it/wp-content/uploads/2011/04/Immagine-4.png" alt="Immagine 4 Guida php e scripting su Web Magazine" width="493" height="678" /></a></p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=7641">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/guida-php-e-scripting-su-web-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql e database: la struttura e la chiave primaria</title>
		<link>http://www.italianwebdesign.it/mysql-e-database-la-struttura-e-la-chiave-primaria/</link>
		<comments>http://www.italianwebdesign.it/mysql-e-database-la-struttura-e-la-chiave-primaria/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 05:46:35 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=6753</guid>
		<description><![CDATA[Chi di voi non ha mai guardato dentro un database e non ha guardato com&#8217;è fatto? Ok, per chi non ha mai masticato database e linguaggi di programmazione sembrerà di leggere arabo, ma è tutto molto semplice. Di solito i dati che estrapoliamo o inviamo ad un database sono organizzati per tabelle, alle quali diamo [...]]]></description>
			<content:encoded><![CDATA[<p>Chi di voi non ha mai guardato dentro un database e non ha guardato com&#8217;è fatto? Ok, per chi non ha mai masticato database e linguaggi di programmazione sembrerà di leggere arabo, ma è tutto molto semplice.</p>
<p>Di solito i dati che estrapoliamo o inviamo ad un database sono <strong>organizzati per tabelle</strong>, alle quali diamo un &#8220;nome&#8221; univoco e che sono <strong>organizzate per &#8220;colonne&#8221; di dati</strong>. Ebbene, una cosa importantissima nella creazione di un database, è quella di avere sempre una cosiddetta <strong>chiave primaria</strong>, per metterla sul pratico, di solito è l&#8217;ID univoco di un post, un commento, o qualsivoglia dato presente in una tabella.</p>
<p>Esempio di tabella:</p>
<p><img class="aligncenter size-full wp-image-6754" title="database" src="http://www.italianwebdesign.it/wp-content/uploads/2010/10/tab44.jpg" alt="tab44 Mysql e database: la struttura e la chiave primaria" width="356" height="82" />Tramite <a href="http://www.yourinspirationweb.com/2010/10/14/la-strutturazione-dei-database-13-la-chiave-primaria/">questo articolo</a>, Yourinspirationweb ci spiega cos&#8217;è la chiave primaria. Giusto un po&#8217; di teoria per chi non &#8220;smanetta&#8221; con i database, ma una base fondamentale per chi invece vuol farlo. Sono curiosa di seguire i tutorial che seguiranno. A presto!</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=6753">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/mysql-e-database-la-struttura-e-la-chiave-primaria/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Upload per trascinamento con html5, ajax e php</title>
		<link>http://www.italianwebdesign.it/upload-per-trascinamento-con-html5-ajax-e-php/</link>
		<comments>http://www.italianwebdesign.it/upload-per-trascinamento-con-html5-ajax-e-php/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 11:24:04 +0000</pubDate>
		<dc:creator>Giancarlo D'Urso</dc:creator>
				<category><![CDATA[Ajax e js]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[drag & drop]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[trascinamento]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=6593</guid>
		<description><![CDATA[Il cosiddetto web 2.0 è nato per rispondere alla crescente richiesta di interazione uomo-macchina su internet. Essere attratti da un effetto particolare, o da un&#8217;applicazione interrattiva rende un sito web più appetibile e accende la curiosità dell&#8217;utente. La stessa curiosità che ho avuto io, quando ho scoperto che su gmail si possono allegare i file, [...]]]></description>
			<content:encoded><![CDATA[<p>Il cosiddetto web 2.0 è nato per rispondere alla crescente richiesta di interazione uomo-macchina su internet.  Essere attratti da un effetto particolare, o da un&#8217;applicazione interrattiva rende un sito web più appetibile e accende la curiosità dell&#8217;utente. La stessa curiosità che ho avuto io,  quando ho scoperto che <strong>su gmail si possono allegare i file</strong>, durante la composizione delle email , <strong>attraverso l&#8217;upload per trascinamento</strong>. In pratica l&#8217;upload non avviene con il classico form, e il bottone “sfoglia” che consente di selezionare il file prima di accettarne il caricamento, bensì trascinando direttamente il file all&#8217;interno del browser nel classico stile <strong>drag &amp; drop</strong>.  In realtà, questa tecnologia ha qualcosa che va oltre il  semplice web 2.0  perchè sfrutta le potenzialità di HTML5. In questo articolo descriverò un esempio di come simulare questo effetto.</p>
<p><img class="aligncenter size-full wp-image-6627" src="http://www.italianwebdesign.it/wp-content/uploads/2010/09/gmail_dragdrop.jpg" alt="gmail dragdrop Upload per trascinamento con html5, ajax e php" width="525" height="361" title="Upload per trascinamento con html5, ajax e php" /></p>
<p>Innanzitutto elenchiamo gli strumenti che ci servono:</p>
<ul>
<li>il linguaggio php</li>
<li>il framework jquery per la chiamata ajax</li>
<li>firefox (browser che supporta una forma primitiva di html5, ancora non standardizzata).</li>
</ul>
<p>Ricordo che per fare le chiamate ajax, i file dell&#8217;esempio (anche i file html) vanno inseriti in una directory del server web configurata in modo da accettare le chiamate asincrone lato client (Apache di default lo fa!)</p>
<p>Dunque costruiamo un file html semplice che contiene i riferimenti a jquery e al file upload-trascinamento.js  che andremo a riempire successivamente:</p>
<p><code><br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Prova di upload per trascinamento&lt;/title&gt;<br />
&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="upload-trascinamento.js"&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div style="margin:0 auto; text-align:center"&gt;<br />
&lt;h1 style="margin-top:100px;"&gt;Upload (di 1 file alla volta) per trascinamento&lt;/h1&gt;<br />
&lt;h2 id="stato"&gt;&lt;/h2&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</code></p>
<p>Ed ecco il file upload-trascinamento.js :</p>
<p><code><br />
$(document).ready(function() {<br />
$(this)<br />
.bind("dragenter", function(event) {<br />
return false;<br />
})<br />
</code><br />
<code><br />
.bind("dragover", function(event) {<br />
return false;<br />
})<br />
</code></p>
<p><code><br />
.bind("drop", function(event) {<br />
var file = event.originalEvent.dataTransfer.files[0];<br />
event.stopPropagation();<br />
$("#stato").html("Caricamento del file in corso. Attendere prego....");<br />
</code></p>
<p><code><br />
$.ajax({<br />
url:'upload.php',<br />
async:true,<br />
type:'POST',<br />
contentType:'multipart/form-data',<br />
processData:false,<br />
data:file,<br />
success: function(data) {<br />
$("#stato").html("Il file &lt;a href=\""+ data + "\"&gt;" + data + "&lt;/a&gt; e\' stato copiato sul server&lt;br/&gt;&lt;br/&gt;");<br />
} ,<br />
beforeSend: function(xhr) {<br />
xhr.setRequestHeader("X-File-Name", file.name);<br />
xhr.setRequestHeader("Cache-Control", "no-cache");<br />
}<br />
});<br />
});<br />
});<br />
</code></p>
<p>Dunque, cerchiamo di capire cosa fa questo codice:</p>
<ol>
<li>Vengono associati , all&#8217;intera pagina web (ma si potrebbe fare anche per un div o un paragrafo), tre nuovi eventi javascript riconoscibili solo dai browser che supportano html5: Dragenter, Dragover, Drop. Nel caso specifico, siamo interessati all&#8217;evento Drop, però affinchè l&#8217;evento funzioni  è necessario definire anche gli altri, magari riempiendoli con un&#8217; azione irrilevante (return false)</li>
<li>L&#8217;evento Drop si aziona nel momento in cui rilasciamo sulla pagina web uno o più file. Dunque cosa accade quando questo evento viene azionato?</li>
</ol>
<ul>
<li>Si estrae il primo file tra quelli selezionati e trascinati dal browser. Un vettore di oggetti <strong>event.originalEvent.dataTransfer.files</strong> contiene tutti i file trascinati. In particolare l&#8217;elemento files[0] contiene un solo file : il primo del vettore. Ciò significa che si potrebbero fare upload multipli. L&#8217;esempio, per semplicità, è stato sviluppato nell&#8217;ipotesi che sia fatto  l&#8217;upload di un file alla volta</li>
<li>Si blocca la normale apertura del file sul browser con event.stopPropagation()</li>
<li>Si effettua la chiamata asincrona .ajax  ad un file php. La chiamata jquery passa come dati al file php , il file che è stato trascinato. E&#8217; importante notare la presenza di <strong>contentType:&#8217;multipart/form-data&#8217; </strong>che imposta nell&#8217;header della chiamata ajax  il tipico trasferimento dei file dati come nei normali form html, <strong>processData:false</strong> che disabilita il casting di default previsto per i dati trasmessi  con <strong>data</strong> e che permette di trasmettere l&#8217;oggetto <strong>file, </strong>non come stringa, ma con il suo datatype corretto (pdf, immagine, ecc&#8230;insomma  in base al tipo di file che abbiamo trascinato nel browser) e <strong>beforeSend </strong>che, ancora una volta, modifica gli header della chiamata ajax,  per trasmette il nome del file estratto dall&#8217;oggetto <strong>file.</strong></li>
</ul>
<p>L&#8217;ultimo passo per completare il lavoro è è la costruzione del ricevente della chiamata ajax, ovvero il file upload.php:</p>
<p><code><br />
&lt;?php<br />
$headers = getallheaders();<br />
$nomefile = basename($headers['X-File-Name']);<br />
$streamdati = file_get_contents("php://input");<br />
file_put_contents($nomefile, $streamdati);<br />
echo $nomefile;<br />
?&gt;<br />
</code></p>
<p>Lo script estrae il nome del file dall&#8217;header <strong>X-File-Name</strong>, legge il flusso di dati  (i byte del file) attraverso lo stream di input (<strong>php://input</strong>) passato alla funzione<strong> file_get_contents </strong>e costruisce nella directory corrente del server un nuovo file con il nome e i byte del file trasmesso.</p>
<p>Spero di non essere stato troppo prolisso e di aver fornito a tutti voi una nuova tecnica per rendere ancora più appetibili le vostre applicazioni web. E&#8217; possibile scaricare e usare gratuitamente il codice di questo articolo su <a href="http://www.giancarlodurso.altervista.org/">http://www.giancarlodurso.altervista.org</a></p>
<h2>Aggiornamento. nuova versione: </h2>
<p> In seguito alle nuove versioni di jquery e Firefox 4, il codice sopra indicato va aggiornato cambiando la riga di codice <code>event.stopPropagation();</code> con <code>event.preventDefault();</code>  </p>
<p>La nuova versione , funzionante con jquery 1.5.2 e Firefox 4, è al solito scaricabile dalla mia pagina web!</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=6593">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/upload-per-trascinamento-con-html5-ajax-e-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Programmiamo l&#8217;Accessibilità: tabindex e accesskey con Php</title>
		<link>http://www.italianwebdesign.it/programmiamo-laccessibilita-tabindex-e-accesskey-con-php/</link>
		<comments>http://www.italianwebdesign.it/programmiamo-laccessibilita-tabindex-e-accesskey-con-php/#comments</comments>
		<pubDate>Thu, 13 May 2010 06:00:18 +0000</pubDate>
		<dc:creator>Giancarlo D'Urso</dc:creator>
				<category><![CDATA[Accessibilità]]></category>
		<category><![CDATA[Cms e developing]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Teoria del web]]></category>
		<category><![CDATA[accesskey]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[tabindex]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=6064</guid>
		<description><![CDATA[Tutti sappiamo che dotare i collegamenti web di attributi come accesskey e tabindex è importante per l&#8217;accessibilità delle pagine. Spesso, in modo errato, si usano queste attenzioni solo sui link del menu principale, senza rendersi conto che non c&#8217;è alcuna differenza tra un link principale e uno secondario (magari piazzato nel footer e in fondo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-6091" title="tab index" src="http://www.italianwebdesign.it/wp-content/uploads/2010/05/31GTyoptMoL-218x120.jpg" alt="31GTyoptMoL 218x120 Programmiamo lAccessibilità: tabindex e accesskey con Php" width="218" height="120" />Tutti sappiamo che dotare i collegamenti web di attributi come <strong>accesskey e tabindex </strong>è importante per l&#8217;accessibilità delle pagine. Spesso, in modo errato, si usano queste attenzioni solo sui link  del menu principale, senza rendersi conto che <strong>non c&#8217;è alcuna differenza tra un link principale e uno secondario</strong> (magari piazzato nel footer e in fondo alla pagina).</p>
<p>Per risolvere il problema, basterebbe inserire in tutti i link questi attributi, facendo attenzione ed evitando di generare doppioni. <strong>Due link con la stessa accesskey, per esempio, creerebbero un problema di identificazione dei link.</strong></p>
<p>Inoltre, un lavoro del genere, fatto in ogni pagina del sito è costoso in termini di tempo e pazienza. Pertanto quello che adesso mostrerò è una funzione php che cerca di automatizzare il lavoro tenendo traccia , volta per volta, delle lettere e dei numeri usati nei due attributi. Quello che dovrà fare poi il programmatore è semplicemente richiamare la funzione ogni volta che si scrive un link nel codice.</p>
<p>Nella mia semplice implementazione ho tenuto conto di alcuni aspetti tecnici (invariabili) e di scelte &#8220;implementative e di stile&#8221; (modificabili a piacimento).<br />
Ecco le regole che ho seguito :</p>
<ul>
<li><strong>I numeri usabili in tabindex</strong> possono crescere all&#8217;infinito</li>
<li><strong>Le lettere usabili in accesskey sono limitate</strong>. Ho ristretto il dominio di caratteri usabili in : cifre decimali {0..9} e lettere dell&#8217;alfabeto inglese. Pertanto, nella funzione, si deve aggiungere un controllo per evitare di aggiungere in ogni pagina più di 27 accesskey con carattere alfabetico.</li>
<li><strong>Generalmente il numero di link del menu principale sono limitati</strong>, e spesso i menu, per mantenere la compatibilità con le altre pagine del sito, vengono inseriti nelle pagine php con delle require o require_once. Pertanto la mia scelta implementativa è stata quella di supporre che i link del menu principale possano essere scritti per intero, e senza automazione (compresi accesskey e tabindex) direttamente dal programmatore e usare in entrambi gli attributi le cifre decimali.</li>
</ul>
<p>Per esempio immaginiamo di avere un menu principale con 5 link:</p>
<p><code><br />
&lt;div id="menu"&gt;<br />
&lt;a href="link1.php" tabindex="1"  accesskey="1"&gt; pagina1 &lt;/a&gt;<br />
&lt;a href="link2.php" tabindex="2"  accesskey="2"&gt; pagina2 &lt;/a&gt;<br />
&lt;a href="link3.php" tabindex="3"  accesskey="3"&gt; pagina3 &lt;/a&gt;<br />
&lt;a href="link4.php" tabindex="4"  accesskey="4"&gt; pagina4 &lt;/a&gt;<br />
&lt;a href="link5.php" tabindex="5"  accesskey="5"&gt; pagina5 &lt;/a&gt;<br />
&lt;/div&gt;</code></p>
<p>Con questo schema, abbiamo dato enfasi ai link del menu principale che ovviamente avranno i primi numeri interi e quindi verranno individuati prima nell&#8217;ordine delle tabindex, ma non solo&#8230;abbiamo creato una netta distinzione tra i link del menu principale (individuabili con gli accesskey numerici) e gli altri link secondari della pagina (individuabili con gli accesskey alfabetici).</p>
<p>Passiamo a questo punto all&#8217;implementazione della funzione.</p>
<p><code><br />
&lt;?<br />
$num_link_secondario = 1;<br />
function accessibility()<br />
{<br />
$link_menu_principale=5;  // perchè abbiamo ipotizzato 5 link nel menu principale<br />
global $num_link_secondario;<br />
$stringa_tabindex = $link_menu_principale + $num_link_secondario;<br />
if($num_link_secondario &lt; 27)<br />
{<br />
$stringa_accesskey = chr($num_link_secondario + 96);<br />
echo " accesskey=\"" . $stringa_accesskey . "\" tabindex=\"" . $stringa_tabindex . "\" ";<br />
}<br />
else<br />
echo " tabindex=\"" . $stringa_tabindex . "\" ";<br />
$num_link_secondario++;<br />
}<br />
?&gt;</code></p>
<p>A questo punto, al programmatore, non resterà altro che richiamare la funzione ogni volta che si scrive il link con la certezza di non commettere errori e di rendere più completa, accessibile e ben strutturata la pagina:</p>
<p><code><br />
&lt;a href="link.php" &lt;? accessibility() ?&gt; &gt; link secondario&lt;/a&gt;<br />
</code></p>
<p>Ovviamente dobbiamo ricordarci di mettere un require o require_once con il collegamento al file che contine l&#8217;implementazione della funzione.</p>
<p>Immaginando che il link secondario indicato nell&#8217;esempio è il primo link che l&#8217;interprete php legge , il codice html che ne verrà fuori sarà :<br />
<code><br />
&lt;a href="link.php" accesskey="a"  tabindex="6" &gt; link secondario&lt;/a&gt;<br />
</code><br />
Il secondo link sarà del tipo :<br />
<code><br />
&lt;a href="altro_link.php" accesskey="b"  tabindex="7" &gt; bla bla bla.. &lt;/a&gt;<br />
</code></p>
<p>E così via&#8230;.a questo punto non resta che augurarvi BUONA PROGRAMMAZIONE!</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=6064">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/programmiamo-laccessibilita-tabindex-e-accesskey-con-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Voglio diventare webdeveloper freelance: qualche consiglio?</title>
		<link>http://www.italianwebdesign.it/voglio-diventare-webdeveloper-freelance-qualche-consiglio/</link>
		<comments>http://www.italianwebdesign.it/voglio-diventare-webdeveloper-freelance-qualche-consiglio/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 07:08:03 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=5817</guid>
		<description><![CDATA[Innanzitutto vediamo CHI è il webdeveloper e di cosa si occupa: (fonte Wikipedia) Il web developer, parola di origine inglese traducibile con sviluppatore web, è una figura professionale che si occupa dello sviluppo di applicazioni web, in particolare dello sviluppo del codice di programmazione, dell&#8217;ottimizzazione dei database e dei linguaggi di markup. Lavora in team [...]]]></description>
			<content:encoded><![CDATA[<p>Innanzitutto vediamo CHI è il webdeveloper e di cosa si occupa: (fonte Wikipedia)</p>
<blockquote><p>Il <strong>web developer</strong>, parola di origine inglese traducibile con <strong><em>sviluppatore web</em></strong>, è una  figura professionale che si occupa dello sviluppo di applicazioni web,  in particolare dello sviluppo del codice di programmazione,  dell&#8217;ottimizzazione dei database e dei <a title="Linguaggi  di markup" href="http://it.wikipedia.org/wiki/Linguaggi_di_markup">linguaggi di markup</a>.</p>
<p>Lavora in team con figure come <a title="Web design" href="http://it.wikipedia.org/wiki/Web_design">web  designer</a>, <a title="Webmaster" href="http://it.wikipedia.org/wiki/Webmaster">webmaster</a>, web <a title="Content manager (pagina inesistente)" href="http://it.wikipedia.org/w/index.php?title=Content_manager&amp;action=edit&amp;redlink=1">content  manager</a> e con esse non deve essere confuso. Il web developer spesso  non progetta la grafica di un sito, non si occupa dei contenuti né della  creazione di file multimediali come video o audio, ma si occupa  principalmente dell&#8217;assemblaggio, della struttura e delle automazioni di  un sito. Questo perché generalmente il <em>web developer</em> può contare  su conoscenze tecniche estremamente più approfondite rispetto alle  altre figure che operano nel settore. Un web developer infatti deve  vantare conoscenze inerenti i protocolli di rete, i server web ed i loro  moduli principali, i database, la sicurezza informatica ed i linguaggi  di programmazione oltre ad un&#8217;approfondita conoscenza dei <a title="Linguaggi  di markup" href="http://it.wikipedia.org/wiki/Linguaggi_di_markup">linguaggi di markup</a> più diffusi sul  web. Molto spesso i web developer sono anche web designer, oppure lo  sono stati in passato.</p></blockquote>
<p><img class="alignleft size-medium wp-image-5818" title="opensource" src="http://www.italianwebdesign.it/wp-content/uploads/2010/04/opensource-348x300.jpg" alt="opensource 348x300 Voglio diventare webdeveloper freelance: qualche consiglio?" width="244" height="210" />Chiarito questo punto fondamentale, e le conoscenze che deve avere, un webdeveloper può essere specializzato in uno o più linguaggi. Ci sono ad esempio i webdeveloper che lavorano puramente in ambiente <strong>Windows</strong> e che quindi conoscono alla perfezione i linguaggi <strong>asp e aspNet</strong>, nonchè sono più esperti di database <strong>Sql</strong> relativi (perdonate qui la mia ignoranza), e ci sono quelli più specializzati negli open source, quindi da sistemi come <strong>Linux e Apache</strong> a linguaggi come <strong>php</strong> a database <strong>Mysql</strong>, e di conseguenza, ma non necessariamente, specializzati anche in uno o più cms che si basano sul php come <strong>Joomla, Magento, WordPress, Drupal</strong>, e via dicendo. Ultimamente stanno trovando molto impiego anche gli sviluppatori di applicazioni <strong>iPhone</strong>, che se volete è meno &#8220;web&#8221; developer, anche se alla fine molte applicazioni fanno riferimento a protocolli web e il linguaggio usato alla fine è molto simile al php.<br />
E poi c&#8217;è anche <strong>Ajax</strong>, non dimentichiamolo! E <strong>actionscript</strong> per Flash, nonchè il nuovo <strong>Flex</strong>!</p>
<p>Per la poca esperienza che ho io, correggetemi se sbaglio, per i primi è più facile trovare un lavoro di consulenza presso aziende di software o applicativi che si appoggiano al web, per i secondi è forse più facile invece diventare freelance e destreggiarsi in diverse situazioni e necessità del web. Ci si può infatti specializzare che so, in plugin per WordPress, per Joomla, Drupal o diventare esperti configuratori e installatori di Magento e sviluppatori di componenti relativi.</p>
<h2>Come trovare i primi &#8220;lavoretti&#8221;</h2>
<p>Molti di voi magari sono appena usciti dall&#8217;università, o ancora hanno imparato ad usare certi linguaggi in occasioni diverse, oppure conoscono alla perfezione C++ ma con php non hanno ancora avuto modo di cimentarsi.<br />
Come prima cosa procuratevi un manuale php, o una<a href="http://www.amazon.co.uk/gp/product/1847193595?ie=UTF8&amp;tag=hpug&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1847193595"> guida beginners sui plugin di WordPress</a>, o ancora <a href="http://codex.wordpress.org/Writing_a_Plugin">studiate online</a> come crearli. Cimentatevi nei primi esempi, e dopodichè buttatevi nella rete e cominciate!<br />
Ecco alcuni siti dove trovare le prime commissioni:</p>
<ul>
<li><a href="http://forum.html.it/forum/forumdisplay.php?s=&amp;forumid=67">Html.it  forum annunci</a></li>
<li><a href="../category/professione-webdesigner/annunci-di-lavoro/">Italianwebdesign  offerte</a></li>
<li><a href="http://www.link2me.it/progetti.asp?aid=4">Linktome –  Progetti</a></li>
<li><a href="http://www.neolancer.it/">Neolancer</a></li>
<li><a href="http://www.progettofreelancer.com/">Progetto Freelancer</a></li>
<li><a href="http://www.webjob.it/">Webjob</a></li>
</ul>
<p>Li trovate sempre in coda ai link di Italianwebdesign. Trovate il lavoretto per il quale vi sentite più ferrati e fate la vostra proposta. Piano piano potrete buttarvi in progetti ancora più ambiziosi, ma non smettete mai di cercare.<br />
Cercate anche sul web fra le <strong>webagency</strong> esistenti, ma anche singoli e nuovi <strong>webdesigner freelance</strong>, che magari non hanno ancora una rete adeguata di conoscenti developer e che magari si trovano in difficoltà anche solo per creare un form php.</p>
<p>Purtroppo da un lato credo che siano pochi i progetti in cui un webdeveloper sviluppa tutto da zero, ma quando lo fa è perchè il sito è un <strong>progetto tutto nuovo</strong>, quindi spesso una <a href="http://it.wikipedia.org/wiki/Startup_%28economia%29">startup</a> o un grande progetto, che quindi frutta il giusto compenso, che in altri casi sarebbe esiguo e non rapportato effettivamente al lavoro svolto.</p>
<p><strong>Prego i webdeveloper che seguono questa community di correggermi e aggiungere eventuali loro riflessioni, mentre prego chi ne avesse bisogno (webdeveloper e non) di contattare il mio nuovo e fresco webdeveloper (nonchè fidanzato): <a href="mailto:antonio@lauryn.it">antonio@lauryn.it</a></strong></p>
<p>Grazie!</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=5817">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/voglio-diventare-webdeveloper-freelance-qualche-consiglio/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Come creare un plugin per WordPress: raccolta di risorse</title>
		<link>http://www.italianwebdesign.it/come-creare-un-plugin-per-wordpress-raccolta-di-risorse/</link>
		<comments>http://www.italianwebdesign.it/come-creare-un-plugin-per-wordpress-raccolta-di-risorse/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 06:45:29 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Wordpress plugins]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=5637</guid>
		<description><![CDATA[Personalmente non mi ci sono mai arrisicata, ma sto raccogliendo informazioni per conto del mio fidanzato, che li affronterà non appena arriverà la risorsa cartacea per eccellenza, che ho ordinato su Amazon: WordPress Plugin Developement: the beginner&#8217;s guide Ed ho poi recuperato alcune risorse utili: la risorsa fondamentale di WordPress Codex A Crash-Course in WordPress [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-5638" title="wordpress-plugin-2" src="http://www.italianwebdesign.it/wp-content/uploads/2010/03/wordpress-plugin-2-218x120.jpg" alt="wordpress plugin 2 218x120 Come creare un plugin per Wordpress: raccolta di risorse" width="218" height="120" />Personalmente non mi ci sono mai arrisicata, ma sto raccogliendo informazioni per conto del mio fidanzato, che li affronterà non appena arriverà la risorsa cartacea per eccellenza, che ho ordinato su Amazon:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/1847193595?ie=UTF8&amp;tag=hpug&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1847193595">WordPress Plugin Developement: the beginner&#8217;s guide</a></li>
</ul>
<p>Ed ho poi recuperato alcune risorse utili:</p>
<ul>
<li>la risorsa fondamentale di <a href="http://codex.wordpress.org/Writing_a_Plugin">WordPress Codex</a></li>
<li><a href="http://net.tutsplus.com/videos/screencasts/a-crash-course-in-wordpress-plugin-development/">A Crash-Course in WordPress Plugin Development</a></li>
<li><a href="http://markjaquith.wordpress.com/2006/03/04/wp-tutorial-your-first-wp-plugin/">WP Tutorial: Your First WP Plugin</a></li>
<li><a href="http://www.studio404.it/2006/wordpress-21-e-lo-sviluppo-di-plugin.html">WordPress 2.1 e lo sviluppo di plugin</a></li>
<li><a href="http://template.where-seek.com/creare-un-plugin-per-wordpress/">Creare un plugin per WordPress</a></li>
<li><a href="http://www.davidonzo.com/post/810/come-creare-un-plugin-per-wordpress/">Come creare un plugin per WordPress</a></li>
</ul>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=5637">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/come-creare-un-plugin-per-wordpress-raccolta-di-risorse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Uno spazio per gli sviluppatori iPhone: nasce Developers iPhone</title>
		<link>http://www.italianwebdesign.it/uno-spazio-per-gli-sviluppatori-iphone-nasce-developers-iphone/</link>
		<comments>http://www.italianwebdesign.it/uno-spazio-per-gli-sviluppatori-iphone-nasce-developers-iphone/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 06:31:57 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=4146</guid>
		<description><![CDATA[Le possibilità degli sviluppatori web si stanno spostando&#8230;dai cms, che oramai vengono soppiantati dai più famosi cms open source, i web developers ora si buttano sul mercato (proficuo?) delle applicazioni iPhone. Il nostro amico Dimix ha avuto molto successo con una sua recente applicazione, la sua prima a dir la verità, e ora si è [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.italianwebdesign.it/wp-content/uploads/2009/07/iphone-nero.jpg"><img class="alignright size-full wp-image-4147" title="iphone-nero" src="http://www.italianwebdesign.it/wp-content/uploads/2009/07/iphone-nero.jpg" alt="iphone nero Uno spazio per gli sviluppatori iPhone: nasce Developers iPhone" width="247" height="281" /></a>Le possibilità degli sviluppatori web si stanno spostando&#8230;dai cms, che oramai vengono soppiantati dai più famosi <strong>cms open source</strong>, i web developers ora si buttano sul mercato (proficuo?) delle <strong>applicazioni iPhone</strong>.<br />
Il nostro amico <a href="http://webstandards.dimix.it/2009/06/15/developers-iphone-la-community-per-gli-sviluppatori-iphone-in-italia/">Dimix</a> ha avuto molto successo con una sua recente applicazione, la sua prima a dir la verità, e ora si è buttato nel settore aprendo anche <a href="http://www.developers-iphone.com/">una community</a> che raggruppa chi si occupa di applicazioni iPhone appunto.<br />
Invito Dimix a raccontarci di come gli è capitata questa occasione e come fare per diventare sviluppatori in questo campo, e soprattutto quanto si guadagna!! eheh</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=4146">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/uno-spazio-per-gli-sviluppatori-iphone-nasce-developers-iphone/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Creare un Indice di pagine web con PHP</title>
		<link>http://www.italianwebdesign.it/creare-un-indice-di-pagine-web-con-php/</link>
		<comments>http://www.italianwebdesign.it/creare-un-indice-di-pagine-web-con-php/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 06:15:32 +0000</pubDate>
		<dc:creator>Dario Venneri</dc:creator>
				<category><![CDATA[Cms e developing]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Xhtml]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=3700</guid>
		<description><![CDATA[L&#8217;altra volta mi è capitato di avere una lista di URL tipo questa: http://www.italianwebdesign.it/voglio-propormi-a-qualche-webagency-esiste-una-lista-delle-piu-importanti-in-italia/ http://www.italianwebdesign.it/wordpress-plugin-sidebar-photoblog-per-mostrare-lanteprima-delle-vostre-gallery/ http://www.italianwebdesign.it/tutorial-illustrator-effetto-gradiente-o-blend/ http://www.italianwebdesign.it/rdfa-la-genesi-del-web-semantico/ http://www.italianwebdesign.it/come-tutelarsi-dalla-follia-dei-clienti/ Solo che contava circa 240 url. Di questi URL dovevo creare del codice html ed ottenere questo risultato: Voglio propormi a qualche webagency: esiste una lista delle più importanti in Italia? WordPress plugin: sidebar photoblog per mostrare [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-2823" title="ilovephp" src="http://www.italianwebdesign.it/wp-content/uploads/2009/02/ilovephp-300x218.gif" alt="ilovephp 300x218 Creare un Indice di pagine web con PHP" width="300" height="218" />L&#8217;altra volta mi è capitato di avere una lista di URL tipo questa:</p>
<blockquote><p>http://www.italianwebdesign.it/voglio-propormi-a-qualche-webagency-esiste-una-lista-delle-piu-importanti-in-italia/</p>
<p>http://www.italianwebdesign.it/wordpress-plugin-sidebar-photoblog-per-mostrare-lanteprima-delle-vostre-gallery/</p>
<p>http://www.italianwebdesign.it/tutorial-illustrator-effetto-gradiente-o-blend/</p>
<p>http://www.italianwebdesign.it/rdfa-la-genesi-del-web-semantico/</p>
<p>http://www.italianwebdesign.it/come-tutelarsi-dalla-follia-dei-clienti/</p></blockquote>
<p>Solo che contava circa 240 url.<span id="more-3700"></span><br />
Di questi URL dovevo creare del codice html ed ottenere questo risultato:</p>
<blockquote><p><a href="http://www.italianwebdesign.it/voglio-propormi-a-qualche-webagency-esiste-una-lista-delle-piu-importanti-in-italia/">Voglio propormi a qualche webagency: esiste una lista delle più importanti in Italia? </a><br />
<a href="http://www.italianwebdesign.it/wordpress-plugin-sidebar-photoblog-per-mostrare-lanteprima-delle-vostre-gallery/">WordPress plugin: sidebar photoblog per mostrare l’anteprima delle vostre gallery </a><br />
<a href="http://www.italianwebdesign.it/tutorial-illustrator-effetto-gradiente-o-blend/">Tutorial Illustrator: effetto gradiente o blend </a><br />
<a href="http://www.italianwebdesign.it/rdfa-la-genesi-del-web-semantico/">RDFa : La genesi del web semantico </a><br />
<a href="http://www.italianwebdesign.it/come-tutelarsi-dalla-follia-dei-clienti/">Come tutelarsi dalla follia dei clienti </a></p></blockquote>
<p>Dunque avrei dovuto visionare manualmente il titolo della pagina per 247 indirizzi, copiarlo e creare l&#8217;html adeguato. Ora, siccome dovevo allenarmi per battere il mio record a <a href="http://en.wikipedia.org/wiki/The_Typing_of_the_Dead" target="_blank">Typing of the Dead</a> e siccome il titolo della pagina lo si poteva leggere nell&#8217;url, ho deciso di fare tutto a mano, pur sapendo che <strong>PHP avrebbe potuto fare tutto per me</strong>.</p>
<p>Comunque Typing of the Dead non è proprio il più famoso tra i giochi, e non tutti hanno il tempo, la voglia e la pazienza per indicizzare tante pagine web (nemmeno io, di solito), e tornato a casa ho deciso di mettere a punto lo script per fare lo stesso lavoro che io avevo fatto a mano.</p>
<p>Lo script completo potete scaricarlo da <a rel="attachment wp-att-3709" href="http://www.italianwebdesign.it/creare-un-indice-di-pagine-web-con-php/indicephp/">Qui</a></p>
<p>Ma qual è la ricetta di questo script? Beh! Per prima cosa abbiamo bisogno di una lista di URL, proprio come sopra.<br />
A questo punto prendiamo la lista e mettiamola in una variabile chiamata <strong>$url_list;</strong>.</p>
<p>Dobbiamo poi trasformare la lista in un Array. Un <a href="http://it.wikipedia.org/wiki/Array" target="_blank">Array</a> è, in profane parole, una variabile che contiene al suo interno altre variabili, in modo da creare un indice. Nel nostro caso l&#8217;array che verrà fuori è tipo questo:</p>
<blockquote><p>$array_url[0] = &#8216;http://indirizzo1/&#8217;;<br />
$array_url[1] = &#8216;http://indirizzo2/&#8217;;<br />
$array_url[2] = &#8216;http://indirizzo3/&#8217;;</p></blockquote>
<p>Come vedete è numerato e parte da 0.<br />
Per ottenerlo dobbiamo usare un&#8217;espressione regolare. Questa espressione regolare dirà a PHP di indicizzare una porzione di testo ogni qualvolta vengono soddisfatte determinate condizioni. Nel nostro caso la condizione è: andare d&#8217;accapo.<br />
Dunque usiamo la funzione <strong>preg_split();</strong> e scriviamo</p>
<blockquote><p>$array_url = preg_split(&#8216;/\r\n/&#8217;, $url_list);</p></blockquote>
<p><strong>$array_url</strong> sarà l&#8217;array, nella funzione preg_split a sinistra ci sono le condizioni da soddisfare e a destra la stringa da analizzare (nel nostro caso la lista di url nuda e cruda).</p>
<p>Fatto ciò abbiamo la nostra lista trasformata in un array, dunque siamo pronti per usarla a dovere in php.<br />
Creiamo un ciclo for in modo da navigare tutto l&#8217;array:</p>
<blockquote><p>for($x=0;$x&lt;count($array_url); $x++){}</p></blockquote>
<p>Questo ciclo for dice a PHP: &#8220;esegui le istruzioni che sono contenute tra parentesi graffe fintanto che la variabile $x, che come ti ho indicato inizialmente è uguale a zero, è minore del numero di indici contenuti nell&#8217;array (che otterrai con la funzione count), ed ogni volta che finisci di eseguire le istruzioni aggiungi +1 alla variabile x&#8221;.<br />
In questo modo PHP eseguirà le istruzioni contenute tra le parentesi graffe tante volte quanti sono gli URL della lista: in questo modo andremo appunto a creare il nostro indice in html.</p>
<p>Passiamo alle istruzioni contenute tra parentesi graffe:</p>
<blockquote><p>$geturl = file_get_contents($array_url[$x]);</p></blockquote>
<p>Nella variabile <strong>$geturl;</strong> verrà salvato l&#8217;html dell&#8217;url indicato, ottenuto tramite la funzione<strong> file_get_contents();</strong>. Tra le parentesi di file_get_contents scriviamo <strong>$array_url[$x]</strong>. In pratica stiamo dicendo: raggiungi l&#8217;array nel punto definito dalla variabile $x.<br />
A volte file_get_contents; non funziona, quindi potreste dare un&#8217;occhiata a <a href="http://www.howtogeek.com/howto/programming/php-get-the-contents-of-a-web-page-rss-feed-or-xml-file-into-a-string-variable/">questo workaround</a>.</p>
<p>Poi scriviamo:</p>
<blockquote><p>$title[$x] = preg_replace(&#8220;/.*&lt;title[^&gt;]*&gt;|&lt;\/title&gt;.*/si&#8221;, &#8220;&#8221;, $geturl);</p></blockquote>
<p>Questa funzione utilizza le espressioni regolari, tramite <strong>preg_replace();</strong>, per estrarre il tag title della pagina e salvarlo in un nuovo array chiamato $title.</p>
<p>Poi rifiniamo il titolo togliendo il nome del sito, nel nostro esempio stiamo navigando IWD dunque toglieremo &#8221; Italian webdesign&#8221;. Per farlo useremo la funzione <strong>str_replace();</strong>:</p>
<blockquote><p>$title[$x] = str_replace(&#8220;| Italian webdesign&#8221;, &#8220;&#8221;, $title[$x]);</p></blockquote>
<p>Infine inviamo l&#8217;html al browser con la funzione echo e chiudiamo le parentesi graffe:</p>
<blockquote><p>echo &#8216;&lt;li&gt;&lt;a href=&#8221;&#8216;.$array_url[$x].&#8217;&#8221;&gt;&#8217;.$title[$x].&#8217;&lt;/a&gt;&lt;/li&gt;&#8217;;<br />
}</p></blockquote>
<p>Questo è tutto ciò che vi serve per navigare le pagine ed estrarne il tag title. Certo, non diventerete forti a Typing of the Dead, però risparmierete molto, moltissimo tempo.</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=3700">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/creare-un-indice-di-pagine-web-con-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Il server side include (SSI) ci aiuta per i pezzi di codice che si ripetono</title>
		<link>http://www.italianwebdesign.it/il-server-side-include-ssi-ci-aiuta-per-i-pezzi-di-codice-che-si-ripetono/</link>
		<comments>http://www.italianwebdesign.it/il-server-side-include-ssi-ci-aiuta-per-i-pezzi-di-codice-che-si-ripetono/#comments</comments>
		<pubDate>Mon, 11 May 2009 06:13:31 +0000</pubDate>
		<dc:creator>Lauryn</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Xhtml e css]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[server side include]]></category>
		<category><![CDATA[ssi]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=3603</guid>
		<description><![CDATA[Molti di voi non sanno che&#8230;(e nemmeno io lo sapevo fino a poco tempo fa) esiste un metodo in html per includere pezzi di codice esattamente come si fa con il php. Questo metodo fa uso di una serie di comandi del server Linux / Apache che ovviamente dovete assicurarvi che siano attivi su vostro [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-3605" title="php" src="http://www.italianwebdesign.it/wp-content/uploads/2009/05/php.jpg" alt="php Il server side include (SSI) ci aiuta per i pezzi di codice che si ripetono" width="262" height="244" />Molti di voi non sanno che&#8230;(e nemmeno io lo sapevo fino a poco tempo fa) esiste un metodo in html per includere pezzi di codice esattamente come si fa con il php.</p>
<p>Questo metodo fa uso di una serie di comandi del server Linux / Apache che ovviamente dovete assicurarvi che siano attivi su vostro server. Penso sia poco usata come tecnica (e in effetti a malapena l&#8217;ho vista io per puro caso) perchè l&#8217;offerta di hosting Linux / Apache normalmente include anche le librerie php, pertanto questo include è molto più diretto ed efficace farlo con il php&#8230;<span id="more-3603"></span></p>
<p>Mi spiego per chi non sapesse di cosa stiamo parlando.</p>
<p>Vi sarà certamente capitato durante la creazione del codice dei vostri siti, di avere parti comuni e ripetute, tipo ad esempio un menu. Per comodità, nella previsione di future modifiche, si tende a tenere questo codice in un file a parte che viene &#8220;incluso&#8221; nel template originale tramite la funzione &#8220;include&#8221; di php. Ebbene è possibile farlo anche con il <a href="http://it.wikipedia.org/wiki/Server_Side_Include">SSI</a>. E&#8217; sufficiente che i files abbiano estensione .shtml ed è possibile includere la porzione di codice con questa sintassi:<br />
<code>&lt;!--#include file="menu.html" --&gt;</code></p>
<p>Domande?</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=3603">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/il-server-side-include-ssi-ci-aiuta-per-i-pezzi-di-codice-che-si-ripetono/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Creare una funzione per generare una galleria con PHP</title>
		<link>http://www.italianwebdesign.it/creare-una-funzione-per-generare-una-galleria-con-php/</link>
		<comments>http://www.italianwebdesign.it/creare-una-funzione-per-generare-una-galleria-con-php/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 07:21:01 +0000</pubDate>
		<dc:creator>Dario Venneri</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[galleria immagini]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.italianwebdesign.it/?p=2982</guid>
		<description><![CDATA[Oggi creeremo una lista di immagini. Vi sarà capitato di avere tante immagini e di doverle inserire, una per volta, in una pagina web. E di dover poi modificare il codice html della pagina quando nuove immagini soggiungevano. Con PHP questo processo può essere facilmente automatizzato. Per questo esercizio vi consiglio di scaricare il file [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-3140" title="folder_image" src="http://www.italianwebdesign.it/wp-content/uploads/2009/03/folder_image.png" alt="folder image Creare una funzione per generare una galleria con PHP" width="128" height="128" />Oggi creeremo una lista di immagini. Vi sarà capitato di avere<strong> tante immagini</strong> e di doverle inserire, una per volta, in una pagina web. E di dover poi modificare il codice html della pagina quando nuove immagini soggiungevano.</p>
<p>Con PHP questo processo può essere facilmente automatizzato.</p>
<p>Per questo esercizio vi consiglio di scaricare il<a href="http://www.italianwebdesign.it/?attachment_id=3012"> file degli esercizi</a>. All&#8217;interno troverete alcune foto e i file per iniziare. Estraete il contenuto nella cartella <em>iwd</em> che avevamo creato in seguito al primo articolo.</p>
<p><span id="more-2982"></span>Apriamo il file <em>galleria.inc.php</em> con il nostro editor preferito ed iniziamo a scrivere, tra i tag di apertura e chiusura di php:</p>
<blockquote><p>function galleria($cartella){</p>
<p>}</p></blockquote>
<p>In questo momento abbiamo dichiarato la creazione di una nuova funzione, chiamata galleria.</p>
<p>Una funzione è una serie di istruzioni da far eseguire a PHP. E&#8217; utile quando abbiamo una serie di istruzioni da far eseguire più volte in diversi punti di un sito e non vogliamo riscrivere interamente il codice. Lo racchiudiamo in una funzione e lo eseguiamo.</p>
<p>In questo caso la nostra funzione farà le seguenti cose:</p>
<ol>
<li>Leggerà il contenuto di una cartella da noi indicata, e salverà il nome di ogni singolo file in un array</li>
<li>Scorrerà l&#8217;array e invierà progressivamente al browser il codice html per mostrare le immagini</li>
</ol>
<p>Tra le parentesi graffe andranno scritte le istruzioni da far eseguire alla funzione. Tra queste scriviamo dunque:</p>
<blockquote><p>$listaFile = scandir($cartella);</p></blockquote>
<p>Come potete vedere c&#8217;è una nuova istruzione, ovvero <em>scandir</em>. Questa istruzione restituisce i nomi dei file presenti in una directory in un <em>Array</em>. <strong>Cos&#8217;è un array?</strong></p>
<p>Un array è, detto nel modo più terra terra che riesco ad elaborare, una serie di valori indicizzati all&#8217;interno di una variabile.</p>
<p>Ad esempio:</p>
<blockquote><p>$utente['nome'] = &#8216;Giancarlo&#8217;;</p>
<p>$utente['anni'] = 44;</p>
<p>$utente['sesso'] = &#8216;M&#8217;;</p></blockquote>
<p>Nel caso di scandir, un array restituito è <em>simile</em> a questo:</p>
<blockquote><p>$listaFile[0] = &#8216;.&#8217;;</p>
<p>$listaFile[1] = &#8216;..&#8217;;</p>
<p>$listaFile[2] = &#8216;foto1.jpg&#8217;;</p>
<p>$listaFile[3] = &#8216;foto2.jpgl&#8217;;</p></blockquote>
<p>Come potete notare l&#8217;array è ordinato numericamente.</p>
<p>Dobbiamo ora usare questa lista per creare l&#8217;html da inviare al browser.</p>
<p>Per farlo  useremo il ciclo <em>foreach</em>. Questo ciclo è stato creato appositamente per scorrere attraverso un array. Ripete le istruzioni contenute nel ciclo finché l&#8217;array non finisce (se dunque l&#8217;array ha 10 indici ripeterà le istruzioni 10 volte). Scriviamo:</p>
<blockquote><p>foreach($listaFile as $value){}</p></blockquote>
<p>In questo modo verrà eseguito un ciclo, ed ogni volta sarà assegnato il valore dell&#8217;indice raggiunto nell&#8217;Array $listaFile alla variabile $value.</p>
<p>All&#8217;interno possiamo indicare l&#8217;istruzione da eseguire, ovvero:</p>
<blockquote><p>echo &#8216;&lt;li&gt;&lt;img src=&#8221;&#8216;.$cartella.&#8217;/&#8217;.$value&#8217;&#8221; /&gt;&lt;/li&gt;&#8217;;</p></blockquote>
<p>Stiamo indicando a PHP di inviare al browser l&#8217;html che formerà la lista di immagini. La variabile $cartella è il nome della cartella, passato tramite la funzione, $value è il nome dell&#8217;immagine.</p>
<p>Il codice scritto fino ad adesso dovrebbe questo:</p>
<blockquote><p>function galleria($cartella){</p>
<p>$listaFile = scandir($cartella);</p>
<p>foreach($listaFile as $value){</p>
<p>echo &#8216;&lt;li&gt;&lt;img src=&#8221;&#8216;.$cartella.&#8217;/&#8217;.$value.&#8217;&#8221; /&gt;&lt;/li&gt;&#8217;;</p>
<p>}</p>
<p>}</p></blockquote>
<p>Facciamo una prima esecuzione di prova. Per richiamare una funzione basta scrivere il nome che le abbiamo assegnato seguito dalle parentesi tonde (in cui includiamo eventuali valori da passare alla funzione). Nel nostro caso scriviamo:</p>
<blockquote><p>galleria(&#8216;monumenti&#8217;);</p></blockquote>
<p>subito dopo la chiusura della funzione (è parentesi graffa } a indicarne la chiusura), e raggiungiamo lo script con il nostro browser, questo è l&#8217;html che otterremo:</p>
<blockquote><p>&lt;li&gt;&lt;img src=&#8221;monumenti/.&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/..&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza1.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza10.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza12.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza13.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza2.jpg&#8221; /&gt;&lt;/li&gt;</p></blockquote>
<p>Sicuramente noterete all&#8217;inizio della lista due punti. <em>Scandir</em> infatti non restituisce solo la lista dei file ma l&#8217;intero contenuto di una cartella, e quindi anche quei &#8220;puntini&#8221;. Per eliminarli basta aggiungere una condizione se all&#8217;interno del ciclo <em>foreach</em>.</p>
<p>Riprendiamo la nostra funzione e prima dell&#8217;istruzione <em>echo</em> all&#8217;interno del ciclo <em>foreach</em> scriviamo:</p>
<blockquote><p>if($value == &#8216;.&#8217; || $value == &#8216;..&#8217;){</p>
<p>continue;</p>
<p>}</p></blockquote>
<p>Cosa succede?</p>
<p>If, in inglese, vuol dire se. Con l&#8217;istruzione if, diciamo a PHP: se la condizione tra parentesi è vera allora esegui le istruzioni contenute tra le parentesi graffe.</p>
<p>In questo caso se $value è uguale (e per indicare l&#8217;uguale servono due simboli =, quindi ==) alla stringa &#8216;.&#8217;, oppure (e si usano i simboli || ) $value è uguale alla stringa &#8216;..&#8217;, esegui le istruzioni contenute tra le parentesi graffe (nel nostro caso <em>continue;</em>).</p>
<p>Questa istruzione, <em>continue;</em>, dice a PHP di saltare tutte le istruzioni contenute nel ciclo e di continuare ad eseguirlo dal punto successivo.</p>
<p>In questo modo quando andremo ad eseguire lo script, l&#8217;html prodotto sarà:</p>
<blockquote><p>&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza1.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza10.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza12.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza13.jpg&#8221; /&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;img src=&#8221;monumenti/cosenza2.jpg&#8221; /&gt;&lt;/li&gt;</p></blockquote>
<p>Che è proprio l&#8217;html che vogliamo. Adesso non ci resta che riusare la funzione nelle pagine web dei nostri siti. Cancelliamo l&#8217;ultima riga (<em>galleria(&#8216;monumenti&#8217;);</em>), poiché ci serviva solo per provare lo script.</p>
<p>Creiamo due nuovi file chiamati <em>panorami.php</em> e <em>monumenti.php</em>. All&#8217;inizio di ogni file scriviamo:</p>
<blockquote><p>&lt;?php require(&#8216;galleria.inc.php&#8217;) ?&gt;</p></blockquote>
<p>in modo da includere la funzione. Ora scriviamo tutto l&#8217;html di rito, e quando vorremo mostrare la galleria basterà scrivere:</p>
<blockquote><p>&lt;ul&gt;</p>
<p>&lt;?php galleria(&#8216;monumenti&#8217;); ?&gt;</p>
<p>&lt;/ul&gt;</p></blockquote>
<p>Per mostrare il contenuto della cartella monumenti e:</p>
<blockquote><p>&lt;ul&gt;</p>
<p>&lt;?php galleria(&#8216;panorami&#8217;); ?&gt;</p>
<p>&lt;/ul&gt;</p></blockquote>
<p>per mostrare il contenuto della cartella panorami.</p>
<p>Ovviamente potrete creare diverse cartelle, con diversi nomi, basterà poi indicarlo   nella funzione.</p>
<p>Questa è una funzione basilare, potete infatti aggiungere eccezioni, regole, ecc, che poi saranno richiamate ogni volta che userete la funzione.</p>
<div class="amazon-box"> <box-title>Libri da non perdere:</box-title></br><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=8848125980" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330928&ref=tf_til&fc1=666666&IS2=1&lt1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8850330251&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?lt1=_blank&bc1=ffffff&IS2=1&bg1=FFFFFF&fc1=666666&lc1=4F943E&t=italianw-21&o=29&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=8848118674" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-it.amazon.it/e/cm?t=italianw-21&o=29&p=8&l=as1&asins=8848118666&ref=tf_til&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=4F943E&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><div class="sign">Amazon-Box creato da <a href="http://www.giuseppefrattura.it">Giuseppe Frattura</a></div></div>
                            <div id="aspdf">
                                <a href="http://www.italianwebdesign.it/wp-content/plugins/as-pdf/generate.php?post=2982">
                                    <span>Scarica il pdf di questo articolo</span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://www.italianwebdesign.it/creare-una-funzione-per-generare-una-galleria-con-php/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
	</channel>
</rss>

