Dat is idd het moeilijkste stuk ^^
In phpweb gebruik ik de functie eval(). Hiermee kan je een stuk php code uit een string parsen. Vervolgens gebruik ik een truuk die de output opvangt en in een variabele zet. Dit is (als je dat stukje code eenmaal hebt) de simpelste manier.
Als je het wat netter wilt doen, moet je explode() gebruiken. Dit is ingewikkeld, en redelijk wat puzzelwerk, maar het kan wel. Je moet dan gewoon de verschillende opmaak stukjes eruit zien de splitten.
Even wat uitleg over het het exploden:
Stel, je hebt dit in het template bestand staan:
[code="html"]Dit is de template!
[LINK]<a class="buttons" href="[LINK_PAGE]">[LINK_NAME]</a>[/LINK]
En dit is het einde van de template![/code]
Vervolgens filter je de link opmaak er uit met explode():
[code="php"]$link_temp = explode('[LINK]',$template);
$link_temp = explode('[/LINK]',$link_temp[1]);[/code]
Dan heb je dus het stukje dat tussen [LINK] en [/LINK] staat. Vervolgens gebruik je een while die de linkjes uit de database haalt, en alle gegevens van die link str_replace()'d. Vergeet niet aan het einde van die while de uitkomst in een variabel te zetten, en die elke keer bij te werken, dus:
[code="php"]$link_string_temp = str_replace('[LINK_NAME]',$link_data->name,$link_temp[0]);
$link_string_temp = str_replace('[LINK_PAGE]','index.php?p='.$link_data->page_id,$link_string_temp);
$link_string = $link_string.$link_string_temp;[/code]
En vervolgens nog even alle linkjes via een str_replace() in de template zetten:
[code="php"]$template = str_replace('[LINK]'.$link_temp[0].'[/LINK]',$link_string,$template);[/code]
Hopelijk is het nu wat duidelijker?