- PHP5 рдХреЗ рддрд╣рдд рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛, рдЕрдм PHP4 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (PHP 5.1 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)
- рдЗрд╕рдХреЗ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рд░реНрд╕рд░ рдФрд░ рд▓реЗрд╕рд░, рдЬреЛ рд╣рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЬрдЯрд┐рд▓ рдЧрдгрд┐рдд рдЬреИрд╕реЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд▓ред
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
$tpl = $smarty->createTemplate('my.tpl'); $tpl->assign('foo','bar'); $smarty->display($tpl); // or $tpl->display();
- рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ:
$data = new Smarty_Data; $data->assign('foo','bar'); $smarty->display('my.tpl',$data); $tpl = $smarty->createTemplate('my.tpl',$data);
- PHP рдереНрд░реЗрдб рд╕рдорд░реНрдерди
$smarty->display('foo:bar.tpl'); {include file="foo:bar.tpl"}
рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рдлреВ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкрд╣рд▓реЗ рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рд╕реНрдорд╛рд░реНрдЯреА foo рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛: //
- рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд░рд╛рд╕рдд
рдЬрдирдХ .tpl <Html> <Head> <рд╢реАрд░реНрд╖рдХ> {рдмреНрд▓реЙрдХ рдирд╛рдо = рд╢реАрд░реНрд╖рдХ} рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реАрд░реНрд╖рдХ {/ рдмреНрд▓реЙрдХ} <рд╢реАрд░реНрд╖рдХ> </ Head> <Body> {рдмреНрд▓реЙрдХ рдирд╛рдо = рд╢рд░реАрд░} рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢рд░реАрд░ {/ рдмреНрд▓реЙрдХ} </ Body> </ Html> рдмрдЪреНрдЪрд╛ .tpl {рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ = "parent.tpl"} {рдмреНрд▓реЙрдХ рдирд╛рдо = рд╢реАрд░реНрд╖рдХ} рдореЗрд░рд╛ рдмрдЪреНрдЪрд╛ рд╢реАрд░реНрд╖рдХ {/ рдмреНрд▓реЙрдХ} {рдмреНрд▓реЙрдХ рдирд╛рдо = рд╢рд░реАрд░} рдореЗрд░рд╛ рдмрдЪреНрдЪрд╛ рд╢рд░реАрд░ {/ рдмреНрд▓реЙрдХ} рдкрд░рд┐рдгрд╛рдо $ рдЪрд╛рд▓рд╛рдХреА-> рдкреНрд░рджрд░реНрд╢рди ('child.tpl'); <Html> <Head> <рд╢реАрд░реНрд╖рдХ> рдореЗрд░рд╛ рдмрдЪреНрдЪрд╛ рд╢реАрд░реНрд╖рдХ <рд╢реАрд░реНрд╖рдХ> </ Head> <Body> рдореЗрд░рд╛ рдмрдЪреНрдЪрд╛ рд╢рд░реАрд░ </ Body> </ Html>
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдЕрдирджреЗрдЦреА "{", "}" рдпрджрд┐ рд╡реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдШрд┐рд░реЗ рд╣реБрдП рд╣реИрдВ (рдЖрдкрдХреЛ рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ {рд╢рд╛рдмреНрджрд┐рдХ} {/ рд╢рд╛рдмреНрджрд┐рдХ} рдХреЛ рдШреЗрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдЯреИрдЧ рдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред
- рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ
$smarty->registerFilter('variable','htmlspecialchars');
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
{* рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ *} {рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо = рдореЗрдиреВ рд╕реНрддрд░ = 0} <ul class = "level {$ level}"> {$ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ $ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ} {рдЕрдЧрд░ is_array ($ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐)} <li> {$ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ @ рдХреБрдВрдЬреА} </ li> {рдореЗрдиреВ рдбреЗрдЯрд╛ = $ рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ = $ рд╕реНрддрд░ + 1} {Else} <li> {$ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐} </ li> {/ рдЕрдЧрд░} {/ foreach} </ Ul> {/ рд╕рдорд╛рд░реЛрд╣} {* рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ *} {$ рдореЗрдиреВ = [1 рдЖрдЗрдЯрдо рез тАЩ, menu рдЖрдЗрдЯрдо реитАЩ, 'рдЖрдЗрдЯрдо 3 тАЩ=> [3 рдЖрдЗрдЯрдо 3-1тАЩ,, рдЖрдЗрдЯрдо 3-2 тАЩ, 3 рдЖрдЗрдЯрдо 3-3тАЩ => ['рдЖрдЗрдЯрдо 3-3-1', 'рдЖрдЗрдЯрдо 3-3-2']], 'рдЖрдЗрдЯрдо 4']} {* рдЗрд╕реЗ рдлрдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ *} {рдореЗрдиреВ рдбреЗрдЯрд╛ = $ рдореЗрдиреВ} <Pre> рдирд┐рд╖реНрдХрд░реНрд╖ * рдЖрдЗрдЯрдо 1 * рдЖрдЗрдЯрдо 2 * рдЖрдЗрдЯрдо 3 рдУ рдЖрдЗрдЯрдо 3-1 рдУ рдЖрдЗрдЯрдо 3-2 рдУ рдЖрдЗрдЯрдо 3-3 + рдЖрдЗрдЯрдо 3-3-1 + рдЖрдЗрдЯрдо 3-3-2 * рдЖрдЗрдЯрдо 4
- рддрддреНрд╡-рд╕реНрддрд░реАрдп рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди
{$ рдлреВ рдиреЛрдЪреЗ} - рдЗрд╕ рдЪрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢ рди рдХрд░реЗрдВ {рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = "foo.tpl" nocache} - рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢ рди рдХрд░реЗрдВ
- рд╕реНрдорд╛рд░реНрдЯреА 2 рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛ред
- {php} рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрджрд╛рд╡рдирдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕реНрдорд╛рд░реНрдЯреА рдЕрдм рдпреВрдЯреАрдПрдл -8 рдкреИрдЯрд░реНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИред
рддреАрдиреЛрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд┐рдХрд▓реЗред рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓ 27Kb рд▓реЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдЬрд┐рд╕рдореЗрдВ рдлрд╝реЙрд░рдЪреИрдЯ рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЯреИрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдпрджрд┐ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдкреНрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдВрдХрд▓рди рдкрд░, рдХрдо рд╕реЗ рдХрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ smarty_internal_templatelexer + smarty_internal_templateparser.php рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ~ 200Kb рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рд╕рд╛рдЗрдЯ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 30Kb рдХреЛрдб рд╕реБрдЦрдж рд░реВрдк рд╕реЗ рдкреНрд░рд╕рдиреНрди рд╣реЛрддрд╛ рд╣реИред