<?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>ZenGFX.net &#187; SQL</title>
	<atom:link href="http://www.blog.zengfx.net/category/tutorial/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.zengfx.net</link>
	<description>Graphic &#38; Informatic Resources</description>
	<lastBuildDate>Tue, 10 May 2011 10:11:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>MixPod Patch 2.0</title>
		<link>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/</link>
		<comments>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 14:18:27 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[GDR/CD]]></category>
		<category><![CDATA[Mixpod]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[Playlist]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=487</guid>
		<description><![CDATA[Ho aggiornato la versione del lettore mp3 mixpod.com con nuove interessanti novità senza contare dei controlli aggiuntivi che lo rendono molto più pratico all&#8217;uso per gli utenti meno esperti. Le aggiunte che sono state fatte sono le seguenti: Javascript per l&#8217;aggiunta di una palette di selezione colori con anteprima Javascript per il controllo dei campi [...]]]></description>
			<content:encoded><![CDATA[<p>Ho aggiornato la versione del lettore mp3 mixpod.com con nuove interessanti novità senza contare dei controlli aggiuntivi che lo rendono molto più pratico all&#8217;uso per gli utenti meno esperti.<br />
Le aggiunte che sono state fatte sono le seguenti:</p>
<ol>
<li>Javascript per l&#8217;aggiunta di una palette di selezione colori con anteprima</li>
<li>Javascript per il controllo dei campi dati inseriti.</li>
</ol>
<p>Questa è un anteprima della palette per l&#8217;inserimento dei colori:</p>
<p align="center"><img src="/immagini/mixpod2/color.jpg" alt="Palette Colori" /></p>
<p>Ed invece qui un anteprima del form di inserimento dei dati per il lettore:</p>
<p align="center"><img src="/immagini/mixpod2/pannello.jpg" alt="Inserimento dati" /></p>
<p><span id="more-487"></span><br />
<strong>Cosa fa?</strong></p>
<p>Il plug-in permette di inserire all&#8217;interno del proprio sito un pratico form da compilare con anteprima dei colori e selezione della skin che permetterà di utilizzare il proprio account di mixpod.com senza bisogno di conoscere nulla di HTML e senza dover inserire alcun codice.<br />
Grazie alla palette, sarà facoltativo anche ricavare i colori della propria playlist, infatti, potranno praticamente essere scelti ed inseriti automaticamente, proprio come la skin.</p>
<p><strong>Come si installa?</strong></p>
<p>All&#8217;interno del pacchetto troverete i seguenti file:<br />
<em><br />
scheda.php<br />
scheda3.php<br />
mixpod.js<br />
301a.js<br />
musica.sql<br />
README.txt</em></p>
<p><strong>Javascript</strong></p>
<p>Il primo passo è semplicemente quello di mettere nella cartella principale del sito, o dove meglio preferite l&#8217;importante che poi ricordiate di modificare il path nel richiamare lo script, i due file.js che serviranno per il corretto funzionamento del plug-in.<br />
E&#8217; bene spendere nello specifico alcune parole per i due script.</p>
<p><em><strong>301a.js</strong></em></p>
<p>Al suo interno troverete tutte le indicazioni sotto forma di commenti, ricordo che è stato realizzato da <a href="http://www.free-color-picker.com" target="_blank">http://www.free-color-picker.com</a> al suo interno troverete anche le avvertenze d&#8217;uso ossia, non modificare in alcun modo lo script per garantirne il corretto funzionamento.</p>
<p><em><strong>Mixpod.js</strong></em></p>
<p>questo è stato realizzato da me e semplicemente fa il controllo sui dati inseriti ossia, i tre colori e l&#8217;id.</p>
<pre class="brush: javascript">
function checkMixPod(){
	var test = true;
	var id = document.dati.myid.value;
	var color1 = document.dati.color1.value;
	var color2 = document.dati.color2.value;
	var color3 = document.dati.color3.value;
	var espressione = /^#+[A-Fa-f0-9]{6}/;

	if ((isNaN(id))||(parseInt(id)!=id)){
		alert(&quot;Hai inserito un numero ID non valido, ricontrollalo!&quot;);
		document.dati.myid.focus();
		test = false;
	}
	if ((color1 == &quot;&quot;)||(color1.length !=7)||(!(espressione.test(color1)))){
		alert(&quot;Codice colore 1 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color1.focus();
		test = false;
	}
	if ((color2 == &quot;&quot;)||(color2.length != 7)||(!(espressione.test(color2)))){
		alert(&quot;Codice colore 2 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color2.focus();
		test = false;
	}
	if ((color3 == &quot;&quot;)||(color3.length != 7)||(!(espressione.test(color3)))){
		alert(&quot;Codice colore 3 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color3.focus();
		test = false;
	}
	return test;
}
</pre>
<p>Lo script si assicura che l&#8217;invio dei dati venga bloccato nel caso in cui:</p>
<ol>
<li>L&#8217;ID non è un intero</li>
<li>Il colore non è in una forma valida</li>
</ol>
<p>Per il colore vale spendere due parole, esso controlla fondamentalmente che la stringa non sia vuota, che sia lunga 7 caratteri (6 del codice colore e uno per il cancelletto) e con un espressione regolare controlla che le stringhe inizino sempre con # ed abbiano i caratteri compresi tra AF af e 09.</p>
<p>Se questo non dovesse essere vero, allora restituirà un alert comunicando il messaggio d&#8217;errore e dove si è verificato bloccando l&#8217;invio per consentire all&#8217;utente di inserire i dati corretti.</p>
<p><strong>SQL</strong></p>
<p>Fatto questo, si passerà alla modifica del database, vi basterà semplicemente importare in esso il file musica.sql che apporterà le modifiche necessarie alla tabella Personaggio.</p>
<pre class="brush: sql">
ALTER TABLE Personaggio ADD MyID integer(11) default &#039;0&#039;;
ALTER TABLE Personaggio ADD Skin varchar(30) default &#039;myflashfetish-mp3-player.swf&#039;;
ALTER TABLE Personaggio ADD Color1 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color2 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color3 varchar(6) default &#039;000000&#039;;
</pre>
<p><strong>Scheda.php</strong></p>
<p>Le modifiche da apportare qui non sono molto differenti da quelle fatte nella versione 1.0 se non per ulteriori semplici controlli.<br />
Comunque nel codice base, sono presenti dei commenti molto semplici che vi permetteranno di capire da dove iniziano e dove finiscono le modifiche.<br />
Le troverete alle seguenti posizioni del file che scaricherete dal sito:<br />
Riga 24-30</p>
<pre class="brush: php">
 $myid = ereg_replace(&quot;[^0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;myid&#039;]);
 $skin = ereg_replace(&quot;[^A-Za-z0-9.-]&quot;, &quot;0&quot;, $_POST[&#039;skin&#039;]);
 $color1 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color1&#039;], -6));
 $color2 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color2&#039;],-6));
 $color3 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color3&#039;],-6));
</pre>
<p>Queste modifiche servono semplicemente a togliere il # dal codice esadecimale che viene passato come parametro (substr) ed aggiungere un controllo con un espressione regolare che ci assicura ulteriormente che, i valori ricevuti siano effettivamente compresi tra AF, af, 09 per i codici esadecimali e controlla che l&#8217;ID sia un valore compreso tra 0 e 9 ossia un intero.</p>
<p>Le altre modifiche le troverete dalla riga 179 alla 185:</p>
<pre class="brush: php">
$myid =trim($myid);
$skin =trim($skin);
$color1 =trim($color1);
$color2 =trim($color2);
$color3 =trim($color3);
</pre>
<p>Poi per l&#8217;inserimento si andrà a modificare la query alla riga 238-244</p>
<pre class="brush: php">
$MySql .= &quot; MyID = &#039;&quot;.$myid.&quot;&#039;,&quot;;
$MySql .= &quot; Skin = &#039;&quot;.$skin.&quot;&#039;,&quot;;
$MySql .= &quot; Color1 = &#039;&quot;.$color1.&quot;&#039;,&quot;;
$MySql .= &quot; Color2 = &#039;&quot;.$color2.&quot;&#039;,&quot;;
$MySql .= &quot; Color3 = &#039;&quot;.$color3.&quot;&#039;&quot;;
</pre>
<p>Finita la parte di modifica per il salvataggio dei dati, andremo a modificare la visualizzazione della scheda per mostrare il nostro lettore MP3. Come sempre questa parte trova ampia personalizzazione dato che, non c&#8217;è un vero e proprio posto dove per esempio potevo collocarlo, ma starà al webmaster decidere dove e come posizionarlo nel modo più idoneo alla sua community.<br />
Le modifiche iniziano dalla riga 464 – 571.</p>
<pre class="brush: php">
&lt;?
if(($rs[&#039;MyID&#039;] != 0)){
	$height = 0;
	$width = 0;
.....
.....
&lt;tr&gt;&lt;td colspan=2 align=center&gt;
&lt;?
echo &quot;&lt;center&gt;&lt;p style=&#039;visibility:visible;&#039;&gt;&lt;embed src=&#039;http://assets.myflashfetish.com/swf/mp3/&quot;.$rs[&#039;Skin&#039;].&quot;?myid=&quot;.$rs[&#039;MyID&#039;].&quot;&amp;path=2009/09/27&#039; quality=&#039;high&#039; wmode=&#039;transparent&#039; flashvars=&#039;mycolor=&quot;.$rs[&#039;Color1&#039;].&quot;&amp;mycolor2=&quot;.$rs[&#039;Color2&#039;].&quot;&amp;mycolor3=&quot;.$rs[&#039;Color3&#039;].&quot;&amp;autoplay=true&amp;rand=0&amp;f=4&amp;vol=100&amp;pat=0&amp;grad=false&#039; width=&#039;&quot;.$width.&quot;&#039; height=&#039;&quot;.$height.&quot;&#039; name=&#039;myflashfetish&#039; salign=&#039;TL&#039; type=&#039;application/x-shockwave-flash&#039; pluginspage=&#039;http://www.macromedia.com/go/getflashplayer&#039; border=&#039;0&#039; style=&#039;visibility:visible;width:&quot;.$width.&quot;px;height:&quot;.$height.&quot;px;&#039; /&gt;&lt;/p&gt;&lt;/center&gt;&quot;;
?&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;? }; ?&gt;
</pre>
<p>E con queste sono finite le modifiche da fare al file, passiamo all&#8217;ultimo:</p>
<p><strong>scheda3.php</strong></p>
<p>Come prima cosa dobbiamo richiamare qui i due script che abbiamo caricato sul nostro server, questi dovranno essere collocati nell&#8217;head. Troverete le modifiche dalla linea 81-84</p>
<pre class="brush: javascript">
&lt;script src=&quot;mixpod.js&quot; type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;301a.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Fatto questo passiamo al form di inserimento, modifichiamo i suoi parametri come mostrato nella riga 112</p>
<pre class="brush: html">
&lt;form action=&quot;scheda.php?pg=&lt;?= urlencode($pg) ?&gt;&quot; method=&quot;POST&quot; name=&quot;dati&quot; onSubmit=&quot;return checkMixPod()&quot;&gt;
</pre>
<p>Ed infine dalla riga 166 fino alla 216 di cui ometterò il codice della selezione del lettore vista la sua semplicità per spendere qualche parola su quello per l&#8217;uso dello javascript.</p>
<pre class="brush: html">
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;MyId &lt;br/&gt;
	    &lt;input type=&quot;text&quot; name=&quot;myid&quot; maxlength=&quot;8&quot; size=&quot;8&quot;  value=&quot;&lt;?=htmlspecialchars($rs[&quot;MyID&quot;])?&gt;&quot;/&gt;&lt;/td&gt;
    &lt;/tr&gt;
......
......
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 1&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color1&#039;,&#039;color11_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color1&quot; name=&quot;color1&quot; maxlength=&quot;7&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color1&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color11_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color1&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 2&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color2&#039;,&#039;color12_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color2&quot; name=&quot;color2&quot; maxlength=&quot;7&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color2&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color12_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color2&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 3&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color3&#039;,&#039;color13_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color3&quot; maxlength=&quot;7&quot; name=&quot;color3&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color3&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color13_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color3&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
</pre>
<p>Semplicemente il javascript prevede l&#8217;aggiunta di una casella di testo come anteprima che io ho pensato bene di rendere disponibile anche nel momento in cui la scheda venga aperta e non solamente quando si seleziona un colore dalla palette.<br />
Ovviamente si da spazio alla libera modifica.</p>
<p>Tutto qui, buon divertimento con il vostro plug-in!</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

