1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
<?php
/**
* RSS output of the latest posts.
*
* SemanticScuttle - your social bookmark manager.
*
* PHP version 5.
*
* @category Bookmarking
* @package SemanticScuttle
* @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
* @author Christian Weiske <cweiske@cweiske.de>
* @author Eric Dane <ericdane@users.sourceforge.net>
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
require_once '../src/SemanticScuttle/header.php';
/* Service creation: only useful services are created */
$bookmarkservice = SemanticScuttle_Service_Factory::get('Bookmark');
$cacheservice = SemanticScuttle_Service_Factory::get('Cache');
header('Content-Type: application/rss+xml; charset=utf-8');
if (isset($_SERVER['PATH_INFO']) && strlen($_SERVER['PATH_INFO']) >1) {
list($url, $user, $cat) = explode('/', $_SERVER['PATH_INFO']);
} else {
$url = '';
$user = '';
$cat = null;
}
if ($usecache) {
// Generate hash for caching on
$hashtext = $_SERVER['REQUEST_URI'];
if ($userservice->isLoggedOn()) {
$hashtext .= $userservice->getCurrentUserID();
if ($currentUser->getUsername() == $user) {
$hashtext .= $user;
}
}
$hash = md5($hashtext);
// Cache for an hour
$cacheservice->Start($hash, 3600);
}
$watchlist = null;
$pagetitle = '';
if ($user && $user != 'all') {
if ($user == 'watchlist') {
$user = $cat;
$cat = null;
$watchlist = true;
}
if (is_int($user)) {
$userid = intval($user);
} else {
if ($userinfo = $userservice->getUserByUsername($user)) {
$userid =& $userinfo[$userservice->getFieldName('primary')];
} else {
$tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
$templateservice->loadTemplate('error.404.tpl', $tplVars);
//throw a 404 error
exit();
}
}
$pagetitle .= ": ". $user;
} else {
$userid = null;
}
if ($cat) {
$pagetitle .= ": ". str_replace('+', ' + ', $cat);
}
$tplVars['feedtitle'] = filter($GLOBALS['sitename'] . (isset($pagetitle) ? $pagetitle : ''));
$tplVars['feedlink'] = ROOT;
$tplVars['feeddescription'] = sprintf(T_('Recent bookmarks posted to %s'), $GLOBALS['sitename']);
$bookmarks = $bookmarkservice->getBookmarks(
0, 15, $userid, $cat,
null, getSortOrder(), $watchlist
);
$bookmarks_tmp = filter($bookmarks['bookmarks']);
$bookmarks_tpl = array();
$latestdate = null;
foreach ($bookmarks_tmp as $key => $row) {
$_link = $row['bAddress'];
// Redirection option
if ($GLOBALS['useredir']) {
$_link = $GLOBALS['url_redir'] . $_link;
}
if ($row['bDatetime'] > $latestdate) {
$latestdate = $row['bDatetime'];
}
$_pubdate = gmdate('r', strtotime($row['bDatetime']));
$bookmarks_tpl[] = array(
'title' => $row['bTitle'],
'link' => $_link,
'description' => $row['bDescription'],
'creator' => $row['username'],
'pubdate' => $_pubdate,
'tags' => $row['tags']
);
}
unset($bookmarks_tmp);
unset($bookmarks);
$tplVars['bookmarks'] = $bookmarks_tpl;
$tplVars['feedlastupdate'] = date('r', strtotime($latestdate));
$templateservice->loadTemplate('rss.tpl', $tplVars);
if ($usecache) {
// Cache output if existing copy has expired
$cacheservice->End($hash);
}
?>
|