author | Dan |
Tue, 29 Jul 2008 07:00:26 -0600 | |
changeset 14 | 58840db7b472 |
parent 13 | 421242ebbece |
permissions | -rw-r--r-- |
7
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
1 |
<?php |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
2 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
3 |
/* |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
4 |
* Nuggie |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
5 |
* Version 0.1 |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
6 |
* Copyright (C) 2007 Dan Fuhry |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
7 |
* |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
8 |
* This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
9 |
* as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
10 |
* |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
11 |
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
12 |
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
13 |
*/ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
14 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
15 |
/** |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
16 |
* Displays a planet as requested by a PageProcessor instance. |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
17 |
* @param string The page_id from PageProcessor. |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
18 |
*/ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
19 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
20 |
function nuggie_planet_uri_handler($page) |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
21 |
{ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
22 |
global $db, $session, $paths, $template, $plugins; // Common objects |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
23 |
|
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
24 |
$planet_id = dirtify_page_id($page->page_id); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
25 |
$offset = 0; |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
26 |
if ( preg_match('#/start=([0-9]+)$#', $planet_id, $match) ) |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
27 |
{ |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
28 |
$planet_id = substr($planet_id, 0, (strlen($planet_id) - strlen($match[0]))); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
29 |
$offset = intval($match[1]); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
30 |
} |
7
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
31 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
32 |
// |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
33 |
// VALIDATION |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
34 |
// |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
35 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
36 |
// Fetch ACLs |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
37 |
$perms = $session->fetch_page_acl($planet_id, 'Planet'); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
38 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
39 |
// Obtain planet info |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
40 |
$q = $db->sql_query('SELECT p.planet_id, p.planet_name, p.planet_subtitle, p.planet_creator, p.planet_public, p.planet_visible, m.mapping_type, m.mapping_value ' . "\n" |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
41 |
. ' FROM ' . table_prefix . "planets AS p\n" |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
42 |
. " LEFT JOIN " . table_prefix . "planets_mapping AS m\n" |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
43 |
. " ON ( p.planet_id = m.planet_id )\n" |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
44 |
. " WHERE p.planet_name = '" . $db->escape(sanitize_page_id($planet_id)) . "';"); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
45 |
if ( !$q ) |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
46 |
$db->_die(); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
47 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
48 |
if ( $db->numrows() < 1 ) |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
49 |
{ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
50 |
// planet not found, fall out |
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
51 |
return $page->err_page_not_existent(); |
7
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
52 |
} |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
53 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
54 |
// fetch first row, then seek back to the first result to allow mapping fetching later |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
55 |
$planet_data = $db->fetchrow(); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
56 |
$db->sql_data_seek(0); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
57 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
58 |
// check author and publicity |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
59 |
if ( $planet_data['planet_creator'] != $session->user_id && !$planet_data['planet_public'] ) |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
60 |
{ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
61 |
return $page->err_access_denied(); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
62 |
} |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
63 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
64 |
// ACL check |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
65 |
if ( !$perms->get_permissions('read') ) |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
66 |
{ |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
67 |
return $page->err_access_denied(); |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
68 |
} |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
69 |
|
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
70 |
// Set page title |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
71 |
$page_title = dirtify_page_id($planet_data['planet_name']); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
72 |
$template->assign_vars(array( |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
73 |
'PAGE_NAME' => htmlspecialchars($page_title) |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
74 |
)); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
75 |
|
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
76 |
// Try to grab the posts. The SQL tricks here are rather interesting, you'll have to look at it from a distance to grasp it. |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
77 |
// Basically just using MySQL to apply all the filters in one go. Nuggie doesn't do PostgreSQL yet. |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
78 |
$sql_base = "SELECT <columns>\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
79 |
. " FROM " . table_prefix . "blog_posts AS p\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
80 |
. " LEFT JOIN " . table_prefix . "blogs AS b\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
81 |
. " ON ( b.user_id = p.post_author )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
82 |
. " LEFT JOIN " . table_prefix . "users AS u\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
83 |
. " ON ( u.user_id = p.post_author )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
84 |
. " LEFT JOIN " . table_prefix . "comments AS c\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
85 |
. " ON ( c.page_id = CAST(p.post_id AS char) AND c.namespace = 'BlogPost' )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
86 |
. " LEFT JOIN " . table_prefix . "tags AS t\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
87 |
. " ON ( t.page_id = CAST(p.post_id AS char) AND t.namespace = 'BlogPost' )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
88 |
. " LEFT JOIN " . table_prefix . "planets_mapping AS m\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
89 |
. " ON (\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
90 |
. " ( m.mapping_type = " . NUGGIE_PLANET_FILTER_TAG . " AND m.mapping_value = t.tag_name ) OR\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
91 |
. " ( m.mapping_type = " . NUGGIE_PLANET_FILTER_AUTHOR . " AND CAST(m.mapping_value AS unsigned integer) = p.post_author ) OR\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
92 |
. " ( m.mapping_type = " . NUGGIE_PLANET_FILTER_KEYWORD . " AND ( p.post_text LIKE CONCAT('%', m.mapping_value, '%') OR p.post_title LIKE CONCAT('%', m.mapping_value, '%') ) )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
93 |
. " )\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
94 |
. " WHERE m.planet_id = {$planet_data['planet_id']}\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
95 |
. " AND p.post_published = 1\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
96 |
. " GROUP BY p.post_id\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
97 |
. " ORDER BY p.post_timestamp DESC\n" |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
98 |
. " <limit>;"; |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
99 |
|
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
100 |
// pass 1: a test run to count the number of results |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
101 |
$sql = str_replace('<columns>', 'p.post_id', $sql_base); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
102 |
$sql = str_replace('<limit>', "", $sql); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
103 |
$q = $db->sql_query($sql); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
104 |
if ( !$q ) |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
105 |
$db->_die(); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
106 |
|
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
107 |
$count = $db->numrows(); |
10
219a0133622e
Made planet's main select query fully buffered because NuggiePostbit::paginate_handler requires fetch_page_acl which uses the DBAL
Dan
parents:
8
diff
changeset
|
108 |
|
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
109 |
$db->free_result($sql); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
110 |
|
13
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
111 |
// RSS check - do we have support for Feed Me and did the user request an RSS feed? |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
112 |
$do_rss = defined('ENANO_FEEDBURNER_INCLUDED') && ( isset($_GET['feed']) && $_GET['feed'] === 'rss2' ); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
113 |
$query_limit = $do_rss ? 50 : 10; |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
114 |
if ( $do_rss ) |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
115 |
{ |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
116 |
$offset = 0; |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
117 |
} |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
118 |
|
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
119 |
// pass 2: production run |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
120 |
$columns = 'p.post_id, p.post_title, p.post_title_clean, p.post_author, p.post_timestamp, p.post_text, b.blog_name, b.blog_subtitle, b.blog_type, b.allowed_users, u.username, u.user_level, COUNT(c.comment_id) AS num_comments, \'' . $db->escape($planet_id) . '\' AS referring_planet'; |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
121 |
$sql = str_replace('<columns>', $columns, $sql_base); |
13
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
122 |
$sql = str_replace('<limit>', "LIMIT $offset, $query_limit", $sql); |
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
123 |
|
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
124 |
// yea. that was one query. |
10
219a0133622e
Made planet's main select query fully buffered because NuggiePostbit::paginate_handler requires fetch_page_acl which uses the DBAL
Dan
parents:
8
diff
changeset
|
125 |
$q = $db->sql_query($sql); |
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
126 |
if ( !$q ) |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
127 |
$db->_die(); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
128 |
|
13
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
129 |
// RSS feed? |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
130 |
if ( $do_rss ) |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
131 |
{ |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
132 |
header('Content-type: text/xml; charset=utf-8'); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
133 |
global $aggressive_optimize_html; |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
134 |
$aggressive_optimize_html = false; |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
135 |
$rss = new RSS( |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
136 |
getConfig('site_name') . ': ' . $planet_data['planet_name'], |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
137 |
$planet_data['planet_subtitle'], |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
138 |
makeUrlComplete('Planet', $planet_id) |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
139 |
); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
140 |
while ( $row = $db->fetchrow($q) ) |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
141 |
{ |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
142 |
$permalink = makeUrlNS('Blog', sanitize_page_id($row['username']) . date('/Y/n/j/', intval($row['post_timestamp'])) . $row['post_title_clean'], false, true); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
143 |
$post = RenderMan::render($row['post_text']); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
144 |
$rss->add_item($row['post_title'], $permalink, $post, intval($row['post_timestamp'])); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
145 |
} |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
146 |
echo $rss->render(); |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
147 |
return; |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
148 |
} |
421242ebbece
Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents:
10
diff
changeset
|
149 |
|
14 | 150 |
// Add the link to the feed |
151 |
$rss_link = ''; |
|
152 |
if ( defined('ENANO_FEEDBURNER_INCLUDED') ) |
|
153 |
{ |
|
154 |
$rss_link = '<p style="float: left;"> |
|
155 |
<a class="abutton" href="' . makeUrlNS('Planet', $planet_id, 'feed=rss2', true) . '"> |
|
156 |
<img alt=" " src="' . scriptPath . '/plugins/nuggie/images/feed.png" /> |
|
157 |
RSS feed |
|
158 |
</a> |
|
159 |
</p>'; |
|
160 |
} |
|
161 |
||
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
162 |
// just let the paginator do the rest |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
163 |
$postbit = new NuggiePostbit(); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
164 |
// $q, $tpl_text, $num_results, $result_url, $start = 0, $perpage = 10, $callers = Array(), $header = '', $footer = '' |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
165 |
$html = paginate( |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
166 |
$q, |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
167 |
'{post_id}', |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
168 |
$count, |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
169 |
makeUrlNS('Planet', "$planet_id/start=%s", true), |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
170 |
0, |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
171 |
10, |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
172 |
array( 'post_id' => array($postbit, 'paginate_handler') ), |
14 | 173 |
'<span class="menuclear"></span>', |
174 |
$rss_link |
|
8
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
175 |
); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
176 |
$db->free_result($q); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
177 |
|
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
178 |
$template->add_header('<link rel="stylesheet" type="text/css" href="' . scriptPath . '/plugins/nuggie/style.css" />'); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
179 |
$template->header(); |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
180 |
echo $planet_data['planet_subtitle']; |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
181 |
echo $html; |
160f1170aa32
First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents:
7
diff
changeset
|
182 |
$template->footer(); |
7
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
183 |
} |
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
184 |
|
cd46e29ae699
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff
changeset
|
185 |
?> |