Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4686747
rss.inc
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
rss.inc
View Options
<
?
php
/*
+-----------------------------------------------------------------------+
| program/steps/mail/rss.inc |
| |
| This file is part of the RoundCube Webmail client |
| Copyright (C) 2005, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Send mailboxcontents as RSS feed |
| |
+-----------------------------------------------------------------------+
| Author: Sjon Hortensius <sjon@hortensius.net> |
+-----------------------------------------------------------------------+
$Id$
*/
require_once
(
'
Mail
/
mimeDecode
.
php
'
);
function
rss_encode
(
$
string
){
$
string
=
rep_specialchars_output
(
$
string
,
'
xml
'
);
return
$
string
;
}
$
REMOTE_REQUEST
=
TRUE
;
$
OUTPUT_TYPE
=
'
rss
'
;
$
webmail_url
=
'
http
'
;
if
(
strstr
(
'
HTTPS
'
,
$
_SERVER
[
'
SERVER_PROTOCOL
'
]
)
!
==
FALSE
)
$
webmail_url
.
=
'
s
'
;
$
webmail_url
.
=
':
//'.$_SERVER['SERVER_NAME'];
if
(
$
_SERVER
[
'
SERVER_PORT
'
]
!
=
'
80
'
)
$
webmail_url
.
=
':'.$
_SERVER
[
'
SERVER_PORT
'
];
$
webmail_url
.
=
'
/
'
;
if
(
dirname
(
$
_SERVER
[
'
SCRIPT_NAME
'
])
!
=
'
/
'
)
$
webmail_url
.
=
dirname
(
$
_SERVER
[
'
SCRIPT_NAME
'
])
.'
/
'
;
$
auth_webmail_url
=
$
webmail_url
.'?
_auth
=
'.$
GLOBALS
[
'
sess_auth
'
];
$
messagecount_unread
=
$
IMAP
-
>
messagecount
(
'
INBOX
'
,
'
UNSEEN
'
,
TRUE
);
$
messagecount
=
$
IMAP
-
>
messagecount
();
$
sort_col
=
'
date
'
;
$
sort_order
=
'
DESC
'
;
// Send global XML output
header
(
'
Content
-
type
:
text
/
xml
'
);
echo
'
<
?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?
>
<
rss
version
=
"2.0"
xmlns
:
dc
=
"http://purl.org/dc/elements/1.1/"
xmlns
:
sy
=
"http://purl.org/rss/1.0/modules/syndication/"
xmlns
:
admin
=
"http://webns.net/mvcb/"
xmlns
:
rdf
=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns
:
content
=
"http://purl.org/rss/1.0/modules/content/"
>
'
;
// Send channel-specific output
echo
'
<
channel
>
<
pubDate
>
'.
date
(
'
r
'
)
.'
<
/
pubDate
>
<
lastBuildDate
>
'.
date
(
'
r
'
)
.'
<
/
lastBuildDate
>
<
ttl
>
5
<
/
ttl
>
<
docs
>
http
:
//blogs.law.harvard.edu/tech/rss</docs>
<
description
>
INBOX
contains
'.$
messagecount
.'
messages
,
of
which
'.$
messagecount_unread
.'
unread
<
/
description
>
<
link
>
'.
rss_encode
(
$
auth_webmail_url
,
'
xml
'
)
.'
<
/
link
>
<
title
>
webmail
for
'.
rss_encode
(
$
_SESSION
[
'
username
'
]
.'
@
'.$
_SESSION
[
'
imap_host
'
])
.'
<
/
title
>
<
generator
>
'.
rss_encode
(
$
CONFIG
[
'
useragent
'
],
'
xml
'
)
.'
(
RSS
extension
by
Sjon
Hortensius
)<
/
generator
>
<
image
>
<
link
>
http
:
//www.roundcube.net/</link>
<
title
>
'.
rss_encode
(
$
CONFIG
[
'
product_name
'
])
.'
logo
<
/
title
>
<
url
>
'.
rss_encode
(
$
webmail_url
.'
skins
/
default
/
images
/
roundcube_logo
.
png
'
)
.'
<
/
url
>
<
/
image
>
'
;
// Check if the user wants to override the default sortingmethode
if
(
isset
(
$
_GET
[
'
_sort
'
]))
list
(
$
sort_col
,
$
sort_order
)
=
explode
(
'
_
'
,
$
_GET
[
'
_sort
'
]);
// Add message to output
if
(
$
messagecount
>
0
)
{
$
items
=
$
IMAP
-
>
list_headers
(
'
INBOX
'
,
null
,
$
sort_col
,
$
sort_order
);
foreach
(
$
items
as
$
item
)
{
// Convert '"name" <email>' to 'email (name)'
if
(
strstr
(
$
item
-
>
from
,
'
<
'
))
$
item
-
>
from
=
preg_replace
(
'~
"?([^"
]
*
)
"? <([^>]*)>~', '\2 (\1)', $item->from);
$item->link = $auth_webmail_url.'&_task=mail&_action=show&_uid='.$item->uid.'&_mbox=INBOX';
$item->body = $IMAP->get_body($item->uid);
// Print the actual messages
echo '
<item>
<title>'.rss_encode($item->subject).'</title>
<link>'.rss_encode($item->link).'</link>
<description><![CDATA['."
\
n
".nl2br(rss_encode($item->body))."
\
n
".'
]]><
/
description
>
<
author
>
'.
rss_encode
(
$
item
-
>
from
)
.'
<
/
author
>
<
category
><
/
category
>
<
guid
>
'.
rss_encode
(
$
item
-
>
link
)
.'
<
/
guid
>
<
pubDate
>
'.
date
(
'
r
'
,
$
item
-
>
timestamp
)
.'
<
/
pubDate
>
<
/
item
>
'
;
}
}
echo
'
<
/
channel
>
<
/
rss
>
'
;
exit
;
?
>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, May 1, 3:40 PM (3 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
616794
Default Alt Text
rss.inc (3 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment