views:

70

answers:

4

Let's say I have a simple CSS layout and my menu is a column on the side. This menu is going to be on every web page (About 10 web pages). If I have items on this menu in the form of links and such, how can I make it so that if I add a link on one page, it will add it to all pages? Would you just make it a PHP page and in that <div> element include a PHP file called menu or something, and just edit that PHP file (so I only have to edit that file and not every web page)?

+4  A: 

If this is raw PHP (no frameworks) then you simply include it.

include('sidebar.php');

Make sure that you can access the file from where you are including it though. If you have files in a folder called foo for example, and accessed via example.com/foo/somefile.php you will have to change the include statement to include('../sidebar.php'); assuming sidebar.php is in the root.

Josh K
Thanks. Is there any other way to do it or is that the best way? Also what frameworks are out there for php that will do a decent job for a simple website? Thanks!
ranzy
@ranzy: I prefer [CodeIgniter](http://codeigniter.com/).
Josh K
+1  A: 

As stated above, and include would do.

Drop this on every page you want your menu to appear:

<?php include("/yourMenu.php"); ?>

Just save the menu code as yourMenu.php and put it in the root and you are good to go.

Peachy
+1  A: 

i've used this trick before and it works well. you can use this in conjunction with an include php

Intelligent Navigation

pixeltocode
+1  A: 

If you are using the Apache web server it's even more simple and faster to use server side include (ssi). You can do the same for the footer and other common areas of your pages.

Here is the reference page: http://httpd.apache.org/docs/2.2/howto/ssi.html

allesklar