Project

General

Profile

1
<?php
2
/**
3
 *
4
 * @category        frontend
5
 * @package         page
6
 * @author          WebsiteBaker Project
7
 * @copyright       2004-2009, Ryan Djurovich
8
 * @copyright       2009-2011, Website Baker Org. e.V.
9
 * @link			http://www.websitebaker2.org/
10
 * @license         http://www.gnu.org/licenses/gpl.html
11
 * @platform        WebsiteBaker 2.8.x
12
 * @requirements    PHP 5.2.2 and higher
13
 * @version         $Id: index.php 1443 2011-04-19 19:38:37Z Luisehahne $
14
 * @filesource		$HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/index.php $
15
 * @lastmodified    $Date: 2011-04-19 21:38:37 +0200 (Tue, 19 Apr 2011) $
16
 *
17
 */
18

    
19
$starttime = array_sum(explode(" ",microtime()));
20

    
21
define('DEBUG', false);
22
// Include config file
23
$config_file = dirname(__FILE__).'/config.php';
24
if(file_exists($config_file))
25
{
26
	require_once($config_file);
27
}
28

    
29
// Check if the config file has been set-up
30
if(!defined('WB_PATH'))
31
{
32
/*
33
 * Anmerkung:  HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema,
34
 * Hostnamen und absoluten Pfad als Argument von Location:, manche aber nicht alle
35
 * Clients akzeptieren jedoch auch relative URIs.
36
 */
37
	$host       = $_SERVER['HTTP_HOST'];
38
	$uri        = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\');
39
	$file       = 'install/index.php';
40
	$target_url = 'http://'.$host.$uri.'/'.$file;
41
	header('Location: '.$target_url);
42
	exit;	// make sure that subsequent code will not be executed
43
}
44

    
45
require_once(WB_PATH.'/framework/class.frontend.php');
46
// Create new frontend object
47
$wb = new frontend();
48

    
49
// Figure out which page to display
50
// Stop processing if intro page was shown
51
$wb->page_select() or die();
52

    
53
// Collect info about the currently viewed page
54
// and check permissions
55
$wb->get_page_details();
56

    
57
// Collect general website settings
58
$wb->get_website_settings();
59

    
60
// Load functions available to templates, modules and code sections
61
// also, set some aliases for backward compatibility
62
require(WB_PATH.'/framework/frontend.functions.php');
63

    
64
// redirect menu-link
65
$this_page_id = PAGE_ID;
66

    
67
$php43 = version_compare(phpversion(), '4.3', '>=');
68

    
69
$sql  = 'SELECT `module`, `block` FROM `'.TABLE_PREFIX.'sections` ';
70
$sql .= 'WHERE `page_id` = '.(int)$this_page_id.' AND `module` = "menu_link"';
71
$query_this_module = $database->query($sql);
72
if($query_this_module->numRows() == 1)  // This is a menu_link. Get link of target-page and redirect
73
{
74
	// get target_page_id
75
	$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'mod_menu_link` WHERE `page_id` = '.(int)$this_page_id;
76
	$query_tpid = $database->query($sql);
77
	if($query_tpid->numRows() == 1)
78
	{
79
		$res = $query_tpid->fetchRow();
80
		$target_page_id = $res['target_page_id'];
81
		$redirect_type = $res['redirect_type'];
82
		$anchor = ($res['anchor'] != '0' ? '#'.(string)$res['anchor'] : '');
83
		$extern = $res['extern'];
84
		// set redirect-type
85
		if($redirect_type == 301)
86
		{
87
			if($php43)
88
			{
89
				@header('HTTP/1.1 301 Moved Permanently', TRUE, 301);
90
			}
91
			else
92
			{
93
				@header('HTTP/1.1 301 Moved Permanently');
94
			}
95
		}
96
		if($target_page_id == -1)
97
		{
98
			if($extern != '')
99
			{
100
				$target_url = $extern.$anchor;
101
				header('Location: '.$target_url);
102
				exit;
103
			}
104
		}
105
		else
106
		{
107
			// get link of target-page
108
			$sql  = 'SELECT `link` FROM `'.TABLE_PREFIX.'pages` WHERE `page_id` = '.$target_page_id;
109
			$target_page_link = $database->get_one($sql);
110
			if($target_page_link != null)
111
			{
112
				$target_url = WB_URL.PAGES_DIRECTORY.$target_page_link.PAGE_EXTENSION.$anchor;
113
				header('Location: '.$target_url);
114
				exit;
115
			}
116
		}
117
	}
118
}
119
//Get pagecontent in buffer for Droplets and/or Filter operations
120
ob_start();
121
require(WB_PATH.'/templates/'.TEMPLATE.'/index.php');
122
$output = ob_get_contents();
123
if(ob_get_length() > 0) { ob_end_clean(); }
124

    
125
// wb->preprocess() -- replace all [wblink123] with real, internal links
126
if( method_exists($wb, 'preprocess') )
127
{
128
   $wb->preprocess($output);
129
}
130
// Load Droplet engine and process
131
if(file_exists(WB_PATH .'/modules/droplets/droplets.php'))
132
{
133
    include_once(WB_PATH .'/modules/droplets/droplets.php');
134
    if(function_exists('evalDroplets'))
135
    {
136
		$output = evalDroplets($output);
137
    }
138
}
139
// Load backwards compatible frontend filter support and process
140
if(file_exists(WB_PATH .'/modules/output_filter/filter-routines.php'))
141
{
142
    include_once(WB_PATH .'/modules/output_filter/filter-routines.php');
143
    if(function_exists('filter_frontend_output'))
144
    {
145
        $output = filter_frontend_output($output);
146
    }
147
}
148

    
149
// move css definitions into head section
150
$output = moveCssToHead($output);
151
echo $output;
152
// end of wb-script
153
exit;
(3-3/4)