Copyright (C) 2004-2005, Ryan Djurovich Website Baker is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Website Baker is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Website Baker; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Include config file if(!defined('WB_URL')) { require('config.php'); } // Say that this file has been loaded if(!defined('FRONTEND_LOADED')) { define('FRONTEND_LOADED', true); } // Check if the config file has been set-up if(!defined('WB_PATH')) { // Work-out where to go to get to the installer if(isset($no_intro) AND $no_intro == true) { header("Location: ../install/index.php"); } else { header("Location: install/index.php"); } } // Get language (if set) if(isset($_GET['lang']) AND $_GET['lang'] != '' AND !is_numeric($_GET['lang']) AND strlen($_GET['lang']) == 2) { define('LANGUAGE', strtoupper($_GET['lang'])); define('GET_LANGUAGE', true); } // Function to work out a page link function page_link($link) { // Check for :// in the link (used in URL's) if(strstr($link, '://') == '') { return WB_URL.PAGES_DIRECTORY.$link.PAGE_EXTENSION; } else { return $link; } } // Work-out if we should include the database class file or admin class file if(FRONTEND_LOGIN) { // Include admin class file require_once(WB_PATH.'/framework/class.admin.php'); // Create new admin object if(!isset($admin)) { $admin = new admin('Start', 'start', false, false); } } else { // Include database class file require_once(WB_PATH.'/framework/class.database.php'); // Create new database object if(!isset($admin)) { $database = new database(); } } /* Begin user-changeable settings */ // Get users language if(!defined('LANGUAGE')) { if(isset($_SESSION['LANGUAGE']) AND $_SESSION['LANGUAGE'] != '') { define('LANGUAGE', $_SESSION['LANGUAGE']); define('USER_LANGUAGE', true); } else { define('LANGUAGE', DEFAULT_LANGUAGE); } } // Get users timezone if(!defined('TIMEZONE')) { if(isset($_SESSION['TIMEZONE'])) { define('TIMEZONE', $_SESSION['TIMEZONE']); } else { define('TIMEZONE', DEFAULT_TIMEZONE); } } // Get users date format if(!defined('DATE_FORMAT')) { if(isset($_SESSION['DATE_FORMAT'])) { define('DATE_FORMAT', $_SESSION['DATE_FORMAT']); } else { define('DATE_FORMAT', DEFAULT_DATE_FORMAT); } } // Get users time format if(!defined('TIME_FORMAT')) { if(isset($_SESSION['TIME_FORMAT'])) { define('TIME_FORMAT', $_SESSION['TIME_FORMAT']); } else { define('TIME_FORMAT', DEFAULT_TIME_FORMAT); } } // Load the language file if(!defined('LANGUAGE_LOADED')) { if(!file_exists(WB_PATH.'/languages/'.LANGUAGE.'.php')) { exit('Error loading language file '.LANGUAGE.', please check configuration'); } else { require(WB_PATH.'/languages/'.LANGUAGE.'.php'); } } /* End user-changeable settings */ /* Begin page-select code */ // Get default page $query_default = "SELECT page_id,link FROM ".TABLE_PREFIX."pages WHERE parent = '0' AND visibility = 'public' ORDER BY position ASC LIMIT 1"; $get_default = $database->query($query_default); $default_num_rows = $get_default->numRows(); // Check for a page id if(!isset($page_id) OR !is_numeric($page_id)) { // Since we have no page id check if we should go to intro page or default page if(INTRO_PAGE AND !isset($no_intro)) { // Get intro page content $filename = WB_PATH.PAGES_DIRECTORY.'/intro.php'; if(file_exists($filename)) { $handle = fopen($filename, "r"); $content = fread($handle, filesize($filename)); fclose($handle); // Replace [wblink--PAGE_ID--] with real link $pattern = '/\[wblink(.+?)\]/s'; preg_match_all($pattern,$content,$ids); foreach($ids[1] AS $page_id) { $pattern = '/\[wblink'.$page_id.'\]/s'; // Get page link $get_link = $database->query("SELECT link FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id' LIMIT 1"); $fetch_link = $get_link->fetchRow(); $link = page_link($fetch_link['link']); $content = preg_replace($pattern,$link,$content); } echo stripslashes($content); exit(); } else { header("Location: ".WB_URL.PAGES_DIRECTORY."/index".PAGE_EXTENSION); exit(); } } else { // Go to or show default page if($default_num_rows > 0) { $fetch_default = $get_default->fetchRow(); $default_link = $fetch_default['link']; $default_page_id = $fetch_default['page_id']; // Check if we should redirect or include page inline if(HOMEPAGE_REDIRECTION) { // Redirect to page header("Location: ".page_link($default_link)); exit(); } else { // Include page inline $page_id = $default_page_id; } } else { // No pages have been added, so print under construction page require_once(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php'); ?>