Avatar billede kongknabe Nybegynder
04. april 2009 - 20:40 Der er 9 kommentarer og
1 løsning

Hjælp til SMARTY 'section' tag?

Hejsa..

Er netop begyndt rode med SMARTY men er løbet ind i et problem. Når jeg bruger tagget "section" til at loope igenne et array i en template er det tit at jeg har brug for at bruge den samme variabel flere gange i et loop, men det kan jeg ikke få til at virke.

Her et kort eksempel:

Array:

$smarty->assign('links', array(
    array('link' => 'link1'),
        array('link' => 'link2'),
));

Og her min template:

{section name=data loop$links}
    <a href="?page_id={$links[data].link}">{$links[data].link}</a>
{/section}

Dette resulterer i følgende link:

<a href="?pge_id=link1">link 2</a>

Og det jeg ønsker er selvfølgelig følgende:

<a href="?pge_id=link1">link1</a>
<a href="?pge_id=link2">link2</a>

Håber forklaringen giver mening :)
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:13 #1
Det bliver da også til

<a href="?page_id=link1">link1</a>
<a href="?page_id=link2">link2</a>

med den kode du viser.
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:14 #2
Avatar billede kongknabe Nybegynder
04. april 2009 - 21:20 #3
Hmm.. ja, det har du da helt ret i.. Synes bare ikke jeg har kunnet få det til at virke før.. Måske mig der husker forkert.. men mange tak :)

Og jo.. Nu jeg tænker over det var det med en counter jeg oplevede problemet.. Hvis man både vil loope et array og samtidig lave en counter der skal bruges flere gange i samme link med samme resultat... Skal lige se om jeg kan lave et eksempel.. men tak for hjælpen - smid svar for point :)
Avatar billede kongknabe Nybegynder
04. april 2009 - 21:25 #4
Jo, her var det eksempel hvor jeg havde problemer:

{section name=test loop=$pages}   
    <a href="page_id={$pages[test].name}" id="{$pages[test].name}_{$counter name=anchors}">{$pages[test].name}_{$counter name=anchors}</a>
{/section}

Her tæller counteren hvor jeg vil have den skal bevare samme værdi for hvert loop selvom jeg sætter den ind flere gange.
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:26 #5
Ingen point til mig, tak. Ja, vis et eksempel på hvad der går galt - hvis du kan ;) - så finder vi nok ud af det.
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:28 #6
Skal du så ikke (utestet)

{section name=test loop=$pages} 
{$counter name=anchors assign=dummy}
    <a href="page_id={$pages[test].name}" id="{$pages[test].name}_{$dummy}">{$pages[test].name}_{$dummy}</a>
{/section}
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:29 #7
En counter tælles, sjovt nok, op hver gang den nævnes, men med assign-attributten kan man lægge værdien over i en variabel, som så kan bruges flere gange. Du kan finde på et andet navn end "dummy" ;)
Avatar billede kongknabe Nybegynder
04. april 2009 - 21:32 #8
Ahhh.. det var lige det jeg ledte efter.. Tusind tak! - Det er dælme dejligt at kunne få noget kvalificeret hjælp når man sidder og er kørt helt fast i en eller anden lille småting!

Og ja, det er rigtig - du samler ikke på point - Så du får et ekstra tak! :)
Avatar billede erikjacobsen Ekspert
04. april 2009 - 21:33 #9
Husk at få lukket: svar selv, accepter dit eget svar.
Avatar billede kongknabe Nybegynder
04. april 2009 - 21:37 #10
Jeps :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester