<?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>Blogbonzo: Matteo Magni &#187; CMS</title>
	<atom:link href="http://blog.ilbonzo.org/category/cms/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ilbonzo.org</link>
	<description>Just Another Geek!</description>
	<lastBuildDate>Thu, 02 Feb 2012 00:04:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Cos&#8217;è Drupal in 57 secondi</title>
		<link>http://blog.ilbonzo.org/2009/12/09/cose-drupal-in-57-secondi/</link>
		<comments>http://blog.ilbonzo.org/2009/12/09/cose-drupal-in-57-secondi/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 13:06:31 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2009/12/09/cose-drupal-in-57-secondi/</guid>
		<description><![CDATA[Video che spiega cos&#8217;è drupal in 57 secondi.]]></description>
			<content:encoded><![CDATA[<p></p><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/rF1X12PE6PY&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/rF1X12PE6PY&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
<p>Video che spiega cos&#8217;è drupal in 57 secondi.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2009/12/09/cose-drupal-in-57-secondi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal best open source PHP CMS 2009</title>
		<link>http://blog.ilbonzo.org/2009/11/12/drupal-best-open-source-php-cms-2009/</link>
		<comments>http://blog.ilbonzo.org/2009/11/12/drupal-best-open-source-php-cms-2009/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 08:54:02 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/?p=368</guid>
		<description><![CDATA[Drupal riVince l&#8217;Open Source CMS Award 2009 nella categoria Best Open Source PHP CMS rilasciato sotto licenza GNU/GPL o equivalente. Secondi a parimerito Joomla e Worpress. Tra i milgiori CMS non in PHP invece vince Plone.]]></description>
			<content:encoded><![CDATA[<p></p><p>Drupal <a href="http://www.packtpub.com/nominate-best-open-source-php-cms">riVince</a> l&#8217;Open Source CMS Award 2009 nella categoria Best Open Source PHP CMS rilasciato sotto licenza GNU/GPL o equivalente.<br />
Secondi a parimerito Joomla e Worpress.<br />
Tra i milgiori CMS non in PHP invece vince Plone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2009/11/12/drupal-best-open-source-php-cms-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rilasciato plugin ilmeteo.it per wordpress</title>
		<link>http://blog.ilbonzo.org/2009/09/21/rilasciato-plugin-ilmeteo-it-per-wordpress/</link>
		<comments>http://blog.ilbonzo.org/2009/09/21/rilasciato-plugin-ilmeteo-it-per-wordpress/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 09:27:58 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/?p=351</guid>
		<description><![CDATA[E&#8217; stato rilasciato da ilmeteo.it un plugin per wordpress per le previsioni meteo. A questo indirizzo http://imeteo.wordpress.com/ è possibile scaricarlo e vedere le istruzioni per installarlo.]]></description>
			<content:encoded><![CDATA[<p></p><p>E&#8217; stato rilasciato da <a href="http://www.ilmeteo.it">ilmeteo.it</a> un plugin per wordpress per le previsioni meteo.<br />
A questo indirizzo <a href="http://imeteo.wordpress.com/">http://imeteo.wordpress.com/</a> è possibile scaricarlo e vedere le istruzioni per installarlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2009/09/21/rilasciato-plugin-ilmeteo-it-per-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modulo Drupal per nuovo tipo di contenuto</title>
		<link>http://blog.ilbonzo.org/2009/06/25/modulo-drupal-per-nuovo-tipo-di-contenuto/</link>
		<comments>http://blog.ilbonzo.org/2009/06/25/modulo-drupal-per-nuovo-tipo-di-contenuto/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:02:13 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/?p=284</guid>
		<description><![CDATA[In Drupal è molto semplice sviluppare un modulo che permeta di avere a disposizione un nuovo tipo di contenuto che estenda il classico nodo. Vediamo come sviluppare un modulo che aggiunga il tipo di contenuto libro. Creiamo la cartella node_book che andremo a mettere nella cartella modules del nostro sito. Dentro questa cartella mettiamo il [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In Drupal è molto semplice sviluppare un modulo che permeta di avere a disposizione un nuovo tipo di contenuto che estenda il classico nodo.</p>
<p>Vediamo come sviluppare un modulo che aggiunga il tipo di contenuto libro.</p>
<p>Creiamo la cartella node_book che andremo a mettere nella cartella modules del nostro sito.<br />
Dentro questa cartella mettiamo il file <em>node_book.info</em> con le specifiche del nodo:<br />
<code><br />
; $Id$<br />
name = node book<br />
description = "nodo libro"<br />
core = 6.x<br />
</code></p>
<p>e il file node_book.module con il codice vero e proprio.</p>
<p>Ecco i vari hook che si devono implementare:<br />
<strong>Hook menu</strong><br />
<code><br />
function node_book_menu()<br />
{<br />
	$items[] = array( 'path' => 'node_book', 'callback' => 'node_book_page', 'access' => true, 'type' => MENU_CALLBACK );<br />
      return $items;<br />
}<br />
</code></p>
<p><strong>hook perm</strong><br />
<code><br />
function node_book_perm()<br />
{<br />
  return array('create book node', 'edit own book nodes');<br />
}<br />
</code><br />
<strong>hook access</strong><br />
<code>function node_book_access($op, $node, $account) {<br />
  if ($op == 'create') {<br />
    // Only users with permission to do so may create this node type.<br />
    return user_access('create nameofnodetype', $account);<br />
  }<br />
  // Users who create a node may edit or delete it later, assuming they have the<br />
  // necessary permissions.<br />
  if ($op == 'update' || $op == 'delete') {<br />
    if (user_access('edit own nameofnodetype', $account) &#038;&#038; ($account->uid == $node->uid)) {<br />
      return TRUE;<br />
    }<br />
  }<br />
}</code></p>
<p><strong>hook help</strong><br />
<code>function node_book_help($path, $arg) {<br />
  switch ($path) {<br />
    case 'admin/help#block':<br />
      return '
<p>'. t('Blocks are boxes of content that may be rendered into certain regions of your web pages, for example, into sidebars. Blocks are usually generated automatically by modules (e.g., Recent Forum Topics), but administrators can also define custom blocks.') .'</p>
<p>';</p>
<p>    case 'admin/build/block':<br />
      return t('
<p>Blocks are boxes of content that may be rendered into certain regions of your web pages, for example, into sidebars. They are usually generated automatically by modules, but administrators can create blocks manually.</p>
<p>If you want certain blocks to disable themselves temporarily during high server loads, check the "Throttle" box. You can configure the auto-throttle on the <a href="@throttle">throttle configuration page</a> after having enabled the throttle module.</p>
<p>You can configure the behaviour of each block (for example, specifying on which pages and for what users it will appear) by clicking the "configure" link for each block.</p>
<p>', array('@throttle' => url('admin/settings/throttle')));<br />
  }<br />
}</code><br />
Ora passiamo agli hook che implementano veramente il nostro modulo:<br />
<strong>hook form</strong><br />
<code><br />
function node_book_form(&#038;$node) {<br />
$type = node_get_types('type', $node);<br />
  if ($type->has_title) {<br />
    $form['title'] = array(<br />
      '#type' => 'textfield',<br />
      '#title' => check_plain($type->title_label),<br />
      '#required' => TRUE,<br />
      '#default_value' => $node->title,<br />
      '#weight' => -5<br />
    );<br />
  }<br />
  if ($type->has_body) {<br />
    // In Drupal 6, we can use node_body_field() to get the body and filter<br />
    // elements. This replaces the old textarea + filter_form() method of<br />
    // setting this up. It will also ensure the teaser splitter gets set up<br />
    // properly.<br />
    $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);<br />
  }<br />
  // NOTE in node_example there is some addition code here not needed for this simple node-type<br />
 // Now we define the form elements specific to our node type.<br />
  $form['editor'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Editore'),<br />
    '#default_value' => isset($node->editor) ? $node->editor : '',<br />
  );<br />
  $form['book_author'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Autore'),<br />
    '#default_value' => isset($node->book_author) ? $node->book_author : '',<br />
  );<br />
  $form['place'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Luogo'),<br />
    '#default_value' => isset($node->place) ? $node->place : '',<br />
  );<br />
  $form['year'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Anno'),<br />
    '#default_value' => isset($node->year) ? $node->year : '',<br />
  );<br />
  $form['book_type'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Tipo'),<br />
    '#default_value' => isset($node->book_type) ? $node->book_type : '',<br />
  );<br />
  $form['magazine'] = array(<br />
    '#type' => 'textfield',<br />
    '#title' => t('Rivista'),<br />
    '#default_value' => isset($node->magazine) ? $node->magazine : '',<br />
  );<br />
  return $form;<br />
}</code></p>
<p><strong>hook insert</strong><br />
/**<br />
 * Implementation of hook_insert().<br />
 *<br />
 * As a new node is being inserted into the database, we need to do our own<br />
 * database inserts.<br />
 */<br />
<code>function node_book_insert($node) {<br />
  db_query("INSERT INTO {node_book} (vid, nid, editor, book_author, place, year, book_type, magazine) VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s')", $node->vid, $node->nid,$node->editor,$node->book_author,$node->place,$node->year,$node->book_type,$node->magazine);<br />
}</code></p>
<p><strong>hook update</strong><br />
<code>/**<br />
 * Implementation of hook_update().<br />
 *<br />
 * As an existing node is being updated in the database, we need to do our own<br />
 * database updates.<br />
 */<br />
function node_book_update($node) {<br />
  // if this is a new node or we're adding a new revision,<br />
  if ($node->revision) {<br />
    node_book_insert($node);<br />
  }<br />
  else {<br />
    db_query("UPDATE {node_book} SET editor='%s', book_author='%s', place='%s', year='%s', book_type='%s', magazine='%s' WHERE vid = %d",  $node->editor, $node->book_author, $node->place, $node->year, $node->book_type, $node->magazine, $node->vid);<br />
  }<br />
}<br />
</code></p>
<p><strong>hook nodeapi</strong><br />
<code>/**<br />
 * Implementation of hook_nodeapi().<br />
 *<br />
 * When a node revision is deleted, we need to remove the corresponding record<br />
 * from our table. The only way to handle revision deletion is by implementing<br />
 * hook_nodeapi().<br />
 */<br />
function node_book_nodeapi(&#038;$node, $op, $teaser, $page) {<br />
  switch ($op) {<br />
    case 'delete revision':<br />
      // Notice that we're matching a single revision based on the node's vid.<br />
      db_query('DELETE FROM {node_book} WHERE vid = %d', $node->vid);<br />
      break;<br />
  }<br />
}</code></p>
<p><strong>hook_delete</strong><br />
/**<br />
 * Implementation of hook_delete().<br />
 *<br />
 * When a node is deleted, we need to remove all related records from out table.<br />
 */<br />
function node_book_delete($node) {<br />
  // Notice that we&#8217;re matching all revision, by using the node&#8217;s nid.<br />
  db_query(&#8216;DELETE FROM {node_book} WHERE nid = %d&#8217;, $node->nid);<br />
}</p>
<p><strong>hook load</strong><br />
<code>/**<br />
 * Implementation of hook_load().<br />
 *<br />
 * Now that we've defined how to manage the node data in the database, we<br />
 * need to tell Drupal how to get the node back out. This hook is called<br />
 * every time a node is loaded, and allows us to do some loading of our own.<br />
 */<br />
function node_book_load($node) {<br />
  $additions = db_fetch_object(db_query('SELECT editor,book_author,place,year,book_type,magazine FROM {node_book} WHERE vid = %d', $node->vid));<br />
  return $additions;<br />
}<br />
</code></p>
<p><strong>hook view</strong><br />
<code>/**<br />
 * Implementation of hook_view().<br />
 *<br />
 * This is a typical implementation that simply runs the node text through<br />
 * the output filters.<br />
 */<br />
function node_book_view($node, $teaser = FALSE, $page = FALSE) {<br />
    $node = node_prepare($node, $page);<br />
    $node->content['myfield'] = array(<br />
	'#value' => 'Editore: '.$node->editor.'&lt;br /&gt;'.'Autore: '.$node->book_author.'&lt;br &gt;'.'Luogo: '.$node->place.'&lt;br &gt;'.'Anno: '.$node->year.'&lt;br &gt;'.'Tipologia: '.$node->book_type.'&lt;br &gt;',<br />
    	'#weight' => 1,<br />
  );<br />
  return $node;<br />
}<br />
</code></p>
<p>Ora manca solo il DB, ecco la tabella per i campi in più del nostro nodo<br />
CREATE TABLE node_book (<br />
vid int(10) unsigned NOT NULL default &#8217;0&#8242;,<br />
nid int(10) unsigned NOT NULL default &#8217;0&#8242;,<br />
editor varchar(255) NOT NULL default &#8221;,<br />
book_author varchar(255) NOT NULL default &#8221;,<br />
place varchar(255),<br />
year varchar(255),<br />
book_type varchar(255),<br />
magazine varchar(255),<br />
PRIMARY KEY (vid, nid),<br />
KEY `node_type_book_nid` (nid)<br />
)</p>
<p>Dopo aver creato la tabella e attivato il modulo avrete un nuovo tipo di contenuto disponibile.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2009/06/25/modulo-drupal-per-nuovo-tipo-di-contenuto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrivere Modulo Drupal</title>
		<link>http://blog.ilbonzo.org/2009/06/01/scrivere-modulo-drupal/</link>
		<comments>http://blog.ilbonzo.org/2009/06/01/scrivere-modulo-drupal/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:28:31 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/?p=264</guid>
		<description><![CDATA[Ultimamente mi sono concentrato molto su Drupal, soprattutto per la sua flessibilità e modularità. La possibilità di scrivere un modulo, che aggiunge funzioni, senza andare a toccare il core del resto del cms è veramente molto utile e produttivo. Ecco un esempio di primo modulo che chiameremo nodelist: Creiamo un file nodelist.info che contiene le [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Ultimamente mi sono concentrato molto su <a href="http://drupal.org">Drupal</a>, soprattutto per la sua flessibilità e modularità.<br />
La possibilità di scrivere un modulo, che aggiunge funzioni, senza andare a toccare il core  del resto del cms è veramente molto utile e produttivo.</p>
<p>Ecco un esempio di primo modulo che chiameremo <code>nodelist</code>:<br />
Creiamo un file <strong>nodelist.info</strong> che contiene le informazioni del modulo.</p>
<p><code>; $Id: nodelist.info Exp $<br />
name = Nodelist<br />
description = visualizza list nodi<br />
package = node<br />
version = VERSION<br />
core = 6.x</code></p>
<p><code>; Information added by drupal.org packaging script on 2008-08-14<br />
version = "6.4"<br />
project = "drupal"</code></p>
<p>Creare il file <strong>nodelist.module</strong> in cui scriveremo il modulo vero e proprio.</p>
<p>Per fare ciò utilizziamo i famosi <a href="http://api.drupal.org/api/group/hooks">Hook</a> di Drupal.<br />
Le varie function per convenzione si chiameranno nodelist_[hook].</p>
<p><code><br />
/**<br />
* Display help and module information<br />
* @param path which path of the site we're displaying help<br />
* @param arg array that holds the current path as would be returned from arg() function<br />
* @return help text for the path<br />
*/<br />
function nodelist_help($path, $arg) {<br />
  $output = '';<br />
  switch ($path) {<br />
    case "admin/help#nodelist":<br />
      $output = '&lt;p&gt;'.t("Displays links to nodes ") .'&lt;/p&gt;';<br />
      break;<br />
  }<br />
  return $output;<br />
}<br />
/**<br />
* Valid permissions for this module<br />
* @return array An array of valid permissions for the mailing module<br />
*/<br />
function nodelist_perm() {<br />
  return array('access nodelist content');<br />
} // function nodelist_perm()<br />
/**<br />
*<br />
* @return<br />
*/<br />
function nodelist_block($op='list', $delta=0) {<br />
  // listing of blocks, such as on the admin/block page<br />
  if ($op == "list") {<br />
    $block[0]["info"] = t("node List");<br />
    return $block;<br />
  } else if ($op == 'view') {<br />
  // our block content<br />
    // content variable that will be returned for display<br />
    $block_content = '';<br />
    $result =  db_query("SELECT nid, title, created FROM {node} ");<br />
    while ($links = db_fetch_object($result)) {<br />
      $block_content .= l($links->title, 'node/'.$links->nid) . '<br />';<br />
    }<br />
    // check to see if there was any content before setting up the block<br />
    if ($block_content == '') {<br />
      // no content from a week ago, return nothing.<br />
      return;<br />
    }<br />
    // set up the block<br />
    $block['subject'] = 'node';<br />
    $block['content'] = $block_content;<br />
    return $block;<br />
  }<br />
}<br />
</code></p>
<p>Con questi file dentro la cartella nodelist e caricata nella cartella modules vi troverete la possibilità di abilitare il nuovo modulo.<br />
Abilitandolo avrete il nuovo blocco a disposizione.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2009/06/01/scrivere-modulo-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin Shadowbox per WordPress versione 0.2</title>
		<link>http://blog.ilbonzo.org/2008/05/02/plugin-shadowbox-per-wordpress-versione-02/</link>
		<comments>http://blog.ilbonzo.org/2008/05/02/plugin-shadowbox-per-wordpress-versione-02/#comments</comments>
		<pubDate>Fri, 02 May 2008 10:59:43 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/05/02/plugin-shadowbox-per-wordpress-versione-02/</guid>
		<description><![CDATA[Ecco &#8220;finalmente&#8221; la versione 0.2 del mio plugin Shadowbox per wordpress. Novità: Ora è possibile utilizzare il plugin sia con Yahoo! User Interface Library che con Prototype + Scriptaculous oltre ovviamente a MooTools. Di default è attivato quest&#8217;ultimo, ma per chi volesse modificando il file shadowbox.php e commentando la porzione mootools e decommentando quella del [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Ecco &#8220;finalmente&#8221; la versione 0.2 del mio <a href="http://blog.ilbonzo.org/2008/01/31/plugin-shadowbox-per-wordpress/">plugin Shadowbox per wordpress</a>.</p>
<p><strong>Novità:</strong><br />
Ora è possibile utilizzare il plugin sia con <a href="http://developer.yahoo.com/yui/">Yahoo! User Interface Library</a> che con <a href="http://prototypejs.org/">Prototype</a> + <a href="http://script.aculo.us/">Scriptaculous</a> oltre ovviamente a <a href="http://mootools.net/">MooTools</a>.</p>
<p>	Di default è attivato quest&#8217;ultimo, ma per chi volesse modificando il file shadowbox.php e commentando la porzione mootools e decommentando quella del framework interessato si può usare il plugin nel modo che si preferisce.</p>
<p><strong>Versioni:<br />
</strong></p>
<ul>
<li><a href="http://ilbonzo.org/projects/shadowbox/shadowbox02.tar.gz">shadowbox 0.2 (mootools attivato)</a></li>
<li><a href="http://ilbonzo.org/projects/shadowbox/shadowbox02_pro.tar.gz">shadowbox 0.2 (prototype attivato)</a></li>
<li><a href="http://ilbonzo.org/projects/shadowbox/shadowbox01.tar.gx">shadowbox 0.1</a></li>
</ul>
<p>Ecco il repository SVN per chi volesse collaborare:<br />
<a href="http://svn.wp-plugins.org/shadowbox/">http://svn.wp-plugins.org/shadowbox/</a></p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/05/02/plugin-shadowbox-per-wordpress-versione-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin shadowbox per wordpress</title>
		<link>http://blog.ilbonzo.org/2008/01/31/plugin-shadowbox-per-wordpress/</link>
		<comments>http://blog.ilbonzo.org/2008/01/31/plugin-shadowbox-per-wordpress/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 07:55:22 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/01/31/plugin-shadowbox-per-wordpress/</guid>
		<description><![CDATA[Ho letto di questo componente Shadowbox che è una specie di Lightbox, slimbox che consente di inserire molti tipi di contenuti: non solo foto ma video da youtube, animazioni flash, pagine html, ecc.. Ho quindi pensato di provare a creare il mio primo plugin per wordpress integrando questo componente. Qui intanto gli esempi di come [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Ho letto di questo componente <a href="http://mjijackson.com/shadowbox/">Shadowbox</a> che è una specie di Lightbox, slimbox che consente di inserire molti tipi di contenuti: non solo foto ma video da youtube, animazioni flash, pagine html, ecc..    </p>
<p>Ho quindi pensato di provare a creare il mio primo plugin per wordpress integrando questo componente.</p>
<p>Qui intanto gli esempi di come funziona Shadowbox:</p>
<h2><a name="demos">Demos</a></h2>
<h3>Images</h3>
<p>
        <a rel="shadowbox" href="http://farm2.static.flickr.com/1177/1150569783_61dbc56834.jpg" class="option">Single Image (Flickr)</a><br />
        <a rel="shadowbox[Aston Martin]" href="http://blog.ilbonzo.org/gallery/aston_martin/vantage.jpg" class="option" title="Aston Martin Vantage">Image Gallery</a></p>
<p>        <a rel="shadowbox[Aston Martin]" href="http://blog.ilbonzo.org/gallery/aston_martin/vanquish.jpg" class="hidden" title="Aston Martin Vanquish S">image</a><br />
        <a rel="shadowbox[Aston Martin]" href="http://blog.ilbonzo.org/gallery/aston_martin/db9.jpg" class="hidden" title="Aston Martin DB9">image</a>
    </p>
<h3><a name="lgimage-demo">Large Image</a></h3>
<p>You may have to shrink your browser window to view the effect here. See the <a href="#handlelgimages">handleLgImages</a> option for more information.</p>
<table class="thumbs" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Clipped (no resizing)</td>
<td>Resized</td>
<td>Draggable</td>
</tr>
<tr>
<td><a rel="shadowbox;options={handleLgImages:'none'}" href="http://blog.ilbonzo.org/gallery/greatwall.jpg" title="Great Wall of China"><img src="http://blog.ilbonzo.org/gallery/greatwall-thumb.jpg" alt=""/></a></td>
<td><a rel="shadowbox" href="http://blog.ilbonzo.org/gallery/greatwall.jpg" title="Great Wall of China"><img src="http://blog.ilbonzo.org/gallery/greatwall-thumb.jpg" alt=""/></a></td>
<td><a rel="shadowbox;options={handleLgImages:'drag'}" href="http://blog.ilbonzo.org/gallery/greatwall.jpg" title="Great Wall of China"><img src="http://blog.ilbonzo.org/gallery/greatwall-thumb.jpg" alt=""/></a></td>
</tr>
</table>
<h3>Thumb Gallery</h3>
<p>Unlike the previous image gallery, this one is triggered by thumbnail links. It also uses a <a href="#countertype">skip counter</a> and is <a href="#continuous">continuous</a>.</p>
<table class="thumbs" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a rel="shadowbox[MustangThumbs];options={counterType:'skip',continuous:true}" href="http://blog.ilbonzo.org/gallery/mustang/red.jpg"><img src="http://blog.ilbonzo.org/gallery/mustang/red-thumb.jpg" alt="Red"/></a></td>
<td><a rel="shadowbox[MustangThumbs];options={counterType:'skip',continuous:true}" href="http://blog.ilbonzo.org/gallery/mustang/blue.jpg"><img src="http://blog.ilbonzo.org/gallery/mustang/blue-thumb.jpg" alt="Red"/></a></td>
<td><a rel="shadowbox[MustangThumbs];options={counterType:'skip',continuous:true}" href="http://blog.ilbonzo.org/gallery/mustang/grey.jpg"><img src="http://blog.ilbonzo.org/gallery/mustang/grey-thumb.jpg" alt="Red"/></a></td>
</tr>
</table>
<h3>Flash</h3>
<p>
        <a rel="shadowbox;width=400;height=300" class="option" title="Girl Skipping" href="http://blog.ilbonzo.org/gallery/skip.swf">Single SWF</a><br />
        <a id="flash1" rel="width=600;height=450" class="option" title="Hollywood or Bust" href="http://blog.ilbonzo.org/gallery/old_man.swf">SWF Gallery</a><br />
        <a rel="shadowbox;width=600;height=450" class="option" title="Alien" href="http://blog.ilbonzo.org/gallery/alien.flv">Flash Video</a></p>
<h3>Movies</h3>
<p>
        <a rel="shadowbox;width=292;height=218" class="option" title="Unfortunate Kayaker" href="http://blog.ilbonzo.org/gallery/kayak.mov">Single Movie (mov)</a><br />
        <a rel="shadowbox;width=292;height=218;options={showMovieControls:false}" class="option" title="Unfortunate Kayaker" href="http://blog.ilbonzo.org/gallery/kayak.mp4">Single Movie (mpeg-4, controller disabled)</a><br />
        <a rel="shadowbox;width=318;height=218;options={autoplayMovies:false}" class="option" title="Unfortunate Kayaker" href="http://blog.ilbonzo.org/gallery/kayak.avi">Single Movie (avi, autoplay disabled)</a></p>
<p>        <a rel="shadowbox;width=320;height=240" class="option" title="Curious Cat" href="http://blog.ilbonzo.org/gallery/cat.wmv">Single Movie (wmv)</a><br />
        <a rel="shadowbox;width=640;height=272" class="option" title="Beowulf Trailer" href="http://images.apple.com/movies/paramount/beowulf/beowulf-tr2_h.640.mov">Apple.com Trailer</a><br />
        <a rel="shadowbox;width=405;height=340" class="option" title="David Beckham" href="http://www.youtube.com/v/wbzLpteC8ng&amp;autoplay=1">YouTube</a><br />
        <a rel="shadowbox;width=405;height=340" class="option" title="While My Ukulele Gently Weeps" href="http://video.google.com/googleplayer.swf?docid=1352016870638076087&amp;autoplay=1">Google Video</a><br />
        <a rel="shadowbox[Movies];width=405;height=340;options={continuous:true}" class="option" title="YouTube" href="http://www.youtube.com/v/JPSzcRbFArA&amp;autoplay=1">Movie Gallery</a><br />
        <a rel="shadowbox[Movies];width=292;height=218" class="hidden" title="QuickTime" href="gallery/kayak.mov">MOV</a></p>
<p>        <a rel="shadowbox[Movies];width=320;height=240" class="hidden" title="Windows Media" href="http://blog.ilbonzo.org/gallery/cat.wmv">WMV</a><br />
        <a rel="shadowbox[Movies];width=600;height=450" class="hidden" title="Flash Video" href="http://blog.ilbonzo.org/gallery/alien.flv">FLV</a><br />
        <a rel="shadowbox" class="option" title="Google.com" href="http://www.google.com/">External Website</a><br />
        <a rel="shadowbox" class="option" title="This page" href="http://blog.ilbonzo.org/">This page</a><br />
        <a rel="shadowbox[Mixed];options={counterType:'skip',continuous:true}" class="option" title="JPG" href="gallery/aston_martin/vanquish.jpg">Mixed Content Gallery</a><br />
        <a rel="shadowbox[Mixed];width=520;height=390" class="hidden" title="SWF" href="http://blog.ilbonzo.org/gallery/caveman.swf">swf</a></p>
<p>        <a rel="shadowbox[Mixed];width=292;height=218" class="hidden" title="MPEG-4" href="http://blog.ilbonzo.org/gallery/kayak.mp4">movie</a><br />
        <a rel="shadowbox[Mixed]" class="hidden" title="IFRAME" href="http://blog.ilbonzo.org/">iframe</a>
    </p>
<p>Il Plugin è molto semplice, basta caricare la cartella che si ottiene scompattando l&#8217;archivio compresso nelal cartella /wp-content/plugins, andare nella parte di amministrazione e attivare il plugin.</p>
<p>Per utilizzarlo basta aggiungere <strong>rel=&#8221;shadowbox&#8221;</strong> ai link che volete aprire in questo modo.</p>
<p>ecco un po&#8217; di esempi presi dal sito di <a href="http://mjijackson.com/shadowbox/">shadowbox</a></p>
<p><code></p>
<h3><a name="markup">Markup</a></h3>
<p>The simplest way to use Shadowbox is through your HTML markup. At the very least, you must add a <code>rel="shadowbox"</code> attribute to your links. For example, say you have this link to an image on your page:</p>
<pre>&lt;a href="myimage.jpg">My Image&lt;/a></pre>
<p>In order to set up this link for use with Shadowbox, simply change it to this:</p>
<pre>&lt;a href="myimage.jpg" rel="shadowbox">My Image&lt;/a></pre>
<p>If you would like to display a title for your image, simply add a <code>title</code> attribute to the link.</p>
<pre>&lt;a href="myimage.jpg" rel="shadowbox" title="My Image">My Image&lt;/a></pre>
<p>You must explicitly tell Shadowbox the dimensions to use to display content other than images. This is done by adding a few parameters to the end of the <code>rel</code> attribute, separated by semi-colons (like a CSS style declaration). To specify a movie's height and width, use the <code>height</code> and <code>width</code> parameters. Note: unlike in CSS, these values must always be specified in pixels.</p>
<pre>&lt;a href="mymovie.swf" rel="shadowbox;height=140;width=120">My Movie&lt;/a></pre>
<p>Additionally, you may set Shadowbox options on a per-link basis. To do this, you must include a <a href="http://www.json.org/">JSON</a>-formatted parameter called <code>options</code>. An example could be:</p>
<pre>&lt;a href="myimage.jpg" rel="shadowbox;options={overlayOpacity: 0.5, resize: false}">My Image&lt;/a></pre>
<p>In addition to displaying single images and movies, Shadowbox is also capable of displaying galleries of content. In order to designate a link as part of a gallery, you must add the gallery name to the <code>rel</code> attribute between square brackets immediately following the word "shadowbox". For example, the following markup creates a gallery called "Vacation" with two pictures:</p>
<pre>&lt;a href="beach.jpg" rel="shadowbox[Vacation]">The Beach&lt;/a>
&lt;a href="pier.jpg" rel="shadowbox[Vacation]">The Pier&lt;/a></pre>
<p>Galleries may be composed of content of many different types. The following markup is a compressed version of the last <a href="#demos">demo</a> above. It demonstrates how various media can be combined into a single gallery.</p>
<pre>&lt;a rel="shadowbox[Mixed];options={counterType:'skip',continuous:true}" href="vanquish.jpg">jpg&lt;/a>
&lt;a rel="shadowbox[Mixed];width=520;height=390" href="caveman.swf">swf&lt;/a>
&lt;a rel="shadowbox[Mixed];width=292;height=218" href="kayak.mp4">movie&lt;/a>
&lt;a rel="shadowbox[Mixed]" href="index.html">iframe&lt;/a></pre>
<p></code></p>
<p>Per ora il plugin funziona con mootools, ma è facilmente adattabile ad altre librerie javascript, visto che shqdowbox include i vari adapter per queste librerie.</p>
<ul>
<li><a href="http://developer.yahoo.com/yui/">Yahoo! User Interface Library</a> (yahoo, dom, event, anim)</li>
<li><a href="http://extjs.com">Ext</a> (standalone, ext-core.js)</li>
<li><a href="http://prototypejs.org/">Prototype</a> + <a href="http://script.aculo.us/">Scriptaculous</a></li>
<li><a href="http://jquery.com/">jQuery</a></li>
<li><a href="http://mootools.net/">MooTools</a> (requires Fx.Styles and its dependancies)</li>
<li><a href="http://dojotoolkit.org/">Dojo Toolkit</a> (thanks Peter Higgins)</li>
</ul>
<p><a href="http://blog.ilbonzo.org/upload/shadowbox.tar.gz">Scarica il plugin versione 0.1</a><br />
Ovviamente spero che se ci sono reeori qualcuno me lo segnali.</p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/01/31/plugin-shadowbox-per-wordpress/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
<enclosure url="http://blog.ilbonzo.org/gallery/kayak.mov" length="860878" type="video/quicktime" />
<enclosure url="http://blog.ilbonzo.org/gallery/kayak.mp4" length="848200" type="video/mp4" />
<enclosure url="http://blog.ilbonzo.org/gallery/kayak.avi" length="1519768" type="video/x-msvideo" />
<enclosure url="http://blog.ilbonzo.org/gallery/cat.wmv" length="422489" type="video/x-ms-wmv" />
<enclosure url="http://images.apple.com/movies/paramount/beowulf/beowulf-tr2_h.640.mov" length="120" type="video/quicktime" />
<enclosure url="http://blog.ilbonzo.org/gallery/alien.flv" length="1784892" type="video/x-flv" />
		</item>
		<item>
		<title>Joomla 1.5, finalmente</title>
		<link>http://blog.ilbonzo.org/2008/01/23/joomla-15-finalmente/</link>
		<comments>http://blog.ilbonzo.org/2008/01/23/joomla-15-finalmente/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 09:14:58 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/01/23/joomla-15-finalmente/</guid>
		<description><![CDATA[Dopo una lunga attesa è finalmente uscito Joomla 1.5 versione stabile. http://www.joomla.org/ Ora non resta che fare i complimenti a chi ha lavorato al progetto dando a tutti la possibilità di usarlo anche in produzione e di decidere se e quando far passare i siti fatti in joomla a questa versione. Purtroppo non sono riuscito [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Dopo una lunga attesa è finalmente uscito Joomla 1.5 versione stabile.</p>
<p><a href="http://www.joomla.org/">http://www.joomla.org/</a></p>
<p><a href="http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&#038;frs_package_id=2"><img src="http://blog.ilbonzo.org/wp-content/uploads/2008/01/download_j15stable.png" alt="joomla 1.5" /></a></p>
<p>Ora non resta che fare i complimenti a chi ha lavorato al progetto dando a tutti la possibilità di usarlo anche in produzione e di decidere se e quando far passare i siti fatti in joomla a questa versione.</p>
<p>Purtroppo non sono riuscito ad andare al joomla day, in cui c&#8217;era un talk sulla migrazione, spero che i video dell&#8217;evento prima o poi siano disponibili on-line.</p>
<p>Gabba Gabba hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/01/23/joomla-15-finalmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slimbox wordpress plugin</title>
		<link>http://blog.ilbonzo.org/2008/01/17/slimbox-wordpress-plugin/</link>
		<comments>http://blog.ilbonzo.org/2008/01/17/slimbox-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 08:48:00 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/01/17/slimbox-wordpress-plugin/</guid>
		<description><![CDATA[Come ho già avuto occasione di dire, mi piacciono molto le finestre modali per la visualizzazione delle immagini e dove potevo le ho sempre inserite. Fino ad ora ho utilizzato in particolare lightbox, ma ovviamente ho testato anche altre soluzioni. Ultimamente però ho preso la decisione di utilizzare principalmente mootools come framework javascript quindi, visto [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Come ho già avuto occasione di dire, mi piacciono molto le finestre modali per la visualizzazione delle immagini e dove potevo le ho sempre inserite.<br />
Fino ad ora ho utilizzato in particolare <a href="http://www.huddletogether.com/projects/lightbox2/" class="Tips3" title="huddletogether.com lightbox2">lightbox</a>, ma ovviamente ho testato anche altre soluzioni. Ultimamente però ho preso la decisione di utilizzare principalmente <a href="http://mootools.net/" class="Tips3" title="framework javascipt mootools">mootools</a> come framework javascript quindi, visto che è più funzionale caricare solo una libreria per non appesantire troppo i client, ho deciso di sostituire lightbox con <a href="http://www.digitalia.be/software/slimbox" class="Tips3" title="Finestra modale con slimbox">slimbox</a> utilizzando il plugin relativo anche sul blog:</p>
<p><a href="http://www.4mj.it/slimbox-wordpress-plugin/">slimbox wordpress plugin/</a></p>
<p>Eccone alcuni esempi con immagini che già sono state usate nel mio blog.</p>
<p><a href='http://blog.ilbonzo.org/wp-content/uploads/2008/01/06_ruby.png' title='ruby 06' rel="lightbox"><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/01/06_ruby.thumbnail.png' alt='ruby 06' /></a></p>
<p>Sequenza</p>
<p><a href='http://blog.ilbonzo.org/wp-content/uploads/2007/05/g_evolution.png' title='tab ricezione mail' rel="lightbox[roadtrip]"><img src='http://blog.ilbonzo.org/wp-content/uploads/2007/05/g_evolution.png' alt='tab ricezione mail' width="200" height="150"/></a> <a href='http://blog.ilbonzo.org/wp-content/uploads/2007/05/g_evolution.png' title='tab ricezione mail' rel="lightbox[roadtrip]"><img src='http://blog.ilbonzo.org/wp-content/uploads/2007/05/g_evolution.png' alt='tab ricezione mail' width="200" height="150"/></a></p>
<p>il codice è questo:</p>
<p><code>Single example:<br />
&lt;a href=”img1.jpg” rel=”lightbox” title=”my caption”&gt;thumbnail1&lt;/a&gt;<br />
Image set example:<br />
&lt;a href=”img1.jpg” rel=”lightbox[roadtrip]”&gt;thumbnail1&lt;/a&gt;<br />
&lt;a href=”img2.jpg” rel=”lightbox[roadtrip]”&gt;thumbnail2&lt;/a&gt;<br />
&lt;a href=”img3.jpg” rel=”lightbox[roadtrip]”&gt;thumbnail3&lt;/a&gt;</code></p>
<p>Ogni volta che si inserisce una immagine bisogna aggiungere l&#8217;attributo rel, lightbox se è solo una immagine o lightbox[roadtrip] se si vuole creare una sequenza.</p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/01/17/slimbox-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aggiornato WordPress alla versione 2.2.2</title>
		<link>http://blog.ilbonzo.org/2007/08/23/aggiornato-wordpress-alla-versione-222/</link>
		<comments>http://blog.ilbonzo.org/2007/08/23/aggiornato-wordpress-alla-versione-222/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 07:29:42 +0000</pubDate>
		<dc:creator>Matteo Magni</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/?p=116</guid>
		<description><![CDATA[Recentemente ho aggiornato il mio Blog fatto con wordpress alla versione 2.2.2. Grazie alla procedura abbastanza semplice, e al video di Andrea Beggi tutto è andato a buon fine. Aggiungo solo, rispetto al video che ho dovuto ricaricare in wp-content anche la cartella Language con i file per la traduzione in Italiano. Grazie a tutti [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Recentemente ho aggiornato il mio Blog fatto con wordpress alla versione 2.2.2.</p>
<p>Grazie alla procedura abbastanza semplice, e al video di <a href="http://www.andreabeggi.net/">Andrea Beggi</a></p>
<p><a href="http://www.andreabeggi.net/wp-content/wp-upgrade.html" target="_blank"><img src="http://www.andreabeggi.net/wp-content/wp-upgrade.png" id="image1052" alt="WordPress upgrade" /></a></p>
<p>tutto è andato a buon fine.<br />
Aggiungo solo, rispetto al video che ho dovuto ricaricare in wp-content anche la cartella Language con i file per la traduzione in Italiano.<br />
Grazie a tutti e come ha detto Andrea: &#8220;Buon aggionrnamento a tutti!&#8221;</p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2007/08/23/aggiornato-wordpress-alla-versione-222/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

