mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-28 02:41:37 +01:00
added italian docs. thanks to Gianluca Gillini
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<sect1 id="advanced.features.objects">
|
||||
<title>Oggetti</title>
|
||||
<para>
|
||||
Smarty consente di accedere agli oggetti PHP attraverso i template. Ci sono
|
||||
due modi per farlo. Uno <20> registrare gli oggetti al template, quindi accedere
|
||||
ad essi attraverso una sintassi simile a quella delle funzioni utente. L'altro
|
||||
modo <20> di assegnare gli oggetti ai template ed accedere loro come ad una
|
||||
qualsiasi variabile assegnata. Il primo metodo ha una sintassi del template
|
||||
migliore. E' anche pi<70> sicuro, perch<63> su un oggetto registrato potete impedire
|
||||
l'accesso a certi metodi o propriet<65>. D'altra parte, su un oggetto registrato
|
||||
non potete effettuare dei cicli o metterlo in un array di oggetti, ecc.
|
||||
Il metodo che sceglierete dipender<65> dalle vostre necessit<69>, ma quando possibile
|
||||
usate sempre il primo metodo, per mantenere la sintassi del template al massimo
|
||||
della semplicit<69>.
|
||||
</para>
|
||||
<para>
|
||||
Se la security <20> abilitata, non <20> possibile accedere a metodi o funzioni private
|
||||
(che cominciano con "_") dell'oggetto. Quando esistono un metodo e una propriet<65>
|
||||
con lo stesso nome, verr<72> usato il metodo.
|
||||
</para>
|
||||
<para>
|
||||
Potete impedire l'accesso a certi metodi e propriet<65> elencandoli in un array
|
||||
come terzo parametro di registrazione.
|
||||
</para>
|
||||
<para>
|
||||
Per default, i parametri passati agli oggetti attraverso i template sono
|
||||
passati nello stesso modo in cui li leggono le funzioni utente. Il primo
|
||||
parametro <20> un array associativo, e il secondo <20> l'oggetto smarty. Se
|
||||
volete i parameteri passati uno alla volta per ogni argomento come nel
|
||||
tradizionale passaggio di parametri per gli oggetti, impostate il quarto
|
||||
parametro di registrazione a false.
|
||||
</para>
|
||||
<para>
|
||||
Il quinto parametro opzionale ha effetto soltanto quando
|
||||
<parameter>format</parameter> <20> <literal>true</literal> e
|
||||
contiene una lista di metodi che devono essere trattati come
|
||||
blocchi. Ci<43> significa che questi metodi hanno un tag di
|
||||
chiusura nel template
|
||||
(<literal>{foobar->meth2}...{/foobar->meth2}</literal>) e i
|
||||
parametri passati al metodo hanno la stessa struttura di
|
||||
quelli per le funzioni plugin per i blocchi. Questi metodi
|
||||
quindi ricevono 4 parametri <parameter>$params</parameter>,
|
||||
<parameter>$content</parameter>, <parameter>&$smarty</parameter>
|
||||
e <parameter>&$repeat</parameter> e si comportano come
|
||||
funzioni plugin per i blocchi.
|
||||
</para>
|
||||
<example>
|
||||
<title>usare un oggetto registrato o assegnato</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// the object
|
||||
|
||||
class My_Object {
|
||||
function meth1($params, &$smarty_obj) {
|
||||
return "this is my meth1";
|
||||
}
|
||||
}
|
||||
|
||||
$myobj = new My_Object;
|
||||
// registriamo l'oggetto (sar<61> usato per riferimento)
|
||||
$smarty->register_object("foobar",$myobj);
|
||||
// se vogliamo impedire l'accesso a metodi o propriet<65>, elenchiamoli
|
||||
$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
|
||||
// se vogliamo usare il formato tradizionale per i parametri, passiamo un false
|
||||
$smarty->register_object("foobar",$myobj,null,false);
|
||||
|
||||
// Possiamo anche assegnare gli oggetti. Facciamolo per riferimento quando possibile.
|
||||
$smarty->assign_by_ref("myobj", $myobj);
|
||||
|
||||
$smarty->display("index.tpl");
|
||||
?>
|
||||
+]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Ed ecco come accedere all'oggetto in index.tpl:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* accediamo all'oggetto registrato *}
|
||||
{foobar->meth1 p1="foo" p2=$bar}
|
||||
|
||||
{* possiamo anche assegnare l'output *}
|
||||
{foobar->meth1 p1="foo" p2=$bar assign="output"}
|
||||
the output was {$output}
|
||||
|
||||
{* accediamo all'oggetto assegnato *}
|
||||
{$myobj->meth1("foo",$bar)}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
Reference in New Issue
Block a user