Hi I think what you are looking for is static Header Footer and dynamic content. One way of doing this is by having the front controller pattern For example : consider the following list of files in your application 1000.php 2000.php 1001.php 3000.php In the front controller Pattern we usually have a only one file referenced all eth time and most of the times it is Index.php The code of your index.php file would be something like this require_once "header.php"; require_once $_GET['r'].".php"; require_once "footer.php"; once this is done. To access any of the above mentioned files your URL will be like this index.php?r=1000 or index.php?r=2000 or index.php?r=1001 etc.... The code given above is just the start point and is not secure enough and had a Code injection threat. However I think this is enough to get you started. You can do more research on what is Code Injection and how to avoid it. From: Shawn McKenzie [mailto:nospam@xxxxxxxxxxxxx] Sent: Wednesday, March 04, 2009 9:05 AM To: php-general@xxxxxxxxxxxxx Subject: Re: Question about template systems Shawn McKenzie wrote: > Matthew Croud wrote: >> Hello, >> >> First post here, I'm in the process of learning PHP , I'm digesting a >> few books as we speak. >> I'm working on a content heavy website that provides a lot of >> information, a template system would be great and so i've been looking >> at ways to create dynamic data with a static navigation system. >> >> So far, using the require_once(); function seems to fit the bill in >> order to bring in the same header html file on each page. >> I've also looked at Smartys template system. >> >> I wondered how you folk would go about creating a template system ? >> >> My second question might be me jumping the gun here, I haven't come >> across this part in my book but i'll ask about it anyway. I often see >> websites that have a dynamic body and static header, and their web >> addresses end like this: "index.php?id=445" where 445 i presume is some my >> file reference. >> What is this called ? It seems like the system i'm after but it doesn't >> appear in my book, If anyone could let me know what this page id >> subject is called i can do some research on the subject. >> >> Thanks for any help you can provide :) >> >> Matt. >> > > I have written a popular theme/template system for some CMS systems. In > my opinion, templating is only needed for those that are totally > ignorant of the concept of programming languages in general. It helps > for those designers that know HTML or they export their graphics as HTML > and know enough to modify it or add some simple tags like {post-date} to > HTML. That's it! No loops, no ifs, nothing. Simple things > designers/users can add that represent some complex code, queries, etc... > > PHP IS a template language. You can easily separate your logic and > design/display using PHP. Anything more than abstracting some complex > code to some simple var is overkill. If you want to display a dropdown > of categories, and the code needed is a database query and some PHP > logic, etc., then it makes sense in my above scenario to do this in code > and then assign the result to a template var like {categories-dropdown} > that the designer/user can use in the HTML. Other than that its just waste. > > Smarty and similar template approaches just take PHP (but more limited) > and make it look slightly different. Anyone who doesn't know or want to > know anything about programming will not see the difference between PHP > and Smarty. Consider the following: > > PHP: <?php echo $somevar; ?> > > Smarty: {somevar} > //oh except in your PHP you have to do the following > //$smarty->assign('somevar', $somevar); > //$smarty->display('some.tpl'); > > PHP: include('header.tpl'); > > Smarty: {include file="header.tpl"} > > Don't even get me started on loops and conditionals. Smarty just > replicates PHP, except it looks slightly different and is much less > powerful. If you are confused with: > > if ($something) { > echo "Some stuff..."; > } else { > echo "Some other stuff..."; > } > > Why is this better: > > {if $something} > Some stuff... > {else} > Some other stuff... > {/if} > > Like I said earlier, if you have some complex code that you can reduce > to a simple tag or something that a designer can insert into HTML then > great. If not then it is just unsuccessfully trying to replicate PHP! Actually, I forgot myself and the alternative syntax: if($something): echo "Some stuff..."; else: echo "Some other stuff..."; endif; Hardly different... -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php