cvs: php-master-web /scripts pregen_news rss_parser update-backend

From: Date: Wed, 31 Dec 2008 13:33:57 +0000
Subject: cvs: php-master-web /scripts pregen_news rss_parser update-backend
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-3402@lists.php.net to get a copy of this message
bjori Wed Dec 31 13:33:57 2008 UTC Modified files: /php-master-web/scripts pregen_news rss_parser update-backend Log: - No need to do some weird newyears checks now for the news files - Build the news items that the archive has, let phpweb control if it wants to display it or not http://cvs.php.net/viewvc.cgi/php-master-web/scripts/pregen_news?r1=1.4&r2=1.5&diff_format=u Index: php-master-web/scripts/pregen_news diff -u php-master-web/scripts/pregen_news:1.4 php-master-web/scripts/pregen_news:1.5 --- php-master-web/scripts/pregen_news:1.4 Wed Mar 19 23:00:50 2008 +++ php-master-web/scripts/pregen_news Wed Dec 31 13:33:57 2008 @@ -11,60 +11,46 @@ $XML_OPTIONS = LIBXML_COMPACT | LIBXML_NOBLANKS | LIBXML_NOCDATA | LIBXML_NSCLEAN | LIBXML_XINCLUDE; function pregen_atom($feed, $feedDest, $newsDest) { - $entries = format_atom_feed($feed, $y = date("Y")); - uasort($entries, "date_sort"); + $dom = new DOMDocument; + $dom->preserveWhiteSpace = false; + $dom->formatOutput = true; - $write = '<?php $NEWS_ENTRIES = ' . var_export($entries, 1) . ';'; - file_put_contents($newsDest, $write); - - do { - $filename = $feed . $y .".xml"; - } while (!file_exists($filename)); - copy($filename, $feedDest); -} - -function format_atom_feed($feed, $year) { - static $frontpage = 0; - static $conf = 0; + if (!$dom->load($feed, $GLOBALS["XML_OPTIONS"])) { + trigger_error("News feed b0rked!", E_USER_WARNING); + return; + } + if (!$dom->xinclude()) { + trigger_error("News items b0rked!", E_USER_WARNING); + return; + } - // Lets only go back one year - if ($year < (date("Y")-1)) { - $frontpage = $conf = 100; - return array(); + $timestamps = array(); + foreach ($dom->getElementsByTagName("updated") as $node) { + $timestamps[] = strtotime($node->nodeValue, $_SERVER["REQUEST_TIME"]); } + $updated = max($timestamps); + $upnode = $dom->createElement("updated", date(DATE_ATOM, $updated)); + $dom->documentElement->insertBefore($upnode, $dom->getElementsByTagName("link")->item(0)); - $filename = $feed . $year .".xml"; + $feed = $dom->saveXML(); + $entries = format_atom_feed($feed); - // January 1st... - if (!file_exists($filename)) { - return format_atom_feed($feed, --$year); - } + $write = '<?php $NEWS_ENTRIES = ' . var_export($entries, 1) . ';'; + file_put_contents($newsDest, $write); + file_put_contents($feedDest, $feed); +} +function format_atom_feed($filename) { $r = new XMLReader; - $r->open($filename, "UTF-8"); + $r->XML($filename, "UTF-8"); $entries = array(); while($r->read()) { if ($r->nodeType === XMLReader::ELEMENT && $r->name === "entry") { $entries[] = $current = format_atom_entry($r); - - // Count the frontpage & conference entries - foreach($current["category"] as $dog) { - if ($dog["term"] == "frontpage") { - ++$frontpage; - break; - } else { - ++$conf; - } - } } } - // Make sure we have enough entries to display (shortly after new-year..) - if (min($frontpage, $conf) < 5) { - $entries = array_merge($entries, format_atom_feed($feed, --$year)); - } - return $entries; } http://cvs.php.net/viewvc.cgi/php-master-web/scripts/rss_parser?r1=1.21&r2=1.22&diff_format=u Index: php-master-web/scripts/rss_parser diff -u php-master-web/scripts/rss_parser:1.21 php-master-web/scripts/rss_parser:1.22 --- php-master-web/scripts/rss_parser:1.21 Thu Jun 7 13:01:35 2007 +++ php-master-web/scripts/rss_parser Wed Dec 31 13:33:57 2008 @@ -172,7 +172,7 @@ "\t\t<rdf:Seq>\n"; // Cycle through all the Resources on the RSS - foreach ($headlines as $headline) { + foreach ((array)$headlines as $headline) { $RSS .= "\t\t\t<rdf:li rdf:resource=\"" . $headline['link'] . "\" />\n"; } http://cvs.php.net/viewvc.cgi/php-master-web/scripts/update-backend?r1=1.34&r2=1.35&diff_format=u Index: php-master-web/scripts/update-backend diff -u php-master-web/scripts/update-backend:1.34 php-master-web/scripts/update-backend:1.35 --- php-master-web/scripts/update-backend:1.34 Fri Jan 11 10:18:25 2008 +++ php-master-web/scripts/update-backend Wed Dec 31 13:33:57 2008 @@ -40,7 +40,7 @@ fetch_ip_to_country($root); include "pregen_news"; -pregen_atom("$root/archive/", "$root/feed.atom", "$root/include/pregen-news.inc"); +pregen_atom("$root/archive/archive.atom", "$root/feed.atom", "$root/include/pregen-news.inc"); include "rss_parser"; legacy_rss("$root/feed.atom", "$root/news.rss", "$root/conferences/news.rss");

« previous php.webmaster (#3402) next »