Smarty blokk kérdés
Kérdésem: a Smarty-sablonon belül hogyan lehet, php-ból bizonyos feltételek teljesülése(loggolt Juzer esetén:log box blokk kikapcs) esetén ki/be kapcsolható blokkokat létrehozi ?
böngésztem a doskit de ilyet nem találtam, áthidaló megoldásomnál viszont lehet hogy van egyszerűbb:
sablonban:
php-ben
előre is köszönöm, annak aki tud segíteni :)
■ böngésztem a doskit de ilyet nem találtam, áthidaló megoldásomnál viszont lehet hogy van egyszerűbb:
sablonban:
{* template *}
{translate display=$display}
Hello, world!
{/translate}
{translate display=$display}
Hello, world!
{/translate}
php-ben
.
.
$smarty->assign('display',true);
$smarty->register_block("translate","dispOut");.
.
.
function dispOut($params, $content, &$smarty, &$repeat){
if (isset($content)) {
if ($params['display'])$out=&$content;
return $out;
}
}
.
$smarty->assign('display',true);
$smarty->register_block("translate","dispOut");.
.
.
function dispOut($params, $content, &$smarty, &$repeat){
if (isset($content)) {
if ($params['display'])$out=&$content;
return $out;
}
}
előre is köszönöm, annak aki tud segíteni :)
if?
akkor máshogy a sablonba
a sablonba teszek egy szakaszt, gondolom így kell (ebben se vagyok biztos)
ez a sablon.tpl
blokk1 vagyok
.
.
.
blokk1 vagyok
{/blokk1}
akkor hogy tudom elérni hogy a Smarty pl. a
parancs végrehajtásakor, kihagyja az egész blokk1-ben szereplő szakaszt a lerenderelésből ?
mert eddig csak így sikerül
sablon:
{blokk1 display=$blokk1}
blokk1 vagyok
.
.
.
blokk1 vagyok
{/blokk1}
{blokk2 display=$blokk2}
blokk2 vagyok
.
.
.
.
blokk2 vagyok
{/blokk2}
php
.
.
$smarty->assign('blokk1',true);
$smarty->register_block("blokk1","dispOut");
$smarty->assign('blokk2',false);
$smarty->register_block("blokk2","dispOut");
$smarty->display('appFrame.tpl');
}
}
function dispOut($params, $content, &$smarty, &$repeat){
if (isset($content)) {
if ($params['display']) return $content;
return null;
}
}
így a blokk1-en belüli részek kikerülnek a kimenetre, a blokk2-őn belüli részek pedig nem, de az nem lehet igaz, hogy ezt csak így lehet megoldani :)
Szerintem így elég egyszer
<div id="login">
You are logged in as {$smarty.session.user->username}!
</div>
{else}
<form method="post" action="">
<label for="username">username:</label>
<input name="username" type="text" id="username" />
<label for="password">password:</label>
<input name="password" type="password" id="password" />
<input type="submit" value="Submit" name="userLogin" />
</form>
{/if}
--------
Poetro
így már okés :) és pussza
if
jól van, akkor téged is :P
egy gondolat
--------
Poetro