<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>RSS Category: OpenSource - davidonzo's blog :)</title>
<link>http://www.davidonzo.com/</link>
<description>RSS Category: OpenSource - davidonzo's blog :)</description>
<language>IT-it</language>
<generator>davidonzo coding</generator>
<pubDate>Fri, 03 Sep 2010 08:28:51 +0100</pubDate>
<ttl>60</ttl>
<item>
<title>[PHP - Mac OS X] How to install the cURL library</title>
<link>http://www.davidonzo.com/lng/en/post/986/php-mac-os-x-how-to-install-the-curl-library/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/986/php-mac-os-x-how-to-install-the-curl-library/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/986/php-mac-os-x-how-to-install-the-curl-library/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img align="left" alt="php at davidonzo.com" src="http://www.davidonzo.com/public/image/loghi/php.gif" />Installing the cURL library on Leopard Mac OS X is very easy to do. First of all download the <a target="_blank" href="http://curl.haxx.se/download.html">sources from the official web site</a>. Unpack the tarball in your <code>/usr/sources/</code> directory and join it. Downloading the file today, you'll get the curl-7.19.4 version.</p>
<p>&nbsp;</p>
<p><span class="Code">cd /usr/sources/curl-7.19.4<br />
./configure<br />
make<br />
make test<br />
sudo make install</span></p>
<p>&nbsp;</p>
<p>If you want to personalize the installation directory use the option <code>--prefix=/path/to/curl</code> in the ./configure. And remember, the <code>make test</code> command is optional but very important!</p>
<p>&nbsp;</p>
<p>Once the cURL library is compiled, you need to reconfigure your PHP installation. Join the php's sources directory and configure it with the following commands.</p>
<p>&nbsp;</p>
<p><span class="Code">./configure --prefix=/usr/local/php5 --enable-calendar --with-apxs2=/usr/sbin/apxs --enable-mbstring --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql/ --with-gd --enable-soap --with-zlib --with-jpeg-dir=/usr/local/bin --with-png-dir=/usr/local/bin --enable-sockets <strong>--with-curl=/usr/lib</strong><br />
make<br />
sudo make install</span></p>
<p>&nbsp;</p>
<p>Restart apache from the system's control panel o by typing <code>sudo apachectl graceful</code> in a terminal window. That's all.</p><p>Tags: <a href="http://technorati.com/tag/PHP/" rel="tag">PHP</a>, <a href="http://technorati.com/tag/Leopard/" rel="tag">Leopard</a>, <a href="http://technorati.com/tag/Mac+OS+X/" rel="tag">Mac OS X</a>, <a href="http://technorati.com/tag/cURL/" rel="tag">cURL</a></p>]]></description>
<pubDate>Thu, 19 Mar 2009 14:29:56 +0100</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/986/php-mac-os-x-how-to-install-the-curl-library/</guid>
</item>
<item>
<title>MyGalleryGenerator - Free images gallery generetor</title>
<link>http://www.davidonzo.com/lng/en/post/983/mygallerygenerator-free-images-gallery-generetor/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/983/mygallerygenerator-free-images-gallery-generetor/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/983/mygallerygenerator-free-images-gallery-generetor/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><a target="_blank" href="http://www.mygallerygenerator.com/"><img width="200" height="200" align="left" alt="mygallerygenerator" src="http://www.davidonzo.com/public/image/browser/mgg.png" />MyGalleryGenerator</a> si the simpliest way to create an HTML photo gallery. Upload your photos (jpg, png and gif allowed), set the title and a nice description for any photo, and the gallery will be automatically generated!</p>
<p>&nbsp;</p>
<p>Once you have uploaded photos, the service will create the thumbnails, the main gallery files, <a href="http://www.mygallerygenerator.com/" target="_blank">Lightbox 2</a> will be applied to show full size photos, and then it will zip all. Just download the file, unzip it and upload the content to your website. That's all!</p>
<p>&nbsp;</p>
<p>Are you HTML familiar? You are free to customize the gallery by editing the main gallery file and/or the CSS file associated.  Do you want to see more? Let's check the example gallery and try it making your own photo gallery.</p>
<p>&nbsp;</p>
<p>MyGellaryGenerator is totally free! No registration required. For this reason there's some limitation:</p>
<ul>
    <li>Just 9 photos per gallery</li>
    <li>Maximum file size is 1mb per file</li>
    <li>No more then 3 galleries generated for person</li>
</ul>
<p>Enjoy!</p><p>Tags: <a href="http://technorati.com/tag/mygallerygenerator/" rel="tag">mygallerygenerator</a></p>]]></description>
<pubDate>Tue, 17 Mar 2009 22:05:58 +0100</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/983/mygallerygenerator-free-images-gallery-generetor/</guid>
</item>
<item>
<title>WhoIsHim.com - Badge, search tools and other updates</title>
<link>http://www.davidonzo.com/lng/en/post/970/whoishimcom-badge-search-tools-and-other-updates/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/970/whoishimcom-badge-search-tools-and-other-updates/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/970/whoishimcom-badge-search-tools-and-other-updates/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><a target="_blank" href="http://www.whoishim.com/"><img align="left" alt="WhoIsHim.com at davidonzo.com" src="http://www.davidonzo.com/public/image/whoishim/flogo.png" /><strong>WhoIsHim.com</strong></a> developing doesn't stop! We now have a real database based on real searches. So we are now able to improve the services as well. New search tools, new search evaluation algorithm and the badge builder who permit you to create a nice badge for your site / blog.</p>
<p>&nbsp;</p>
<h3>Search Tools</h3>
<p>A natural evolution for a service like this. By the <a target="_blank" href="http://www.whoishim.com/tools.html">new Search Tools page</a> it's possibile add WhoIsHim to your search engine in Firefox and Internet Explorer. Just a click to enable your browser to make search directly to WhoIsHim. And only for Mac OS X users, the WhoIsHim dashboard widget.</p>
<p align="center"><img height="68" width="424" src="http://www.davidonzo.com/public/image/whoishim/dashboard.png" alt="dashboard whoishim at davidonzo.com" /></p>
<p>&nbsp;</p>
<h3>Badge</h3>
<p>Many people suggest us to improve a badge support for blogger and other people wants to use a WhoIsHim widget in theyr *About* page. Nice idea! And we hope you find nice the new <a target="_blank" href="http://www.whoishim.com/badge.html">Badge Builder</a>, where you'll be able to make your own WhoIsHim badge - widget. Some badge examples.</p>
<p>&nbsp;</p>
<p><script type="text/javascript" src="http://www.whoishim.com/embed/0/2adeb64ba5b896029f69c8cad5683f00/Davide+Baglieri/20.js"></script> <script type="text/javascript" src="http://www.whoishim.com/embed/1/2adeb64ba5b896029f69c8cad5683f00/Davide+Baglieri/16.js"></script></p>
<p>&nbsp;</p>
<h3>New Search Evaluation Algorithm</h3>
<p>The most important change! Using a *real* database searches we finally had the possibility to see how to organize the search evaluation as well. Now searches evaluations are reliablest! We hope you continue not only to make search, but to vote search sites results. Only by this way we can grante you the best evaluation's performances.</p>
<p>&nbsp;</p>
<p>Many thanks to all people gave us suggestions, bug reports and any other impression about the service. We need your feedbacks, 'cause you are the final WhoIsHim users and the system is builded for you! So, continue to <a href="http://www.whoishim.com/contact.html" target="_blank">contact us</a> for any question, suggestion and all!</p><p>Tags: <a href="http://technorati.com/tag/WhoIsHim/" rel="tag">WhoIsHim</a></p>]]></description>
<pubDate>Mon, 16 Feb 2009 14:27:05 +0100</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/970/whoishimcom-badge-search-tools-and-other-updates/</guid>
</item>
<item>
<title>Mobile user agent list</title>
<link>http://www.davidonzo.com/lng/en/post/948/mobile-user-agent-list/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/948/mobile-user-agent-list/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/948/mobile-user-agent-list/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img height="118" width="63" align="left" src="http://www.davidonzo.com/public/image/browser/useragentmobile.jpg" alt="user agent mobile" />Time to begin some nice improve to this blog. But I need a correct list of mobile device user agents, so I write an array including all mobile user agent's browser I found surfing the web.</p>
<p>&nbsp;</p>
<p>The list is available <a href="http://www.davidonzo.com/public/file/mobile-user-agent.txt" target="_blank"><strong>downloading this file</strong></a>. I hope it will be usefull for someone and also hope many people help me to maintain it updated.</p>
<p>&nbsp;</p>
<p>Have fun!</p><p>Tags: </p>]]></description>
<pubDate>Thu, 08 Jan 2009 10:30:43 +0100</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/948/mobile-user-agent-list/</guid>
</item>
<item>
<title>[PHP] How to create live gif, png and jpeg thumbalins</title>
<link>http://www.davidonzo.com/lng/en/post/924/php-how-to-create-live-gif-png-and-jpeg-thumbalins/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/924/php-how-to-create-live-gif-png-and-jpeg-thumbalins/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/924/php-how-to-create-live-gif-png-and-jpeg-thumbalins/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img align="left" alt="php at davidonzo.com" src="http://www.davidonzo.com/public/image/loghi/php.gif" />I'm trying to have time for a blog template restyling. In order to do it I write a simple file to create live png, jpeg and gif thumbelins.</p>
<p>&nbsp;</p>
<p>This script require the <a target="_blank" href="http://www.libgd.org/Main_Page">GD</a> compiled on your PHP installation.</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;?php<br />
&nbsp;&nbsp; $file = $_GET['file'];<br />
&nbsp;&nbsp; $resize = $_GET['w'];<br />
&nbsp;&nbsp; $altez&nbsp; = $_GET['h'];<br />
<br />
&nbsp;&nbsp;&nbsp; $cosa = getimagesize($file);<br />
&nbsp;&nbsp;&nbsp; $width = ($resize &lt; $cosa[0]) ? $resize : $cosa[0];<br />
&nbsp;&nbsp;&nbsp; $alte = (!$altez) ? ceil(($cosa[1] * $width)/$cosa[0])+1 : $altez;<br />
&nbsp;&nbsp;&nbsp; $min&nbsp; = imagecreatetruecolor($width, $alte);<br />
&nbsp;&nbsp;&nbsp;&nbsp; switch($cosa['mime']){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'image/png':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header('Content-Type: image/png');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $im = imagecreatefrompng($file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagealphablending($min, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagesavealpha($min, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagepng($min,'',8,PNG_ALL_FILTERS);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'image/gif':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header('Content-Type: image/png');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $im = imagecreatefromgif($file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagealphablending($min, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $colorTransparent = imagecolorallocatealpha($min, 0, 0, 0, 127);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagefill($min, 0, 0, $colorTransparent);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagesavealpha($min, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagepng($min,'',8,PNG_ALL_FILTERS);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'image/jpeg':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'image/jpg':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header('Content-Type: image/jpeg');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $im = imagecreatefromjpeg($file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagejpeg($min,'',85);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagedestroy($min);<br />
?&gt;</span></p>
<p>&nbsp;</p>
<h3>How To Use It</h3>
<p>Write this code into a file named resize.php (of course you can choose a different name) and launch it via GET execution using a link like this below.<br />
&nbsp;</p>
<p><span class="Code"> <br />
http://example.com/resize.php?file=http://example.com/img.png&amp;w=200&amp;h=100 </span></p>
<p>&nbsp;</p>
<h4>var $file - Required - string</h4>
<p>Must be a valid image address. Just gif, png or jpeg supported.</p>
<p>&nbsp;</p>
<h4>var $w - Required - integer</h4>
<p>Set the width value of the image, resizing it using the specified pixel. If $h is not used, the image will be resized maintaining the original proportion.</p>
<p>&nbsp;</p>
<h4>var $h - Optional - integer</h4>
<p>Set the height value of the image. It can cause loss of the proportions of the original image. Be carefull using it.</p>
<p>&nbsp;</p>
<h4>TODO</h4>
<p>The script doesn't manage exception like unreadable file, not found error and type not supported. ATM I don't need these function. Anyway, if someone want to write this part of the cose and share it, it will be apprecied.</p><p>Tags: <a href="http://technorati.com/tag/PHP/" rel="tag">PHP</a>, <a href="http://technorati.com/tag/PHP5/" rel="tag">PHP5</a>, <a href="http://technorati.com/tag/Tutorial/" rel="tag">Tutorial</a>, <a href="http://technorati.com/tag/GD/" rel="tag">GD</a></p>]]></description>
<pubDate>Thu, 30 Oct 2008 11:55:31 +0100</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/924/php-how-to-create-live-gif-png-and-jpeg-thumbalins/</guid>
</item>
<item>
<title>[JavaScript] in_array function</title>
<link>http://www.davidonzo.com/lng/en/post/914/javascript-inarray-function/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/914/javascript-inarray-function/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/914/javascript-inarray-function/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p>Easy to think, easy to use</p>
<p>&nbsp;</p>
<p><span class="Code">function in_array(thaArray, element){<br />
&nbsp;var res=false;<br />
&nbsp; for(var e=0;e&lt;thaArray.length;e++){<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(thaArray == element[e]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res=true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; }<br />
&nbsp;return res;<br />
}</span></p><p>Tags: <a href="http://technorati.com/tag/JavaScript/" rel="tag">JavaScript</a>, <a href="http://technorati.com/tag/in_array/" rel="tag">in_array</a>, <a href="http://technorati.com/tag/array/" rel="tag">array</a></p>]]></description>
<pubDate>Wed, 15 Oct 2008 10:39:33 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/914/javascript-inarray-function/</guid>
</item>
<item>
<title>[PHP] Extracting images from HTML using PHP5</title>
<link>http://www.davidonzo.com/lng/en/post/911/php-extracting-images-from-html-using-php5/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/911/php-extracting-images-from-html-using-php5/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/911/php-extracting-images-from-html-using-php5/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img width="120" height="67" align="left" alt="php at davidonzo.com" src="http://www.davidonzo.com/public/image/loghi/php.gif" />I was working on some template modification of this blog, when I dediced to make a php image extractor function. I don't love to use big class with thousend of code lines to parse html.</p>
<p>&nbsp;</p>
<p>Looking on PHP5 core it seems to be some <a target="_blank" href="http://it2.php.net/manual/it/book.dom.php">DOM</a> function available really usefull to parse html document easly. Using <a target="_blank" href="http://it2.php.net/manual/it/class.domxpath.php">DOMXPath</a> class and <a target="_blank" href="http://it2.php.net/manual/it/domelement.getattribute.php">DOMElement::getAttribute</a> function you'll need just some beet line of code to extract the needed html string.</p>
<p>&nbsp;</p>
<p>The easiest way to explain it, is write the code :-)</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;?php<br />
&nbsp; $myVar = &quot;Ciao &lt;br /&gt;&lt;img src=\&quot;11.jpg\&quot; alt=\&quot;foto\&quot; /&gt;&lt;br /&gt;&lt;img src=\&quot;12.jpg\&quot; alt=\&quot;foto\&quot; /&gt;&quot;;<br />
&nbsp; <br />
&nbsp; $doc = new DOMDocument;<br />
&nbsp; $doc-&gt;loadHTML($myVar);<br />
&nbsp; <br />
&nbsp; $xpath = new DOMXPath($doc);<br />
&nbsp; <br />
&nbsp; $nodo = $xpath-&gt;query('//img[@src]');<br />
&nbsp;&nbsp;&nbsp; foreach ($nodo as $nodo){<br />
&nbsp;&nbsp;&nbsp; $imgsrc = $nodo-&gt;getAttribute('src');<br />
&nbsp;&nbsp;&nbsp; echo &quot;&lt;img src=\&quot;&quot;.$imgsrc.&quot;\&quot; alt=\&quot;myMagicImage\&quot; /&gt;&quot;; <br />
&nbsp; }<br />
?&gt;</span></p>
<p>&nbsp;</p>
<p>Short and sweety, isn't it? :-)</p><p>Tags: <a href="http://technorati.com/tag/DOMElement/" rel="tag">DOMElement</a>, <a href="http://technorati.com/tag/PHP/" rel="tag">PHP</a>, <a href="http://technorati.com/tag/DOM/" rel="tag">DOM</a>, <a href="http://technorati.com/tag/PHP5/" rel="tag">PHP5</a></p>]]></description>
<pubDate>Sat, 11 Oct 2008 17:58:35 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/911/php-extracting-images-from-html-using-php5/</guid>
</item>
<item>
<title>[PHP - XHTML] XHTML Valid Youtube embed code</title>
<link>http://www.davidonzo.com/lng/en/post/892/php-xhtml-xhtml-valid-youtube-embed-code/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/892/php-xhtml-xhtml-valid-youtube-embed-code/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/892/php-xhtml-xhtml-valid-youtube-embed-code/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img width="88" height="31" align="left" src="http://www.davidonzo.com/public/image/loghi/valid-xhtml10.png" alt="xhtml at davidonzo.com" />Blogs, online journals and in general the 90% of the content management system, use <a target="_blank" href="http://it.wikipedia.org/wiki/XHTML">XHTML</a> output as markup language. Both strict and transitional version.</p>
<p>&nbsp;</p>
<p>Often people choose to embed <a href="http://youtube.com/" target="_blank">youtube</a> videos in their websiste. To avoid the annoing cut &amp; paste of the embed code given by youtube, I choose to code a simple script to replace a proprierty tag, whit the embed code.</p>
<p>&nbsp;</p>
<p align="center"><img src="http://www.davidonzo.com/public/image/browser/youtubecode.jpg" alt="embed" /></p>
<p>&nbsp;</p>
<p>This little piece of code, allow me to write a simple line, containing the pseudo tag youtube and a video's permalink inside and show the embeded video without copy and paste the relative code.</p>
<p>&nbsp;</p>
<p>In the first versione of the script I just used the youtube embed code model. But the code generated using the original youtube code, is NOT HTML valid. So I decide to rewrite it more carefull, and make it XHTML valid.</p>
<p>&nbsp;</p>
<p>Using PHP, the result is a simple mono-line script.</p>
<p>&nbsp;</p>
<p><span class="Code"><br />
$result = preg_replace('#\[youtube\]http://www.youtube.com/watch\?v=(.*?)\[/youtube\]#i', '&lt;object type=&quot;application/x-shockwave-flash&quot; style=&quot;width:450px; height:366px;&quot; data=&quot;http://www.youtube.com/v/\\1&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/\\1&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;/object&gt;',$testo)</span></p>
<p>&nbsp;</p>
<p>Where $testo is the pattern to check.</p><p>Tags: <a href="http://technorati.com/tag/Youtube/" rel="tag">Youtube</a>, <a href="http://technorati.com/tag/XHTML/" rel="tag">XHTML</a>, <a href="http://technorati.com/tag/Valid+XHTML/" rel="tag">Valid XHTML</a>, <a href="http://technorati.com/tag/PHP/" rel="tag">PHP</a></p>]]></description>
<pubDate>Sat, 13 Sep 2008 00:52:56 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/892/php-xhtml-xhtml-valid-youtube-embed-code/</guid>
</item>
<item>
<title>[Google] New XML Mobile Sitemap format</title>
<link>http://www.davidonzo.com/lng/en/post/891/google-new-xml-mobile-sitemap-format/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/891/google-new-xml-mobile-sitemap-format/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/891/google-new-xml-mobile-sitemap-format/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img align="left" alt="Google" src="http://www.davidonzo.com/public/google_logo.gif" />Just a quick information about the XML Google mobile sitemap. The standard format will be upgradet early. The new XML Google mobile sitemap specifications <strong><a target="_blank" href="http://www.google.com/support/webmasters/bin/answer.py?answer=34648&amp;hl=it">are available here</a></strong>.</p>
<p>&nbsp;</p>
<p>Using the new format, it must be update che number versione declaration and use the new tag</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;mobile:mobile/&gt;</span></p>
<p>&nbsp;</p>
<p>For any &lt;loc&gt; reference. The &lt;priority&gt; tag is not mentioned by the new format. By the way it must be considered optional at all. Infact it give just a suggestion to Google for the content's priority. It can be different by the priority calculed by google bot.</p>
<p>&nbsp;</p>
<p>The tag &lt;lastmod&gt; should be used in the right way. Expecially for really dinamic contents, like in example, a blog or online journal front page.</p>
<p>&nbsp;</p>
<p>A little example of the new Google XML mobile sitemap:</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;urlset xmlns=&quot;http://www.google.com/schemas/sitemap/0.84&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:mobile=&quot;http://www.google.com/schemas/sitemap-mobile/1.0&quot;&gt;<br />
&nbsp;&lt;url&gt;<br />
&nbsp; &lt;loc&gt;http://www.davidonzo.com/?mobile=1&lt;/loc&gt;<br />
&nbsp; &lt;lastmod&gt;2008-09-12&lt;/lastmod&gt;<br />
&nbsp; &lt;mobile:mobile/&gt;<br />
&nbsp;&lt;/url&gt;<br />
<br />
&nbsp;&lt;url&gt;<br />
&nbsp; &lt;loc&gt;http://www.davidonzo.com/?post=890&amp;mobile=1&lt;/loc&gt;<br />
&nbsp; &lt;lastmod&gt;2008-09-11&lt;/lastmod&gt;<br />
&nbsp; &lt;mobile:mobile/&gt;<br />
&nbsp;&lt;/url&gt;<br />
<br />
&nbsp;&lt;url&gt;<br />
&nbsp; &lt;loc&gt;http://www.davidonzo.com/?post=889&amp;mobile=1&lt;/loc&gt;<br />
&nbsp; &lt;lastmod&gt;2008-09-10&lt;/lastmod&gt;<br />
&nbsp; &lt;mobile:mobile/&gt;<br />
&nbsp;&lt;/url&gt;<br />
<br />
&nbsp;&lt;url&gt;<br />
&nbsp; &lt;loc&gt;http://www.davidonzo.com/?post=888&amp;mobile=1&lt;/loc&gt;<br />
&nbsp; &lt;lastmod&gt;2008-09-09&lt;/lastmod&gt;<br />
&nbsp; &lt;mobile:mobile/&gt;<br />
&nbsp;&lt;/url&gt;<br />
&lt;/urlset&gt;</span></p>
<p>&nbsp;</p>
<p>The changes is required in a few days. Remember, sitemap malformed will be NOT indexed by google. So, be careful and rapid!</p><p>Tags: <a href="http://technorati.com/tag/Sitemap/" rel="tag">Sitemap</a>, <a href="http://technorati.com/tag/XML+Sitemap/" rel="tag">XML Sitemap</a>, <a href="http://technorati.com/tag/Google/" rel="tag">Google</a>, <a href="http://technorati.com/tag/Mobile/" rel="tag">Mobile</a>, <a href="http://technorati.com/tag/Mobile+Sitemap/" rel="tag">Mobile Sitemap</a>, <a href="http://technorati.com/tag/Mobile+XML+Sitemap/" rel="tag">Mobile XML Sitemap</a></p>]]></description>
<pubDate>Fri, 12 Sep 2008 11:52:56 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/891/google-new-xml-mobile-sitemap-format/</guid>
</item>
<item>
<title>[Ubuntu] PHP, GD and imagerotate() function</title>
<link>http://www.davidonzo.com/lng/en/post/889/ubuntu-php-gd-and-imagerotate-function/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/889/ubuntu-php-gd-and-imagerotate-function/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/889/ubuntu-php-gd-and-imagerotate-function/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img height="67" align="left" width="120" alt="php at davidonzo.com" src="http://www.davidonzo.com/public/image/loghi/php.gif" />The GD library released by the ubuntu team and available in their repository, is not compiled with all options. The <a target="_blank" href="http://it2.php.net/imagerotate">imagerotate() function</a> doesn't work at all.</p>
<p>&nbsp;</p>
<p>In this case you have two possibilities. Download the sources from the <a target="_blank" href="http://libgd.org/Main_Page">GD official web site</a> and compile it on your own, or use the following function.</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;?<br />
// $src_img - a GD image resource<br />
// $angle - degrees to rotate clockwise, in degrees<br />
// returns a GD image resource<br />
// USAGE:<br />
// $im = imagecreatefrompng('test.png');<br />
// $im = imagerotate($im, 15);<br />
// header('Content-type: image/png');<br />
// imagepng($im);<br />
function imageRotateBicubic($src_img, $angle, $bicubic=false) {<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; // convert degrees to radians<br />
&nbsp;&nbsp;&nbsp; $angle = $angle + 180;<br />
&nbsp;&nbsp;&nbsp; $angle = deg2rad($angle);<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; $src_x = imagesx($src_img);<br />
&nbsp;&nbsp;&nbsp; $src_y = imagesy($src_img);<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; $center_x = floor($src_x/2);<br />
&nbsp;&nbsp;&nbsp; $center_y = floor($src_y/2);<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; $rotate = imagecreatetruecolor($src_x, $src_y);<br />
&nbsp;&nbsp;&nbsp; imagealphablending($rotate, false);<br />
&nbsp;&nbsp;&nbsp; imagesavealpha($rotate, true);<br />
<br />
&nbsp;&nbsp;&nbsp; $cosangle = cos($angle);<br />
&nbsp;&nbsp;&nbsp; $sinangle = sin($angle);<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; for ($y = 0; $y &lt; $src_y; $y++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for ($x = 0; $x &lt; $src_x; $x++) {<br />
&nbsp;&nbsp;&nbsp; // rotate...<br />
&nbsp;&nbsp;&nbsp; $old_x = (($center_x-$x) * $cosangle + ($center_y-$y) * $sinangle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + $center_x;<br />
&nbsp;&nbsp;&nbsp; $old_y = (($center_y-$y) * $cosangle - ($center_x-$x) * $sinangle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + $center_y;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; if ( $old_x &gt;= 0 &amp;&amp; $old_x &lt; $src_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;&amp; $old_y &gt;= 0 &amp;&amp; $old_y &lt; $src_y ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($bicubic == true) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $sY&nbsp; = $old_y + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siY&nbsp; = $old_y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siY2 = $old_y - 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $sX&nbsp; = $old_x + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siX&nbsp; = $old_x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siX2 = $old_x - 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $c1 = imagecolorsforindex($src_img, imagecolorat($src_img, $siX, $siY2));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $c2 = imagecolorsforindex($src_img, imagecolorat($src_img, $siX, $siY));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $c3 = imagecolorsforindex($src_img, imagecolorat($src_img, $siX2, $siY2));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $c4 = imagecolorsforindex($src_img, imagecolorat($src_img, $siX2, $siY));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r = ($c1['red']&nbsp; + $c2['red']&nbsp; + $c3['red']&nbsp; + $c4['red']&nbsp; ) &lt;&lt; 14;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $g = ($c1['green'] + $c2['green'] + $c3['green'] + $c4['green']) &lt;&lt; 6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $b = ($c1['blue']&nbsp; + $c2['blue']&nbsp; + $c3['blue']&nbsp; + $c4['blue'] ) &gt;&gt; 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a = ($c1['alpha']&nbsp; + $c2['alpha']&nbsp; + $c3['alpha']&nbsp; + $c4['alpha'] ) &gt;&gt; 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $color = imagecolorallocatealpha($src_img, $r,$g,$b,$a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $color = imagecolorat($src_img, $old_x, $old_y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // this line sets the background colour<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $color = imagecolorallocatealpha($src_img, 255, 255, 255, 127);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; imagesetpixel($rotate, $x, $y, $color);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return $rotate;<br />
}<br />
?&gt;</span></p>
<p>&nbsp;</p>
<p>This function has been taken by the official man page of the <a href="http://it2.php.net/manual/en/function.imagerotate.php#47985" target="_blank">imagerotate php funciont</a>.</p><p>Tags: <a href="http://technorati.com/tag/PHP/" rel="tag">PHP</a>, <a href="http://technorati.com/tag/gd/" rel="tag">gd</a>, <a href="http://technorati.com/tag/imagerotate/" rel="tag">imagerotate</a></p>]]></description>
<pubDate>Wed, 10 Sep 2008 22:35:46 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/889/ubuntu-php-gd-and-imagerotate-function/</guid>
</item>
<item>
<title>[WordPress] Plugin Inappropriate Content</title>
<link>http://www.davidonzo.com/lng/en/post/837/wordpress-plugin-inappropriate-content/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/837/wordpress-plugin-inappropriate-content/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/837/wordpress-plugin-inappropriate-content/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img align="left" alt="WordPress at davidonzo.com" src="http://www.davidonzo.com/public/image/loghi/wordpress-logo.png" />If you are using <a target="_blank" href="http://wordpress.org">WordPress</a> as CMS and you want to post something not really appropriate to childrens and young boy, you should find this plugin very usefull.</p>
<p>&nbsp;</p>
<h3>What can I do?</h3>
<p>Inappropriate Content allow you to moderate the content of specifics posts. It show a confirmation form where is asked to the client, to confirm his age and his will to read the post.</p>
<p>&nbsp;</p>
<p>Using the control panel you'll be able to:</p>
<ul>
    <li>Enable / Disable the plugin. This option is internal to the plugin and indipendent by the global activation you turn on by the wordpress's plugins control panel.</li>
    <li>Choose the input button text.</li>
    <li>Choose the relative label.</li>
    <li>Choose some text before the form.</li>
    <li>Choose some text after the form.</li>
</ul>
<p align="center"><a target="_blank" href="http://www.davidonzo.com/public/image/browser/inappropriate_content.jpg"><img title="Click to enlarge" alt="Inappropriate Content at davidonzo.com" src="http://www.davidonzo.com/public/image/browser/inappropriate_content_th.jpg" /></a></p>
<p>&nbsp;</p>
<h3>How can I moderate the content post?</h3>
<p>To apply the content moderation, just insert a new custom field to the post, using as key <strong>VM</strong>, and give it the value <strong>1</strong>.</p>
<p>&nbsp;</p>
<p align="center"><a target="_blank" href="http://www.davidonzo.com/public/image/browser/inappropriate_custom.jpg"><img title="Click to enlarge" alt="Inappropriate Content at davidonzo.com" src="http://www.davidonzo.com/public/image/browser/inappropriate_custom_th.jpg" /></a></p>
<p>&nbsp;</p>
<p>By this way any user won't read the content post if before he doesn't confirm his will to read it. After the confirmation, all moderated posts will be showed to the blog visitor for 24h.</p>
<p>&nbsp;</p>
<p>The plugin use the cookies just to identify users has confirmed the form in the last 24h. Clients that brows without cookies enabled will see the post after the confirmation submit, but they will confirm using the form any page refresh.</p>
<p>&nbsp;</p>
<h3>How To Install</h3>
<p><strong><a target="_blank" href="http://www.davidonzo.com/public/file/inappropriate_content.zip">Download the zip archive</a></strong>, decompress it and copy the file inappropriate_content.php into your wp-content/plugins folder. Join your WP control panel and activete it as any other WP plugin. Go to the options page to configure it.</p>
<p>&nbsp;</p>
<h3>License</h3>
<p><strong><a target="_blank" href="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</a></strong>.</p><p>Tags: <a href="http://technorati.com/tag/WordPress/" rel="tag">WordPress</a>, <a href="http://technorati.com/tag/Plugin/" rel="tag">Plugin</a>, <a href="http://technorati.com/tag/Inappropriate+Content/" rel="tag">Inappropriate Content</a></p>]]></description>
<pubDate>Wed, 18 Jun 2008 18:15:32 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/837/wordpress-plugin-inappropriate-content/</guid>
</item>
<item>
<title>Morfeus Fucking Scanner</title>
<link>http://www.davidonzo.com/lng/en/post/830/morfeus-fucking-scanner/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/830/morfeus-fucking-scanner/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/830/morfeus-fucking-scanner/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p>If you read in your server log a strange user agent: &quot;<strong>Morfeus Fucking Scanner</strong>&quot; you have to know that it's a bot who scan PHP server application to find some vulnerability.</p>
<p>&nbsp;</p>
<p>At the moment, the relative IP scanned this server is located in Spain, but reading old logs, it means many connection has been provide from USA.</p>
<p>&nbsp;</p>
<p>Here all works fine. No vulnerability have been found on this server (ATM :-) ). My blogging software has no several bugs! Or just I hope so ;-) .</p>
<p>&nbsp;</p>
<p>If you are running Apache like web server, you can easly block Morfeus by three .htaccess lines</p>
<p>&nbsp;</p>
<p><span class="Code">RewriteEngine On<br />
RewriteCond %{HTTP_USER_AGENT} ^Morfeus<br />
RewriteRule ^.*$ - [F]</span></p>
<p>&nbsp;</p>
<p>And, bye bye Morfeus ;-)</p><p>Tags: <a href="http://technorati.com/tag/Morfeus+Fucking+Scanner/" rel="tag">Morfeus Fucking Scanner</a>, <a href="http://technorati.com/tag/web/" rel="tag">web</a></p>]]></description>
<pubDate>Tue, 03 Jun 2008 20:11:35 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/830/morfeus-fucking-scanner/</guid>
</item>
<item>
<title>How to Create a 2.0 Button Using The GIMP</title>
<link>http://www.davidonzo.com/lng/en/post/821/how-to-create-a-20-button-using-the-gimp/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/821/how-to-create-a-20-button-using-the-gimp/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/821/how-to-create-a-20-button-using-the-gimp/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img width="200" height="100" align="left" alt="2.0 button using the gimp at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/button/botrosso.png" /><a target="_blank" href="http://lucvic.netsons.org/">IlSilente</a> ask me to do this tutorial (thi info maybe not true :P). We just explate <a href="http://www.davidonzo.com/lng/en/post/819/how-to-make-reflection-using-the-gimp/" target="_blank">how to create a reflection effect using The Gimp</a>. Now let's see how to create a 2.0 button using the best open source (and not only) image editor.</p>
<p>&nbsp;</p>
<p>First of all we heve to define what a 2.0 button is (almost in our concept). A 2.0 button is an image with 3D effect simulation and rounded corners. Have you a different idea? Maybe you are right, but this is my obsession :)</p>
<p>&nbsp;</p>
<h2>How To Procede</h2>
<p>Open The GIMP and create a new image with transparent background and the dimension you prefere. By the &quot;Select&quot; menu, click on &quot;Select All&quot; (or type CTRL+A). By the same menu, click on &quot;Rounded Rectangle&quot; and apply it using the prefered ratio. I used the default value (50%).</p>
<p>The result should be something like this:</p>
<p>&nbsp;</p>
<p align="center"><img width="204" height="106" alt="2.0 button using the gimp at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/button/bott4.png" /></p>
<p>&nbsp;</p>
<p>Using our prefer color, apply a background to the new selection.</p>
<p>&nbsp;</p>
<p align="center"><img width="204" height="106" alt="2.0 button using the gimp at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/button/bott3.png" /></p>
<p>&nbsp;</p>
<p>Now create a new rounded selection (using the same ratio). It must be smaller than the first one and positioned at the top.</p>
<p>&nbsp;</p>
<p align="center"><img width="204" height="106" alt="2.0 button using the gimp at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/button/bott2.png" /></p>
<p>&nbsp;</p>
<p>To this new selection, apply the gradient tool <img align="absmiddle" src="http://www.davidonzo.com/public/image/gimpreflection/gradiente.jpg" alt="Gradient tool The GIMP at davidonzo.com" /> selecting the white color as SB and mantaining the previous FB. Drag the mouse from the bottom side of the selection to top.</p>
<p>&nbsp;</p>
<p align="center"><img width="204" height="106" src="http://www.davidonzo.com/public/image/gimpreflection/button/bott.png" alt="2.0 button using the gimp at davidonzo.com" /></p>
<p>&nbsp;</p>
<p><strong><em>Et voila!</em></strong> Add some text if you want. The final result is something like the image you can see at the begin of this post ;)</p><p>Tags: <a href="http://technorati.com/tag/The+Gimp/" rel="tag">The Gimp</a></p>]]></description>
<pubDate>Tue, 20 May 2008 14:49:19 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/821/how-to-create-a-20-button-using-the-gimp/</guid>
</item>
<item>
<title>How to make reflection using The Gimp</title>
<link>http://www.davidonzo.com/lng/en/post/819/how-to-make-reflection-using-the-gimp/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/819/how-to-make-reflection-using-the-gimp/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/819/how-to-make-reflection-using-the-gimp/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img align="left" alt="Reflection using Gimp at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/gimpreflection.jpg" />Do you love 2.0 style reflection? Somebody tell you, photoshop is needed to do it? Nothing true! Use <a target="_blank" href="http://gimp.org">The Gimp</a> (the best open source image creator).</p>
<p>Let's see hot to do it.</p>
<p>&nbsp;</p>
<h3>Ho to procede</h3>
<p>Create a new image using the prefered dimensions e background color. Past the image to reflect as new layer, or use the text tool to write your desire text (using Gimp any new text added is a new layer).</p>
<p>&nbsp;</p>
<p>Don't forget to show the Layers tab, selecting it by the Dialogs menu.</p>
<p>&nbsp;</p>
<p>Select the target layer and click on &quot;Copy Layer&quot; <img align="absmiddle" alt="Copy Layer at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/copialivello.jpg" />. Select the new layer (rename it if you want) and click on menu Layers &gt;&gt; Transform &gt;&gt; Rip Vertical.</p>
<p>&nbsp;</p>
<p align="center"><img alt="rip vertical at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/riflettilivello.jpg" /></p>
<p>&nbsp;</p>
<p>Using the &quot;Move&quot; tool, drag the layer until the heightest side touch the bottom side of the parent layer. See the example below:</p>
<p>&nbsp;</p>
<p align="center"><img alt="example at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/livelli.jpg" /></p>
<p>Now, always selecting the transformed layer, add a layer mask clicking right on it. Choose the first option in the dialog below.</p>
<p>&nbsp;</p>
<p align="center"><img width="331" height="333" alt="mask at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/mascheradilivello.jpg" /></p>
<p>&nbsp;</p>
<p>Select as main color:</p>
<ul>
    <li>Black for the FB (#000000)</li>
    <li>Withe for the SB (#ffffff)</li>
</ul>
<p>Use the gradient tool&nbsp;<img width="23" height="22" align="absmiddle" alt="gradient tool at davidonzo.com" src="http://www.davidonzo.com/public/image/gimpreflection/gradiente.jpg" /> with the FB to SB option selected and drag a line from bottom to up to apply it. Make differents test to get the best result. At the end you'll have something similar to the first image of the post.</p><p>Tags: <a href="http://technorati.com/tag/The+Gimp/" rel="tag">The Gimp</a></p>]]></description>
<pubDate>Wed, 14 May 2008 20:38:25 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/819/how-to-make-reflection-using-the-gimp/</guid>
</item>
<item>
<title>[WordPress] MyFeed Plugin</title>
<link>http://www.davidonzo.com/lng/en/post/816/wordpress-myfeed-plugin/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/816/wordpress-myfeed-plugin/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/816/wordpress-myfeed-plugin/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img width="150" height="150" align="left" src="http://www.davidonzo.com/public/image/loghi/wordpress-logo.png" alt="wordpress myfeed plugin at davidonzo.com" />Someone ask me to release it. I did it and now is available for all. MyFeed is a <a href="http://wordpress.org/" target="_blank">WordPress</a> plugin that allow you to costumize as well as possible your feed content.</p>
<p>&nbsp;</p>
<h3>What can I do?</h3>
<p>- You can choose how many paragraphs to show in your content feed. So, if you don't want to give a complete feed, but don't want to use the MORE tag and, at the same time, don't love use excerpt content as your content feed, you'll be able to give a custom uncomplete post independent by the original content, with all you formatting settings.</p>
<p>&nbsp;</p>
<p>- Choose an anchor link for the &quot;Continue Reading&quot; link that appear at the foot of the feed content.</p>
<p>&nbsp;</p>
<p>- Choose some text to show before any post in the feed.</p>
<p>&nbsp;</p>
<p>- Choose some text to show after any post in the feed.</p>
<p>&nbsp;</p>
<p>These last two options are very usefull to insert advertising in your feed. HTML are supported, so you can insert images and any other available html content.</p>
<p>&nbsp;</p>
<h3>How To Install</h3>
<p><strong><a target="_blank" href="http://www.davidonzo.com/public/file/myfeed.zip">Download the zip archive</a></strong>, decompress it and copy the file myfeed.php into your wp-content/plugins folder. Join your blog CP and activete it as any other WP plugin. Go to the options page to configure it.</p>
<p>&nbsp;</p>
<h3>Notes</h3>
<p>MyFeed has an activete / disactivate option indipendent by the plugin list manager of the WP control panel. So you can turn off the plugin without deactive it.</p>
<p>&nbsp;</p>
<p>Any option is totally indipendent by the other onse. By this way, the user have total control and great customization power for his feed.</p>
<p>&nbsp;</p>
<p>I don't know if this plugi should be so usefull. However it's on your avaibility. And remember, this plugin is released and distributed under the terms of the <a target="_blank" href="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</a>.</p><p>Tags: <a href="http://technorati.com/tag/WordPress/" rel="tag">WordPress</a>, <a href="http://technorati.com/tag/Plugin/" rel="tag">Plugin</a>, <a href="http://technorati.com/tag/Web/" rel="tag">Web</a>, <a href="http://technorati.com/tag/MyFeed/" rel="tag">MyFeed</a></p>]]></description>
<pubDate>Mon, 12 May 2008 00:34:39 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/816/wordpress-myfeed-plugin/</guid>
</item>
<item>
<title>[JavaScript] A constructor make it easy</title>
<link>http://www.davidonzo.com/lng/en/post/815/javascript-a-constructor-make-it-easy/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/815/javascript-a-constructor-make-it-easy/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/815/javascript-a-constructor-make-it-easy/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p>JavaScript is often used to provide more contemporary routines in the same web page. This may give problem if the function, written using a regural contruction, is able to be instanced just one time.</p>
<p>&nbsp;</p>
<p>To avoid this limit - is a natural limit depending by the code style used by the coder - it's necessary to build an object. This will be able to create differents instances and to use methods for any instance without create conflict with other variables and functions called by others instances.</p>
<p>&nbsp;</p>
<p>Will go to define different functions inside an object constructor called using how many instances we need to create. Any instance will be able to use all the methods defined inside the object regardless from other instances.</p>
<p>&nbsp;</p>
<p>To have a better idea what we are talking about, let's see an easy example where use innerHTML.</p>
<p>&nbsp;</p>
<p><span class="Code">function showText('text', 'id'){<br />
&nbsp; this.text = text;<br />
&nbsp; this.id&nbsp;&nbsp; = id;<br />
&nbsp; <br />
&nbsp; this.g = function(){<br />
&nbsp;&nbsp;&nbsp; return document.getElementById(this.id);<br />
&nbsp; }<br />
&nbsp; <br />
&nbsp; this.show = function(){<br />
&nbsp;&nbsp;&nbsp; this.g.innerHTML = this.text;<br />
&nbsp; }<br />
}<br />
<br />
first = new showText('Hello World!','myId');<br />
first.show();<br />
<br />
second = new showText('Hello Web!','myOtherId');<br />
second.show();</span></p>
<p>&nbsp;</p>
<p>The example may appear poor, but using a constructor on more complex functions, your life may be better and your coding powerful ;)</p><p>Tags: <a href="http://technorati.com/tag/JavaScript/" rel="tag">JavaScript</a>, <a href="http://technorati.com/tag/web/" rel="tag">web</a>, <a href="http://technorati.com/tag/Object/" rel="tag">Object</a>, <a href="http://technorati.com/tag/OOP/" rel="tag">OOP</a></p>]]></description>
<pubDate>Fri, 09 May 2008 23:41:21 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/815/javascript-a-constructor-make-it-easy/</guid>
</item>
<item>
<title>How To create a WordPress Plugin</title>
<link>http://www.davidonzo.com/lng/en/post/810/how-to-create-a-wordpress-plugin/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/810/how-to-create-a-wordpress-plugin/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/810/how-to-create-a-wordpress-plugin/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p><img width="150" height="150" align="left" src="http://www.davidonzo.com/public/image/loghi/wordpress-logo.png" alt="wordpress at davidonzo.com" />Now let's see how to create a <a href="http://wordpress.org" target="_blank">WordPress</a> plugin. Why this post? Often WP users active a plugin and use only the 5% of its features. Is not a good choise. There are people who boasts of using 50 or more plugin. IMHO they just wrong CMS :)</p>
<p>&nbsp;</p>
<p>In any case plugins help us to make several chenges in our blogging platform without change che core code and the template used, just activating / disactivating a file by the control panel.</p>
<p>&nbsp;</p>
<p>Now, to explane how a WP plugin can be create, we'll see the needed operation to produce a simple plugin showing a fixed text before any post. Really unusefully plugin, <span onmouseout="_tipoff()" onmouseover="_tipon(this)" style="">but with clear didactic purpose.</span></p>
<p>&nbsp;</p>
<h3><span onmouseout="_tipoff()" onmouseover="_tipon(this)" style="">How To Begin</span></h3>
<p><span onmouseout="_tipoff()" onmouseover="_tipon(this)" style="">First of all, it's very important read the <a href="http://codex.wordpress.org/Main_Page" target="_blank">documentation released by the WP</a> team, to know as well as possible all the functions availables given by the wp core.</span></p>
<p><span onmouseout="_tipoff()" onmouseover="_tipon(this)" style="">After this, you have to know that wordpress use a single database field to activate a plugin. The informations concerning the actives plugins are stored in the wp_options table (where wp_ is just the table prefix) in correspondants of the </span>&quot;option_name = 'active_plugins'&quot; value.</p>
<p>All plugins file are stored in /wp-content/plugins/.</p>
<p>&nbsp;</p>
<h3>Begin Writing</h3>
<p>With our favorite text editor create a new document called myplugin.php. After the php open tag, it must be inserted some comment line that will be used by identify the plugin name, author, version and description.</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;?php<br />
/*<br />
Plugin Name: Just a test plugin<br />
Plugin URI: http://www.davidonzo.com/<br />
Description: Just a simple plugin to show how wordpress plugins work and can be create.<br />
Author: davidonzo<br />
Version: 0.1<br />
Author URI: http://www.davidonzo.com/<br />
*/</span></p>
<p>&nbsp;</p>
<ul>
    <li>Plugin Name: choose a funny name for your plugin.</li>
    <li>Plugin URI: have you publishe a post or an entire web site for the plugin?</li>
    <li>Description: write a short description of the plugin. In one line. Break line will erase the content!</li>
    <li>Author: your name.</li>
    <li>Version: the versione number of the plugin.</li>
    <li>Author URI: your link.</li>
</ul>
<p>These informations will be showed in the management plugins page of wordpress's admin control panel.</p>
<p>&nbsp;</p>
<h3>The necessaries functions</h3>
<p>What do you need to make the plugin? We said we want to create a plugin tha add a fixed text, choosen by the user, before any post. So, we need an option where writing the text and another one where we'll use as a boolean value to make the visualization active or not.</p>
<p>&nbsp;</p>
<p>To make it easy, we choose to save both options in just one record. Using a text separator between the string to provide a simply explode() string that extract the needed value. In this case we will use <em>%%%</em>.</p>
<p>&nbsp;</p>
<p>Now, we need to know that the plugins options are stored in the same table used by WP for the others system options: wp_options. We che easly create new options just using a function available in the WP core: add_option($nameoption, $value). The option's $value will be stored in a longtext field.</p>
<p>&nbsp;</p>
<p>During the plugin installation a new option will be created, assigning it the default values. Let's see who to do it!</p>
<p>&nbsp;</p>
<p><span class="Code">function myplugin_install(){<br />
&nbsp; if(get_option('opt_myplugin' == '') || !get_option('opt_myplugin')){<br />
&nbsp;&nbsp;&nbsp; add_option('opt_myplugin', '0%%%Write some text');<br />
&nbsp; }<br />
}<br />
<br />
if (isset($_GET['activate']) &amp;&amp; $_GET['activate'] == 'true') {<br />
&nbsp;&nbsp;&nbsp; myplugin_install();<br />
}</span></p>
<p>&nbsp;</p>
<p>On plugin activeting, if the option named opt_myplugin doesn't exist or is empty, the option will be added to the database with the default values.</p>
<p>Note that this function will be loaded for any activating action, but the default value and the option creation will be execute just at the first activation. So, deactiving the plugin, the latest values inserted will be saved and used after the new activation.</p>
<p>&nbsp;</p>
<p>Now we need a pege inside the WP control panel, to manage the options. First of all, we add a link to the main menu of the settings page. Of couse we'll use a wp core function :)</p>
<p>&nbsp;</p>
<p><span class="Code">function myplugin_config_page(){<br />
&nbsp; if (function_exists('add_options_page')){<br />
&nbsp;&nbsp;&nbsp; add_options_page('MyPlugin Menu Title', <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'MyPlugin Option',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basename(__FILE__),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'myplugin_config'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br />
&nbsp; }<br />
}</span></p>
<p>&nbsp;</p>
<p>To work correctly, add_option_page function need some variable.</p>
<ul>
    <li>The title of the destination page.</li>
    <li>The anchor link for the title menu.</li>
    <li>The access level required to manage the settings.</li>
    <li>The file must be loaded.</li>
    <li>The callback function contained in the loaded file, that create the page.</li>
</ul>
<p>Well, let's see the callback function.</p>
<p>&nbsp;</p>
<p><span class="Code">function myplugin_config(){<br />
&nbsp; $active&nbsp;&nbsp; = (myplugin_option('active') == 1) ? 'checked' : '';<br />
&nbsp; $deactive = (myplugin_option('active') == 0) ? 'checked' : '';<br />
&nbsp; print('&lt;div class=&quot;wrap&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt;MyPlugin Options Tab&lt;/h2&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form id=&quot;ak_sharethis&quot; name=&quot;myplugin_cnf&quot; action=&quot;'.get_bloginfo('wpurl').'/wp-admin/index.php&quot; method=&quot;post&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;By this page it\'s possibile configure the plugin. Setup the following options to start testing how a wordpress plugin works!&lt;/p&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset class=&quot;options&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Show some content before any post?&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;radio&quot; name=&quot;c_before_post&quot; value=&quot;1&quot; id=&quot;c_before_post_yes&quot; '.$active.' /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for=&quot;c_before_post_yes&quot;&gt;Yes&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;radio&quot; name=&quot;c_before_post&quot; value=&quot;0&quot; id=&quot;c_before_post_no&quot; '.$deactive.' /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for=&quot;c_before_post_no&quot;&gt;No&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Type the contet text to show:&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;text&quot; name=&quot;c_text_myplugin&quot; value=&quot;'.myplugin_option('text').'&quot; /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p class=&quot;submit&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;input type=&quot;submit&quot; name=&quot;myplugin_submit_button&quot; value=&quot;Update Settings&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;/p&gt; <br />
&nbsp;&nbsp;&nbsp; &nbsp; &lt;/form&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;');<br />
}</span></p>
<p>&nbsp;</p>
<p>Just HTML containing an usefull form to manage the main plugin's options. Nothing more, nothing less :)</p>
<p>Ok, now we have a form to manage the option, but, how can we update them? Just writing another function.</p>
<p>&nbsp;</p>
<p><span class="Code">function update_myplugin_settings(){<br />
&nbsp; if($_POST['myplugin_submit_button'] == 'Update Settings'){<br />
&nbsp;&nbsp;&nbsp; $newsetting = $_POST['c_before_post'] . '%%%' . $_POST['c_text_myplugin'];<br />
&nbsp;&nbsp;&nbsp; update_option('opt_myplugin',$newsetting);<br />
&nbsp;&nbsp;&nbsp; header('Location: '.get_bloginfo('wpurl').'/wp-admin/options-general.php?page=myplugin.php&amp;updated=true');&nbsp; <br />
&nbsp; }<br />
}</span></p>
<p>&nbsp;</p>
<p>Using update_option (another WP core function) we can easly update any option just declaring as first argument the option to update, and as second argument, the value to assign.</p>
<p>To execute it, just use add_action.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="Code">add_action('init', 'update_myplugin_settings', 9999);</span></p>
<p>&nbsp;</p>
<p>Using the tag init and a height priority (9999) this action will be performed any time the plugin file is requested. But read the callback function as well: the real option update process will run just when it receive a particular POST data.</p>
<p>&nbsp;</p>
<p>Now we have a page who manage the options, we can update them, we can activate the plugin as well, but, where is the function who chage my wordpress front-end?</p>
<p>&nbsp;</p>
<p><span class="Code">function add_myplugin_text_to_content($content){<br />
&nbsp; if(myplugin_option('active') == 1){<br />
&nbsp;&nbsp; $content = '&lt;p&gt;'.myplugin_option('text').'&lt;/p&gt;' . $content;<br />
&nbsp; }<br />
&nbsp; return $content;<br />
}<br />
<br />
add_action('the_content', 'add_myplugin_text_to_content');</span></p>
<p>&nbsp;</p>
<p>Just a simple function, activated when the_content() function run, that replace $content variable.</p>
<p>&nbsp;</p>
<p>Do you want to download this example wp plugin? <strong><a href="http://www.davidonzo.com/public/file/myplugin.zip" target="_blank">Just click here</a></strong> :)</p><p>Tags: <a href="http://technorati.com/tag/WordPress/" rel="tag">WordPress</a>, <a href="http://technorati.com/tag/Plugin/" rel="tag">Plugin</a>, <a href="http://technorati.com/tag/Web/" rel="tag">Web</a>, <a href="http://technorati.com/tag/Tutorial/" rel="tag">Tutorial</a></p>]]></description>
<pubDate>Sun, 27 Apr 2008 19:59:07 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/810/how-to-create-a-wordpress-plugin/</guid>
</item>
<item>
<title>[JavaScript] How to read Cookies informations</title>
<link>http://www.davidonzo.com/lng/en/post/808/javascript-how-to-read-cookies-informations/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/808/javascript-how-to-read-cookies-informations/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/808/javascript-how-to-read-cookies-informations/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p>A simple function to read a cookie value.</p>
<p>&nbsp;</p>
<p><span class="Code">function CookieValue (offset) {<br />
&nbsp; var stringend = document.cookie.indexOf (&quot;;&quot;, offset);<br />
&nbsp; if (stringend == -1)<br />
&nbsp;&nbsp; stringend = document.cookie.length;<br />
&nbsp; return unescape(document.cookie.substring(offset, stringend)).replace(&quot;+&quot;,&quot; &quot;);<br />
}<br />
<br />
&nbsp; function GetCookie (name) {<br />
&nbsp;&nbsp; var argu = name + &quot;=&quot;;<br />
&nbsp;&nbsp; var alen = arg.length;<br />
&nbsp;&nbsp; var clen = document.cookie.length;<br />
&nbsp;&nbsp; var none = '';<br />
&nbsp;&nbsp; var i = 0;<br />
&nbsp;&nbsp; while (i &lt; clen) {<br />
&nbsp;&nbsp;&nbsp; var a = i + alen;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.cookie.substring(i, a) == arg)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return CookieValue(a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = document.cookie.indexOf(&quot; &quot;, i) + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i == 0) break;<br />
&nbsp; }<br />
&nbsp;return none;<br />
}</span></p>
<p>&nbsp;</p>
<h3>How to use it?</h3>
<p>An example may be the best way to understand hot to use this code. Assum you have a cookie named &quot;MyCookie&quot; with value &quot;MyCookie+Value&quot;.</p>
<p>The function:</p>
<p>&nbsp;</p>
<p><span class="Code">GetCookie('MyCookie')</span></p>
<p>&nbsp;</p>
<p>Return: &quot;MyCookie Value&quot;.</p>
<p>&nbsp;</p>
<p>I'm working hard in this period. I hope to have more time to update the blog ASAP :)</p><p>Tags: <a href="http://technorati.com/tag/JavaScript/" rel="tag">JavaScript</a>, <a href="http://technorati.com/tag/Coookie/" rel="tag">Coookie</a>, <a href="http://technorati.com/tag/Web/" rel="tag">Web</a></p>]]></description>
<pubDate>Thu, 24 Apr 2008 14:51:10 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/808/javascript-how-to-read-cookies-informations/</guid>
</item>
<item>
<title>[JavaScript] TextScroller 1.1</title>
<link>http://www.davidonzo.com/lng/en/post/803/javascript-textscroller-11/</link>
<description><![CDATA[<p><a href="http://www.davidonzo.com/post/803/javascript-textscroller-11/"><img src="http://www.davidonzo.com/language/flag/it.gif" alt="it" /></a> <a href="http://www.davidonzo.com/lng/en/post/803/javascript-textscroller-11/"><img src="http://www.davidonzo.com/language/flag/en.gif" alt="en" /></a> </p><p>TextScroller is a JavaScript library that permit to scroll the text of the target ID of the web page. It's easy to use, easy to configure and require just javascript enable on the browser's client surfing you web pages.</p>
<p>&nbsp;</p>
<h3>How to setup the script</h3>
<p>Using your favorite text editor open the file named textScroller.js and assign the values to the following variables:</p>
<p>&nbsp;</p>
<p><span class="Code">&nbsp; var orientamento = '';<br />
&nbsp; var parent = '';<br />
&nbsp; var duration = ; <br />
&nbsp; var h = ;<br />
&nbsp; var w = ;</span></p>
<p>&nbsp;</p>
<h4>var orientamento (array)</h4>
<p>Choose the prefered scrolling direction:</p>
<ul>
    <li>TD: from top to bottom;</li>
    <li>DT: from bottom to top;</li>
    <li>RL: from right to left;</li>
    <li>LR: from left to right;</li>
</ul>
<p>&nbsp;</p>
<h4>var parent (string)</h4>
<p>The ID element containing the scrolling text.</p>
<p>&nbsp;</p>
<h4>var duration (integer)</h4>
<p>Scrolling speed. Bigger means slowest and vice versa.</p>
<p>&nbsp;</p>
<h4>var h (integer)</h4>
<p>The height value of the scrolling ID. By this way you can choose the height of the scrolling text.</p>
<p>&nbsp;</p>
<h4>var w (integer)</h4>
<p>The width value of the scrolling ID. By this way you can choose the width of the scrolling text.</p>
<p>&nbsp;</p>
<h3>Impostare il codice HTML</h3>
<p>Between the &lt;head&gt; tags insert this line.</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;script type=&quot;text/javascript&quot; src=&quot;textScroller.js&quot;&gt;&lt;/script&gt;</span></p>
<p>&nbsp;</p>
<p>Warning: consider the relative positione of the file. Writing the line exactly as above, the js file must be in the same folder of the html file.</p>
<p>&nbsp;</p>
<p>Inside the &lt;body&gt; tag:</p>
<p>&nbsp;</p>
<p><span class="Code">&lt;body onload=&quot;letsGo()&quot;&gt;</span></p>
<p>&nbsp;</p>
<p>Inside the page, insert an element identified by the ID you want to scroll.</p>
<p>&nbsp;</p>
<p><span class="Code"> &lt;div id=&quot;parent&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; Testo da scrollare<br />
&nbsp;&nbsp;&nbsp; Testo da scrollare<br />
&nbsp;&nbsp;&nbsp; Testo da scrollare<br />
&lt;/div&gt;</span></p>
<p>&nbsp;</p>
<h3>Degradability</h3>
<p>The code is degradated. When the client has JavaScript disabled, will be loaded the CSS directives written in the stylesheet.</p>
<p>&nbsp;</p>
<h3>Extra Style</h3>
<p>You can add extra style directives by adding css information for the id named width <em>child-</em> prefix and the ID of the scrolling element.</p>
<p>&nbsp;</p>
<h3>License</h3>
<p><a target="_blank" href="http://www.gnu.org/licenses/gpl.html">GNU/GPL v.3</a>.</p>
<p>&nbsp;</p>
<h3>Demo</h3>
<p><a target="_blank" href="../../../ajaxstudy/textscroller/example.html">Click Here :)<br />
</a></p>
<p>&nbsp;</p>
<div align="center"><a href="http://www.davidonzo.com/public/file/textScroller.tar.gz" target="_blank"><img width="420" height="80" src="http://www.davidonzo.com/public/image/browser/downloadtextscroller.jpg" alt="download textScroller at davidonzo.com" /></a></div><p>Tags: <a href="http://technorati.com/tag/JavaScript/" rel="tag">JavaScript</a>, <a href="http://technorati.com/tag/web/" rel="tag">web</a>, <a href="http://technorati.com/tag/textScroller/" rel="tag">textScroller</a></p>]]></description>
<pubDate>Tue, 15 Apr 2008 09:35:48 +0200</pubDate>
<guid isPermaLink="false">http://www.davidonzo.com/lng/en/post/803/javascript-textscroller-11/</guid>
</item>
</channel>
</rss>
