ugrás a tartalomhoz

Smarty blokk kérdés

toxin · 2005. Jan. 27. (Cs), 19.45
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:
{* template *}
{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;
}
}


előre is köszönöm, annak aki tud segíteni :)
 
1

if?

wiktor · 2005. Jan. 27. (Cs), 20.13
Lehet, hogy teljesen félreértettelek, de egy sima if miért nem jó, ha csak ki/be kapcsolásról van szó?
2

akkor máshogy a sablonba

toxin · 2005. Jan. 27. (Cs), 20.28
akkor máshogy

a sablonba teszek egy szakaszt, gondolom így kell (ebben se vagyok biztos)

ez a sablon.tpl
{blokk1}
blokk1 vagyok
.
.
.
blokk1 vagyok
{/blokk1}


akkor hogy tudom elérni hogy a Smarty pl. a
$smarty->display('sablon.tpl');

parancs végrehajtásakor, kihagyja az egész blokk1-ben szereplő szakaszt a lerenderelésből ?
3

mert eddig csak így sikerül

toxin · 2005. Jan. 27. (Cs), 20.31
mert eddig csak így sikerült

sablon:

{* template *}
{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 :)
4

Szerintem így elég egyszer

Poetro · 2005. Jan. 27. (Cs), 20.41
Szerintem így elég egyszerű:
{if $smarty.session.user}
 <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
5

így már okés :) és pussza

toxin · 2005. Jan. 27. (Cs), 21.02
így már okés :) és pusszantalának ha nem tiltanák az erkölcseim :D
6

if

wiktor · 2005. Jan. 27. (Cs), 21.45
Én is erre gondoltam... :)
7

jól van, akkor téged is :P

toxin · 2005. Jan. 27. (Cs), 21.55
jól van, akkor téged is :P :)
8

egy gondolat

Poetro · 2005. Jan. 28. (P), 09.18
Lehet, hogy a példa rávilágított számára mit is értesz if alatt :)
--------
Poetro