Open Paths

BigTree has special reserved paths for different functions of the CMS. Two of these paths, ~/site/css/ and ~/site/js/ are created automatically upon installation, and you are free to add files here.

/css/

BigTree uses a CSS preprocessor to minify and combine the files within the css directory into a single CSS file for the site. You also have the option to set up common variables for use in your CSS. The preprocessor will then interpret these variables and write the proper values into the final CSS document. BigTree offers you the flexibility to create different combined files for your needs, therefore you must explicitly state which files belong to each processed CSS file in ~/templates/config.php. You can learn more about the preprocessor and its configuration here. Generally you should only place .css and .less files in this directory (as BigTree's preprocessor supports the LESS preprocessor).

/js/

BigTree also uses a JavaScript preprocessor to provide similar behavior to the CSS: it will combine and minify JavaScript files into a single file for use in your site, and interpret PHP variables you have set up. You can customize these in ~/templates/config.php, just like the CSS files. You can read more about BigTree's JavaScript processing here. You will want to keep only .js files in this directory.

Closed Paths

There are several paths that BigTree uses that you cannot add files to without running into some potential problems:

/admin/

This is the default admin area location.  If you have changed $bigtree["config"]["admin_root"], that becomes the reserved path.

/ajax/

This is the path that is used to route AJAX requests to the ~/templates/ajax/ folder.

By default, routes are sent to ~/templates/ajax/{route}.php. For example, if you visit http://www.website.com/ajax/test/ it will serve up ~/templates/ajax/test.php. You can also use folder routing in the /templates/ajax/ folder to do more organized structure. If a folder exists for a given route, it will serve up default.php if it exists.

These examples for the URL http://www.website.com/ajax/test/goose/ show the order of preference in the routing system:

  • If ~/templates/ajax/test/goose/default.php exists, that file will be served
  • If ~/templates/ajax/test/goose.php exists, that file will be served
  • If ~/templates/ajax/test/default.php exists, that file will be served with "goose" in $bigtree["commands"]
  • If ~/templates/ajax/test.php exists, that file will be served with "goose" in $bigtree["commands"]
  • If none of the above are true, you will see a warning stating that there is an include error

/feeds/

When you create an RSS feed with BigTree, it creates a path like this: {site-domain}/feeds/{feed-name}. It is generally not a good idea to have a /feeds/ directory exist in ~/site/ as it may interfere with your generated feeds. 

/sitemap.xml

You may place your own sitemap.xml file inside of ~/site/ to overwrite the sitemap.xml file that is automatically generated by BigTree based on your Page tree.

/_preview/ and /_preview-pending/

Both {site-domain}/_preview/ and {site-domain}/_preview-pending/ are reserved directories that should not be placed in the ~/site/ folder. You could lose the ability to preview pages.