<?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>Consulenza-Web.com &#187; rad</title>
	<atom:link href="http://www.consulenza-web.com/tag/rad/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.consulenza-web.com</link>
	<description>Blog di Marco Pegoraro su Consulenza Web ed Informatica, Programmazione Web e realizzazione di Siti Web Accessibili.</description>
	<lastBuildDate>Mon, 30 Jan 2012 08:39:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Froggle CMS: piano di sviluppo!</title>
		<link>http://www.consulenza-web.com/2010/09/froggle-cms-piano-di-sviluppo/</link>
		<comments>http://www.consulenza-web.com/2010/09/froggle-cms-piano-di-sviluppo/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 07:03:38 +0000</pubDate>
		<dc:creator>peg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[JuniorCMS]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[crossbrowser]]></category>
		<category><![CDATA[crud]]></category>
		<category><![CDATA[icp]]></category>
		<category><![CDATA[interfaccia]]></category>
		<category><![CDATA[jcms]]></category>
		<category><![CDATA[pannello]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php framework]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[sitebuilder]]></category>
		<category><![CDATA[url rewrite]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.consulenza-web.com/2010/09/froggle-cms-piano-di-sviluppo/</guid>
		<description><![CDATA[Dopo quasi 3 anni di sviluppo di JuniorCMS abbiamo messo assieme un bel po&#8217; di funzionalità e framework applicativi. JuniorCMS è utilizzato con pieno successo in moltissimi siti e progetti web di alto livello per strutture che fondano il loro business sulle vendite on-line e sul webmarketing. Abbiamo realizzato gestionali operativi su scala nazionale (Gruppo [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo quasi 3 anni di sviluppo di JuniorCMS abbiamo messo assieme un bel po&#8217; di funzionalità e framework applicativi.</p>
<p>JuniorCMS è utilizzato con pieno successo in moltissimi siti e <b>progetti web di alto livello</b> per strutture che fondano il loro business sulle vendite on-line e sul webmarketing.</p>
<p>Abbiamo realizzato <b>gestionali operativi su scala nazionale</b> (Gruppo Volkswagen) e abbiamo realizzato <b>micro-gestionali per la bottega sotto casa</b>.</p>
<p>Stiamo realizzando il progetto <b><a href="http://www.adessoweb.biz?007" class="aga aga_7" title="realizzazione siti web economici, sito web economico" target="_blank">AdessoWEB</a></b> che consente di avvicinarsi al business on-line con un prodotto professionale ma estremamente semplice ed intuitivo.</p>
<p><b><u>Ora vogliamo andare avanti.</u></b></p>
<p>Ciò che in questi anni non abbiamo realizzato è una community di sviluppatori che utilizzano questo prodotto.</p>
<p><a href="http://www.froggle.it" class="aga aga_8" title="Italian based CMS" target="_blank">FroggleCMS</a> nasce per risolvere questo enorme problema e creare una soluzione di gestione contenuti basata sul concetto di sviluppo veloce (RAD).</p>
<h2>Powerfull Plugins</h2>
<p>Alla base del progetto abbiamo messo il concetto di &#8220;<b>plugin</b>&#8221; inteso come &#8220;<b>raggruppamento logico di software e risorse atto a risolvere una precisa necessità</b>&#8220;.</p>
<p>Le necessità che un plugin può risolvere sono anch&#8217;esse tipizzate in:</p>
<ol>
<li><b>libreria</b>: condivisione di librerie e framework</li>
<li><b>servizio</b>: definizione di servizi condivisi all&#8217;applicativo</li>
<li><b>applicativo</b>: definizione di software gestionale utile</li>
<li><b>estensione</b>: intervento di modifica e/o estensione di altri plugins</li>
<li><b>custom</b>: insieme di applicativo ed estensione ove inserire il codice personalizzato sul singolo progetto.</li>
</ol>
<p>Il plugin di estensione o custom permettono di modificare in modo approfondito sul comportamento dei livelli ingeriori per <b>implementare soluzioni specifiche senza creare fork del progetto</b>.</p>
<h2>Life Cycle Guarantee</h2>
<p>Anni di esperienza nella progettazione di applicativi ci hanno insegnato l&#8217;<b>importanza del ciclo di vita del software</b>.</p>
<p>Molte piccole web agency (l&#8217;Italia ne è piena) si trovano a <b>sviluppare progetti in velocità</b> per sopravvivere sul mercato.</p>
<p><b>La creazione di soluzioni realmente riutilizzabili è molto difficile</b> in quanto, di progetto in progetto, nascono nuove necessità, ottimizzazioni, verticalizzazioni.</p>
<p>Di fatto ci si trova quasi sempre a creare piccoli fork di progetti preesistenti con il triste risultato di <b>produrre decine di sub-versioni incompatibili</b> di un progetto inizialmente coerente.</p>
<p><u>Il nostro devTeam è stato a lungo vittima di questo processo!</u></p>
<p><b>La soluzione proposta da FroggleCMS consente di isolare qualunque software in plugins che possono essere migliorati e versionati come un qualunque software commerciale.</b></p>
<p>Nel momento in cui un particolare progetto richiede una particolare modifica ad un plugin esistente è possibile <b>definire un plugin di estensione che apporta modifiche dall&#8217;esterno senza modificare le logiche esistenti</b>.</p>
<p>Questa architettura è già implementata con successo su JuniorCMS e da oltre un anno ne godiamo i benefici per creare customizzazioni quali:</p>
<ul>
<li>aggiunta di campi personalizzati a strutture dati esistenti</li>
<li>modificare l&#8217;interfaccia utente esistente per adeguarla al progetto</li>
<li>inserire o modificare logica di controllo</li>
<li>inserire o modificare logica di cooperazione tra plugins (es servizi di sincronizzazione)</li>
</ul>
<h2>Spaghetti Coding Proof:</h2>
<p>Ecco le fasi di realizzazione di un <b>Tipico Spaghetti Project:</b></p>
<ol>
<li>Creazione in velocità di un plugin di gestione rassegna stampa con titolo e file allegato per un cliente.</li>
<li>Un nuovo cliente mi chiede la rassegna stampa ma ha bisogno di un campo abstract.</li>
<li>Copio il plugin già creato e lo modifico per il nuovo cliente.</li>
</ol>
<p>Questo tipo di sviluppo lo vedo ogni santo giorno in qualunque realtà aziendale e la triste conseguenza (già citata sopra) è la proliferazione di micro plugins incompatibili tra loro.</p>
<p>La conseguenza più pericolosa è che se il &#8220;plugin madre&#8221; ha un grosso bug il tempo impiegato per correggere tutti i derivati è semplicemente apocalittico!</p>
<p>Ecco le fasi di realizzazione di un <b>Froggle Spaghetti Project:</b></p>
<ol>
<li>Creazione in velocità di un plugin di gestione rassegna stampa con titolo e file allegato per un cliente.</li>
<li>Un nuovo cliente mi chiede la rassegna stampa ma ha bisogno di un campo abstract.</li>
<li>Creo un nuovo plugin che estende la rassegna stampa aggiungendo il campo su db, l&#8217;interfaccia e la logica necessaria senza modificare la logica preesistente.</li>
</ol>
<p>Questo tipo di sviluppo ha enormi vantaggi:</p>
<ul>
<li>mi permette di creare soluzioni veloci che possono essere migliorate e redistribuite in tempi più rilassati</li>
<li>mi permette di gestire la sicurezza del software per singolo plugin senza preoccuparmi delle sue estensioni (che ereditano la sicurezza)</li>
<li>mi permette di abbattere il numero di versioni incompatibili creando invece &#8220;catene di estensione&#8221; che possono essere facilmente versionate e mantenute</li>
<li>mi permette di utilizzare e personalizzare qualunque plugin esistente (anche commerciale) senza violare licenze sul codice o simile.</li>
</ul>
<h2>Sviluppo di FroggleCMS:</h2>
<p><u>1° Ottobre 2010:</u> il devTeam di JuniorCMS da vita allo sviluppo dell&#8217;infrastruttura di <a href="http://www.froggle.it" class="aga aga_9" title="Italian based CMS" target="_blank">FroggleCMS</a> (<a href="http://www.cakepower.org" class="aga aga_10" title="CakePHP with Power" target="_blank">CakePOWER</a>).</p>
<p><u>1° Novembre 2010:</u> viene rilasciato <a href="http://www.cakepower.org" class="aga aga_11" title="CakePHP with Power" target="_blank">CakePOWER</a> che implementa su <a href="http://www.cakephp.org" class="aga aga_12" title="PHP RAD Framework" target="_blank">CakePHP</a> l&#8217;architettura presentata in questo articolo assieme ad altre architetture di importanza minore.</p>
<p><u>1° Dicembre 2010:</u> viene rilasciato il plugin &#8220;froggle&#8221; che contiene l&#8217;interfaccia di base di <a href="http://www.froggle.it" class="aga aga_13" title="Italian based CMS" target="_blank">FroggleCMS</a> e la gestione utenti. Questo plugin è destinato ad essere frequentemente aggiornato con l&#8217;aggiunta costante delle funzionalità &#8220;core&#8221;.</p>
<p><u><b>1° Gennaio 2011:</b></u> <b>viene rilasciato il primo pacchetto auto-installante di FroggleCMS pronto per essere utilizzato in attività commerciali.</b></p>
<p>A questo punto daremo il via ad un programma di sviluppo plugins per coprire in breve tempo le principali esigenze di gestione contenuti on-line quali:</p>
<ul>
<li>gestione albero pagine sito web</li>
<li>gestione news</li>
<li>gestione rassegna stampa</li>
<li>gestione calendario eventi</li>
<li>gestione photo-gallery</li>
<li>gestione prodotti generici</li>
<li>gestione pagamento con carta di credito</li>
<li>organizzazione dei prodotti per categorie</li>
<li>gestione di un carrello elettronico complesso</li>
<li>e-commerce (unisce precedenti plugins aggiungendo gestione sconti, gestione coupon, offerte, tasse, valute, magazzino, etc)</li>
</ul>
<p>Il mercato di riferimento per questo prodotto è il nostro bel paese dunque tutta <u><b>la documentazione sarà inizialmente prodotta in italiano</b></u> mentre i commenti del codice sorgente cercheranno, per quanto possibile, di essere scritti in un decente spaghetti-english.</p>
<p>Ciao a tutti e buona fortuna al DevTEAM!</p>
<p></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Segnala presso:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;title=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;title=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;title=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;title=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;LinkedIn"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/linkedin.png" title="Add to&nbsp;LinkedIn" alt="Add to&nbsp;LinkedIn" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;title=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Froggle+CMS%3A+piano+di+sviluppo%21+@+http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.consulenza-web.com%2F2010%2F09%2Ffroggle-cms-piano-di-sviluppo%2F&amp;t=Froggle+CMS%3A+piano+di+sviluppo%21" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.consulenza-web.com/2010/09/froggle-cms-piano-di-sviluppo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CakePOWER: Progettazione di un Framework</title>
		<link>http://www.consulenza-web.com/2009/09/cakepower-progettazione-di-un-framework/</link>
		<comments>http://www.consulenza-web.com/2009/09/cakepower-progettazione-di-un-framework/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 07:49:35 +0000</pubDate>
		<dc:creator>peg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakePOWER]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[applicativo]]></category>
		<category><![CDATA[applicazione]]></category>
		<category><![CDATA[crud]]></category>
		<category><![CDATA[php framework]]></category>
		<category><![CDATA[rad]]></category>

		<guid isPermaLink="false">http://www.consulenza-web.com/?p=99</guid>
		<description><![CDATA[Quest0 articolo segna l&#8217;inizio di una serie di considerazioni e analisi il cui obiettivo è la progettazione e costruzione di un framework applicativo web based. La mia esperienza nello sviluppo di applicazioni web (siti web, gestionali, piccole utility) mi ha portato ad elaborare alcune definizioni che utilizzerò nei successivi articoli di analisi: framework: è l&#8217;insieme [...]]]></description>
			<content:encoded><![CDATA[<p>Quest0 articolo segna l&#8217;inizio di una serie di considerazioni e analisi il cui obiettivo è la <strong>progettazione e costruzione di un framework applicativo</strong> web based.</p>
<p>La mia esperienza nello sviluppo di applicazioni web (siti web, gestionali, piccole utility) mi ha portato ad elaborare alcune definizioni che utilizzerò nei successivi articoli di analisi:</p>
<ul>
<li><strong>framework:</strong> è l&#8217;insieme di strumenti che consentono di enunciare le istruzioni logiche che compongono l&#8217;applicazione.</li>
<li><strong>applicazione: </strong>è l&#8217;insieme delle istruzioni necessarie a <span style="text-decoration: underline;">definire la logica astratta</span> di un software.</li>
<li><strong>interfaccia: </strong>è lo strumento di comunicazione tra l&#8217;applicazione e il suo utente.</li>
<li><strong>prodotto:</strong> è l&#8217;insieme di applicazione e interfaccia cui vengono applicate delle <span style="text-decoration: underline;">personalizzazioni specifiche</span> per la singola realizzazione.</li>
</ul>
<p style="text-align: center;"><a style="text-decoration: none;" href="http://www.consulenza-web.com/wp-content/uploads/2009/09/logical-area.jpg" ><img class="size-medium wp-image-105 aligncenter" title="Aree Logiche di Sviluppo" src="http://www.consulenza-web.com/wp-content/uploads/2009/09/logical-area-300x300.jpg" alt="schema organizzativo delle aree logiche in cui si divide lo sviluppo di un'applicazione web." width="300" height="300" /></a></p>
<p><span style="text-decoration: underline;">Nell&#8217;immagine precedente la linea rossa rappresenta la separazione logica tra sviluppo dell&#8217;applicazione e lo sviluppo del prodotto.</span></p>
<p>L&#8217;applicazione è costituita di istruzioni logiche generiche che possono descrivere una <strong>soluzione software ad un problema collettivo</strong>. Lo sviluppo del prodotto si concentra sulla selezione delle applicazioni necessarie e sulla d<strong>efinizione di un insieme di regole di personalizzazione</strong>.</p>
<p>Nel momento in cui ci viene richiesto lo sviluppo di un prodotto (es un sito web) dobbiamo soffermarci e ragionare sulle applicazioni che lo compongono: <em>gestione utenti, gestione pagine, gestione news, photo gallery</em> e sulle regole di personalizzazione che lo completano: <em>template grafico, numero di news per pagina, gestione dei menus</em>.</p>
<p><strong>Diventa facile capire che l&#8217;obiettivo è spostare la line rossa in modo che l&#8217;area di configurazione occupi sempre meno spazio nella costruzione di un prodotto</strong>. Il tempo che dedichiamo alla costruzione di un prodotto dev&#8217;essere concentrato sulla soddisfazione delle personalizzazioni richieste e non sullo sviluppo delle funzionalità</p>
<h1>Il compito del framework:</h1>
<p>La realizzazione pratica di quanto illustrato espone alcuni prerequisiti fondamentali che il framework deve soddisfare:</p>
<ul>
<li>Tutte le operazioni di configurazione devono poter essere descritte su files fisicamente distinti dai sorgenti dell&#8217;applicazione.</li>
<li>I moduli applicativi (plugins) che compongono l&#8217;applicazione devono poter interoperare al fine di estendere e/o modificare il comportamento di altri moduli.</li>
<li>I moduli applicativi devono essere sensibili ad un sistema di configurazione strutturato e scalabile.</li>
<li>I moduli applicativi devono erogare funzionalità logiche &#8220;dropIn&#8221;. Non deve essere richiesta modifica dei files sorgenti!</li>
</ul>
<h1>CakePOWER: un po&#8217; di pepe a CakePHP!</h1>
<p><strong>CakePOWER</strong> è il progetto che mira a <em>concretizzare l&#8217;area core</em> dell&#8217;immagine qui sopra fornendo tutti gli strumenti necessari allo <em>sviluppo di plugins</em> (moduli applicativi) al fine di vendere prodotti (siti web e gestionali applicativi) la cui caratteristica principale è <strong>alta qualità a basso costo</strong>.</p>
<p>Ho iniziato cercando un framework (PHP) che implementi il paradigma <a title="Definizione di MVC (inglese)" href="http://en.wikipedia.org/wiki/Model–view–controller" class="aga aga_17">MVC</a> e la scelta è ricaduta su <a title="CakePHP MVC Framework" href="http://cakephp.org" class="aga aga_18">CakePHP</a> in quanto progetto abbastanza maturo e direzionato sulla creazione di automatismi che permettono di sviluppare il più velocemente possibile.</p>
<p>CakePOWER sarà sviluppato come un&#8217;estensione di CakePHP la quale integra funzionalità complesse nel framework. Di fatto tutto il sorgente sarà contenuto nella folder <em>cake_power</em> e l&#8217;integrazione avverrà mediante poche semplici istruzioni da inserire nei files di configurazione principali dell&#8217;applicazione.</p>
<p><strong>CakePOWER è un&#8217;estensione, non un fork!</strong></p>
<p>Lo stato attuale del progetto è pressochè nullo: sto scrivendo la documentazione delle prime strutture logiche che comporranno CakePOWER. La scelta di sviluppare prima la documentazione è fondamentale per garantire la qualità del codice prodotto.</p>
<p>A breve i sorgenti saranno disponibili su Google Project (<a title="CakePOWER su Google Project" href="http://code.google.com/p/cakepower/" class="aga aga_19">http://code.google.com/p/cakepower/</a>).</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Segnala presso:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;title=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;title=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;title=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;title=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;LinkedIn"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/linkedin.png" title="Add to&nbsp;LinkedIn" alt="Add to&nbsp;LinkedIn" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;title=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+CakePOWER%3A+Progettazione+di+un+Framework+@+http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F09%2Fcakepower-progettazione-di-un-framework%2F&amp;t=CakePOWER%3A+Progettazione+di+un+Framework" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.consulenza-web.com/2009/09/cakepower-progettazione-di-un-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Utilizzare il layout di un plugin da un punto qualunque dell&#8217;applicazione</title>
		<link>http://www.consulenza-web.com/2009/06/utilizzare-il-layout-di-un-plugin/</link>
		<comments>http://www.consulenza-web.com/2009/06/utilizzare-il-layout-di-un-plugin/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 18:05:05 +0000</pubDate>
		<dc:creator>peg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[code design]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[ToolTIP]]></category>

		<guid isPermaLink="false">http://www.consulenza-web.com/?p=95</guid>
		<description><![CDATA[CakePHP 1.2 introduce una serie di funzionalità dedicate esplicitamente allo sviluppo RAD di applicazioni. In questo articolo spiego come è possibile utilizzare dei layout contenuti in uno specifico plugin utilizzando quindi il concetto stesso di plugin per re-distribuire contenuti grafici oltre alle funzionalità contenute in helpers e components. All&#8217;interno di un metodo di controller, appena [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP 1.2 introduce una serie di funzionalità dedicate esplicitamente allo <strong>sviluppo RAD di applicazioni</strong>.</p>
<p>In questo articolo spiego come è possibile utilizzare dei <strong>layout contenuti in uno specifico plugin</strong> utilizzando quindi il concetto stesso di plugin per <strong>re-distribuire contenuti grafici</strong> oltre alle funzionalità contenute in helpers e components.</p>
<p>All&#8217;interno di un metodo di controller, appena prima del render (o della conclusione del metodo) è sufficiente specificare plugin e layout che si desidera utilizzare per il rendering della richiesta:</p>
<pre>...
$this-&gt;plugin = 'Myplugin';
$this-&gt;layout = 'my_layout';
...</pre>
<p>Questo tipo di codice produce la richiesta del file: &#8220;/app/plugins/myplugin/views/layouts/my_layout.ctp&#8221; da utilizzarsi come layout per la richiesta in corso.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Segnala presso:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;title=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;title=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;title=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;title=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;LinkedIn"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/linkedin.png" title="Add to&nbsp;LinkedIn" alt="Add to&nbsp;LinkedIn" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;title=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione+@+http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F06%2Futilizzare-il-layout-di-un-plugin%2F&amp;t=Utilizzare+il+layout+di+un+plugin+da+un+punto+qualunque+dell%26%238217%3Bapplicazione" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.consulenza-web.com/2009/06/utilizzare-il-layout-di-un-plugin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

