Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Directory structure issue

 
chanveil Kiji
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
K. Tsang
Bartender
Posts: 3355
12
Android Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
/webroot
/webroot/images
/webroot/subdir1
/webroot/subdir1/subdir2
/webroot/index.php

//subdirectory paths
$SUB1_IMAGE_PATH = "../images"; // for subdir1
$SUB2_IMAGE_PATH = "../../images"; // for subdir2

//root paths
$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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic