diff --git a/phpBB/feed.php b/phpBB/feed.php index 9d9bf145b1..33549bcc56 100644 --- a/phpBB/feed.php +++ b/phpBB/feed.php @@ -158,41 +158,38 @@ else exit_handler(); } -$namespace = 'phpbb'; - echo '' . "\n"; -echo '<' . $namespace . ':feed xmlns:' . $namespace . '="http://www.w3.org/2005/Atom" xmlns="http://www.w3.org/1999/xhtml" xml:lang="' . $global_vars['FEED_LANG'] . '">' . "\n"; -echo '<' . $namespace . ':link rel="self" type="application/atom+xml" href="' . $global_vars['SELF_LINK'] . '" />' . "\n\n"; +echo '' . "\n"; +echo '' . "\n\n"; -echo (!empty($global_vars['FEED_TITLE'])) ? '<' . $namespace . ':title>' . $global_vars['FEED_TITLE'] . '' . "\n" : ''; -echo (!empty($global_vars['FEED_SUBTITLE'])) ? '<' . $namespace . ':subtitle>' . $global_vars['FEED_SUBTITLE'] . '' . "\n" : ''; -echo (!empty($global_vars['FEED_LINK'])) ? '<' . $namespace . ':link href="' . $global_vars['FEED_LINK'] .'" />' . "\n" : ''; -echo '<' . $namespace . ':updated>' . $global_vars['FEED_UPDATED'] . '' . "\n\n"; +echo (!empty($global_vars['FEED_TITLE'])) ? '' . $global_vars['FEED_TITLE'] . '' . "\n" : ''; +echo (!empty($global_vars['FEED_SUBTITLE'])) ? '' . $global_vars['FEED_SUBTITLE'] . '' . "\n" : ''; +echo (!empty($global_vars['FEED_LINK'])) ? '' . "\n" : ''; +echo '' . $global_vars['FEED_UPDATED'] . '' . "\n\n"; -echo '<' . $namespace . ':author><' . $namespace . ':name>' . $global_vars['FEED_AUTHOR'] . '' . "\n"; -echo '<' . $namespace . ':id>' . $global_vars['SELF_LINK'] . '' . "\n"; +echo '' . "\n"; +echo '' . $global_vars['SELF_LINK'] . '' . "\n"; foreach ($item_vars as $row) { - echo '<' . $namespace . ':entry>' . "\n"; + echo '' . "\n"; if (!empty($row['author'])) { - echo '<' . $namespace . ':author><' . $namespace . ':name>' . $row['author'] . '' . "\n"; + echo '' . "\n"; } - echo '<' . $namespace . ':updated>' . $row['pubdate'] . '' . "\n"; - echo '<' . $namespace . ':id>' . $row['link'] . '' . "\n"; - echo '<' . $namespace . ':link href="' . $row['link'] . '"/>' . "\n"; - echo '<' . $namespace . ':title type="xhtml">
' . $row['title'] . '
' . "\n\n"; + echo '' . $row['pubdate'] . '' . "\n"; + echo '' . $row['link'] . '' . "\n"; + echo '' . "\n"; + echo '<![CDATA[' . $row['title'] . ']]>' . "\n\n"; if (!empty($row['category'])) { - echo '<' . $namespace . ':category term="' . $row['category_name'] . '" scheme="' . $row['category'] . '" label="' . $row['category_name'] . '"/>' . "\n"; + echo '' . "\n"; } - echo '<' . $namespace . ':content type="xhtml" xml:base="' . $row['link'] . '">' . "\n"; - echo '
' . "\n"; + echo '' . $user->lang['STATISTICS'] . ': ' . $row['statistics'] . '

'; } - echo '
' . "\n" . '' . "\n"; - echo '' . "\n"; + echo '
' . "\n" . ']]>' . "\n"; + echo '
' . "\n"; } -echo ''; +echo '
'; garbage_collection(); exit_handler(); @@ -257,17 +254,19 @@ function feed_generate_content($content, $uid, $bitfield, $options) $content = str_replace('' .$user->lang['SELECT_ALL_CODE'] . '', '', $content); $content = preg_replace('#(onkeypress|onclick)="(.*?)"#si', '', $content); + // Firefox does not support CSS for feeds, though + // Remove font sizes - $content = preg_replace('#([^>]+)#iU', '\1', $content); +// $content = preg_replace('#([^>]+)#iU', '\1', $content); // Make text strong :P - $content = preg_replace('#([^<]+)#iU', '\1', $content); +// $content = preg_replace('#(.*?)#iU', '\1', $content); // Italic - $content = preg_replace('#([^<]+)#iU', '\1', $content); +// $content = preg_replace('#([^<]+)#iU', '\1', $content); // Underline - $content = preg_replace('#([^<]+)#iU', '\1', $content); +// $content = preg_replace('#([^<]+)#iU', '\1', $content); // Remove embed Windows Media Streams $content = preg_replace( '#<\!--\[if \!IE\]>-->([^[]+)<\!--#si', '', $content); @@ -293,6 +292,9 @@ function feed_generate_content($content, $uid, $bitfield, $options) $content = str_replace(array_keys($entities), array_values($entities), $content); + // Remove CDATA blocks. ;) + $content = preg_replace('#\<\!\[CDATA\[(.*?)\]\]\>#s', '', $content); + // Other control characters // $content = preg_replace('#(?:[\x00-\x1F\x7F]+|(?:\xC2[\x80-\x9F])+)#', '', $content);