I prefer to opt for a template system where the templates are strictly HTML and reside in a template directory (they don't have to, but it makes it a lot easier to manage).
When you call index.php or admin.php, the script loads your template library first. Then you toss in some code to have that library pull up the necessary template. Then mix and match the strings and send them to the browser.
There's a lot of room for creativity and features here. There's prebuilt libraries you can use or if you like, you can easily build your own.