Project

General

Profile

« Previous | Next » 

Revision 84

Added by ryan about 19 years ago

Moved News module

View differences:

trunk/wb/modules/news/uninstall.php
1
<?php
2

  
3
// $Id: uninstall.php,v 1.3 2005/04/25 11:53:12 rdjurovich Exp $
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
// Must include code to stop this file being access directly
27
if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
28

  
29
$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE name = 'module' AND value = 'news'");
30
$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE extra = 'news'");
31
$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_posts");
32
$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_groups");
33
$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_comments");
34
$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_settings");
35
require(WB_PATH.'/framework/functions.php');
36
rm_full_dir(WB_PATH.PAGES_DIRECTORY.'/posts');
37

  
38
?>
39 0

  
trunk/wb/modules/news/save_post.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Get id
29
if(!isset($_POST['post_id']) OR !is_numeric($_POST['post_id'])) {
30
	header("Location: ".ADMIN_URL."/pages/index.php");
31
} else {
32
	$id = $_POST['post_id'];
33
	$post_id = $id;
34
}
35

  
36
// Include WB admin wrapper script
37
$update_when_modified = true; // Tells script to update when this page was last updated
38
require(WB_PATH.'/modules/admin.php');
39

  
40
// Validate all fields
41
if($admin->get_post('title') == '' AND $admin->get_post('url') == '') {
42
	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$id);
43
} else {
44
	$title = $admin->add_slashes($admin->get_post('title'));
45
	$short = $admin->add_slashes($admin->get_post('short'));
46
	$long = $admin->add_slashes($admin->get_post('long'));
47
	$commenting = $admin->get_post('commenting');
48
	$active = $admin->get_post('active');
49
	$old_link = $admin->get_post('link');
50
	$group_id = $admin->get_post('group');
51
}
52

  
53
// Get page link URL
54
$query_page = $database->query("SELECT level,link FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
55
$page = $query_page->fetchRow();
56
$page_level = $page['level'];
57
$page_link = $page['link'];
58

  
59
// Include WB functions file
60
require(WB_PATH.'/framework/functions.php');
61

  
62
// Work-out what the link should be
63
$post_link = '/posts/'.page_filename($title).$post_id;
64

  
65
// Make sure the post link is set and exists
66
// Make news post access files dir
67
make_dir(WB_PATH.PAGES_DIRECTORY.'/posts/');
68
if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/posts/')) {
69
	$admin->print_error($MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE']);
70
} elseif($old_link != $post_link OR !file_exists(WB_PATH.PAGES_DIRECTORY.$post_link.'.php')) {
71
	// We need to create a new file
72
	// First, delete old file if it exists
73
	if(file_exists(WB_PATH.$old_link.'.php')) {
74
		unlink(WB_PATH.$old_link.'.php');
75
	}
76
	// Specify the filename
77
	$filename = WB_PATH.PAGES_DIRECTORY.'/'.$post_link.'.php';
78
	// The depth of the page directory in the directory hierarchy
79
	// '/pages' is at depth 1
80
	$pages_dir_depth=count(explode('/',PAGES_DIRECTORY))-1;
81
	// Work-out how many ../'s we need to get to the index page
82
	$index_location = '../';
83
	for($i = 0; $i < $pages_dir_depth; $i++) {
84
		$index_location .= '../';
85
	}
86
	// Write to the filename
87
	$content = ''.
88
'<?php
89
$page_id = '.$page_id.';
90
$section_id = '.$section_id.';
91
$post_id = '.$post_id.';
92
define("POST_ID", $post_id);
93
require("'.$index_location.'config.php");
94
require(WB_PATH."/index.php");
95
?>';
96
	$handle = fopen($filename, 'w');
97
	fwrite($handle, $content);
98
	fclose($handle);
99
	change_mode($filename);
100
}
101

  
102
// Update row
103
$database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '$group_id', title = '$title', link = '$post_link', content_short = '$short', content_long = '$long', commenting = '$commenting', active = '$active', posted_when = '".mktime()."', posted_by = '".$admin->get_user_id()."' WHERE post_id = '$post_id'");
104

  
105
// Check if there is a db error, otherwise say successful
106
if($database->is_error()) {
107
	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$id);
108
} else {
109
	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
110
}
111

  
112
// Print admin footer
113
$admin->print_footer();
114

  
115
?>
116 0

  
trunk/wb/modules/news/comment.php
1
<?php
2

  
3
// $Id: comment.php,v 1.2 2005/04/02 06:25:56 rdjurovich Exp $
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
// Include config file
27
require('../../config.php');
28

  
29
// Check if there is a post id
30
if(!isset($_GET['id']) OR !is_numeric($_GET['id'])) {
31
	if(!isset($_POST['post_id']) OR !is_numeric($_POST['post_id'])) {
32
		header('Location: '.WB_URL.'/pages/');
33
	} else {
34
		$post_id = $_POST['post_id'];
35
	}
36
} else {
37
	$post_id = $_GET['id'];
38
}
39

  
40
// Include database class
41
require_once(WB_PATH.'/framework/class.database.php');
42
$database = new database();
43

  
44
// Query post for page id
45
$query_post = $database->query("SELECT post_id,title,section_id,page_id FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
46
if($query_post->numRows() == 0) {
47
	header('Location: '.WB_URL.'/pages/');
48
} else {
49
	$fetch_post = $query_post->fetchRow();
50
	$page_id = $fetch_post['page_id'];
51
	$section_id = $fetch_post['section_id'];
52
	$post_id = $fetch_post['post_id'];
53
	$post_title = $fetch_post['title'];
54
	define('SECTION_ID', $section_id);
55
	define('POST_ID', $post_id);
56
	define('POST_TITLE', $post_title);
57
	// Get page details
58
	$query_page = $database->query("SELECT parent,page_title,menu_title,keywords,description,visibility FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
59
	if($query_page->numRows() == 0) {
60
		header('Location: '.WB_URL.'/pages/');
61
	} else {
62
		$page = $query_page->fetchRow();
63
		// Required page details
64
		define('PAGE_CONTENT', WB_PATH.'/modules/news/comment_page.php');
65
		// Include index (wrapper) file
66
		require(WB_PATH.'/index.php');
67
	}
68
}
69

  
70

  
71
?>
72 0

  
trunk/wb/modules/news/install.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
if(defined('WB_URL')) {
27
	
28
	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_posts`");
29
	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_posts` ( '
30
					 . '`post_id` INT NOT NULL AUTO_INCREMENT,'
31
					 . '`section_id` INT NOT NULL,'
32
					 . '`page_id` INT NOT NULL,'
33
					 . '`group_id` INT NOT NULL,'
34
					 . '`active` INT NOT NULL,'
35
					 . '`position` INT NOT NULL,'
36
					 . '`title` VARCHAR(255) NOT NULL,'
37
					 . '`link` TEXT NOT NULL,'
38
					 . '`content_short` TEXT NOT NULL,'
39
					 . '`content_long` TEXT NOT NULL,'
40
					 . '`commenting` VARCHAR(7) NOT NULL,'
41
		   	    . '`posted_when` INT NOT NULL ,'
42
					 . '`posted_by` INT NOT NULL ,'
43
					 . 'PRIMARY KEY (post_id)'
44
                . ' )';
45
	$database->query($mod_news);
46
	
47
	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_groups`");
48
	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_groups` ( '
49
					 . '`group_id` INT NOT NULL AUTO_INCREMENT,'
50
					 . '`section_id` INT NOT NULL,'
51
					 . '`page_id` INT NOT NULL,'
52
					 . '`active` INT NOT NULL,'
53
					 . '`position` INT NOT NULL,'
54
					 . '`title` VARCHAR(255) NOT NULL,'
55
					 . 'PRIMARY KEY (group_id)'
56
                . ' )';
57
	$database->query($mod_news);
58
	
59
	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_comments`");
60
	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_comments` ( '
61
					 . '`comment_id` INT NOT NULL AUTO_INCREMENT,'
62
					 . '`section_id` INT NOT NULL,'
63
					 . '`page_id` INT NOT NULL,'
64
					 . '`post_id` INT NOT NULL,'
65
					 . '`title` VARCHAR(255) NOT NULL,'
66
					 . '`comment` TEXT NOT NULL,'
67
		   	    . '`commented_when` INT NOT NULL ,'
68
					 . '`commented_by` INT NOT NULL ,'
69
					 . 'PRIMARY KEY (comment_id)'
70
                . ' )';
71
	$database->query($mod_news);
72
	
73
	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_settings`");
74
	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_settings` ( '
75
					 . '`section_id` INT NOT NULL,'
76
					 . '`page_id` INT NOT NULL,'
77
					 . '`header` TEXT NOT NULL,'
78
					 . '`post_loop` TEXT NOT NULL,'
79
					 . '`footer` TEXT NOT NULL,'
80
					 . '`posts_per_page` INT NOT NULL,'
81
					 . '`post_header` TEXT NOT NULL,'
82
					 . '`post_footer` TEXT NOT NULL,'
83
					 . '`comments_header` TEXT NOT NULL,'
84
					 . '`comments_loop` TEXT NOT NULL,'
85
					 . '`comments_footer` TEXT NOT NULL,'
86
					 . '`comments_page` TEXT NOT NULL,'
87
					 . '`commenting` VARCHAR(7) NOT NULL,'
88
					 . '`resize` INT NOT NULL,'
89
					 . 'PRIMARY KEY (section_id)'
90
                . ' )';
91
	$database->query($mod_news);
92
		
93
	// Insert info into the search table
94
	// Module query info
95
	$field_info = array();
96
	$field_info['page_id'] = 'page_id';
97
	$field_info['title'] = 'page_title';
98
	$field_info['link'] = 'link';
99
	$field_info['description'] = 'description';
100
	$field_info['modified_when'] = 'modified_when';
101
	$field_info['modified_by'] = 'modified_by';
102
	$field_info = serialize($field_info);
103
	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'news', '$field_info')");
104
	// Query start
105
	$query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title,	[TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by	FROM [TP]mod_news_posts, [TP]mod_news_groups, [TP]mod_news_comments, [TP]mod_news_settings, [TP]pages WHERE ";
106
	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'news')");
107
	// Query body
108
	$query_body_code = "
109
	[TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.title LIKE \'%[STRING]%\'
110
	OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_short LIKE \'%[STRING]%\'
111
	OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_long LIKE \'%[STRING]%\'
112
	OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.title LIKE \'%[STRING]%\'
113
	OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.comment LIKE \'%[STRING]%\'
114
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.header LIKE \'%[STRING]%\'
115
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.footer LIKE \'%[STRING]%\'
116
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_header LIKE \'%[STRING]%\'
117
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_footer LIKE \'%[STRING]%\'
118
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_header LIKE \'%[STRING]%\'
119
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_footer LIKE \'%[STRING]%\'
120
	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_footer LIKE \'%[STRING]%\'";
121
	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'news')");
122
	// Query end
123
	$query_end_code = "";	
124
	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'news')");
125
	
126
	// Insert blank row (there needs to be at least on row for the search to work)
127
	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id) VALUES ('0', '0')");
128
	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_groups (section_id,page_id) VALUES ('0', '0')");
129
	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_comments (section_id,page_id) VALUES ('0', '0')");
130
	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_settings (section_id,page_id) VALUES ('0', '0')");
131
	
132
	// Make news post access files dir
133
	make_dir(WB_PATH.PAGES_DIRECTORY.'/posts/');
-	
134
}
135

  
136
?>
137 0

  
trunk/wb/modules/news/modify_settings.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Include WB admin wrapper script
29
require(WB_PATH.'/modules/admin.php');
30

  
31
// Get header and footer
32
$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
33
$fetch_content = $query_content->fetchRow();
34

  
35
// Set raw html <'s and >'s to be replace by friendly html code
36
$raw = array('<', '>');
37
$friendly = array('&lt;', '&gt;');
38

  
39
?>
40

  
41
<style type="text/css">
42
.setting_name {
43
	vertical-align: top;
44
}
45
</style>
46

  
47
<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_settings.php" method="post" style="margin: 0;">
48

  
49
<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
50
<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
51

  
52
<table cellpadding="2" cellspacing="0" border="0" width="100%">
53
<tr>
54
	<td class="setting_name" width="100"><?php echo $TEXT['HEADER']; ?>:</td>
55
	<td class="setting_name">
56
		<textarea name="header" style="width: 100%; height: 80px;"><?php echo $admin->strip_slashes_dummy($fetch_content['header']); ?></textarea>
57
	</td>
58
</tr>
59
<tr>
60
	<td class="setting_name"><?php echo $TEXT['POST'].' '.$TEXT['LOOP']; ?>:</td>
61
	<td class="setting_name">
62
		<textarea name="post_loop" style="width: 100%; height: 60px;"><?php echo $admin->strip_slashes_dummy($fetch_content['post_loop']); ?></textarea>
63
	</td>
64
</tr>
65
<tr>
66
	<td class="setting_name"><?php echo $TEXT['FOOTER']; ?>:</td>
67
	<td class="setting_name">
68
		<textarea name="footer" style="width: 100%; height: 80px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['footer'])); ?></textarea>
69
	</td>
70
</tr>
71
<tr>
72
	<td class="setting_name"><?php echo $TEXT['POST_HEADER']; ?>:</td>
73
	<td class="setting_name">
74
		<textarea name="post_header" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['post_header'])); ?></textarea>
75
	</td>
76
</tr>
77
<tr>
78
	<td class="setting_name"><?php echo $TEXT['POST_FOOTER']; ?>:</td>
79
	<td class="setting_name">
80
		<textarea name="post_footer" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['post_footer'])); ?></textarea>
81
	</td>
82
</tr>
83
<tr>
84
	<td class="setting_name"><?php echo $TEXT['POSTS_PER_PAGE']; ?>:</td>
85
	<td class="setting_name">
86
		<select name="posts_per_page" style="width: 100%;">
87
			<option value=""><?php echo $TEXT['UNLIMITED']; ?></option>
88
			<?php
89
			for($i = 1; $i <= 20; $i++) {
90
				if($fetch_content['posts_per_page'] == ($i*5)) { $selected = ' selected'; } else { $selected = ''; }
91
				echo '<option value="'.($i*5).'"'.$selected.'>'.($i*5).'</option>';
92
			}
93
			?>
94
		</select>
95
	</td>
96
</tr>
97
<tr>
98
	<td><?php echo $TEXT['COMMENTING']; ?>:</td>
99
	<td>
100
		<select name="commenting" style="width: 100%;">
101
			<option value="none"><?php echo $TEXT['DISABLED']; ?></option>
102
			<option value="public" <?php if($fetch_content['commenting'] == 'public') { echo 'selected'; } ?>><?php echo $TEXT['PUBLIC']; ?></option>
103
			<option value="private" <?php if($fetch_content['commenting'] == 'private') { echo 'selected'; } ?>><?php echo $TEXT['PRIVATE']; ?></option>
104
		</select>
105
	</td>
106
</tr>
107
<?php if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */ ?>
108
<tr>
109
	<td>
110
		<?php echo $TEXT['RESIZE_IMAGE_TO']; ?>:
111
	</td>
112
	<td>
113
		<select name="resize" style="width: 100%;">
114
			<option value=""><?php echo $TEXT['NONE']; ?></option>
115
			<?php
116
			$SIZES['50'] = '50x50px';
117
			$SIZES['75'] = '75x75px';
118
			$SIZES['100'] = '100x100px';
119
			$SIZES['125'] = '125x125px';
120
			$SIZES['150'] = '150x150px';
121
			foreach($SIZES AS $size => $size_name) {
122
				if($fetch_content['resize'] == $size) { $selected = ' selected'; } else { $selected = ''; }
123
				echo '<option value="'.$size.'"'.$selected.'>'.$size_name.'</option>';
124
			}
125
			?>
126
		</select>
127
	</td>
128
</tr>
129
<?php } ?>
130
<tr>
131
	<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['HEADER']; ?>:</td>
132
	<td class="setting_name">
133
		<textarea name="comments_header" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['comments_header'])); ?></textarea>
134
	</td>
135
</tr>
136
<tr>
137
	<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['LOOP']; ?>:</td>
138
	<td class="setting_name">
139
		<textarea name="comments_loop" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['comments_loop'])); ?></textarea>
140
	</td>
141
</tr>
142
<tr>
143
	<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['FOOTER']; ?>:</td>
144
	<td class="setting_name">
145
		<textarea name="comments_footer" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['comments_footer'])); ?></textarea>
146
	</td>
147
</tr>
148
<tr>
149
	<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['PAGE']; ?>:</td>
150
	<td class="setting_name">
151
		<textarea name="comments_page" style="width: 100%; height: 80px;"><?php echo str_replace($raw, $friendly, $admin->strip_slashes_dummy($fetch_content['comments_page'])); ?></textarea>
152
	</td>
153
</tr>
154
</table>
155
<table cellpadding="0" cellspacing="0" border="0" width="100%">
156
<tr>
157
	<td width="105">&nbsp;</td>
158
	<td align="left">
159
		<input name="save" type="submit" value="<?php echo $TEXT['SAVE'].' '.$TEXT['SETTINGS']; ?>" style="width: 200px; margin-top: 5px;"></form>
160
	</td>
161
	<td align="right">
162
		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
163
	</td>
164
</tr>
165
</table>
166

  
167

  
168
<?php
169

  
170
// Print admin footer
171
$admin->print_footer();
172

  
173
?>
174 0

  
trunk/wb/modules/news/modify_group.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Get id
29
if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
30
	header("Location: ".ADMIN_URL."/pages/index.php");
31
} else {
32
	$group_id = $_GET['group_id'];
33
}
34

  
35
// Include WB admin wrapper script
36
require(WB_PATH.'/modules/admin.php');
37

  
38
// Get header and footer
39
$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_groups WHERE group_id = '$group_id'");
40
$fetch_content = $query_content->fetchRow();
41

  
42
?>
43

  
44
<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_group.php" method="post" enctype="multipart/form-data" style="margin: 0;">
45

  
46
<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
47
<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
48
<input type="hidden" name="group_id" value="<?php echo $group_id; ?>">
49

  
50
<table cellpadding="4" cellspacing="0" border="0" width="100%">
51
<tr>
52
	<td width="80"><?php echo $TEXT['TITLE']; ?>:</td>
53
	<td>
54
		<input type="text" name="title" value="<?php echo $admin->strip_slashes_dummy(htmlspecialchars($fetch_content['title'])); ?>" style="width: 100%;" maxlength="255" />
55
	</td>
56
</tr>
57
<tr>
58
	<td><?php echo $TEXT['IMAGE']; ?>:</td>
59
	<?php if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) { ?>
60
	<td>
61
		<a href="<?php echo WB_URL.MEDIA_DIRECTORY; ?>/.news/image<?php echo $group_id; ?>.jpg" target="_blank">View</a>
62
		&nbsp;
63
		<input type="checkbox" name="delete_image" id="delete_image" value="true" />
64
		<a href="javascript: toggle_checkbox('delete_image');">Delete</a>
65
	</td>
66
	<?php } else { ?>
67
	<td>
68
		<input type="file" name="image" />
69
	</td>
70
	<?php } ?>
71
</tr>
72
<tr>
73
	<td><?php echo $TEXT['ACTIVE']; ?>:</td>
74
	<td>
75
		<input type="radio" name="active" id="active_true" value="1" <?php if($fetch_content['active'] == 1) { echo ' checked'; } ?> />
76
		<a href="#" onclick="javascript: document.getElementById('active_true').checked = true;">
77
		<?php echo $TEXT['YES']; ?>
78
		</a>
79
		-
80
		<input type="radio" name="active" id="active_false" value="0" <?php if($fetch_content['active'] == 0) { echo ' checked'; } ?> />
81
		<a href="#" onclick="javascript: document.getElementById('active_false').checked = true;">
82
		<?php echo $TEXT['NO']; ?>
83
		</a>
84
	</td>
85
</tr>
86
</table>
87

  
88
<table cellpadding="0" cellspacing="0" border="0" width="100%">
89
<tr>
90
	<td align="left">
91
		<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 200px; margin-top: 5px;"></form>
92
	</td>
93
	<td align="right">
94
		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
95
	</td>
96
</tr>
97
</table>
98

  
99

  
100
<?php
101

  
102
// Print admin footer
103
$admin->print_footer();
104

  
105
?>
106 0

  
trunk/wb/modules/news/save_settings.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Include WB admin wrapper script
29
$update_when_modified = true; // Tells script to update when this page was last updated
30
require(WB_PATH.'/modules/admin.php');
31

  
32
// This code removes any <?php tags and adds slashes
33
$friendly = array('&lt;', '&gt;', '?php');
34
$raw = array('<', '>', '');
35
$header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['header']));
36
$post_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_loop']));
37
$footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['footer']));
38
$post_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_header']));
39
$post_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_footer']));
40
$comments_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_header']));
41
$comments_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_loop']));
42
$comments_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_footer']));
43
$comments_page = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_page']));
44
$commenting = $_POST['commenting'];
45
$posts_per_page = $_POST['posts_per_page'];
46
if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) {
47
	$resize = $_POST['resize'];
48
} else {
49
	$resize = '';
50
}
51

  
52
// Update settings
53
$database->query("UPDATE ".TABLE_PREFIX."mod_news_settings SET header = '$header', post_loop = '$post_loop', footer = '$footer', posts_per_page = '$posts_per_page', post_header = '$post_header', post_footer = '$post_footer', comments_header = '$comments_header', comments_loop = '$comments_loop', comments_footer = '$comments_footer', comments_page = '$comments_page', commenting = '$commenting', resize = '$resize' WHERE section_id = '$section_id'");
54

  
55
// Check if there is a db error, otherwise say successful
56
if($database->is_error()) {
57
	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
58
} else {
59
	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
60
}
61

  
62
// Print admin footer
63
$admin->print_footer();
64

  
65
?>
66 0

  
trunk/wb/modules/news/modify_post.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Get id
29
if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
30
	header("Location: ".ADMIN_URL."/pages/index.php");
31
} else {
32
	$post_id = $_GET['post_id'];
33
}
34

  
35
// Include WB admin wrapper script
36
require(WB_PATH.'/modules/admin.php');
37

  
38
// Get header and footer
39
$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
40
$fetch_content = $query_content->fetchRow();
41

  
42
if (!defined('WYSIWYG_EDITOR') OR WYSIWYG_EDITOR=="none" OR !file_exists(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php')) {
43
	function show_wysiwyg_editor($name,$id,$content,$width,$height) {
44
		echo '<textarea name="'.$name.'" id="'.$id.'" style="width: '.$width.'; height: '.$height.';">'.$content.'</textarea>';
45
	}
46
} else {
47
	$id_list=array("short","long");
48
			require(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php');
49
}
50

  
51
?>
52
<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_post.php" method="post" style="margin: 0;">
53

  
54
<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
55
<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
56
<input type="hidden" name="post_id" value="<?php echo $post_id; ?>">
57
<input type="hidden" name="link" value="<?php echo $fetch_content['link']; ?>">
58

  
59
<table cellpadding="4" cellspacing="0" border="0" width="100%">
60
<tr>
61
	<td width="80"><?php echo $TEXT['TITLE']; ?>:</td>
62
	<td>
63
		<input type="text" name="title" value="<?php echo $admin->strip_slashes_dummy(htmlspecialchars($fetch_content['title'])); ?>" style="width: 100%;" maxlength="255" />
64
	</td>
65
</tr>
66
<tr>
67
	<td><?php echo $TEXT['GROUP']; ?>:</td>
68
	<td>
69
		<select name="group" style="width: 100%;">
70
			<option value="0"><?php echo $TEXT['NONE']; ?></option>
71
			<?php
72
			$query = $database->query("SELECT group_id,title FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id' ORDER BY position ASC");
73
			if($query->numRows() > 0) {
74
				// Loop through groups
75
				while($group = $query->fetchRow()) {
76
					?>
77
					<option value="<?php echo $group['group_id']; ?>"<?php if($fetch_content['group_id'] == $group['group_id']) { echo ' selected'; } ?>><?php echo $group['title']; ?></option>
78
					<?php
79
				}
80
			}
81
			?>
82
		</select>
83
	</td>
84
</tr>
85
<tr>
86
	<td><?php echo $TEXT['COMMENTING']; ?>:</td>
87
	<td>
88
		<select name="commenting" style="width: 100%;">
89
			<option value="none"><?php echo $TEXT['DISABLED']; ?></option>
90
			<option value="public" <?php if($fetch_content['commenting'] == 'public') { echo 'selected'; } ?>><?php echo $TEXT['PUBLIC']; ?></option>
91
			<option value="private" <?php if($fetch_content['commenting'] == 'private') { echo 'selected'; } ?>><?php echo $TEXT['PRIVATE']; ?></option>
92
		</select>
93
	</td>
94
</tr>
95
<tr>
96
	<td><?php echo $TEXT['ACTIVE']; ?>:</td>
97
	<td>
98
		<input type="radio" name="active" id="active_true" value="1" <?php if($fetch_content['active'] == 1) { echo ' checked'; } ?> />
99
		<a href="#" onclick="javascript: document.getElementById('active_true').checked = true;">
100
		<?php echo $TEXT['YES']; ?>
101
		</a>
102
		&nbsp;
103
		<input type="radio" name="active" id="active_false" value="0" <?php if($fetch_content['active'] == 0) { echo ' checked'; } ?> />
104
		<a href="#" onclick="javascript: document.getElementById('active_false').checked = true;">
105
		<?php echo $TEXT['NO']; ?>
106
		</a>
107
	</td>
108
</tr>
109
<tr>
110
	<td valign="top"><?php echo $TEXT['SHORT']; ?>:</td>
111
	<td>
112
	<?php
113
	show_wysiwyg_editor("short","short",$fetch_content['content_short'],"100%","135px");
114
	?>
115
	</td>
116
</tr>
117
<tr>
118
	<td valign="top"><?php echo $TEXT['LONG']; ?>:</td>
119
	<td>
120
	<?php
121
	show_wysiwyg_editor("long","long",$fetch_content['content_long'],"100%","300px");
122
	?>
123
	</td>
124
</tr>
125
</table>
126

  
127
<table cellpadding="0" cellspacing="0" border="0" width="100%">
128
<tr>
129
	<td width="90">
130
		&nbsp;
131
	</td>
132
	<td align="left">
133
		<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 200px; margin-top: 5px;"></form>
134
	</td>
135
	<td align="right">
136
		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
137
	</td>
138
</tr>
139
</table>
140

  
141
<br />
142

  
143
<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['COMMENT']; ?></h2>
144

  
145
<?php
146

  
147
// Loop through existing posts
148
$query_comments = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_news_comments` WHERE section_id = '$section_id' AND post_id = '$post_id' ORDER BY commented_when DESC");
149
if($query_comments->numRows() > 0) {
150
	$row = 'a';
151
	?>
152
	<table cellpadding="2" cellspacing="0" border="0" width="100%">
153
	<?php
154
	while($comment = $query_comments->fetchRow()) {
155
		?>
156
		<tr class="row_<?php echo $row; ?>" height="20">
157
			<td width="20" style="padding-left: 5px;">
158
				<a href="<?php echo WB_URL; ?>/modules/news/modify_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
159
					<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="^" />
160
				</a>
161
			</td>	
162
			<td>
163
				<a href="<?php echo WB_URL; ?>/modules/news/modify_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>">
164
					<?php echo $comment['title']; ?>
165
				</a>
166
			</td>
167
			<td width="20">
168
				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/news/delete_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
169
					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
170
				</a>
171
			</td>
172
		</tr>
173
		<?php
174
		// Alternate row color
175
		if($row == 'a') {
176
			$row = 'b';
177
		} else {
178
			$row = 'a';
179
		}
180
	}
181
	?>
182
	</table>
183
	<?php
184
} else {
185
	echo $TEXT['NONE_FOUND'];
186
}
187

  
188
?>
189

  
190

  
191

  
192
<?php
193

  
194
// Print admin footer
195
$admin->print_footer();
196

  
197
?>
198 0

  
trunk/wb/modules/news/move_up.php
1
<?php
2

  
3
// $Id: move_up.php,v 1.1.1.1 2005/01/30 10:32:20 rdjurovich Exp $
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Get id
29
if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
30
	if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
31
		header("Location: index.php");
32
	} else {
33
		$id = $_GET['group_id'];
34
		$id_field = 'group_id';
35
		$table = TABLE_PREFIX.'mod_news_groups';
36
	}
37
} else {
38
	$id = $_GET['post_id'];
39
	$id_field = 'post_id';
40
	$table = TABLE_PREFIX.'mod_news_posts';
41
}
42

  
43
// Include WB admin wrapper script
44
require(WB_PATH.'/modules/admin.php');
45

  
46
// Include the ordering class
47
require(WB_PATH.'/framework/class.order.php');
48

  
49
// Create new order object an reorder
50
$order = new order($table, 'position', $id_field, 'section_id');
51
if($order->move_up($id)) {
52
	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
53
} else {
54
	$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
55
}
56

  
57
// Print admin footer
58
$admin->print_footer();
59

  
60
?>
61 0

  
trunk/wb/modules/news/add_group.php
1
<?php
2

  
3
// $Id: add_group.php,v 1.1.1.1 2005/01/30 10:32:22 rdjurovich Exp $
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
require('../../config.php');
27

  
28
// Include WB admin wrapper script
29
require(WB_PATH.'/modules/admin.php');
30

  
31
// Include the ordering class
32
require(WB_PATH.'/framework/class.order.php');
33
// Get new order
34
$order = new order(TABLE_PREFIX.'mod_news_groups', 'position', 'group_id', 'section_id');
35
$position = $order->get_new($section_id);
36

  
37
// Insert new row into database
38
$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_groups (section_id,page_id,position,active) VALUES ('$section_id','$page_id','$position','1')");
39

  
40
// Get the id
41
$group_id = $database->get_one("SELECT LAST_INSERT_ID()");
42

  
43
// Say that a new record has been added, then redirect to modify page
44
if($database->is_error()) {
45
	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
46
} else {
47
	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
48
}
49

  
50
// Print admin footer
51
$admin->print_footer();
52

  
53
?>
54 0

  
trunk/wb/modules/news/view.php
1
<?php
2

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2005, Ryan Djurovich
9

  
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
// Must include code to stop this file being access directly
27
if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
28

  
29
// Check if there is a start point defined
30
if(isset($_GET['p']) AND is_numeric($_GET['p']) AND $_GET['p'] >= 0) {
31
	$position = $_GET['p'];
32
} else {
33
	$position = 0;
34
}
35

  
36
// Get user's username, display name, email, and id - needed for insertion into post info
37
$users = array();
38
$query_users = $database->query("SELECT user_id,username,display_name,email FROM ".TABLE_PREFIX."users");
39
if($query_users->numRows() > 0) {
40
	while($user = $query_users->fetchRow()) {
41
		// Insert user info into users array
42
		$user_id = $user['user_id'];
43
		$users[$user_id]['username'] = $user['username'];
44
		$users[$user_id]['display_name'] = $user['display_name'];
45
		$users[$user_id]['email'] = $user['email'];
46
	}
47
}
48

  
49
// Get groups (title, if they are active, and their image [if one has been uploaded])
50
$groups[0]['title'] = '';
51
$groups[0]['active'] = true;
52
$groups[0]['image'] = '';
53
$query_users = $database->query("SELECT group_id,title,active FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id' ORDER BY position ASC");
54
if($query_users->numRows() > 0) {
55
	while($group = $query_users->fetchRow()) {
56
		// Insert user info into users array
57
		$group_id = $group['group_id'];
58
		$groups[$group_id]['title'] = $this->strip_slashes_dummy($group['title']);
59
		$groups[$group_id]['active'] = $group['active'];
60
		if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) {
61
			$groups[$group_id]['image'] = WB_URL.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg';
62
		} else {
63
			$groups[$group_id]['image'] = '';
64
		}
65
	}
66
}
67

  
68
// Check if we should show the main page or a post itself
69
if(!defined('POST_ID') OR !is_numeric(POST_ID)) {
70
	
71
	// Check if we should only list posts from a certain group
72
	if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
73
		$query_extra = " AND group_id = '".$_GET['g']."'";
74
		?>
75
		<style type="text/css">.selected_group_title { font-size: 14px; text-align: center; }</style>
76
		<?php
77
	} else {
78
		$query_extra = '';
79
	}
80
	
81
	// Get settings
82
	$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
83
	if($query_settings->numRows() > 0) {
84
		$fetch_settings = $query_settings->fetchRow();
85
		$setting_header = $this->strip_slashes_dummy($fetch_settings['header']);
86
		$setting_post_loop = $this->strip_slashes_dummy($fetch_settings['post_loop']);
87
		$setting_footer = $this->strip_slashes_dummy($fetch_settings['footer']);
88
		$setting_posts_per_page = $fetch_settings['posts_per_page'];
89
	} else {
90
		$setting_header = '';
91
		$setting_post_loop = '';
92
		$setting_footer = '';
93
		$setting_posts_per_page = '';
94
	}
95
	
96
	// Get total number of posts
97
	$query_total_num = $database->query("SELECT post_id FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra");
98
	$total_num = $query_total_num->numRows();
99

  
100
	// Work-out if we need to add limit code to sql
101
	if($setting_posts_per_page != 0) {
102
		$limit_sql = " LIMIT $position,$setting_posts_per_page";
103
	} else {
104
		$limit_sql = "";
105
	}
106
	
107
	// Query posts (for this page)
108
	$query_posts = $database->query("SELECT group_id,post_id,title,link,content_short,posted_by,posted_when FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra ORDER BY position DESC".$limit_sql);
109
	$num_posts = $query_posts->numRows();
110
	
111
	// Create previous and next links
112
	if($setting_posts_per_page != 0) {
113
		if($position > 0) {
114
			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
115
				$pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'&g='.$_GET['g'].'"><< ';
116
			} else {
117
				$pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'"><< ';
118
			}
119
			$pl_append = '</a>';
120
			$previous_link = $pl_prepend.$TEXT['PREVIOUS'].$pl_append;
121
			$previous_page_link = $pl_prepend.$TEXT['PREVIOUS_PAGE'].$pl_append;
122
		} else {
123
			$previous_link = '';
124
			$previous_page_link = '';
125
		}
126
		if($position+$setting_posts_per_page >= $total_num) {
127
			$next_link = '';
128
			$next_page_link = '';
129
		} else {
130
			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
131
				$nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'&g='.$_GET['g'].'"> ';
132
			} else {
133
				$nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'"> ';
134
			}
135
			$nl_append = ' >></a>';
136
			$next_link = $nl_prepend.$TEXT['NEXT'].$nl_append;
137
			$next_page_link = $nl_prepend.$TEXT['NEXT_PAGE'].$nl_append;
138
		}
139
		if($position+$setting_posts_per_page > $total_num) {
140
			$num_of = $position+$num_posts;
141
		} else {
142
			$num_of = $position+$setting_posts_per_page;
143
		}
144
		$out_of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OUT_OF']).' '.$total_num;
145
		$of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OF']).' '.$total_num;
146
		$display_previous_next_links = '';
147
	} else {
148
		$display_previous_next_links = 'none';
149
	}
150
		
151
	// Print header
152
	if($display_previous_next_links == 'none') {
153
		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_header);
154
	} else {
155
		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_header);
156
	}
157
	
158
	if($num_posts > 0) {
159
		if($query_extra != '') {
160
			?>
161
			<div class="selected_group_title">
162
				<?php echo '<a href="'.$_SERVER['PHP_SELF'].'">'.PAGE_TITLE.'</a> >> '.$groups[$_GET['g']]['title']; ?>
163
			</div>
164
			<?php
165
		}
166
		while($post = $query_posts->fetchRow()) {
167
			if(isset($groups[$post['group_id']]['active']) AND $groups[$post['group_id']]['active'] != false) { // Make sure parent group is active
168
				$uid = $post['posted_by']; // User who last modified the post
169
				// Workout date and time of last modified post
170
				$post_date = gmdate(DATE_FORMAT, $post['posted_when']+TIMEZONE);
171
				$post_time = gmdate(TIME_FORMAT, $post['posted_when']+TIMEZONE);
172
				// Work-out the post link
173
				$post_link = page_link($post['link']);
174
				if(isset($_GET['p']) AND $position > 0) {
175
					$post_link .= '?p='.$position;
176
				}
177
				if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
178
					if(isset($_GET['p']) AND $position > 0) { $post_link .= '&'; } else { $post_link .= '?'; }
179
					$post_link .= 'g='.$_GET['g'];
180
				}
181
				// Get group id, title, and image
182
				$group_id = $post['group_id'];
183
				$group_title = $groups[$group_id]['title'];
184
				$group_image = $groups[$group_id]['image'];
185
				if($group_image == '') { $display_image = 'none'; } else { $display_image = ''; }
186
				if($group_id == 0) { $display_group = 'none'; } else { $display_group = ''; }
187
				// Replace [wblink--PAGE_ID--] with real link
188
				$short = $this->strip_slashes_dummy($post['content_short']);
189
				$this->preprocess($short);
190
				// Replace vars with values
191
				$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[LINK]', '[DATE]', '[TIME]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]', '[TEXT_READ_MORE]');
192
				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
193
					$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $this->strip_slashes_dummy($post['title']), $short, $post_link, $post_date, $post_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], $TEXT['READ_MORE']);
194
				} else {
195
					$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $this->strip_slashes_dummy($post['title']), $short, $post_link, $post_date, $post_time, '', '', '', '', $TEXT['READ_MORE']);
196
				}
197
				echo str_replace($vars, $values, $setting_post_loop);
198
			}
199
		}
200
	}
201
	
202
	// Print footer
203
	if($display_previous_next_links == 'none') {
204
		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_footer);
205
	} else {
206
		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_footer);
207
	}
208
	
209
} elseif(defined('POST_ID') AND is_numeric(POST_ID)) {
210
	
211
	// Get settings
212
	$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
213
	if($query_settings->numRows() > 0) {
214
		$fetch_settings = $query_settings->fetchRow();
215
		$setting_post_header = $this->strip_slashes_dummy($fetch_settings['post_header']);
216
		$setting_post_footer = $this->strip_slashes_dummy($fetch_settings['post_footer']);
217
		$setting_comments_header = $this->strip_slashes_dummy($fetch_settings['comments_header']);
218
		$setting_comments_loop = $this->strip_slashes_dummy($fetch_settings['comments_loop']);
219
		$setting_comments_footer = $this->strip_slashes_dummy($fetch_settings['comments_footer']);
220
	} else {
221
		$setting_post_header = '';
222
		$setting_post_footer = '';
223
		$setting_comments_header = '';
224
		$setting_comments_loop = '';
225
		$setting_comments_footer = '';
226
	}
227
	
228
	// Get page info
229
	$query_page = $database->query("SELECT link FROM ".TABLE_PREFIX."pages WHERE page_id = '".PAGE_ID."'");
230
	if($query_page->numRows() > 0) {
231
		$page = $query_page->fetchRow();
232
		$page_link = page_link($page['link']);
233
		if(isset($_GET['p']) AND $position > 0) {
234
			$page_link .= '?p='.$_GET['p'];
235
		}
236
		if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
237
			if(isset($_GET['p']) AND $position > 0) { $page_link .= '&'; } else { $page_link .= '?'; }
238
			$page_link .= 'g='.$_GET['g'];
239
		}
240
	} else {
241
		exit('Page not found');
242
	}
243
	
244
	// Get post info
245
	$query_post = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '".POST_ID."' AND active = '1'");
246
	if($query_post->numRows() > 0) {
247
		$post = $query_post->fetchRow();
248
		if(isset($groups[$post['group_id']]['active']) AND $groups[$post['group_id']]['active'] != false) { // Make sure parent group is active
249
			$uid = $post['posted_by']; // User who last modified the post
250
			// Workout date and time of last modified post
251
			$post_date = gmdate(DATE_FORMAT, $post['posted_when']+TIMEZONE);
252
			$post_time = gmdate(TIME_FORMAT, $post['posted_when']+TIMEZONE);
253
			// Get group id, title, and image
254
			$group_id = $post['group_id'];
255
			$group_title = $groups[$group_id]['title'];
256
			$group_image = $groups[$group_id]['image'];
257
			if($group_image == '') { $display_image = 'none'; } else { $display_image = ''; }
258
			if($group_id == 0) { $display_group = 'none'; } else { $display_group = ''; }
259
			$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[BACK]', '[DATE]', '[TIME]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]');
260
			if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
261
				$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $this->strip_slashes_dummy($post['title']), $this->strip_slashes_dummy($post['content_short']), $page_link, $post_date, $post_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email']);
262
			} else {
263
				$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $this->strip_slashes_dummy($post['title']), $this->strip_slashes_dummy($post['content_short']), $page_link, $post_date, $post_time, '', '', '', '');
264
			}
265
			$post_long = $this->strip_slashes_dummy($post['content_long']);
266
		}
267
	} else {
268
		header('Location: '.WB_URL.'/pages/');
269
	}
270
	
271
	// Print post header
272
	echo str_replace($vars, $values, $setting_post_header);
273
	
274
	// Replace [wblink--PAGE_ID--] with real link
275
  	$this->preprocess($postlong);
276
	// Print long
277
	echo $post_long;
278
	
279
	// Print post footer
280
	echo str_replace($vars, $values, $setting_post_footer);
281
	
282
	// Show comments section if we have to
283
	if($post['commenting'] == 'private' AND isset($admin) AND $admin->is_authenticated() == true OR $post['commenting'] == 'public') {
284
		
285
		// Print comments header
286
		echo str_replace('[ADD_COMMENT_URL]', WB_URL.'/modules/news/comment.php?id='.POST_ID, $setting_comments_header);
287
		
288
		// Query for comments
289
		$query_comments = $database->query("SELECT title,comment,commented_when,commented_by FROM ".TABLE_PREFIX."mod_news_comments WHERE post_id = '".POST_ID."' ORDER BY commented_when ASC");
290
		if($query_comments->numRows() > 0) {
291
			while($comment = $query_comments->fetchRow()) {
292
				// Display Comments without slashes, but with new-line characters
293
				$comment['comment'] = nl2br($this->strip_slashes_dummy($comment['comment']));
294
				$comment['title'] = $this->strip_slashes_dummy($comment['title']);
295
				// Print comments loop
296
				$commented_date = gmdate(DATE_FORMAT, $comment['commented_when']+TIMEZONE);
297
				$commented_time = gmdate(TIME_FORMAT, $comment['commented_when']+TIMEZONE);
298
				$uid = $comment['commented_by'];
299
				$vars = array('[TITLE]','[COMMENT]','[DATE]','[TIME]','[USER_ID]','[USERNAME]','[DISPLAY_NAME]', '[EMAIL]');
300
				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
301
					$values = array($this->strip_slashes_dummy($comment['title']), $this->strip_slashes_dummy($comment['comment']), $commented_date, $commented_time, $uid, $this->strip_slashes_dummy($users[$uid]['username']), $this->strip_slashes_dummy($users[$uid]['display_name']), $this->strip_slashes_dummy($users[$uid]['email']));
302
				} else {
303
					$values = array($this->strip_slashes_dummy($comment['title']), $this->strip_slashes_dummy($comment['comment']), $commented_date, $commented_time, '0', strtolower($TEXT['UNKNOWN']), $TEXT['UNKNOWN'], '');
304
				}
305
				echo str_replace($vars, $values, $setting_comments_loop);
306
			}
307
		} else {
308
			// Say no comments found
309
			if(isset($TEXT['NONE_FOUND'])) {
310
				echo $TEXT['NONE_FOUND'].'<br />';
311
			} else {
312
				echo 'None Found<br />';
313
			}
314
		}
315
		
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff