Autor | Zpráva | ||
---|---|---|---|
Ajtak Profil |
#1 · Zasláno: 15. 1. 2013, 22:16:10
Zdravím, Mám tento jednoduchý kód a potřeboval bych pomoct s převodem do smarty. Jak bude vypadat šablona? Jak bude vypadat soubor?
<?php if($_POST){ $maxCislo = $_POST["maxCislo"]; if($maxCislo >= 2;) { echo "2; " } for($i = 3; $i < $maxCislo; $i = $i + 2){ $l = 0; for($j = 2; $i > $j; $j++) { if($i % $j == 0){ $l++; } } if($l == 0){ echo "$i; "; } } } ?> <html> <form method="post" action="#"> <input type="text" name="maxCislo"> <input type="submit" value="Odeslat"> </form> </html> |
||
blaaablaaa Profil |
// napsal jsem blbost ;) Tori spravne
|
||
Tori Profil |
Ajtak:
Asi bych tu část na výpočet prvočísel zabalila do funkce, která by vracela pole. To si pak v šabloně zobrazíte jak chcete. function prvocisla($num) { $vysledek = array(); if ($num < 2) return $vysledek; elseif ($num == 2) return array(2); else $vysledek[] = 2; for ($i = 3; $i < $num; $i += 2) { $l = 0; for ($j = 2; $i > $j; $j++) { if ($i % $j == 0) $l++; } if ($l == 0) $vysledek[] = $i; } return $vysledek; } if (!empty($_POST['maxCislo'])) { $cislo = (int) $_POST['maxCislo']; if ($cislo < 2) $smarty->assign('chyba', 'Číslo nesmí být menší než 2.'); else $smarty->assign('vysledek', prvocisla($cislo)); } $smarty->display('nazev-sablony.tpl'); {* Smarty sablona *} <html> {if !empty($chyba)}<p class='alert'>{$chyba}</p>{/if} {if !empty($vysledek)} <p>Výsledek: {foreach $vysledek as $cislo}{$cislo}{if !$cislo@last}, {/if}{/foreach}</p> {/if} <form method="post" action="#"> <input type="text" name="maxCislo"> <input type="submit" value="Odeslat"> </form> </html> Trochu čitelněji by ta šablona vypadala, když si uděláte vlastní modifikátor (obdoba implode): function smarty_join($pole, $sep = '') { return implode($sep, $pole); } $smarty->registerPlugin('modifier', 'join', 'smarty_join'); {* změněná část šablony *} {if !empty($vysledek)} <p>Výsledek : {$vysledek|join:', '}</p> {/if} <p>Výsledek : {$vysledek|implode:', '}</p> bez vytváření/registrace Smarty modifikátoru.
|
||
Časová prodleva: 13 let
|
0