Project

General

Profile

1 4 ryan
<?php
2
3 19 stefan
// $Id$
4 4 ryan
5
/*
6
7
 Website Baker Project <http://www.websitebaker.org/>
8 915 Ruebenwurz
 Copyright (C) 2004-2009, Ryan Djurovich
9 4 ryan
10
 Website Baker is free software; you can redistribute it and/or modify
11
 it under the terms of the GNU General Public License as published by
12
 the Free Software Foundation; either version 2 of the License, or
13
 (at your option) any later version.
14
15
 Website Baker is distributed in the hope that it will be useful,
16
 but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 GNU General Public License for more details.
19
20
 You should have received a copy of the GNU General Public License
21
 along with Website Baker; if not, write to the Free Software
22
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23
24
*/
25
26
/*
27
28
Admin Wrapper Script
29
30
This script allows modules to be written without the need to copy code
31
from Website Baker Administration to take advantage of the interface.
32
33
*/
34
35
// Stop this file being access directly
36 19 stefan
if(!defined('WB_URL')) {
37
	header('Location: ../index.php');
38 286 stefan
	exit(0);
39 19 stefan
}
40 4 ryan
41
// Get page id
42 656 thorn
if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
43
	$page_id = $_GET['page_id'];
44
} elseif(isset($_POST['page_id']) AND is_numeric($_POST['page_id'])) {
45
	$page_id = $_POST['page_id'];
46 4 ryan
} else {
47 656 thorn
	header("Location: index.php");
48
	exit(0);
49 4 ryan
}
50
51
// Get section id if there is one
52
if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
53
	$section_id = $_GET['section_id'];
54
} elseif(isset($_POST['section_id']) AND is_numeric($_POST['section_id'])) {
55
	$section_id = $_POST['section_id'];
56
} else {
57
	// Check if we should redirect the user if there is no section id
58
	if(!isset($section_required)) {
59
		$section_id = 0;
60
	} else {
61
		header("Location: $section_required");
62 286 stefan
		exit(0);
63 4 ryan
	}
64
}
65
66
// Create js back link
67
$js_back = 'javascript: history.go(-1);';
68
69
// Create new admin object
70
require(WB_PATH.'/framework/class.admin.php');
71
$admin = new admin('Pages', 'pages_modify');
72
73
// Get perms
74
$database = new database();
75
$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
76
$results_array = $results->fetchRow();
77
$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
78
$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
79 546 doc
80
$in_group = FALSE;
81
foreach($admin->get_groups_id() as $cur_gid){
82
    if (in_array($cur_gid, $old_admin_groups)) {
83
        $in_group = TRUE;
84
    }
85
}
86
if((!$in_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
87
	echo $admin->get_group_id().$admin->get_user_id();
88
	print_r ($old_admin_groups);
89 4 ryan
	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
90
}
91
92
// Workout if the developer wants to show the info banner
93
if(isset($print_info_banner) AND $print_info_banner == true) {
94
95
// Get page details
96
$database = new database();
97
$query = "SELECT page_id,page_title,modified_by,modified_when FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
98
$results = $database->query($query);
99
if($database->is_error()) {
100
	$admin->print_header();
101
	$admin->print_error($database->get_error());
102
}
103
if($results->numRows() == 0) {
104
	$admin->print_header();
105
	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
106
}
107
$results_array = $results->fetchRow();
108
109
// Get display name of person who last modified the page
110 319 stefan
$user=$admin->get_user_details($results_array['modified_by']);
111
112 4 ryan
// Convert the unix ts for modified_when to human a readable form
113
if($results_array['modified_when'] != 0) {
114
	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
115
} else {
116
	$modified_ts = 'Unknown';
117
}
118
119
// Include page info script
120 1067 Ruebenwurz
$template = new Template(THEME_PATH.'/templates');
121
$template->set_file('page', 'pages_modify.htt');
122 4 ryan
$template->set_block('page', 'main_block', 'main');
123
$template->set_var(array(
124
								'PAGE_ID' => $results_array['page_id'],
125 116 stefan
								'PAGE_TITLE' => ($results_array['page_title']),
126 4 ryan
								'MODIFIED_BY' => $user['display_name'],
127
								'MODIFIED_BY_USERNAME' => $user['username'],
128
								'MODIFIED_WHEN' => $modified_ts,
129
								'ADMIN_URL' => ADMIN_URL
130
								)
131
						);
132
if($modified_ts == 'Unknown') {
133
	$template->set_var('DISPLAY_MODIFIED', 'hide');
134
} else {
135
	$template->set_var('DISPLAY_MODIFIED', '');
136
}
137
138
// Work-out if we should show the "manage sections" link
139
$query_sections = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'menu_link'");
140
if($query_sections->numRows() > 0) {
141
	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
142
} elseif(MANAGE_SECTIONS == 'enabled') {
143
	$template->set_var('TEXT_MANAGE_SECTIONS', $HEADING['MANAGE_SECTIONS']);
144
} else {
145
	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
146
}
147
148
// Insert language TEXT
149
$template->set_var(array(
150
								'TEXT_CURRENT_PAGE' => $TEXT['CURRENT_PAGE'],
151
								'TEXT_CHANGE' => $TEXT['CHANGE'],
152
								'LAST_MODIFIED' => $MESSAGE['PAGES']['LAST_MODIFIED'],
153
								'TEXT_CHANGE_SETTINGS' => $TEXT['CHANGE_SETTINGS'],
154
								'HEADING_MODIFY_PAGE' => $HEADING['MODIFY_PAGE']
155
								)
156
						);
157
158
// Parse and print header template
159
$template->parse('main', 'main_block', false);
160
$template->pparse('output', 'page');
161
162
}
163
164
// Work-out if the developer wants us to update the timestamp for when the page was last modified
165
if(isset($update_when_modified) AND $update_when_modified == true) {
166 1071 Ruebenwurz
	$database->query("UPDATE ".TABLE_PREFIX."pages SET modified_when = '".time()."', modified_by = '".$admin->get_user_id()."' WHERE page_id = '$page_id'");
167 4 ryan
}
168
169
?>