summaryrefslogtreecommitdiff
path: root/pages/index/0.php
diff options
context:
space:
mode:
authorMartin Gummi <martin.gummi@gmx.net>2013-07-14 22:15:02 +0200
committerMartin Gummi <martin.gummi@gmx.net>2013-07-14 22:15:02 +0200
commit0099d33105197fce259316d6db181bac6b9ce96c (patch)
tree02a153b398c9892838e8d893922374dae5bc0efe /pages/index/0.php
parent0f787a6c3ce0c6581492422fd7c137ffe546ed83 (diff)
downloadcacert-devel-0099d33105197fce259316d6db181bac6b9ce96c.tar.gz
cacert-devel-0099d33105197fce259316d6db181bac6b9ce96c.tar.xz
cacert-devel-0099d33105197fce259316d6db181bac6b9ce96c.zip
bug-1190: Change parsing of new feed from blog.cacert.org via XML Parser
Diffstat (limited to 'pages/index/0.php')
-rw-r--r--pages/index/0.php90
1 files changed, 35 insertions, 55 deletions
diff --git a/pages/index/0.php b/pages/index/0.php
index e7356c7..4f1ed84 100644
--- a/pages/index/0.php
+++ b/pages/index/0.php
@@ -28,62 +28,42 @@
<div class="newsbox">
-<?
-/*
- $query = "select *, UNIX_TIMESTAMP(`when`) as `TS` from news order by `when` desc limit 5";
- $res = mysql_query($query);
- while($row = mysql_fetch_assoc($res))
- {
- echo "<p><b>".date("Y-m-d", $row['TS'])."</b> - ".$row['short']."</p>\n";
- if($row['story'] != "")
- echo "<p>[ <a href='news.php?id=".$row['id']."'>"._("Full Story")."</a> ]</p>\n";
- }
- if(mysql_num_rows(mysql_query("select * from `news`")) > 2)
- echo "<p>[ <a href='news.php'>"._("More News Items")."</a> ]</p>";
-*/
- $rss = "";
- $open = $items = 0;
- $fp = @fopen("/www/pages/index/feed.rss", "r");
- if($fp)
- {
- echo '<p id="lnews">'._('Latest News').'</p>';
-
-
- while(!feof($fp))
- $rss .= trim(fgets($fp, 4096));
- fclose($fp);
- $rss = str_replace("><", ">\n<", $rss);
- $lines = explode("\n", $rss);
- foreach($lines as $line)
- {
- $line = trim($line);
-
- if($line != "<item>" && $open == 0)
- continue;
-
- if($line == "<item>" && $open == 0)
- {
- $open = 1;
- continue;
- }
-
- if($line == "</item>" && $open == 1)
- {
- $items++;
- if($items >= 3)
- break;
- $open == 0;
- continue;
- }
- if(substr($line, 0, 7) == "<title>")
- echo "<h3>".str_replace("&amp;#", "&#", recode_string("UTF8..html", str_replace("&amp;", "", trim(substr($line, 7, -8)))))."</h3>\n";
- if(substr($line, 0, 13) == "<description>")
- echo "<p>".str_replace("&amp;#", "&#", recode_string("UTF8..html", str_replace("&amp;", "", trim(substr($line, 13, -14)))))."</p>\n";
- if(substr($line, 0, 6) == "<link>")
- echo "<p>[ <a href='".trim(substr($line, 6, -7))."'>"._("Full Story")."</a> ]</p>\n";
- }
- }
+ <?
+ printf("<p id='lnews'>%s</p>\n\n",_('Latest News'));
+
+ $xml = "/www/pages/index/feed.rss"; // FIXME: use relative path to allow operation with different document root
+ $dom = new DOMDocument();
+ $dom->preserveWhiteSpace = false;
+ $dom->Load($xml);
+
+ $xpath = new DOMXPath($dom); //Create an XPath query
+
+ $query = "//channel/item";
+ $items = $xpath->query($query);
+
+ foreach($items as $id => $item) {
+ $query = "./title";
+ $nodeList = $xpath->query($query, $item);
+ $title = str_replace("&amp;#", "&#", recode_string("UTF8..html" , $nodeList->item(0)->nodeValue));
+
+ $query = "./link";
+ $nodeList = $xpath->query($query, $item);
+ $link = $nodeList->item(0)->nodeValue;
+
+ $query = "./description";
+ $nodeList = $xpath->query($query, $item);
+ $description = str_replace("&amp;#", "&#", recode_string("UTF8..html" , $nodeList->item(0)->nodeValue));
+
+ printf("<h3> %s </h3>\n", $title);
+ printf("<p> %s </p>\n", $description);
+ printf("<p>[<a href='%s'> %s </a> ] </p>\n\n", $link,_("Full Story"));
+
+ $title = '';
+ $description = '';
+ $link = '';
+}
?>
+
[ <a href="http://blog.CAcert.org/"><?=_('More News Items')?></a> ]
</div>
<hr/>