FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Jag har (olyckligtvis) blivit tvungen att editera i .tpl-sidor och smarty-kod. Är väldigt osugen på att lära mig nån ny syntax bara för en (1) fix i en tpl-fil. Allt jag vill göra är att hämta information från en egenskapad tabell i phplinkdirectory. Vi kan kalla den EGEN_TABELL, ifrån EGEN_TABELL vill jag skriva ut $namn och $adress från dessa två kolumner. Hur ska jag göra? Har börjat kika på Smarty-faq:en men det känns som att lära sig ett nytt programmeringsspråk. I "vanlig" php hade jag gjort motsvarande: Kod:
$sql_hamta_data = mysql_query("SELECT * FROM EGEN_TABELL;"); while($row = mysql_fetch_array($sql_sql_hamta_data)){ foreach( $row AS $key => $val ){ $$key = stripslashes( $val ); } echo $namn.$adress } |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Banned
|
Offtopic:
Din kod går att göra lite smidigare: Kod:
$sql_hamta_data = mysql_query("SELECT * FROM EGEN_TABELL;"); while($row = mysql_fetch_assoc($sql_hamta_data)) { echo $row['namn'] . ' ' . $row['adress'] . '<br />'."\n"; } |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
Frågan skall ställas i den php-fil som anropas. I phpLD är det två filer som sköter det mesta, index.php och detail.php. Om du tex. vill visa informationen på en detaljsida så lägg till din sql-fråga och lägg resultatet i en array, tex
$data['adress'] = $rdata['adress']; I tpl-filen så skriver du sen ut innehållet i arrayen. I main.tpl/detail.tpl lägger du bara till {$adress|escape|trim} på lämpligt ställe. Smarty's filformat .tpl fungerar som .html-filer fast med lite funktioner som körs innan den skickas till besökaren. |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Urk för smarty. Deras "enkla" syntax är jobbig att ha att göra med. PHP är redan ett kompakt och enkelt språk som faktiskt är till för just det här. {php} är den bästa funktionen
![]() Bara så du vet verkar du ha missupfattat poängen med separera logik och markup så jag har inget bra svar på din fråga. Du får läsa i manualen hur du stoppar in data *till* templaten (assign) och hur du loopar igenom datan i templaten (foreach). |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Tack för alla svar {php} visade sig vara det absolut enklaste sättet. Håller med urk:en. Känns otroligt onödigt och krånligt med ett språk i språket, men jag ser troligtvis inte Den Stora Bilden. |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
Den stora bilden är väl kortfattat: blanda aldrig funktion och design.
Tycker inte heller om smarty. Den bakomliggande koden känns ofta onödigt komplicerad. Men det är som sagt tidigare i denna tråd i en generell templatemotor som skall kunna användas i alla möjliga situationer. |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Nykomling
|
Du har ju en controller till din template, där ska du kontakta modellen och få datan som du sedan skickar till templaten via (beroende på hur ditt system ser ut, det borde du kunna lista ut genom att kika i övriga controllers) $smarty->tpl->assign('foo', $data); Den kommer du åt i templaten via {$foo} som det redan sagts i tråden. Att lägga en sql-sats i en template, eller till och med i en controller borde straffas med avklippt bredbandsuppkoppling
![]() |
||
![]() |
![]() |
Svara |
|
|