switch v php, ale v nette jak?
- Altimit
- Člen | 82
Dobrý den nebo také ahoj.
Chci se zeptat zda-li je nějaká možnost v nette pro zapsaní funkce switch
z php
můj původní kód v php:
$panel = mysql_result($result, $i, 'panel');
switch ($panel) {
case 'web':
echo '<div class="panel panel-info">';
break;
case 'server':
echo '<div class="panel panel-danger">';
break;
case 'problem':
echo '<div class="panel panel-warning">';
break;
case 'info':
echo '<div class="panel panel-success">';
break;
default:
echo '<div class="panel panel-primary">';
break;
}
kdy $result
je databáze a panel
je sloupeček.
Děkuji za odpovědi.
- Altimit
- Člen | 82
takže pokud to dobře chápu tak tedy to bude vypadat nějak takto?
<?php
<div class="panel
{if $post->panel === "web"}
panel-info
{elseif $post->panel === "server"}
panel-danger
{elseif $post->panel === "info"}
panel-success
{else}
panel-default
{/if}
">
?>
Omlouvám se, ale učím se to..
Děkuji za odpověď.
- Altimit
- Člen | 82
CZechBoY to si myslím, že to nejde protože v switch musíš definovat
default a to je už v nette a dělálo to neplechu (když jsem to četl tady na
forum)
jinak už jsem přišel v čem mi to pak nenačítalo..
byla to fakt drobnost..
zde je kod z nette:
<?php
<div n:foreach="$posts as $post" class="post">
<div class="panel
{if $post->panel === "web"}
panel-info
{elseif $post->panel === "server"}
panel-danger
{elseif $post->panel === "info"}
panel-success
{else}
panel-default
{/if}
">
<div class="panel-heading"><h4 style="margin-top:-5px;"><a n:href="Post:show $post->id">{$post->title}</a></h4>
<small class="text-right">Autor: <span style="color:black;">{$post->autor}</span> Datum: <span style="color:black;">{$post->created_at|date:'j. m. Y'}</span></small>
</div>
<div class="panel-body">{$post->content}</div>
</div>
</div>
?>
Chyběl mi tak
<div n:foreach="$posts as $post" class="post">
a už to jede :-)
jinak děkuji za pomoc alimu.
- Milo
- Nette Core | 1283
@Altimit Jestli to chceš použít na více místech v šablonách napříč aplikací, udělal bych si na to filtr. Přibližně:
$latte->addFilter('cssClassPanel', function ($panel) {
switch ($panel) {
case 'web': return 'panel-info';
case 'server': return 'panel-danger';
...
}
return 'panel-primary';
});
A v šablonách:
<div class="panel {$panel |cssClassPanel}">
...
</div>