diff options
author | Martin Gummi <martin.gummi@gmx.net> | 2013-07-14 22:15:02 +0200 |
---|---|---|
committer | Martin Gummi <martin.gummi@gmx.net> | 2013-07-14 22:15:02 +0200 |
commit | 0099d33105197fce259316d6db181bac6b9ce96c (patch) | |
tree | 02a153b398c9892838e8d893922374dae5bc0efe /pages/index/0.php | |
parent | 0f787a6c3ce0c6581492422fd7c137ffe546ed83 (diff) | |
download | cacert-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.php | 90 |
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("&#", "&#", recode_string("UTF8..html", str_replace("&", "", trim(substr($line, 7, -8)))))."</h3>\n"; - if(substr($line, 0, 13) == "<description>") - echo "<p>".str_replace("&#", "&#", recode_string("UTF8..html", str_replace("&", "", 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("&#", "&#", 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("&#", "&#", 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/> |