This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
I currently have a website that was thrown together w/o planning and I am now trying to begin organizing it a little better. The issue I'm having is that I want to move some of the pages into subdirectories, but other pages (such as the main page) will still remain in the root directory. I have a directory called includes that holds the header file, footer file, and navigation files which are included in all pages within the site. My problem is that when I am on a page within the root directory, or a page within the sub directory, the path's need to be different for the links and image files.
For instance, if a page in the root directory is displayed to link to another page I can just link to "example.php", but if i'm on a page within a subdirectory the link needs to be "../example.php".
Only using one file to hold all the link information, is there a simple way to do this?
There is a way = to use a so-called configuration file where you define "constants" pointing the correct paths for different cases
For example assuming your directory looks like this
$SUB1_IMAGE_PATH = "../images"; // for subdir1
$SUB2_IMAGE_PATH = "../../images"; // for subdir2
$IMAGE_PATH = "images"; // for index.php
A warning about this approach: as more directories are added maintaining this file can be tedious and error-prone. Also this can be error-prone when programming pointing to the wrong constant so naming convention must be defined and follow through.