diff --git a/.htaccess b/.htaccess
index 1915f7476..2d14222ab 100644
--- a/.htaccess
+++ b/.htaccess
@@ -25,6 +25,9 @@ RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)page$ ./index.php?mid=$1&page=$2 [L]
RewriteRule ^rss/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=rss&start_date=$1&end_date=$2&page=$3 [L]
RewriteRule ^rss/([[:digit:]]+)$ ./index.php?module=rss&act=rss&page=$1 [L]
RewriteRule ^rss$ ./index.php?module=rss&act=rss [L]
+RewriteRule ^atom/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=rss&format=atom&start_date=$1&end_date=$2&page=$3 [L]
+RewriteRule ^atom/([[:digit:]]+)$ ./index.php?module=rss&act=rss&format=atom&page=$1 [L]
+RewriteRule ^atom$ ./index.php?module=rss&act=rss&format=atom [L]
# administrator page
RewriteRule ^admin$ ./index.php?module=admin [L]
diff --git a/modules/rss/rss.view.php b/modules/rss/rss.view.php
index f053341f7..8e6dc0761 100644
--- a/modules/rss/rss.view.php
+++ b/modules/rss/rss.view.php
@@ -104,7 +104,21 @@
$path = $this->module_path.'tpl/';
//if($args->start_date || $args->end_date) $file = 'xe_rss';
//else $file = 'rss20';
- $file = 'rss20';
+ switch (Context::get('format')) {
+ case 'xe':
+ $file = 'xe_rss';
+ break;
+ case 'atom':
+ $file = 'atom10';
+ break;
+ case 'rss1.0':
+ $file = 'rss10';
+ break;
+ default:
+ $file = 'rss20';
+ break;
+ }
+
$oTemplate = new TemplateHandler();
$oContext = &Context::getInstance();
diff --git a/modules/rss/tpl/atom10.html b/modules/rss/tpl/atom10.html
new file mode 100644
index 000000000..312a0b524
--- /dev/null
+++ b/modules/rss/tpl/atom10.html
@@ -0,0 +1,33 @@
+{''}
+
+
+ {$info->title}
+ {str_replace('\'', ''', htmlspecialchars($info->description))}
+ {$info->date}
+ {getUrl('','mid',$mid,'module','rss','act','rss','format','atom1.0','page',Context::get('page'),'start_date',Context::get('start_date'),'end_date',Context::get('end_date'))}
+
+
+ XpressEngine
+
+ {str_replace('\'', ''',$oDocument->getTitle())}
+ {$oDocument->getPermanentUrl()}
+ {$oDocument->getRegdate('Y-m-d\TH:i:sP')}
+ {zdate($oDocument->get('last_update'),'Y-m-d\TH:i:sP')}
+
+
+ {str_replace('\'', ''',$oDocument->getNickName())}
+
+ {$oDocument->getHomepageUrl()}
+
+
+
+ {str_replace('\'', ''', htmlspecialchars($oDocument->getContent(false,false,true)))}
+
+ {str_replace('\'', ''', htmlspecialchars($oDocument->getContentText(100)))}
+
+
+
+
+
+
+
diff --git a/modules/rss/tpl/rss10.html b/modules/rss/tpl/rss10.html
index d4cc8bf5f..6dc12c267 100644
--- a/modules/rss/tpl/rss10.html
+++ b/modules/rss/tpl/rss10.html
@@ -1,27 +1,27 @@
{''}
-
- title}]]>
- link}]]>
- description}]]>
+
+ {$info->title}
+ {$info->link}
+ {str_replace('\'', ''', htmlspecialchars($info->description))}
-
-
+
+
{$info->date}
{$info->language}
{$info->total_count}
-
-
- -
- title}]]>
- link}]]>
- description}]]>
- {$item->date}
+
+
+ -
+ {str_replace('\'', ''',$oDocument->getTitle())}
+ {$oDocument->getPermanentUrl()}
+ {str_replace('\'', ''', htmlspecialchars($oDocument->getContentText(200)))}
+ {$oDocument->getRegdateGM()}
diff --git a/modules/rss/tpl/xe_rss.html b/modules/rss/tpl/xe_rss.html
index 0671ec817..6de4abeae 100644
--- a/modules/rss/tpl/xe_rss.html
+++ b/modules/rss/tpl/xe_rss.html
@@ -2,24 +2,24 @@
- title}]]>
- link}]]>
- description}]]>
+ {$info->title}
+ {$info->link}
+ {str_replace('\'', ''', htmlspecialchars($info->description))}
{$info->language}
{$info->date}
{$info->total_count}
{$info->total_page}
-
- getTitleText()}]]>
- getNickName()}]]>
- getPermanentUrl()}]]>
+ {str_replace('\'', ''',$oDocument->getTitle())}
+ {str_replace('\'', ''',$oDocument->getNickName())}
+ {$oDocument->getPermanentUrl()}
- getContent(false)}]]>
+ {str_replace('\'', ''', htmlspecialchars($oDocument->getContent(false)))}
- getContentText(100)}]]>
+ {str_replace('\'', ''', htmlspecialchars($oDocument->getContentText(100)))}
- get('tags')}]]>
+ {str_replace('\'', ''', htmlspecialchars($oDocument->get('tags')))}
{$oDocument->getCommentCount()}
{$oDocument->getTrackbackCount()}
{$oDocument->getRegdateGM()}