<?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>Luizz &#187; Pear</title>
	<atom:link href="http://www.luizz.it/category/pear/feed" rel="self" type="application/rss+xml" />
	<link>http://www.luizz.it</link>
	<description>Appunti di lavoro per lo sviluppo di applicazioni WEB con CakePHP</description>
	<lastBuildDate>Thu, 05 Jan 2012 08:48:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>selectAs(): selezionare i campi in DB_DataObject</title>
		<link>http://www.luizz.it/46/pear/selectas-selezionare-i-campi-in-db_dataobject</link>
		<comments>http://www.luizz.it/46/pear/selectas-selezionare-i-campi-in-db_dataobject#comments</comments>
		<pubDate>Mon, 07 Jan 2008 23:11:18 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=46</guid>
		<description><![CDATA[Si può decidere di utilizzare solo alcuni campi di una tabella, specialmente quando viene effettuata una join tra più tabelle e di assegnare dei nomi specifci. Il manuale è poco chiaro Sul manuale ufficiale di DB_DataObject, alla pagina dedicata a selectAs() sono riportati degli esempi che a prima vista possono fuorviare il lettore (che magari [...]]]></description>
			<content:encoded><![CDATA[<p>Si può decidere di utilizzare solo alcuni campi di una tabella, specialmente quando viene effettuata una join tra più tabelle e di assegnare dei nomi specifci.</p>
<p><strong>Il manuale è poco chiaro</strong></p>
<p>Sul manuale ufficiale di DB_DataObject, alla pagina dedicata a selectAs() sono riportati degli esempi che a prima vista possono fuorviare il lettore (che magari spera di trivare un quick reference dei metodi).</p>
<p>Volendo selezionare solo alcuni campi di una tabella il manuale, nell&#8217;esempio recita :<br />
<code>// to generate a restricted list.. "person.age as age , person.name as name"<br />
$person->selectAs(array('age','name'));</code></p>
<p>A questo punto prova e riprova, ma la query generata risulta avere sempre un bell&#8217;asterisco davanti la corretta richiesta dei campi specificati<br />
<code>SELECT *, person.age as age,person.name as name ....</code></p>
<p>Il fatto è che per avere nella SELECT solo i campi scelti, bisogna eseguire un selectAdd() senza alcun parametro per rimuovere l&#8217;asterisco di default.<br />
<code>// prima puliamo i campi<br />
$person->selectAdd();</p>
<p>// e poi selezioniamo i campi che vogliammo<br />
$person->selectAs(array('age','name'));</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/46/pear/selectas-selezionare-i-campi-in-db_dataobject/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usare HTML_QuickForm con Smarty</title>
		<link>http://www.luizz.it/38/pear/usare-html_quickform-con-smarty</link>
		<comments>http://www.luizz.it/38/pear/usare-html_quickform-con-smarty#comments</comments>
		<pubDate>Mon, 07 Jan 2008 22:45:41 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://luizz/?p=38</guid>
		<description><![CDATA[Come impiegare il package con un template engine come Smarty]]></description>
			<content:encoded><![CDATA[<p>Se si vuole integrare la creazione di form con l&#8217;uso di smarty si può optare per due soluzioni:<br />
la prima consiste nell&#8217;assegnare ad una variabile dell&#8217;oggetto Smarty l&#8217;intero HTML generato dall&#8217;oggetto HTML_QuickForm;<br />
la seconda consiste nell&#8217;impiegare il renderer HTML_QuickForm_Renderer_ArraySmarty basato su HTML_QuickForm::toArray().</p>
<p><strong>1) Il metodo più semplice e immediato</strong></p>
<p>E&#8217; sufficente assegnare ad una variabile di Smarty il valore restituito dal metodo toArray dell&#8217;oggetto HTML_QuickForm.</p>
<p>Questo fornisce il codice HTML relativo al form costruito che può essere scritto così com&#8217;è nella pagina.<br />
A fronte dell&#8217;estrema semplicità si contrappone il totale controllo dell&#8217;aspetto da parte del codice.<br />
In questo modo per cambiare aspetto al form bisogna intervenire sul codice e non è sufficente apportare modifiche al template.</p>
<p>Codice di esempio:</p>
<pre><code>// creo l'oggetto QuickForm e Smarty
$obj_form = new HTML_QuickForm('frmReg');
$smarty = new Smarty();

// aggiunge gli elementi
$obj_form->addElement('textarea', 'txtAddress', 'Address:',
   array('rows' => 3, 'cols' => 30));
$obj_form->addElement('text', 'txtEmailAddress', 'Email Address:',
   array( 'size' => 40, 'maxlength' => 255));
$obj_form->addElement('submit', 'btnSubmit', 'Register');

// processo gli eventuali dati ricevuti dal form
if($obj_form->validate()) {
.....
}

// assegno alla variabile il codice HTML da mostrare nella pagina
$smarty->assign('mio_form',$obj_form->toHtml());

// visualizza il template
$smarty->display('mio_template.tpl');

 /*
 * Nel template ? sufficente inserire il seguente
 * comando per avere il form creato
 */

  <html>
    ....cut....
    {$mio_form}
    ....cut....
  </html></code></pre>
<p><strong><br />
2) Pieno controllo a Smarty<br />
</strong></p>
<p>Con questo metodo, si pu? demandare praticamente tutto il controllo dell&#8217;aspetto del form al template engine, prevedendo la posizione per ogni singolo elemento del form, compresi i messaggi di errore e gli asterischi per i campi obbligatori.</p>
<pre><code>//PEAR::HTML_QuickForm
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';

/* .... codice per l'inserimento degli elementi nel form .... */

// associo il renderer all'oggetto Smarty
$renderer =&#038; new HTML_QuickForm_Renderer_ArraySmarty($smarty);

// processo i dati inviati da form
if($form->validate()) {
   $form->freeze();
}

// accetta le eventuali modifiche al renderer
$form->accept($renderer);

//assegna l'array generato a una variabile
$smarty->assign('obj_form', $renderer->toArray());

// mostra il template
$smarty->display('test.tpl');

Il codice da inserire nel template invocato nello script ? il seguente:
{$obj_form.javascript}
<form {$obj_form.attributes}>
{$obj_form.hidden}

 {include file="common/footer.tpl"}
<table width="70%" border="0" >
<tr>
<th colspan="2">{$obj_form.header.titolo}</td>
</tr>
<tr>
<td colspan="2">{$obj_form.requirednote}</td>
</tr>
<tr>
<td>{$obj_form.txtAddress.label}</td>
<td>{$obj_form.txtAddress.html}</td>
</tr>
<tr>
<td>{$obj_form.ddlCountry.label}</td>
<td>{$obj_form.ddlCountry.html}</td>
</tr>
<tr>
<td>{if $obj_form.txtEmailAddress.required} (*) {/if}
         {$obj_form.txtEmailAddress.label}</td>
<td>{$obj_form.txtEmailAddress.html}
        <span style="color:#FF0000;">
           {$obj_form.errors.txtEmailAddress}
        </span>
     </td>
</tr>
<tr>
<td>{if $obj_form.btn.required} (*) {/if}
         {$obj_form.txtEmailAddress.label}</td>
<td>{$obj_form.btn.html}</td>
</tr>
</table>

</code></pre>
<p>In sostanza, il metodo toArray permette di ottenere un array con una particolare struttura che poi viene assegnato ad una variabile di Smarty.<br />
Nel manuale questa struttura è ben documentata.</p>
<p>Certo è che con questo sistema aumenta molto la complessità del template Smarty (si pensi se non si conoscono a priori gli elementi presenti nel form), ma di sicuro si può operare un completo controllo sull&#8217;aspetto del form intervenendo solo sul template.</p>
<p><strong>3) Un&#8217;ulteriore soluzione</strong></p>
<p>Mi è venuto in mente che una soluzione ulteriore è quella di creare un file di configurazione che può essere letto per impostare in modo appropriato il sistema template del renderer di HTML_QuickForm per poi utilizzare la soluzione 1.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/38/pear/usare-html_quickform-con-smarty/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniziare subito con Liveuser</title>
		<link>http://www.luizz.it/35/pear/iniziare-subito-con-liveuser</link>
		<comments>http://www.luizz.it/35/pear/iniziare-subito-con-liveuser#comments</comments>
		<pubDate>Mon, 07 Jan 2008 22:37:52 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=35</guid>
		<description><![CDATA[Per installare subito il sistema e avere un DB con il quale fare subito delle prove basta leggere la documentazione allegata Installazione Per installare LiveUser e LiveAdmin ? sufficente utilizzare le procedure solite per i packages di PEAR. In particolare (da [URL http://oss.backendmedia.com/LiveUser/HomePage] Live User Wiki [/URL] Latest version client: 0.16.11 Download it or run [...]]]></description>
			<content:encoded><![CDATA[<p>Per installare subito il sistema e avere un DB con il quale fare subito delle prove basta leggere la documentazione allegata</p>
<p><strong>Installazione</strong></p>
<p>Per installare LiveUser e LiveAdmin ? sufficente utilizzare le procedure solite per i packages di PEAR.<br />
In particolare (da [URL http://oss.backendmedia.com/LiveUser/HomePage] Live User Wiki [/URL]</p>
<p>Latest version client: 0.16.11<br />
Download it or run &#8220;pear install http://pear.php.net/get/LiveUser-0.16.11.tgz&#8221;</p>
<p>Latest version admin: 0.3.8<br />
Download it or run &#8220;pear install http://pear.php.net/get/LiveUser_Admin-0.3.8.tgz&#8221;</p>
<p><strong>Un DB per gli esempi</strong></p>
<p>LiveUser consente l&#8217;impiego di svariate fonti contemporaneamente per l&#8217;autenticazione degli utenti tra cui i database e i file in formato XML.<br />
Negli esempi allegati viene impiegato esclusivamente un file XML per l&#8217;elenco degli utenti con le loro userid e password.<br />
Per poter disporre velocemente di un DB si deve impiegare lo script demodata.php che viene installato nella directory PHP_DIR/PEAR/docs/LiveUser/docs e che richiede il package MDB per l&#8217;accesso al database. Con questo script si deve processare il file demodat.xml presente nelle subdirectory example3 o 4.</p>
<p>E&#8217; possibile usare lo script in questione da riga di comando oppure eseguendolo su un Web server che supporta PHP.<br />
Per la sintassi ? sufficente invocare lo script senza fornire alcun parametro in modo da visualizzare la schermata di help dove sono riportate tutte le info utuili.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/35/pear/iniziare-subito-con-liveuser/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Le tabelle di liveuser</title>
		<link>http://www.luizz.it/34/pear/le-tabelle-di-liveuser</link>
		<comments>http://www.luizz.it/34/pear/le-tabelle-di-liveuser#comments</comments>
		<pubDate>Mon, 07 Jan 2008 22:35:06 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=34</guid>
		<description><![CDATA[Elenco delle tabelle utilizzate e significato dei singoli campi Elenco delle tabelle * liveuser_applications * liveuser_areas * liveuser_area_admin_areas * liveuser_rights * liveuser_grouprights * liveuser_right_implied * liveuser_group_subgroups * liveuser_groups * liveuser_groupusers * liveuser_userrights * liveuser_perm_users * liveuser_users * liveuser_translations liveuser_users Il primo passo per il processo di autenticazione Questa tabella contiene i seguenti campi di base [...]]]></description>
			<content:encoded><![CDATA[<p>Elenco delle tabelle utilizzate e significato dei singoli campi  </p>
<p><strong>Elenco delle tabelle</strong></p>
<p>* liveuser_applications<br />
* liveuser_areas<br />
* liveuser_area_admin_areas<br />
* liveuser_rights<br />
* liveuser_grouprights<br />
* liveuser_right_implied<br />
* liveuser_group_subgroups<br />
* liveuser_groups<br />
* liveuser_groupusers<br />
* liveuser_userrights<br />
* liveuser_perm_users<br />
* liveuser_users<br />
* liveuser_translations</p>
<p><strong>liveuser_users</strong><br />
Il primo passo per il processo di autenticazione<br />
Questa tabella contiene i seguenti campi di base che possono essere estesi con altri campi necessari all&#8217;applicazione.<br />
auth_user_id 	identificativo dell&#8217;utente. E&#8217; usato per creare una collegamento tra l&#8217;utente e un permesso con la relazione alla tabella «liveuser_perm_user» .<br />
handle 	user name usato dall&#8217;utente per eseguire il login<br />
passwd 	la password per il login. Se definito nel file di configurazione questa password può essere cryptata (consigliato)<br />
lastlogin 	data e ora dell&#8217;ultima connessione dell&#8217;utente<br />
owner_user_id 	?<br />
owner_group_id 	?<br />
is_active 	valore booleano che definisce se l&#8217;utente è attivo o meno. Nel secondo caso gli viene impedito l&#8217;accesso</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/34/pear/le-tabelle-di-liveuser/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tipi di utente in LiveUser</title>
		<link>http://www.luizz.it/30/pear/tipi-di-utente-in-liveuser</link>
		<comments>http://www.luizz.it/30/pear/tipi-di-utente-in-liveuser#comments</comments>
		<pubDate>Mon, 07 Jan 2008 22:03:46 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=30</guid>
		<description><![CDATA[I tre diversi livelli di gestione differiscono tra loro anche per il modo in cui trattano i diversi titpi di utente che vengono definiti. Definizione I tipi di utente sono definiti nella tabella &#8220;liveuser_perm_user&#8221; 1) anonymus 2) user 3) admin 4) area admin 5) super admin 6) master admin Gli utenti acquisiscono i permessi con [...]]]></description>
			<content:encoded><![CDATA[<p>I tre diversi livelli di gestione differiscono tra loro anche per il modo in cui trattano i diversi titpi di utente che vengono definiti.  </p>
<p><strong>Definizione</strong></p>
<p>I tipi di utente sono definiti nella tabella &#8220;liveuser_perm_user&#8221;</p>
<p>1) anonymus<br />
2) user<br />
3) admin<br />
4) area admin<br />
5) super admin<br />
6) master admin</p>
<p>Gli utenti acquisiscono i permessi con modalit? diverse a seconda anche del livello di gestione adottato.</p>
<p><strong>Simple e Medium level</strong><br />
Per gli utenti 1, 2, 3, 4 i permessi acquisiti sono quelli assegnati direttamente agli utenti o ai gruppi (definiti nelle tabelle liveuser_userrights e liveuser_grouprights).<br />
Invece gli utenti 5 e 6 acquisisconno automaticamente tutti i permessi.</p>
<p><strong>Complex level</strong><br />
In questo caso i livelli vengono definiti in tre diverse modalit?:<br />
per gli utenti 1, 2, 3 i permessi sono quelli attribuiti all&#8217;utente o al gruppo di appartenenza.<br />
Per l&#8217;utente 4 i permessi sono quelli di amministratore dell&#8217;intera area specificata nella tabella liveuser_area_admin_areas.<br />
Gli utenti 5 e 6 acquisiscono tutti i permessi esistenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/30/pear/tipi-di-utente-in-liveuser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>addJoin(): relazioni permanenti in DB_DataObject</title>
		<link>http://www.luizz.it/28/pear/addjoin-relazioni-permanenti-in-db_dataobject</link>
		<comments>http://www.luizz.it/28/pear/addjoin-relazioni-permanenti-in-db_dataobject#comments</comments>
		<pubDate>Mon, 07 Jan 2008 21:55:10 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=28</guid>
		<description><![CDATA[Il metodo addJoin() permette di definire le relazioni tra due tabelle per poi lavorare agevolmente con esse. Le relazioni devono essere impostate in un file di configurazione chiamato database.link.ini dove vengono specificati le tabelle e i campi coinvolti. Quindi per definire la relazione tra le due tabelle ? sufficente utilizzare addJoin nel seguente modo: $tab1->addJoin($tab2); [...]]]></description>
			<content:encoded><![CDATA[<p>Il metodo addJoin() permette di definire le relazioni tra due tabelle per poi lavorare agevolmente con esse.<br />
Le relazioni devono essere impostate in un file di configurazione chiamato database.link.ini dove vengono specificati le tabelle e i campi coinvolti.<br />
Quindi per definire la relazione tra le due tabelle ? sufficente utilizzare addJoin nel seguente modo:</p>
<p><code>$tab1->addJoin($tab2);</code></p>
<p>Un altro modo (non documentato nel manuale) è quello di creare una join &#8220;al volo&#8221;, senza usare alcun file di configurazione: La sintassi è la seguente</p>
<p><code>$tab1->addJoin(array('nome_campo','nome_tab_rel:nome_campo_rel'));</code></p>
<p>Ci? consentirà di eseguire una JOIN tra la tabella legata all&#8217;oggetto $tab1 e la tabella con nome &#8216;nome_tab_rel&#8217; sui campi nome_campo di $tab1 e nome_rel_campo della seconda tabella.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/28/pear/addjoin-relazioni-permanenti-in-db_dataobject/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usare HTML_QuickForm in pratica</title>
		<link>http://www.luizz.it/27/pear/usare-html_quickform-in-pratica</link>
		<comments>http://www.luizz.it/27/pear/usare-html_quickform-in-pratica#comments</comments>
		<pubDate>Mon, 07 Jan 2008 21:48:11 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=27</guid>
		<description><![CDATA[A parte andare a dare un&#8217;occhiata al manuale, ho cercato qualcosa di interessante in rete e ho trovato un utile tutorial che ho gia segnalato qui . Quindi da questo tutorial traggo lo spunto per scrivere questi appunti sull&#8217;impiego pratico di QuickForm. Creare una form e aggiungere gli elementi Il procedimento per creare una form [...]]]></description>
			<content:encoded><![CDATA[<p>A parte andare a dare un&#8217;occhiata al manuale, ho cercato qualcosa di interessante in rete e ho trovato un utile tutorial che ho gia segnalato qui .<br />
Quindi da questo tutorial traggo lo spunto per scrivere questi appunti sull&#8217;impiego pratico di QuickForm.</p>
<p><strong>Creare una form e aggiungere gli elementi</strong></p>
<p>Il procedimento per creare una form è quello di istanziare un oggetto QuickForm e aggiungerevi degli elementi.</p>
<pre><code>// include la classe PEAR necessaria
require_once 'HTML/QuickForm.php';

// e definisco un oggetto HTML_QuickForm
$or_form = new HTML_QuickForm('formRegistrazione');

// aggiungo gli elementi 

$or_form->addElement('text', 'txtNome', 'Nome:', array('size' => 40,
'maxlength' => 50));
$or_form->addElement('textarea', 'txtIndirizzo', 'Indirizzo:',
  array('rows' => 3, 'cols' => 30));
$or_form->addElement('select', 'txtNazione', 'Nazione:',
  array ("" => "Seleziona una nazione", "it" => "Italia",
         "uk" => "United Kingdom", "de" => "Germania"));
$or_form->addElement('text', 'txtEmail', 'Indirizzo e-mail:',
  array( 'size' => 40, 'maxlength' => 255));</code></pre>
<p><strong>Quali sono i parametri da fornire per ogni elemento</strong></p>
<p>addElement richiede come primo parametro il tipo di elemento che si vuole inserire<br />
-) <a href="http://pear.php.net/manual/en/package.html.html-quickform.html-quickform.createelement.php" target="_blank">documentazione di addElement</a><br />
-) <a href="http://pear.php.net/manual/en/package.html.html-quickform.intro-elements.php"  target="_blank" >tipi di elemento</a></p>
<p>gli altri parametri sono indicati nella documentazione dei singoli metodi.<br />
Ad esempio se si vuole inserire un elemento tipo &#8216;button&#8217;, nella pagina dei tipi di elemento si fa click sul relativo link &#8216;HTML_QuickForm_button&#8217; e si approda alla pagina di <a href="http://pear.php.net/manual/en/package.html.html-quickform.html-quickform-button.php" target="_blank" >documentazione dell&#8217;elemento</a>.</p>
<p>Facendo click sulla documentazione relativa al costruttore dell&#8217;elemento, si ottiene la lista di parametri da passare al metodo addElement (ma anche a createElement).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/27/pear/usare-html_quickform-in-pratica/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il file di configurazione di LiveUser</title>
		<link>http://www.luizz.it/25/pear/il-file-di-configurazione-di-liveuser</link>
		<comments>http://www.luizz.it/25/pear/il-file-di-configurazione-di-liveuser#comments</comments>
		<pubDate>Mon, 07 Jan 2008 21:36:16 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=25</guid>
		<description><![CDATA[Il file di configurazione imposta tutto il sistema, definendo anche le caratteristiche delle tabelle usate e le opzioni. Il file di configurazione è principalmente un array di parametri definiti per il sistema di autenticazione e dei permessi. Qui si possono configurare più contenitori per l&#8217;autenticazione. $LUOptions = array( 'login' => array( 'force' => true ), [...]]]></description>
			<content:encoded><![CDATA[<p>Il file di configurazione imposta tutto il sistema, definendo anche le caratteristiche delle tabelle usate e le opzioni.</p>
<p>Il file di configurazione è principalmente un array di parametri definiti per il sistema di autenticazione e dei permessi.<br />
Qui si possono configurare più contenitori per l&#8217;autenticazione.</p>
<pre><code>$LUOptions = array(
    'login' => array(
        'force'    => true
     ),
    'logout' => array(
        'destroy'  => true,
     ),
    'authContainers' => array(
        array(
            'type'         => 'DB',
            'expireTime'   => 3600,
            'idleTime'     => 1800,
            'storage' => array(
                'dsn' => $dsnauth,
                'alias' => array(
                    'auth_user_id' => 'authUserId',
                    'lastlogin' => 'lastLogin',
                    'is_active' => 'isActive',
                    'owner_user_id' => 'owner_user_id',
                    'owner_group_id' => 'owner_group_id',
                    'users' => 'users',
                ),
                'fields' => array(
                    'lastlogin' => 'timestamp',
                    'is_active' => 'boolean',
                    'owner_user_id' => 'integer',
                    'owner_group_id' => 'integer',
                ),
                'tables' => array(
                    'users' => array(
                        'fields' => array(
                            'lastlogin' => false,
                            'is_active' => false,
                            'owner_user_id' => false,
                            'owner_group_id' => false,
                        ),
                    ),
                ),
            ),
        ),

    ),
    'permContainer' => array(
        'type' => 'Complex',
        'storage' => array(
            'DB' => array(
                'dsn' => $dsnauth,
                'prefix' => 'liveuser_',
                'alias' => array(
                    'perm_users' => 'perm_peoples',
                ),
            )
         ),
    ),
);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/25/pear/il-file-di-configurazione-di-liveuser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pulsanti di conferma e annullamento con QuickForm</title>
		<link>http://www.luizz.it/22/pear/pulsanti-di-conferma-e-annullamento-con-quickform</link>
		<comments>http://www.luizz.it/22/pear/pulsanti-di-conferma-e-annullamento-con-quickform#comments</comments>
		<pubDate>Mon, 07 Jan 2008 21:30:06 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=22</guid>
		<description><![CDATA[// pulsanti $obj_submit[] = &#038;HTML_QuickForm::createElement('submit', 'btnInserisci', 'Modifica' ); $obj_submit[] = &#038;HTML_QuickForm::createElement('button', 'btnAnnulla', 'Annulla', array('onClick'=>"javascript:location='index.php'")); $obj_submit[] = &#038;HTML_QuickForm::createElement('button', 'btnElimina', 'Elimina utente', array('onClick'=>"confermaCancellaUser('deluser.php?uid=$id_user')")); $form->addGroup($obj_submit, '', '', ' &#038;nbsp'); Il primo pulsante invia il form Il secondo annulla l&#8217;invio saltando ad un&#8217;altra pagina Il terzo richiama uno script per la conferma della cancellazione dei dati]]></description>
			<content:encoded><![CDATA[<pre><code>// pulsanti
$obj_submit[] = &#038;HTML_QuickForm::createElement('submit', 'btnInserisci',  'Modifica' );
$obj_submit[] = &#038;HTML_QuickForm::createElement('button', 'btnAnnulla', 'Annulla',
         array('onClick'=>"javascript:location='index.php'"));
$obj_submit[] = &#038;HTML_QuickForm::createElement('button', 'btnElimina', 'Elimina utente',
         array('onClick'=>"confermaCancellaUser('deluser.php?uid=$id_user')"));
$form->addGroup($obj_submit, '', '', ' &#038;nbsp');</code></pre>
<p>Il primo pulsante invia il form<br />
Il secondo annulla l&#8217;invio saltando ad un&#8217;altra pagina<br />
Il terzo richiama uno script per la conferma della cancellazione dei dati</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/22/pear/pulsanti-di-conferma-e-annullamento-con-quickform/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quando usare DB_DataObject</title>
		<link>http://www.luizz.it/21/pear/quando-usare-db_dataobject</link>
		<comments>http://www.luizz.it/21/pear/quando-usare-db_dataobject#comments</comments>
		<pubDate>Mon, 07 Jan 2008 21:25:15 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[Pear]]></category>

		<guid isPermaLink="false">http://luizz/?p=21</guid>
		<description><![CDATA[Sempre. Ad esempio: il modo più semplice di gestire i dati in una tabella sarebbe quello di avere un oggetto che rappresenta l&#8217;entità associata alla tabella e richiamarne semplicemente i metodi. Riporto l&#8217;esempio dal manuale: $persona = new MiaPersona; $persona->nome = "Giovanni"; $persona->find(); while ($persona->fetch()) { echo "Il mio amico {$persona->nome} festeggia il suo compleanno [...]]]></description>
			<content:encoded><![CDATA[<p>Sempre.<br />
Ad esempio: il modo più semplice di gestire i dati in una tabella sarebbe quello di avere un oggetto che rappresenta l&#8217;entità associata alla tabella e richiamarne semplicemente i metodi.<br />
Riporto l&#8217;esempio dal manuale:
<pre><code>$persona = new MiaPersona;
$persona->nome = "Giovanni";
$persona->find();
while ($persona->fetch()) {
   echo "Il mio amico {$persona->nome} festeggia
   il suo compleanno il {$person->birthDate}<BR>";
}</code></pre>
<p>Molte funzionalità sono state aggiunte per gestire gli aspetti più particolari che si presentano nella gestione dei dati :</p>
<p>* un semplice sistema di configurazione per la connessione al DB;<br />
* la descrizione del DB e l&#8217;identificazione gestione delle chiavi primarie;<br />
* un debugger ;<br />
* validazione dei dati inseriti;<br />
* gestione delle join complesse e delle relazioni tra tabelle;<br />
* autocostruzione della classe rispetto alle modifche apportate al database;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/21/pear/quando-usare-db_dataobject/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

