Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty]jak jest szybciej/poprawniej
Forum PHP.pl > Forum > PHP
FastRed
Od niedawna bawię się smartymi i napotkałem pewien problem, który nie wiem jak najlepiej rozwiązać, otóż mam plik php:
[php:1:fcab06c3ac]<?php
$q = $db->getArray('SELECT * FROM sz_sonda_pyt ORDER BY sonda_id DESC LIMIT 0,1'); //pobieramy id i pytanie ostatniej sondy
$intSonda_id = $q[0][0];
$strCookieName = 'sonda_'.$intSonda_id;//nazwa ciastka dla tej sondy
$strPytanie = $q[0][1]; // pytanie
if(isset($_COOKIE[$strCookieName])){
//wtedy wyświetlimy wyniki sondy-w naszym przypadku obrazek wygenerowany wcześniej przez GD
}else{
//pobieramy pytania dla ostatniej sondy
$arrSonda = $db->GetArray('SELECT * FROM sz_sonda_odp WHERE s_id="'.$intSonda_id.'" ORDER BY odp_id ASC');
$tpl->assign("arrSonda",$arrSonda);
}
$tpl->assign('strCookieName', $strCookieName);
$tpl->assign('strPytanie',$strPytanie);
$tpl->display("right_menu.tpl");
?>[/php:1:fcab06c3ac]
Jak widać w kodzie powyżej jest już jeden if- sprawdzamy czy istnieje ciasteczko, jeśli tak to chcemy wyswietlić wyniki sondy, jeżeli nie to pobieramy spis możliwych odpowiedzi aby później w tplku wyświetlić formularz.

Teraz mam plik tpl:
[xml:1:fcab06c3ac]
{$strPytanie}<br />
{if !isset($smarty.cookies.strCookieName)}
<form name="sonda" method="post">
{section name=i loop=$arrSonda}
<input type="radio" name="odp" value="{$arrSonda[i].odp_id}" />{$arrSonda[i].odp}<br />
{/section}
<input type="submit" value="Głosuj" />
</form>
{else}
<div align="center">
<img src="sonda.png">
</div>
{/if}
[/xml:1:fcab06c3ac]
I tutaj znowu musimy sprawdzić czy użytkownik ma ciasteczko, i w odpowiedniej sytuacji albo wyświetlić wyniki sondy, albo formularz.
Czy dałoby się to jakoś inaczej rozwiązać bez stosowania ponownie ifów?(myślałem o daniu zapytania sprawdzająceog możliwe odpowiedzi do tpl, ale chyba nie jest to najlepsze rozwiązanie)

Z góry dzięki za pomoc smile.gif.

edit: można to oczywiście rozwiązać używająć dwóch plików .tpl jednak zależy mi na tym, aby było to zapisane w jednym.
BzikOS
Początkujący => php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.