Sublime directory Surf the web anonymous Pagerank Monitor


Creating a basic template engine...

pottiq
Tue 6 December 2011, 11:06 am GMT +0100
Hello everybody,
I've started to work on building a template engine for a website since I need to seperate the logical units from the graphical units and template engines such as Smarty and TBS are way too big for what I really need: a very basic,simple   bgocled.com   template engine which manage simple tasks such as value reference and conditions.

The value referencing has been quite easy, a simple str_replace would do the job correctly. Where it gets complicated is at the conditional management. I need it to make, for exemple:

Code:
[IF USER_STATUS_ADMIN]{SHOW_ADMIN_LINK}[ELSEIF USER_STATUS_WRITER]{SHOW_WRITER_LINK}[ELSEIF USER_STATUS_TESTER]{SHOW_TESTER_LINK}[ELSE]{SHOW_ALL_LINK}[/IF]
turn into:

Code:
if $user_status_admin {
echo $show_admin_link;
}elseif $user_status_writer{
echo $show_writer_link;
}elseif $user_status_tester{
echo $show_tester_link;
}else{
echo $show_all_link;
}
I must admit that I am quite rusted in PHP, so to reach this goal I first thought about using a regex to dispatch all my values... I used this regex:

Code:
/\[IF (.*?)\](.*?)(\[\/IF\]|\[ELSEIF (.*?)\](.*?)\[\/IF\])/i
Before long I realized that I could only retrieve a single ELSEIF value. So I went with a string scaning method using this code:

Code:
$str = '[IF USER_STATUS_ADMIN]{SHOW_ADMIN_LINK}[ELSEIF USER_STATUS_WRITER]{SHOW_WRITER_LINK}[ELSEIF USER_STATUS_TESTER]{SHOW_TESTER_LINK}[ELSE]{SHOW_ALL_LINK}[/IF]';

$pos = strpos($str, '[IF ');
A new problem arose... Finding the first "[IF " was going fine, but finding the USER_STATUS_ADMIN between "[IF " and "]" was giving me trouble...

So here I am now, which method I should focus my energy on and how to achieve my goal.

Any help on the matter would be greatly appreciated,

Thanks !

pottiq
Wed 7 December 2011, 07:33 am GMT +0100
No one can help me? This problem has troubled me for a long time!

Nikolas
Wed 7 December 2011, 01:03 pm GMT +0100
I would prefer to use code when I want to insert code. This way I include the template file, and the whole thing would be much faster.

sanath123
Thu 26 April 2012, 08:45 am GMT +0200
Thanks for giving a great tips about PHP

Archive for SMF v1.00 by N.P. Valid XHTML 1.0 Transitional