[PHP] Template parser Smarty

Gestart doorShahiem10 reacties47 weergaven

11 berichten · pagina 1 van 1

Shahiem

Lid · Topicstarter

Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hey,

Voor mijn 2e project ben ik bezig met een template parser zodat ik meerdere templates heb..
Maar nu zit ik met een probleem.

Als ik bijvoorbeeld een PHP pagina wil maken voor een winkelwagen, is het toch niet goed om PHP in die tpl te zetten?

index.php van template parser

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/define"]define[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]ALLOW[/COLOR][COLOR= #007700],[/COLOR] FALSE[COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/define"]define[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]INDEX[/COLOR][COLOR= #007700],[/COLOR] FALSE[COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]../includes/config.php[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]libs/Smarty.class.php[/COLOR][COLOR= #007700];[/COLOR]

[COLOR= #0000BB]$smarty[/COLOR] [COLOR= #007700]= new[/COLOR] Smarty[COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//$smarty->force_compile = true;[/COLOR]
[COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]debugging [COLOR= #007700]=[/COLOR] true[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]caching [COLOR= #007700]=[/COLOR] true[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]cache_lifetime [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]120[/COLOR][COLOR= #007700];[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$param[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]))
{[/COLOR]

    [COLOR= #0000BB]$info[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$lid[/COLOR][COLOR= #007700]->[/COLOR]info[COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]));[/COLOR]
    
    [COLOR= #0000BB]$webshopQuery[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$mysql[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT naam FROM leden_webwinkels WHERE seo = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$mysql[/COLOR][COLOR= #007700]->[/COLOR]escape[COLOR= #007700]([/COLOR][COLOR= #0000BB]$param[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]).[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700]);[/COLOR]
    
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$mysql[/COLOR][COLOR= #007700]->[/COLOR]num_rows[COLOR= #007700]([/COLOR][COLOR= #0000BB]$webshopQuery[/COLOR][COLOR= #007700]) ===[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
    {[/COLOR]
    
        [COLOR= #0000BB]$webshopFetch[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$mysql[/COLOR][COLOR= #007700]->[/COLOR]fetch[COLOR= #007700]([/COLOR][COLOR= #0000BB]$webshopQuery[/COLOR][COLOR= #007700]);[/COLOR]
        

        
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"winkelNaam"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$core[/COLOR][COLOR= #007700]->[/COLOR]entities[COLOR= #007700]([/COLOR][URL="http://www.php.net/ucfirst"]ucfirst[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$webshopFetch[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]naam[/COLOR][COLOR= #007700]])),[/COLOR] true[COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"FirstName"[/COLOR][COLOR= #007700],[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"John"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Mary"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"James"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Henry"[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"LastName"[/COLOR][COLOR= #007700],[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Doe"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Smith"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Johnson"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Case"[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"Class"[/COLOR][COLOR= #007700],[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"A"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"B"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"C"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"D"[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"E"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"F"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"G"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"H"[/COLOR][COLOR= #007700]),[/COLOR]
        [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"I"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"J"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"K"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"L"[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"M"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"N"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"O"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"P"[/COLOR][COLOR= #007700])));[/COLOR]

        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"contacts"[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"phone"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"1"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"fax"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"2"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"cell"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"3"[/COLOR][COLOR= #007700]),[/COLOR]
         [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"phone"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"555-4444"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"fax"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"555-3333"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"cell"[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"760-1234"[/COLOR][COLOR= #007700])));[/COLOR]

        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"option_values"[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"NY"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"NE"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"KS"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"IA"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"OK"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"TX"[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"option_output"[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"New Yorddk"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Nebraska"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Kansas"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Iowa"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Oklasshoma"[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"Texas"[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]assign[COLOR= #007700]([/COLOR][COLOR= #DD0000]"option_selected"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"NE"[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]display[COLOR= #007700]([/COLOR][COLOR= #DD0000]header.tpl[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]display[COLOR= #007700]([/COLOR][COLOR= #DD0000]index.tpl[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$smarty[/COLOR][COLOR= #007700]->[/COLOR]display[COLOR= #007700]([/COLOR][COLOR= #DD0000]footer.tpl[/COLOR][COLOR= #007700]);
        
    }
    
}[/COLOR]
?>


Gegroet,
Shahiem
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hij parsed de php in je tpl niet.. Wat zou je anders met php in je tpl willen zetten?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Houd je logica goed gescheiden. PHP hoort NIET in je template-files (de view-laag) thuis.
0
Shahiem

Lid · Topicstarter

Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Thanks.

Ik heb nu dit

{foreach from =$producten item=product}
{$product}
{foreach from =$productNaam item=naam}
{$naam}
{/foreach}
{/foreach}

Maar nu weergeeft hij naam en product variable 2 keer omdat het 2 keer een array is. Hoe voorkom ik dat?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Wat zegt je {debug} ?
0
Shahiem

Lid · Topicstarter

Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
$productNaam Smarty_Variable Object (3)
->value = Array (2)
0 => "eee"
1 => "fuck "
->nocache = false
->scope = "file:index.tpl"
$producten Smarty_Variable Object (3)
->value = Array (2)
0 => "1"
1 => "2"
->nocache = false
->scope = "file:index.tpl"
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Toch snap ik je vraag niet helemaal?
0
Shahiem

Lid · Topicstarter

Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Bij mijn weergave krijg ik dit:

1 eee fuck 2 eee fuck

Maar de bedoeling is dit:

1 eee 2 fuck
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
{$product.0} en {$product.1} ?
0
Shahiem

Lid · Topicstarter

Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Thnx, heb het opgelost smile
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren