Hoi!
Ten einde raad wend ik me tot jullie
Ik ben bezig met een eigen template systeempje (wat eindelijk goed werkt), maar nu wil ik daar ook IF-THEN-ELSE in kunnen verwerken.
Voor het parsen van dat stuk heb ik de volgende funktie gemaakt :
Dat werkt dus naar behoren voor simpele gevallen als :
test.tpl
Alleen zet ik nu twee van die IF statements onder elkaar, dan pakt die (natuurlijk) alleen het stuk tussen de eerste {if.. en de laatste {/if}. Dat wil ik dus niet.
Het volgende dus wel
Wie kan mij helpen (of in de goede richting duwen), want ik wordt er echt gek van
Ten einde raad wend ik me tot jullie
Voor het parsen van dat stuk heb ik de volgende funktie gemaakt :
PHP:
1
| <? function parseConditions($output) { preg_match_all("/{if ([^}]*)}(.*){\/if}/ise", $output, $regs, PREG_SET_ORDER); while (list ($statement, $args) = each($regs)) { $args[1] = str_replace("user.", '$_SESSION[SESSION_VARS . "user"]->', $args[1]); $statement = "return ($args[1]) ? true : false;"; $statement_output = (eval($statement)) ? $args[2] : ""; $this->add("debug", "IF STATEMENT : $args[1]<BR>"); $this->add("debug", "IF STATEMENT : $statement_output<BR>"); $this->add("debug", "STATEMENT : $statement<BR>"); $this->add("debug", "EVAL'D : " . eval($statement) . "<BR>"); $output = str_replace($args[0], $statement_output, $output); } return $output; }?> |
Dat werkt dus naar behoren voor simpele gevallen als :
test.tpl
code:
1
2
3
4
5
6
7
| blaat
{if user.logged_in}
Ingelogd
{/if}
blaat |
Alleen zet ik nu twee van die IF statements onder elkaar, dan pakt die (natuurlijk) alleen het stuk tussen de eerste {if.. en de laatste {/if}. Dat wil ik dus niet.
Het volgende dus wel
code:
1
| {if <expressie>} Doe iets {else} doe iets anders {/if} |
Wie kan mij helpen (of in de goede richting duwen), want ik wordt er echt gek van
SIZE does matter.
"You're go at throttle up!"