", ""; } /** * close_feed */ public function close_feed() { echo ""; } /** * channel */ public function channel($Title, $Description, $Section = '') { $ENV = ENV::go(); $Site = site_url(); # echo commas because <<$Title $ENV->SEP $ENV->SITE_NAME", "$Site$Section", "$Description", "en-us", "".date('r')."", "http://blogs.law.harvard.edu/tech/rss", "Gazelle Feed Class"; } /** * item */ public function item($Title, $Description, $Page, $Creator, $Comments = '', $Category = '', $Date = '') { $Site = site_url(); if ($Date === '') { $Date = date('r'); } else { $Date = date('r', strtotime($Date)); } // Escape with CDATA, otherwise the feed breaks. $Item = ""; $Item .= "<![CDATA[$Title]]>"; $Item .= ""; $Item .= "$Date"; $Item .= "$Site$Page"; $Item .= "$Site$Page"; if ($Comments !== '') { $Item .= "$Site$Comments"; } if ($Category !== '') { $Item .= ""; } $Item .= "$Creator"; return $Item; } /** * retrieve */ public function retrieve($CacheKey, $AuthKey, $PassKey) { global $Cache; $Entries = $Cache->get_value($CacheKey); if (!$Entries) { $Entries = []; } else { foreach ($Entries as $Item) { echo str_replace( array('[[PASSKEY]]', '[[AUTHKEY]]'), array(display_str($PassKey), display_str($AuthKey)), $Item ); } } } /** * populate */ public function populate($CacheKey, $Item) { global $Cache; $Entries = $Cache->get_value($CacheKey, true); if (!$Entries) { $Entries = []; } else { if (count($Entries) >= 50) { array_pop($Entries); } } array_unshift($Entries, $Item); $Cache->cache_value($CacheKey, $Entries, 0); // inf cache } }